node_pg
Types
Opaque type wrapping a node-postgres Client instance Provides type safety and encapsulates internal implementation
pub opaque type Client
PostgreSQL connection configuration All fields are optional; node-postgres uses environment variables as defaults
pub type Config {
Config(
user: option.Option(String),
password: option.Option(String),
host: option.Option(String),
port: option.Option(Int),
database: option.Option(String),
connection_string: option.Option(String),
ssl: option.Option(dynamic.Dynamic),
types: option.Option(dynamic.Dynamic),
statement_timeout: option.Option(Int),
query_timeout: option.Option(Int),
lock_timeout: option.Option(Int),
application_name: option.Option(String),
connection_timeout_millis: option.Option(Int),
keep_alive_initial_delay_millis: option.Option(Int),
idle_in_transaction_session_timeout: option.Option(Int),
client_encoding: option.Option(String),
fallback_application_name: option.Option(String),
options: option.Option(String),
)
}
Constructors
-
Config( user: option.Option(String), password: option.Option(String), host: option.Option(String), port: option.Option(Int), database: option.Option(String), connection_string: option.Option(String), ssl: option.Option(dynamic.Dynamic), types: option.Option(dynamic.Dynamic), statement_timeout: option.Option(Int), query_timeout: option.Option(Int), lock_timeout: option.Option(Int), application_name: option.Option(String), connection_timeout_millis: option.Option(Int), keep_alive_initial_delay_millis: option.Option(Int), idle_in_transaction_session_timeout: option.Option(Int), client_encoding: option.Option(String), fallback_application_name: option.Option(String), options: option.Option(String), )
Structured database error information Maps PostgreSQL and node-postgres errors to Gleam Result types
pub type DatabaseError {
DatabaseError(
message: String,
code: option.Option(String),
detail: option.Option(String),
hint: option.Option(String),
)
}
Constructors
-
DatabaseError( message: String, code: option.Option(String), detail: option.Option(String), hint: option.Option(String), )
Field metadata from query results
pub type FieldInfo {
FieldInfo(
name: String,
table_id: Int,
column_id: Int,
data_type_id: Int,
)
}
Constructors
-
FieldInfo( name: String, table_id: Int, column_id: Int, data_type_id: Int, )
SQL query execution result Rows are provided as Dynamic type for user decoding with gleam/dynamic
pub type QueryResult {
QueryResult(
rows: List(dynamic.Dynamic),
row_count: option.Option(Int),
command: String,
fields: option.Option(List(FieldInfo)),
)
}
Constructors
-
QueryResult( rows: List(dynamic.Dynamic), row_count: option.Option(Int), command: String, fields: option.Option(List(FieldInfo)), )
Values
pub fn connect(
client: Client,
) -> promise.Promise(Result(Nil, DatabaseError))
Establish a connection to the PostgreSQL database Returns a Promise that resolves to Result(Nil, DatabaseError)
pub fn connection_string_config(
connection_string: String,
) -> Config
Create a PostgreSQL configuration from a connection string Connection string format: postgresql://[user[:password]@][host][:port][/database][?options]
pub fn create_config(
user: option.Option(String),
password: option.Option(String),
host: option.Option(String),
port: option.Option(Int),
database: option.Option(String),
) -> Config
Create a new PostgreSQL configuration from basic connection parameters All parameters are optional; unspecified fields will be set to None node-postgres will use environment variables as defaults for None values
pub fn empty_config() -> Config
Create an empty PostgreSQL configuration All fields are set to None; node-postgres will use environment variables as defaults This is useful when you want to rely entirely on environment configuration
pub fn end(
client: Client,
) -> promise.Promise(Result(Nil, DatabaseError))
Close the database connection Returns a Promise that resolves to Result(Nil, DatabaseError)
pub fn new_client(config: Config) -> Client
Create a new PostgreSQL client instance from configuration The client is not connected; call connect() to establish connection
pub fn query(
client: Client,
sql: String,
parameters: List(dynamic.Dynamic),
) -> promise.Promise(Result(QueryResult, DatabaseError))
Execute a SQL query with optional parameters Uses parameterized queries to prevent SQL injection Parameters should use $1, $2, etc. placeholders in the SQL string