TimescaleDB Helpers
Connection
| Function | Parameters | Returns |
|---|---|---|
timescaledb_connect(connstr, pool_size) | connstr: PostgreSQL connection string (e.g. "host=localhost port=5432 dbname=iotsensors user=postgres password=secret sslmode=disable"), pool_size (optional): max connections (default 5, min 1) | (success, error_msg) — boolean + string|nil |
timescaledb_disconnect() | none | (success, error_msg) — boolean + string|nil |
TLS not supported; use sslmode=disable. Connection persists across all hooks.
Synchronous Operations
Block until confirmed. Raise Lua errors on failure — wrap in pcall() for error handling.
| Function | Parameters | Returns |
|---|---|---|
timescaledb_execute(sql, params) | sql: SQL with $1, $2 placeholders, params (optional): array of values (string/number/boolean/nil) | rows_affected (number) |
timescaledb_insert(table_name, columns, values) | table_name: string, columns: array of column names, values: array of values matching columns | rows_affected (number) |
timescaledb_insert_batch(table_name, columns, rows) | table_name: string, columns: array of column names, rows: array of row arrays | rows_affected (number) |
Parameter limit: max 65,535 bind parameters. For batch: columns × rows must not exceed 65,535.
Asynchronous Operations
Fire-and-forget. Errors logged internally, never raise Lua errors.
| Function | Parameters | Returns |
|---|---|---|
timescaledb_execute_async(sql, params) | Same as timescaledb_execute | true if queued, false if validation failed |
timescaledb_insert_async(table_name, columns, values) | Same as timescaledb_insert | true if queued, false if validation failed |
timescaledb_insert_batch_async(table_name, columns, rows) | Same as timescaledb_insert_batch | true if queued, false if validation failed |
Data Type Mapping
| Lua Type | PostgreSQL Types |
|---|---|
nil | Any (as NULL) |
string | TEXT, VARCHAR, CHAR, BPCHAR, NAME |
number (int) | INT2, INT4, INT8, NUMERIC (range-checked) |
number (float) | FLOAT4, FLOAT8, NUMERIC (range-checked for FLOAT4) |
boolean | BOOL |