async_postgres

Async PostgreSQL client for Nim.

Implements the PostgreSQL wire protocol v3 with full support for the extended query protocol, connection pooling, SSL/TLS, and binary format optimization.

Async Backend

Select at compile time with -d:asyncBackend=asyncdispatch (default) or -d:asyncBackend=chronos.

Quick Start

import pkg/async_postgres

proc main() {.async.} =
  let conn = await connect("postgresql://myuser:mypass@127.0.0.1:5432/mydb")
  defer: await conn.close()
  
  # Insert with typed parameters
  let name = "Alice"
  let age = 30'i32
  let cr = await conn.exec(sql"INSERT INTO users (name, age) VALUES ({name}, {age})")
  echo "Inserted: ", cr.affectedRows
  
  # Query multiple rows
  let minAge = 25'i32
  let row = await conn.query(sql"SELECT id, name, age FROM users WHERE age > {minAge}")
  for r in row:
    echo r.getStr("name"), " age=", r.getInt("age")
  
  # Query a single value
  let count = await conn.queryValueOrDefault("SELECT count(*) FROM users", default = "0")
  echo "Total users: ", count

waitFor main()

Choosing a query API

Four parameterised entry points are provided. They differ in how parameters are supplied and in the amount of per-call allocation:

1. sql"..." macro — compile-time {expr} interpolation

Most readable. {expr} placeholders are rewritten to $1, $2, … at compile time and the expressions are collected into a seq[PgParam]. Works with query, exec, pool.query, cluster.withReadConnection, etc.

let name = "Alice"
await conn.query(sql"SELECT id FROM users WHERE name = {name}")
  • Pros: concise; compile-time placeholder rewriting; SQL injection-safe.
  • Cons: still allocates a seq[PgParam] per call; {expr} must be a compile-time-visible expression (not an openArray spread).
  • Use when: SQL is a literal and ergonomics matter more than zero-alloc.

2. query/exec with an explicit seq[PgParam]

The baseline runtime API. Use when the SQL or the parameter list is constructed dynamically (e.g. conditional WHERE clauses).

var params: seq[PgParam]
params.add name.toPgParam
params.add age.toPgParam
await conn.query("SELECT id FROM users WHERE name = $1 AND age > $2", params)

The pgParams(a, b, c) macro builds a seq[PgParam] in one call. A second overload takes seq[PgParamInline] — constructed manually as @[toPgParamInline(a), toPgParamInline(b)] — which avoids per-parameter heap allocations for scalar types.

3. queryDirect/execDirect — zero-allocation macros

Encodes parameters directly into the connection's send buffer at compile time; no intermediate seq[PgParam] or seq[byte] is built.

let qr = await conn.queryDirect("SELECT name FROM users WHERE id = $1", myId)
  • Pros: no per-call allocations for the parameter path; same statement cache semantics as query.
  • Cons: SQL must be a string literal/compile-time constant; arguments are positional ($1, $2, …), no {expr} sugar.
  • Use when: the call site is on a hot path and params are scalars.

4. simpleQuery/simpleExec — simple query protocol

Parameter-less, text-only, single round trip. Allows multiple ;-separated statements and session-only commands that the extended protocol rejects (SET, LISTEN, VACUUM, …).

discard await conn.simpleExec("SET search_path TO myschema, public")

Quick decision table

SituationPrefer
Literal SQL, readabilitysql"..." macro
Dynamic SQL or paramsquery(sql, params) / exec
Hot path, scalar paramsqueryDirect / execDirect
SET / multi-statementsimpleQuery / simpleExec

sql"...", query/exec, and queryDirect/execDirect share the per-connection prepared-statement cache; simpleQuery/simpleExec use the simple protocol and are not cached. A timeout parameter is accepted by query/exec, queryDirect/execDirect, and simpleQuery/simpleExec; on timeout the connection is marked closed because the wire protocol desynchronises.

Modules

  • pg_connection — Connection management, DSN parsing, SSL, LISTEN/NOTIFY
  • pg_client — Query execution, prepared statements, cursors, pipelines, transactions, COPY, zero-alloc macros (queryDirect/execDirect)
  • pg_pool — Connection pooling with health checks and maintenance
  • pg_pool_cluster — Read replica pool cluster with automatic query routing
  • pg_types — Type conversions (toPgParam, row accessors, arrays, ranges, composites, enums)
  • pg_protocol — Wire protocol encoding/decoding
  • pg_auth — MD5 and SCRAM-SHA-256 authentication
  • pg_largeobject — Large Object API for streaming binary data
  • pg_advisory_lock — Advisory lock API (session/transaction, exclusive/shared)
  • pg_replication — Logical replication streaming with pgoutput decoder
  • async_backend — Async framework abstraction (asyncdispatch / chronos)

Exports

OidUuidArray, getIntervalOpt, get, getIntervalOpt, writeParamOid, PgParam, sepBySpace, getTsMultirange, OidBool, ==, get, getPathArrayOpt, get, OidCircle, toPgBinaryParam, toPgTimestampTzArrayParam, getPointArray, getStr, getXmlArrayOpt, getUuidArrayOpt, ==, getInt64ArrayElemOptOpt, $, toPgParamInline, writeParamOid, toPgParam, SqlStateExclusionViolation, getTimestampArrayOpt, writeBytesAt, items, toPgMoneyArrayNDParam, toPgParam, get, emptyRange, writeBindParam, getPointOpt, getTimestampTzOpt, toPgParam, where, affectedRows, toPgTsTzMultirangeParam, $, getInt, ==, getTimeOpt, getInt4RangeOpt, getTsMultirangeArray, get, getBytesArrayOpt, <=, getPolygon, ==, PgQueryError, rangeFrom, get, toPgParam, getTime, ==, getStrArray, getMacAddr8Opt, getDateMultirangeArray, appendBytes, getTsVectorArrayOpt, ==, getMoneyOpt, toPgBinaryParam, getInt4Multirange, PgNullError, getXmlOpt, OidVarchar, toPgParam, fromBE64, getCircleArray, getHstoreArrayOpt, getCircle, SqlStateSyntaxError, get, pgArray, $, pgParseFloat, writeParamFormat, getDateOpt, toPgParam, getPointArray, pgArray, decimalSep, getNumericArray, pgParseInt32, getTimestampArray, OidTimestampTzArray, paramOidOf, toPgParamInline, getXmlArrayOpt, accountingParens, getTsQueryArrayOpt, OidXmlArray, OidMacAddr, toPgBinaryParam, toPgParamInline, getTsMultirangeOpt, getFloatOpt, pgParseFloat32, writeBE64, toPgParam, rangeOf, getMoney, isNull, parseTimeTzText, OidMoneyArray, $, checkPgMoneyConventions, OidInt8MultirangeArray, OidPolygonArray, toPgParamInline, OidName, getNumMultirange, get, <=, get, writeParamValue, isForeignKeyViolation, getLseg, OidRecord, toPgParam, isZero, getInterval, writeParamFormat, toPgBinaryParam, expectedElemCount, isExclusionViolation, OidTsMultirangeArray, pgEnum, isBinaryCol, get, getJsonArrayOpt, getTimestampArrayOpt, get, toPgBinaryParam, toPgBinaryParam, ==, getTimestampTzOpt, getNumericArray, getInt16, $, getBoolOpt, [], get, toPgBinaryParam, toPgParam, toPgBinaryParam, errorField, toPgParam, get, toPgParam, $, getMoneyArrayND, getTsVectorOpt, get, OidMoney, toPgParam, PgBox, toPgParam, toPgParam, getInt4MultirangeArrayOpt, getTsQueryArray, getBoxOpt, toPgBinaryParam, getJsonArray, getLineOpt, writeBindParam, getBytesOpt, PgMessageTooLargeError, getUuidArray, PgUuid, coerceBinaryParam, writeParamFormat, pgEpochDaysOffset, getBox, toBE16, getFloat, getJson, getFloatArrayElemOptOpt, toPgParam, toPgParam, getBoolArrayOpt, writeParamValue, getMoney, getTsVectorArray, getFloatArray, get, toPgParam, getMoneyArrayNDOpt, toPgTsTzMultirangeArrayParam, getStrArrayElemOpt, $, PgConnectionError, $, PgTsVector, OidInt8, OidInet, OidJson, getCircleOpt, getInt, nameAccessor, toPgParam, ==, toPgDateMultirangeParam, toPgBinaryParam, getMoneyArray, ==, getInt8RangeArrayOpt, getBoxOpt, getBoolArrayOpt, toPgTsMultirangeArrayParam, getInt64ArrayElemOpt, toPgBinaryTsTzMultirangeParam, symbol, getTsMultirangeArray, getNumericOpt, getBitArrayOpt, columnIndex, writeParamValue, toBE64, get, get, getTsVector, OidInt2Array, toPgBinaryDateMultirangeArrayParam, getTimeTzOpt, getNumRange, getMacAddrOpt, getBytesArrayOpt, toPgParam, writeParamOid, schemaName, get, $, pgParseHexInt, OidCidrArray, getInt64Array, writeParamValue, writeBE16, getTimeOpt, getPolygon, OidInt2, ==, PgStateError, $, toPgBinaryParam, getTsTzMultirangeArrayOpt, getInt4Range, PgNumericSign, get, getTimeTz, constraintName, getTsRange, getInt4RangeArray, getPathOpt, ResultFormat, toPgParam, toPgParam, toPgParam, getNumRangeArrayOpt, toPgParam, getInt4MultirangeArrayOpt, toPgBinaryParam, getTsQuery, getFloat, getPathArray, toMultirange, OidNumRangeArray, ==, len, getTsRangeArray, getFloatOpt, get, toPgParam, getTimestampOpt, get, getTimeArray, PgParamInline, toPgBinaryParam, ==, toPgParam, getMacAddr8Opt, PgMacAddr8, getStrArray, parsePgBoolText, getMoneyArrayNDOpt, toPgBinaryParam, getTimestamp, getXml, ==, getInt8MultirangeArrayOpt, get, toPgBinaryParam, getTsMultirangeArrayOpt, ==, getTimeTzArrayOpt, getNumMultirangeOpt, OidCidr, writeParamOid, getNumRangeArray, getTsQueryOpt, getTsTzMultirangeOpt, ==, getBitArray, writeParamValue, toPgBinaryParam, get, hash, tableName, getXmlArray, getInt64ArrayElemOpt, getMoneyArrayND, getInt8MultirangeArray, OidInt4RangeArray, encodeBinaryArray, toBE32, toPgRangeParam, getUuid, toPgParam, OidPoint, OidIntervalArray, getBoolArray, getEnumArrayElemOpt, toPgDateRangeParam, toPgParamInline, get, parseMultirangeText, getTsVectorArray, getLineArray, isSerializationFailure, getStrArrayOpt, get, toPgParam, getBoxArrayOpt, PgTypeError, OidText, getJsonOpt, getIntArray, get, getTsTzRangeArrayOpt, get, OidDateArray, PgLseg, get, get, getDateArrayOpt, writeParamOid, fromPgText, getBool, getTsMultirangeOpt, toPgParam, getFloat32ArrayElemOpt, getHstoreArrayOpt, getInetOpt, parsePgMoney, getCircle, toPgParam, getCircleArrayOpt, getMacAddrArray, getDateMultirangeArray, getInt64, get, toPgBinaryParam, getIntOpt, isUniqueViolation, parseTimeText, toPgBinaryParam, parsePgNumeric, PgRangeBound, getTsRange, ==, getUuidOpt, PgArray, $, getBitArray, toPgBinaryParam, getHstoreOpt, $, ndim, toPgParam, getBytesArray, get, OidInt8RangeArray, PoolErrorKind, get, getDateRangeArray, isIntegrityConstraintViolation, writeParamFormat, get, getHstore, $, writeParamValue, getArrayNDOpt, getDateOpt, toPgBinaryParam, get, <, getFloat32ArrayElemOptOpt, OidBoolArray, isDeadlockDetected, toPgBinaryDateMultirangeParam, OidNumericArray, getTimeTz, OidMacAddr8Array, getNumMultirangeArray, getInt8MultirangeOpt, getTsVectorOpt, validatePgArrayShape, getStrArrayElemOptOpt, toPgBinaryParam, getIntervalArray, OidBox, $, getMoneyArrayND, toPgParam, getTsRangeArray, encodeBinaryComposite, toPgTimestampArrayParam, getEnumArray, get, toPgParam, getLine, PgMultirange, PgError, getTimestampArray, getEnum, encodeBinaryArray, toPgParam, getMoneyArray, getDomainOpt, getDateMultirangeArrayOpt, paramOidOf, getTimeTzArray, OidTsRangeArray, getCompositeOpt, toPgParam, toPgParam, writeParamFormat, getFloatArrayElemOpt, OidDateMultirange, toPgParam, columnMap, toPgParam, PgLine, OidFloat8, getDateRangeOpt, getBoolArray, PgTimeoutError, getPolygonOpt, $, get, getPathArrayOpt, get, getInt8MultirangeArrayOpt, toPgParamInline, amount, getBoolOpt, get, getPointOpt, toPgParam, encodeHstoreText, getTime, ==, toPgBinaryParam, checkMoneyScale, getDateMultirange, toPgParam, getFloat32Array, pgTypeErrorOnValueError, toPgBinaryTsTzMultirangeArrayParam, toPgParamInline, getUuidArrayOpt, getInt16ArrayElemOptOpt, get, $, toPgParam, dataTypeName, getMoneyOpt, toPgBinaryParam, getInt16Array, get, RelOff, OidJsonbArray, getTsQuery, pgParseBiggestInt, getIntArrayElemOptOpt, getUuid, getXmlOpt, getPolygonArrayOpt, internalPosition, getInt16Opt, PgListenError, getBytes, getMacAddr8ArrayOpt, toPgBinaryParam, getLineArray, toPgParam, getTsVector, toPgBinaryTimestampTzParam, PgTimeTz, get, toPgParam, $, getTimestampOpt, getTsTzRangeArray, get, getTimeTzArrayOpt, toPgBinaryDateRangeParam, isNull, getInt4RangeArray, PgMacAddr, toPgParam, OidBitArray, toPgParamInline, getIntArrayElemOptOpt, getStrArrayOpt, getTimeArrayOpt, getInt4MultirangeOpt, toPgDateMultirangeArrayParam, getNumMultirangeOpt, getBool, getTsTzRangeArrayOpt, getTsRangeOpt, getInt64, foldBindParam, getInt16ArrayElemOpt, +, OidPolygon, getTsTzMultirangeOpt, $, toRow, initPgMoneyConventions, getStrArrayElemOptOpt, toPgParam, get, getJsonOpt, getInt4MultirangeOpt, OidNumRange, getPolygonOpt, groupDigits, OidFloat4Array, isNotNullViolation, get, getInet, toPgParam, getPolygonArrayOpt, getMacAddr8ArrayOpt, OidVarbit, parseRangeText, toPgParamInline, getDateMultirangeArrayOpt, getCircleArray, getMacAddr8Array, pgParseInt16, get, getBoolArrayElemOpt, rangeUbInf, cmp, OidJsonb, OidTimeTz, getMoneyArrayOpt, getMoneyArrayOpt, get, PgArrayMaxDim, getInt8Multirange, hash, OidNumMultirange, toPgBinaryParam, get, OidTimeTzArray, getTimeArrayOpt, SqlStateUniqueViolation, getMacAddr, getInt8Multirange, getDate, getDateRangeArrayOpt, hash, writeParamValue, $, toPgParam, get, getLseg, PgNoRowsError, writeParamOid, SqlStateSerializationFailure, toPgBinaryParam, getTsTzRangeOpt, writeParamOid, SqlStateDeadlockDetected, pgArray, toPgMoneyArrayParam, toPgBinaryParam, OidTsTzRangeArray, getBitOpt, paramOidOf, writeParamValue, getInt16ArrayElemOpt, getPathOpt, inferPgMoneyConventions, get, parsePointText, getTimestampTzArray, getFloat32, get, getDateRange, getStrOpt, isEmpty, toPgParam, getMoneyArrayOpt, getFloat32ArrayElemOpt, getIntArrayOpt, data, toPgBinaryParam, getLineOpt, OidInt4, getInt8Range, OidDateMultirangeArray, getInetOpt, OidBpchar, getNumeric, toPgBinaryParam, getFloat32Opt, getNumericArrayOpt, getMacAddrArrayOpt, parsePgMoney, OidTsQuery, getDateArray, getPath, writeParamValue, getInt64Array, toPgParam, getTsTzMultirangeArray, PgNumeric, OidLsegArray, get, getTimestampTzArrayOpt, getNumRangeArray, OidInt4Multirange, getMoneyOpt, OidNumeric, getMoney, get, toPgBinaryParam, getCircleArrayOpt, getJson, OidLine, OidInt4Array, getLsegArrayOpt, toPgParam, get, toPgBinaryParam, OidTimeArray, get, getJsonArrayOpt, getLineArrayOpt, PgCircle, toPgParam, get, get, getXml, toPgBinaryParam, getFloatArrayOpt, getIntOpt, getDateArrayOpt, toPgBinaryParam, scale, toPgParam, toPgBinaryParam, getInt4RangeArrayOpt, writeParamOid, toPgBinaryParam, getEnumArrayOpt, OidPointArray, toPgBinaryParam, OidInt4Range, OidByteaArray, getFloatArrayElemOptOpt, getInetArray, getCidrArray, paramOidOf, toPgDateArrayParam, getArrayND, getTsTzMultirange, OidPathArray, getIntArrayElemOpt, getTsQueryArray, toPgParam, ==, writeParamOid, $, toPgParam, decodeFloat32BE, toString, getUuidOpt, thousandsSep, pgArray, pgArray, getBit, [], PgXml, getInt4Range, getBoolArrayElemOptOpt, get, PgInet, initPgBit, get, getHstoreOpt, OidFloat4, toPgBinaryParam, ErrorField, decodeFloat64BE, $, writeBE32, toPgParam, writeParamFormat, getUuidArray, getBitOpt, toPgParam, toPgTimestampTzParam, toPgBinaryParam, toPgParam, MaxMoneyScale, getInt8RangeArrayOpt, getLsegArray, get, pgComposite, PgPath, $, get, toPgBinaryTsTzRangeParam, OidPath, toPgBinaryParam, getPathArray, get, toPgParam, OidNumMultirangeArray, getTsVectorArrayOpt, getTsMultirangeArrayOpt, OidTsTzMultirange, getBoolArrayElemOptOpt, readBytes, writeParamValue, getXmlArray, toPgParam, SqlStateCheckViolation, get, toBytes, getLsegArray, toPgParam, parseInetText, toPgBinaryParam, toPgBinaryParam, getFloat32, $, get, get, internalQuery, OidTsVector, getDate, OidBit, $, PgTsQuery, get, getMacAddr, getInterval, SqlStateForeignKeyViolation, getFloatArrayElemOpt, getMacAddr8Array, get, toPgParamInline, toPgParam, getDateMultirange, ==, getDomain, getErrorField, OidLineArray, toPgBinaryParam, getInt4RangeArrayOpt, OidInt4MultirangeArray, fromBE32, parseTextArray, OidInterval, nbits, getInt8RangeArray, getIntArray, getTsTzRangeOpt, OidTsTzRange, getBytesArray, contains, toPgParam, toPgBinaryParam, OidBytea, getIntervalArrayOpt, optAccessor, getIntArrayOpt, getInt16ArrayOpt, getMacAddrArrayOpt, getDateArray, getCidrArrayOpt, getFloat32Opt, toPgBinaryTsTzRangeArrayParam, getDateMultirangeOpt, toPgBinaryParam, OidMacAddr8, getInt16ArrayOpt, getBytesOpt, OidXml, getNumRangeOpt, getBoxArray, paramOidOf, getNumRangeOpt, parseBitString, toPgParam, parseCompositeText, toPgBinaryParam, getInt8MultirangeArray, getTsQueryOpt, getMacAddrArray, OidTsQueryArray, getNumeric, rangeUbInc, toPgMultirangeParam, toPgBinaryParam, SqlStateUndefinedTable, ProtocolError, columnIndex, pgDomain, pgParams, writeParamFormat, OidUuid, toPgDateRangeArrayParam, getTsMultirange, OidTextArray, fracDigits, getNumericArrayOpt, getIntervalArrayOpt, getLsegOpt, getMacAddr8, <, getTsRangeOpt, getHstoreArray, getLsegOpt, toPgParamInline, toPgParam, OidTimestamp, toPgParam, getMacAddr8, parseIntervalText, toPgParam, getPointArrayOpt, get, getFloatArrayOpt, rangeTo, getNumMultirangeArrayOpt, OidTime, getInt64ArrayElemOptOpt, getIntArrayElemOpt, OidDateRangeArray, PgMoneyConventions, PgBit, getCidrArrayOpt, toPgParam, toPgParam, rangeContainEmpty, get, getLsegArrayOpt, PgInterval, toPgTsTzRangeParam, getDateRangeArrayOpt, getPolygonArray, getComposite, addParseDirect, toPgParamInline, isQueryCanceled, get, getFloat32ArrayOpt, toPgParam, toPgParam, getNumMultirangeArray, get, getMoneyArrayNDOpt, getCidr, rangeLbInf, getInt64Opt, getStrOpt, getDateRange, getStrArrayElemOpt, getFloat32ArrayElemOptOpt, getBox, toPgParam, getInt4RangeOpt, encodeCompositeText, $, toPgBinaryParam, getMoneyOpt, getInt4Multirange, toPgParam, get, getDateMultirangeOpt, OidMacAddrArray, OidTsMultirange, CommandResult, paramOidOf, getNumericOpt, getIntervalArray, toPgParam, getTimestamp, validate, PgBitMaxBits, getNumMultirange, get, getTsTzMultirange, getInt64Opt, writeParamFormat, PgNotifyOverflowError, $, toPgBinaryParam, getMoneyArrayND, newPoolError, OidInt8Range, writeParamFormat, getHstoreArray, getInt16Opt, getMoney, toPgParam, getTsTzRangeArray, OidBoxArray, parsePointsText, toPgBinaryParam, getCircleOpt, SqlStateQueryCanceled, get, getTimeTzOpt, getTsTzMultirangeArrayOpt, get, OidDate, getNumRangeArrayOpt, get, ==, get, toPgParam, getJsonArray, parseDateText, toPgBinaryParam, ==, getNumMultirangeArrayOpt, OidCircleArray, getBoxArrayOpt, writeParamOid, getTsTzRange, get, initCommandResult, unboundedRange, getLine, get, get, toPgParam, getLineArrayOpt, len, toPgParam, fromBE16, toPgBinaryParam, toPgBinaryDateRangeArrayParam, encodeEnumTextArray, getDateRangeArray, getHstore, OidInt8Array, OidTsVectorArray, columnName, pgParseInt, get, SqlStateNotNullViolation, getInt8RangeOpt, getMoneyArray, position, toPgParam, toPgParam, getTsRangeArrayOpt, toPgByteaArrayParam, getBoxArray, formatPgMoney, ==, getFloat32Array, getInt16ArrayElemOptOpt, PgInlineBufSize, getInt16Array, toPgBinaryDateParam, getBytes, rangeLbInc, get, symbolBefore, getInt8RangeOpt, getTimestampTzArray, foldBindParam, toPgParam, OidTsTzMultirangeArray, get, OidInetArray, toPgParam, getTimeArray, getMoneyArrayOpt, get, toPgBinaryParam, getPointArrayOpt, getEnumOpt, isCheckViolation, PgMoney, paramOidOf, getStr, PgTime, getBoolArrayElemOpt, parseHstoreText, getPath, get, PgConfigError, PgHstore, getInt16, OidTimestampTz, toPgDateParam, toPgParam, pgEnum, toPgBinaryParam, getPolygonArray, readString, getMacAddrOpt, getBit, getTsQueryArrayOpt, PgPoolError, getMoneyArray, PgPolygon, getBitArrayOpt, toPgParam, OidDateRange, get, toPgBinaryParam, get, getFloatArray, toPgParamInline, ==, getInt8MultirangeOpt, OidLseg, getInet, getInt8RangeArray, toPgParam, PgPoint, OidChar, paramOidOf, PgCidr, getInt8Range, getTimeTzArray, parseTimestampText, getFloat32ArrayOpt, getPoint, toPgParam, PgRange, getTimestampTz, toPgParam, getInt64ArrayOpt, get, toPgParam, getTimestampTzArrayOpt, pgEpochUnix, get, addBindDirect, PgListenStoppedError, pgEnum, writeParamFormat, getTsTzRange, toPgBinaryParam, ==, OidTsRange, toPgParam, getInetArray, rangeEmpty, initPgMoney, OidInt8Multirange, getTsTzMultirangeArray, OidVarbitArray, toPgParam, formatPgMoney, getNumRange, get, paramOidOf, OidVarcharArray, PgProtocolError, getMoneyArrayNDOpt, getInetArrayOpt, OidTimestampArray, toPgParam, getCidr, getTsRangeArrayOpt, getCidrOpt, getInt64ArrayOpt, getPoint, getTimestampTz, OidFloat8Array, getInt4MultirangeArray, getCidrArray, getInt4MultirangeArray, getDateRangeOpt, paramOidOf, getInetArrayOpt, toPgParam, getCidrOpt, toPgTsTzRangeArrayParam, CopyInCallback, TracePoolReleaseEndData, getHosts, CopyInInfo, SqlStateUniqueViolation, TraceCopyStartData, AuthMethod, sslEnabled, ping, HostEntry, simpleExec, SqlStateSerializationFailure, ChannelBindingMode, quoteLiteral, tableName, SqlStateExclusionViolation, cancelNoWait, stmtCacheCapacity, TraceQueryEndData, PgConnState, where, TransportCloseStage, waitNotification, pid, ConnConfig, isSerializationFailure, parseDsn, PgTypeError, schemaName, QueryResult, listenError, PgNoRowsError, onReconnect, PgNullError, host, SqlStateDeadlockDetected, CopyOutInfo, SqlStateSyntaxError, makeCopyOutCallback, columnIndex, PgNotifyOverflowError, listen, newPoolError, TracePoolAcquireStartData, PgConnection, PoolErrorKind, TraceConnectStartData, txStatus, connect, SqlStateQueryCanceled, isNotNullViolation, CopyOutCallback, TracePoolReleaseStartData, TargetSessionAttrs, isConnected, initConnConfig, dialAddr, TraceContext, displayHost, TracePoolCloseErrorData, onNotifyOverflow, TraceLeakedSessionLocksData, isDeadlockDetected, socketHasFin, CopyResult, checkSessionAttrs, Notice, TracePrepareEndData, onListenError, Notification, onNotify, PgTracer, serverParams, onNotice, connect, RowCallback, columnName, TraceConnectEndData, ListenErrorCallback, socketHasPendingData, ReconnectCallback, ErrorField, cancel, PgError, position, CleanupSkipReason, quoteIdentifier, ClientCertPairingErrorMsg, SqlStateForeignKeyViolation, simpleQuery, withConnTracing, errorField, isForeignKeyViolation, TracePrepareStartData, state, PgMessageTooLargeError, TraceInsecureAuthData, TraceQueryStartData, PgTimeoutError, stmtCacheCapacity=, invalidateOnTimeout, isCheckViolation, isExclusionViolation, SqlStateCheckViolation, isIntegrityConstraintViolation, TracePoolAcquireEndData, PgConfigError, PgConnectionError, PgProtocolError, unlisten, PgPoolOwner, dataTypeName, isUnixSocket, PgPoolError, SslMode, LoadBalanceHosts, TracePipelineEndData, internalPosition, PgListenError, CleanupKind, getErrorField, listenReconnectMaxAttempts=, config, isQueryCanceled, TraceTransportCloseErrorData, serverParam, TraceAdvisoryUnlockFailedData, PgStateError, makeCopyInCallback, notifyMaxQueue=, lookupTypeOids, TraceCopyDirection, TraceDeprecatedAuthData, SqlStateNotNullViolation, withTracing, close, SslNegotiation, stopListening, TraceCopyEndData, PgQueryError, PgListenStoppedError, unixSocketPath, TracePipelineStartData, connectToHost, NotifyOverflowCallback, NotifyCallback, constraintName, listenReconnectMaxBackoff=, TraceCleanupSkippedData, isUniqueViolation, items, notifyMaxQueue, TracePoolDoubleReleaseData, port, listenReconnectMaxBackoff, CachedStmt, len, NoticeCallback, rows, SqlStateUndefinedTable, ProtocolError, createdAt, notifyDropped, internalQuery, listenReconnectMaxAttempts, TypeOidInfo, orderedHosts, withSavepointDeadline, Pipeline, paramOids, queryValueOrDefault, queryValue, copyIn, exec, queryEach, Cursor, addQuery, columnIndex, query, name, queryInTransaction, queryRow, PreparedStatement, isRetryableTxError, addExec, addQuery, newPipeline, copyIn, AccessMode, close, conn, queryValueOrDefault, execInTransaction, withTransactionRetry, rollbackGrace, copyInStream, copyIn, DeferrableMode, copyIn, execute, withSavepoint, reset, queryColumn, exec, close, execInTransaction, RetryOptions, PipelineResult, prepare, queryValueOpt, withTransaction, columnIndex, withTransactionRetryDeadline, backoffDelayMs, notify, queryValueOpt, IsolatedPipelineResults, withTransactionDeadline, executeIsolated, sql, queryValueOrDefault, query, execDirect, TransactionOptions, queryDirect, fields, queryValue, copyOutStream, PipelineResultKind, buildBeginSql, queryInTransaction, queryRowOpt, execute, copyOut, queryExists, IsolationLevel, openCursor, addExec, withCursor, fetchNext, withPipeline, PgPoolCluster, newPoolCluster, writeConnection, replicaFallback, primaryPool, withTransactionRetryDeadline, withWriteConnection, withTransactionDeadline, ReadFallbackCallback, onReadFallback, close, ReadFallbackReason, withTransactionRetry, fallbackTimeout, replicaPool, ReplicaFallback, withTransaction, withReadConnection, isClosed, readConnection, INV_WRITE, SEEK_END, SEEK_SET, oid, makeLoWriteCallback, loTell, loReadStreamDeadline, loWriteStreamDeadline, loReadStream, loWriteAll, loDefaultChunkSize, loImport, withLargeObject, makeLoReadCallback, loReadAllDeadline, loWriteAllDeadline, loWrite, loTruncate, Oid, LoReadCallback, loSize, INV_READ, conn, SEEK_CUR, LoWriteCallback, fd, loClose, loWriteStream, loSeek, loCreate, loRead, loUnlink, loSizeDeadline, INV_READWRITE, loExport, loOpen, loReadAll, LargeObject, withAdvisoryLockShared, withAdvisoryLockShared, withAdvisoryLock, advisoryTryLock, withAdvisoryLockXactShared, withAdvisoryLockXactShared, withAdvisoryLockXact, withAdvisoryLockXact, advisoryTryLockXact, advisoryLockXact, advisoryUnlockShared, withAdvisoryLockXact, advisoryLock, advisoryLock, withAdvisoryLockShared, withAdvisoryLockXact, advisoryLockShared, advisoryTryLockXact, withAdvisoryLockShared, advisoryUnlock, advisoryLockXact, advisoryTryLockShared, advisoryUnlockShared, advisoryUnlock, advisoryTryLockXactShared, withAdvisoryLock, advisoryTryLock, advisoryTryLockXactShared, advisoryLockXactShared, withAdvisoryLock, withAdvisoryLockXactShared, advisoryLockShared, advisoryUnlockAll, withAdvisoryLockXactShared, withAdvisoryLock, advisoryLockXactShared, advisoryTryLockShared, queryExists, queryEach, queryValueOpt, queryInTransaction, queryValueOrDefault, queryValue, exec, queryEach, queryValueOrDefault, exec, queryInTransaction, sql, query, queryValue, queryInTransaction, queryRow, execInTransaction, queryValueOrDefault, queryValueOrDefault, addExec, query, queryValueOpt, execInTransaction, queryRowOpt, queryValueOpt, queryValueOpt, queryValueOrDefault, queryValue, queryColumn, queryValueOrDefault, SqlQuery, queryValue, addQuery, queryRowOpt, queryExists, queryRow, sqlParams, queryColumn, execInTransaction, sendCopyData, decodePgOutput, ReplicationMessage, PgOutputMessageKind, DeleteMessage, toUInt64, ReplicationSlotInfo, readReplicationSlot, ==, dropReplicationSlot, confirmFlushed, TruncateMessage, currentPgTimestamp, timelineHistory, RelationCache, <, $, CommitMessage, parseTimelineId, <=, RelationColumn, TimelineHistory, TupleField, parseReplicationMessage, receivedEndLsn, InvalidLsn, SystemInfo, LogicalMessage, ReplicationMode, TypeMessage, toString, BeginMessage, identifySystem, PgOutputMessage, OriginMessage, toInt64, hasOldTuple, confirmedFlushLsn, UpdateMessage, PrimaryKeepalive, Lsn, createReplicationSlot, TupleDataKind, sendStandbyStatus, parsePgOutputMessage, parseLsn, XLogData, ReplicationMessageKind, makeReplicationCallback, InsertMessage, startReplication, connectReplication, stopReplication, startPhysicalReplication, ReplicationCallback, connectReplication, RelationInfo, md5AuthHash, scramVerifyServerFinal, scramClientFirstMessage, computeTlsServerEndpoint, DefaultMaxScramIterations, oidRsaPss, scramClientFinalMessage, ScramState, burnStr, scramEscapeUsername, PoolConfig, PoolMetrics, PooledConnHandle, PgPool, initPoolConfig, idleCount, activeCount, size, isClosed, metrics, resetSession, newPool, release, release, resetSessionAndRelease, acquire, acquireHandle, runAndRelease, withConnection, exec, exec, query, query, queryEach, queryRow, queryRowOpt, queryValue, queryValue, queryValueOpt, queryValueOpt, queryValueOrDefault, queryValueOrDefault, queryValueOrDefault, queryExists, queryColumn, simpleQuery, simpleExec, execInTransaction, execInTransaction, queryInTransaction, queryInTransaction, notify, withTransaction, withTransactionRetry, withTransactionDeadline, withTransactionRetryDeadline, withPipeline, close, makeAsyncSinkByteCallback, milliseconds, <=, cancelAndWait, <, wait, hours, <=, declareAsyncCallback, sleepMsAsync, -, ZeroDuration, hasTls, Moment, ==, toMilliseconds, Duration, scheduleSoon, seconds, hasChronos, unregisterFdReader, +, $, nanoseconds, -, makeAsyncSeqByteCallback, +, minutes, sleepAsync, now, AsyncTimeoutError, remainingDeadlineDuration, allFutures, -, <, completed, cancelTimer, registerFdReader, CancelledError, hasAsyncDispatch, nanoseconds, asyncSpawn, FrontendMessageKind, BackendMessageKind, DescribeKind, TransactionStatus, FieldDescription, CopyFormat, BackendMessage, ParseState, ParseResult, RowData, Row, syncMsg, flushMsg, copyDoneMsg, BinarySafeOids, maxInt16Count, maxInt32Len, DefaultMaxBackendMessageLen, MaxNegotiateProtocolOptions, MaxErrorOrNoticeFields, MaxSaslMechanisms, MaxServerParams, MaxServerParamsBytes, initRow, data, rowIdx, isBinarySafeOid, addInt16, addInt32, addCount16, addLen32, addCString, patchMsgLen, patchMsgLenAtomic, preflightParseDirect, preflightBindDirect, encodeStartup, encodeSSLRequest, encodePassword, encodeSASLInitialResponse, encodeSASLResponse, encodeQuery, addParse, addBind, addBindRaw, addDescribe, addExecute, addClose, addSync, addFlush, addCopyDone, encodeParse, encodeBind, encodeDescribe, encodeExecute, encodeClose, encodeSync, encodeFlush, encodeTerminate, encodeCancelRequest, encodeCopyData, encodeCopyDone, encodeCopyFail, newRowData, reuseRowData, reuseRowData, clone, buildResultFormats, parseDataRowInto, parseBackendMessage, formatError, addCopyBinaryHeader, addCopyBinaryTrailer, addCopyTupleStart, addCopyFieldNull, addCopyFieldInt16, addCopyFieldInt32, addCopyFieldInt64, addCopyFieldFloat64, addCopyFieldFloat32, addCopyFieldBool, addCopyFieldText, addCopyFieldString, encodeStandbyStatusUpdate