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
| Situation | Prefer |
|---|---|
| Literal SQL, readability | sql"..." macro |
| Dynamic SQL or params | query(sql, params) / exec |
| Hot path, scalar params | queryDirect / execDirect |
| SET / multi-statement | simpleQuery / 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 and simpleExec; on timeout the connection is marked closed because the wire protocol desynchronises. queryDirect/execDirect and simpleQuery currently do not accept a timeout.
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)
Imports
-
async_postgres/async_backend, async_postgres/pg_protocol, async_postgres/pg_auth, async_postgres/pg_types, async_postgres/pg_connection, async_postgres/pg_client, async_postgres/pg_pool, async_postgres/pg_pool_cluster, async_postgres/pg_largeobject, async_postgres/pg_advisory_lock, async_postgres/pg_sql, async_postgres/pg_replication
Exports
-
milliseconds, <=, >=, cancelAndWait, <, >, wait, hours, >=, <=, sleepMsAsync, -, ZeroDuration, Moment, ==, toMilliseconds, Duration, scheduleSoon, seconds, hasChronos, unregisterFdReader, +, $, nanoseconds, -, +, minutes, sleepAsync, now, AsyncTimeoutError, allFutures, -, <, completed, >, cancelTimer, registerFdReader, CancelledError, hasAsyncDispatch, nanoseconds, asyncSpawn, PgTimeoutError, ErrorField, initRow, addCString, PgError, RowData, addBindRaw, encodeParse, addInt16, TransactionStatus, FrontendMessageKind, isBinarySafeOid, addSync, flushMsg, encodeClose, addCopyFieldNull, ParseResult, addCopyFieldInt64, pgCopyBinaryTrailer, encodeQuery, encodeTerminate, addCopyFieldText, encodePassword, decodeInt64, decodeInt32, DescribeKind, encodeDescribe, PgConnectionError, encodeCopyDone, encodeSASLResponse, data, PgQueryError, encodeStartup, decodeInt16, newRowData, buildResultFormats, PgPoolError, copyDoneMsg, addParse, PgNoRowsError, encodeSSLRequest, encodeStandbyStatusUpdate, PgNullError, BackendMessageKind, clone, getErrorField, addClose, DefaultMaxBackendMessageLen, patchMsgLen, encodeCancelRequest, addCopyFieldInt16, syncMsg, formatError, addFlush, Row, addCopyFieldFloat64, reuseRowData, ParseState, encodeBind, PgNotifyOverflowError, BackendMessage, addCopyFieldFloat32, addCopyDone, ProtocolError, addCopyBinaryTrailer, parseBackendMessage, encodeCopyFail, BinarySafeOids, addBind, rowIdx, addCopyTupleStart, addInt32, encodeCopyData, PgTypeError, FieldDescription, addDescribe, encodeInt32, patchLen, encodeFlush, addExecute, CopyFormat, decodeCString, addCopyBinaryHeader, addCopyFieldString, reuseRowData, addCopyFieldBool, parseDataRowInto, encodeSASLInitialResponse, pgCopyBinaryHeader, addInt64, encodeInt16, encodeSync, addCopyFieldInt32, encodeExecute, buildResultFormats, md5AuthHash, scramVerifyServerFinal, scramClientFirstMessage, scramClientFirstMessage, scramClientFinalMessage, computeTlsServerEndpoint, ScramState, burnStr, scramEscapeUsername, toPgByteaArrayParam, OidUuidArray, get, getIntervalOpt, writeParamOid, PgParam, getTimestampTzOpt, getFloatOpt, OidBool, ==, getDate, getPathArrayOpt, get, OidCircle, toPgBinaryParam, toPgTimestampTzArrayParam, getPointArray, getInt4RangeArray, getXmlArrayOpt, getUuidArrayOpt, getFloatArrayElemOptOpt, $, toPgParamInline, writeParamOid, toPgParam, getTimestampArrayOpt, writeBytesAt, getBoolOpt, $, OidCidrArray, toPgParam, get, emptyRange, getInt64Array, getPointOpt, getTsMultirange, toPgParam, get, affectedRows, getNumericOpt, getInt, ResultFormat, getTimeOpt, getInt4RangeOpt, getTsMultirangeArray, get, getBytesArrayOpt, <=, getPolygon, ==, PgQueryError, getTimeTz, toPgParam, getTime, parseAffectedRowsRaw, ==, getStrArray, getTsTzRange, getNumRangeOpt, appendBytes, getTsVectorArrayOpt, ==, toPgBinaryParam, getInt4Multirange, PgNullError, getXmlOpt, OidVarchar, toPgParam, fromBE64, getCircleArray, decodeDateRangeBinary, getHstoreArrayOpt, getCircle, <, $, getTsMultirangeArrayOpt, OidInt8, getDateOpt, toPgTsTzMultirangeParam, getPointArray, getInt8MultirangeOpt, toPgBinaryParam, get, PgMultirange, getTimestampArray, OidTimestampTzArray, getBox, encodeNumericBinary, getXmlArrayOpt, $, OidXmlArray, OidMacAddr, toPgBinaryParam, toPgParamInline, getTsMultirangeOpt, getNumericOpt, writeBE64, toPgParam, getTimestamp, isNull, parseTimeTzText, OidMoneyArray, $, OidInt8MultirangeArray, get, toPgParamInline, OidFloat4Array, get, writeParamOid, get, decodePointBinary, $, getLseg, OidRecord, toPgParam, isZero, getTsRange, getInterval, toPgBinaryParam, getBoxOpt, OidTsMultirangeArray, getTimestampTzArrayOpt, isBinaryCol, getStrOpt, getJsonArrayOpt, getTimestampArrayOpt, toMultirange, toPgBinaryParam, toPgBinaryParam, ==, getTimestampTzOpt, getInt16, $, OidFloat4, get, rangeFrom, toPgBinaryParam, toPgParam, writeParamFormat, PgPath, getStrArrayOpt, OidJsonbArray, toPgParam, $, getTsVectorOpt, get, getMacAddr8Opt, toPgParam, getXml, getInt16Opt, toPgParam, getInt4MultirangeArrayOpt, getTsQueryArray, getBoxOpt, toPgBinaryParam, getJsonArray, getLineOpt, getCidrArrayOpt, getBytesOpt, getUuidArray, PgUuid, coerceBinaryParam, writeParamFormat, pgEpochDaysOffset, toBE16, getFloat, getJson, toPgParam, toPgParam, getBoolArrayOpt, get, toPgParam, getTsVectorArray, getFloatArray, get, toPgParam, toPgTsTzMultirangeArrayParam, getStrArrayElemOpt, getTsQueryArrayOpt, PgConnectionError, $, PgTsVector, toPgBinaryParam, OidInet, OidJson, getInt, nameAccessor, decodeTsRangeBinary, ==, toPgDateMultirangeParam, toPgBinaryParam, getMoneyArray, getUuid, getInt8RangeArrayOpt, getInt64ArrayElemOpt, getBoolArrayOpt, toPgTsMultirangeArrayParam, getTsTzMultirangeOpt, getInt64ArrayElemOptOpt, getTsMultirangeArray, getBitArrayOpt, writeParamValue, OidPolygonArray, toPgParam, get, get, OidInt2Array, getMacAddr8Opt, getTimeTzOpt, getNumRange, getMacAddrOpt, getBytesArrayOpt, toPgParam, <=, $, getStr, $, toPgBinaryDateRangeArrayParam, decodeBinaryArray, getInt64Array, get, writeBE16, getTimeOpt, getPolygon, OidInt2, ==, $, toPgBinaryParam, getTsTzMultirangeArrayOpt, PgNumericSign, get, get, getTsRange, getInet, getPathOpt, ==, toPgParam, toPgParam, getTimeArray, getNumRangeArrayOpt, toPgParam, getInt4MultirangeArrayOpt, toPgBinaryParam, getFloat, getPathArray, get, OidNumRangeArray, ==, len, getTsTzMultirangeArray, getStr, getXml, getTimestampOpt, get, toPgParam, PgParamInline, toPgBinaryParam, ==, toPgParam, PgMacAddr8, getStrArray, hash, getInt4MultirangeArray, toPgBinaryParam, getTsTzRangeArray, toPgDateRangeParam, ==, get, toPgBinaryParam, getFloatArrayElemOptOpt, getTimeTzArrayOpt, getNumMultirangeOpt, OidCidr, writeParamOid, getDateRange, ==, get, toPgBinaryParam, get, get, getXmlArray, getInt64ArrayElemOpt, OidInt4RangeArray, fromBE32, toBE32, toPgRangeParam, ==, toPgParam, OidPoint, OidIntervalArray, getBoolArray, OidBitArray, toPgParam, toPgParamInline, get, parseMultirangeText, getTsVectorArray, getLineArray, getTsVector, decodeBinaryComposite, get, toPgParam, getBoxArrayOpt, PgTypeError, OidText, getJsonOpt, getIntArray, get, getTsTzRangeArrayOpt, get, OidDateArray, PgLseg, cellInfo, get, get, getDateArrayOpt, writeParamOid, fromPgText, getBool, getTsMultirangeOpt, getMacAddr8Array, getFloat32ArrayElemOpt, getHstoreArrayOpt, getInetOpt, parsePgMoney, getCircle, getMacAddr8Array, getCircleArrayOpt, getMacAddrArray, getInt64, get, writeParamFormat, getIntOpt, toPgParam, parseTimeText, toPgBinaryParam, parsePgNumeric, PgRangeBound, ==, getUuidOpt, $, getBitArray, toPgBinaryParam, OidPolygon, $, getInt16, getNumRangeOpt, writeParamValue, OidInt8RangeArray, getTsMultirangeArrayOpt, get, rangeUpperInc, getLsegArray, get, colTypeOid, getHstore, $, get, getDateOpt, toPgBinaryParam, get, <, OidTimestamp, OidBoolArray, OidNumericArray, decodeHstoreBinary, get, OidMacAddr8Array, getNumMultirangeArray, getTsVectorOpt, getStrArrayElemOptOpt, toPgBinaryParam, getIntervalArray, OidBox, getFloatOpt, toPgParam, get, toPgTimestampArrayParam, getEnumArray, get, toPgParam, getJsonOpt, getFloat32Array, PgError, getTimestampArray, getEnum, PgMacAddr, decodeBinaryTime, toPgParam, ==, getDateMultirangeArrayOpt, getBox, getTimeTzArray, toString, toPgParam, getTsQuery, writeParamFormat, getFloatArrayElemOpt, OidDateMultirange, toPgParam, columnMap, toPgParam, PgLine, OidFloat8, getDateRangeOpt, getBoolArray, PgTimeoutError, getPolygonOpt, $, get, getPathArrayOpt, get, getUuid, getTsVectorArrayOpt, getBoolOpt, get, getPointOpt, getInt4MultirangeArray, encodeHstoreText, getTime, ==, toPgBinaryParam, getDateMultirange, toPgParam, toPgParamInline, getInt8MultirangeArrayOpt, toPgParamInline, getUuidArrayOpt, getInt16ArrayElemOptOpt, get, getTsQueryArrayOpt, toPgParam, getMoneyOpt, toPgBinaryParam, getInt16Array, get, RelOff, get, toPgParam, getLineOpt, getIntArrayElemOptOpt, getInt8MultirangeArrayOpt, getXmlOpt, getPolygonArrayOpt, OidLineArray, getBytes, getMacAddr8ArrayOpt, getTimeArrayOpt, getLineArray, toPgParam, getTsVector, decodeNumRangeBinary, toPgBinaryTimestampTzParam, PgTimeTz, get, toPgParam, getTimestampOpt, getTsTzRangeArray, addParse, getTimeTzArrayOpt, toPgBinaryDateRangeParam, isNull, encodeBinaryArray, toPgParam, getEnumArrayElemOpt, toPgParamInline, getIntArrayElemOptOpt, getStrArrayOpt, getInt8Range, getInt4MultirangeOpt, toPgDateMultirangeArrayParam, addBind, getBool, getTsTzRangeArrayOpt, getTsRangeOpt, getInt64, getInt4RangeArrayOpt, +, getHstoreOpt, getTsTzMultirangeOpt, $, toRow, getStrArrayElemOptOpt, toPgParam, get, getLine, getInt4MultirangeOpt, OidNumRange, >, getPolygonOpt, get, get, encodePointBinary, get, encodeBinaryComposite, toPgParam, getPolygonArrayOpt, getMacAddr8ArrayOpt, OidVarbit, decodeBinaryDate, parseRangeText, toPgParamInline, getDateMultirangeArrayOpt, getCircleArray, encodeBinaryArrayEmpty, get, getBoolArrayElemOpt, writeParamValue, cmp, OidJsonb, OidTimeTz, get, getInt8Multirange, getIntArrayElemOpt, OidNumMultirange, toPgBinaryParam, get, OidTimeTzArray, toPgBinaryParam, getMacAddr, getInt8Multirange, getDate, getDateRangeArrayOpt, hash, get, OidLine, toPgParam, get, getLseg, PgNoRowsError, writeParamOid, getEnumArrayOpt, toPgBinaryParam, getTsTzRangeOpt, writeParamOid, toPgParamInline, initCommandResult, toPgBinaryParam, OidTsTzRangeArray, getBitOpt, writeParamValue, getInt16ArrayElemOpt, getPathOpt, get, parsePointText, toPgBinaryParam, getFloat32, columnIndex, getNumRangeArray, getInt8MultirangeArray, getInterval, getInt16ArrayElemOpt, encodeBinaryArray, getFloat32ArrayElemOpt, getIntArrayOpt, toPgBinaryParam, getInt16ArrayOpt, OidInt4, OidDateMultirangeArray, getInetOpt, getLsegArrayOpt, getNumeric, getTimestampTzArray, getFloat32Opt, getNumericArrayOpt, getMacAddrArrayOpt, getTsRangeOpt, OidTsQuery, getDateArray, getPath, hash, toPgParam, getNumMultirangeOpt, PgNumeric, get, pgEnum, getNumRangeArray, OidInt4Multirange, getMoneyOpt, OidNumeric, get, getTimestampTzArray, getCircleArrayOpt, OidTimestampTz, $, OidInt4Array, toPgParam, getNumericArray, toPgBinaryParam, OidTimeArray, get, getJsonArrayOpt, getLineArrayOpt, getHstore, toPgParam, RangeBinaryRaw, getNumericArray, get, toPgBinaryParam, getPath, getIntOpt, getDateArrayOpt, toPgBinaryParam, OidXml, toPgParam, toPgBinaryParam, getInt4RangeArrayOpt, writeParamOid, toPgBinaryParam, OidPointArray, toPgBinaryParam, OidInt4Range, toPgBinaryParam, ==, getInetArray, getCidrArray, toPgDateArrayParam, getTsMultirange, OidPathArray, getTsQueryArray, toPgParam, ==, writeParamOid, $, toPgParam, toPgParam, getTsQueryOpt, getUuidOpt, getInt8MultirangeOpt, [], PgXml, getBoolArrayElemOptOpt, get, toPgBinaryParam, getInt8MultirangeArray, getHstoreOpt, [], toPgBinaryParam, getInt4Range, parseCompositeText, $, toPgParam, toPgParam, writeParamFormat, getUuidArray, getBitOpt, toPgParam, toPgTimestampTzParam, >=, getMoney, getInt8RangeArrayOpt, decodeBinaryTsVector, getTsTzMultirange, writeParamValue, pgComposite, rangeOf, $, get, toPgBinaryTsTzRangeParam, OidPath, OidByteaArray, getPathArray, get, toPgParam, OidNumMultirangeArray, OidTsTzMultirange, getBoolArrayElemOptOpt, get, get, getXmlArray, toPgParam, decodeInt8RangeBinary, getDateRangeArray, get, toBytes, writeParamFormat, toPgParam, parseInetText, PgInet, toPgBinaryParam, getFloat32, $, writeParamValue, get, writeParamValue, OidTsVector, getTsTzMultirangeArray, OidBit, $, PgTsQuery, getTimeTz, getMacAddr, OidMoney, getFloatArrayElemOpt, toPgParam, writeParamValue, getTsQueryOpt, getTsTzRange, getDateMultirange, decodeMultirangeBinaryRaw, toPgParam, toPgBinaryParam, getCircleOpt, getLsegArray, OidInt4MultirangeArray, getMoneyArrayOpt, parseTextArray, OidInterval, getInt8RangeArray, getIntArray, getTsTzRangeOpt, OidTsTzRange, toPgBinaryParam, contains, toPgParam, toPgBinaryParam, OidBytea, PgPoint, optAccessor, getIntArrayOpt, getInt16ArrayOpt, getMacAddrArrayOpt, getDateArray, getCidrArrayOpt, getFloat32Opt, toPgBinaryTsTzRangeArrayParam, getDateMultirangeOpt, toPgBinaryParam, writeParamFormat, getBytesOpt, getBit, toPgBinaryParam, getBoxArray, parseBitString, toPgParam, decodeFloat64BE, toPgBinaryParam, get, getBitArray, getMacAddrArray, OidTsQueryArray, getNumeric, toPgMultirangeParam, getBytesArray, ProtocolError, writeParamValue, pgDomain, pgParams, OidMacAddr8, OidUuid, OidTextArray, getNumericArrayOpt, getIntervalArrayOpt, getLsegOpt, getMacAddr8, get, getHstoreArray, getLsegOpt, toPgParamInline, toPgParam, getFloat32ArrayElemOptOpt, toPgParam, getMacAddr8, parseIntervalText, addBindDirect, getPointArrayOpt, writeParamValue, getFloatArrayOpt, rangeTo, getNumMultirangeArrayOpt, OidTime, getInt64ArrayElemOptOpt, get, OidDateRangeArray, PgBit, toPgParam, toPgParam, PgMoney, getInt4RangeArray, getLsegArrayOpt, PgInterval, toPgTsTzRangeParam, getDateRangeArrayOpt, getPolygonArray, getComposite, addParseDirect, toPgParamInline, getTsRangeArray, getFloat32ArrayOpt, toPgParam, toPgParam, getNumMultirangeArray, get, getCidr, getInt64ArrayOpt, getInt64Opt, toPgParam, getStrOpt, getDateRange, getStrArrayElemOpt, getFloat32ArrayElemOptOpt, toPgParam, getInt4RangeOpt, encodeCompositeText, getInt4Range, decodeBinaryTimestamp, getInt4Multirange, toPgParam, get, OidMacAddrArray, OidTsMultirange, CommandResult, $, getIntervalArray, toBE64, getTimestamp, getNumMultirange, get, getTsTzMultirange, getInt64Opt, toPgBinaryParam, PgNotifyOverflowError, $, toPgBinaryParam, PgBox, OidInt8Range, writeParamFormat, getHstoreArray, getInt16Opt, toPgParam, toPgParam, OidBoxArray, parsePointsText, toPgBinaryParam, rangeHasLower, getCircleOpt, decodeNumericBinary, encodeHstoreBinary, readBytes, getTimeTzOpt, getTsTzMultirangeArrayOpt, get, OidDate, getNumRangeArrayOpt, rangeHasUpper, ==, getIntArrayElemOpt, getTsQuery, getJsonArray, parseAffectedRows, toPgBinaryParam, ==, getNumMultirangeArrayOpt, OidCircleArray, getBoxArrayOpt, writeParamOid, toPgParam, get, get, unboundedRange, getLine, get, get, getTimeArray, getLineArrayOpt, len, getDomain, fromBE16, toPgBinaryParam, decodeBinaryTimeTz, encodeEnumTextArray, getDateRangeArray, PgCircle, OidInt8Array, OidTsVectorArray, getInt8RangeOpt, getMoneyArray, OidTsRangeArray, getMoney, toPgParam, getTsRangeArrayOpt, getIntervalOpt, getBoxArray, items, ==, getFloat32Array, getInt16ArrayElemOptOpt, PgInlineBufSize, getInt16Array, toPgBinaryDateParam, getBytes, get, getInt8RangeOpt, getBoolArrayElemOpt, toPgParam, OidTsTzMultirangeArray, get, OidInetArray, toPgParam, getMoneyArrayOpt, get, writeParamFormat, getPointArrayOpt, getEnumOpt, writePointAt, getCompositeOpt, getTsRangeArray, PgTime, getDateMultirangeArray, parseHstoreText, getFloatArrayOpt, bufView, OidLsegArray, PgHstore, getJson, toPgDateParam, toPgParam, getInetArrayOpt, pgEnum, getBytesArray, getPolygonArray, readString, getMacAddrOpt, getBit, PgPoolError, PgPolygon, getBitArrayOpt, toPgParam, OidDateRange, get, getDateMultirangeArray, get, getFloatArray, toPgParamInline, ==, OidLseg, getInt8RangeArray, toPgParam, getIntervalArrayOpt, getDateMultirangeOpt, PgCidr, getInt8Range, getTimeTzArray, parseTimestampText, getFloat32ArrayOpt, getPoint, toPgParam, PgRange, getTimestampTz, decodeBinaryTsQuery, toPgParam, getInt64ArrayOpt, columnIndex, toPgParam, getTimestampTzArrayOpt, pgEpochUnix, getInet, toPgParam, getNumMultirange, pgEnum, writeParamFormat, getTimeArrayOpt, getDomainOpt, OidTsRange, toPgParam, getInetArray, rangeEmpty, initPgMoney, OidInt8Multirange, OidVarbitArray, decodeInetBinary, formatPgMoney, getNumRange, get, OidVarcharArray, toPgParam, decodeInt4RangeBinary, OidTimestampArray, rangeLowerInc, writeBE32, getCidr, getTsRangeArrayOpt, getCidrOpt, decodeRangeBinaryRaw, getPoint, getTimestampTz, OidFloat8Array, getCidrArray, toPgParam, getDateRangeOpt, getInetArrayOpt, toPgParam, getCidrOpt, PgTimeoutError, simpleExec, clearStmtCache, notifyQueue, CopyInCallback, TracePoolReleaseEndData, txStatus=, NoticeCallback, TraceCopyStartData, AuthMethod, filterSaslByRequireAuth, sslEnabled, ping, HostEntry, sendBuf, noticeCallback=, ChannelBindingMode, TracePrepareEndData, cancelNoWait, newPgQueryError, portalCounter, PgConnectionError, TraceQueryEndData, PgConnState, fillRecvBuf, CopyResult, waitNotification, pid, initConnConfig, notifyOverflowCallback=, Notice, parseDsn, PgTypeError, connect, QueryResult, PgNoRowsError, PgNullError, CopyOutInfo, stmtCacheCapacity, removeStmtCache, recvBuf=, dispatchNotification, toPgBinaryParam, columnIndex, onNotify, hstoreArrayOid, PgNotifyOverflowError, PgTracer, cancel, TracePoolAcquireStartData, PgConnection, getHosts, TraceConnectStartData, txStatus, parseRequireAuth, CopyOutCallback, TracePoolReleaseStartData, isUnixSocket, recvMessage, RowCallback, lookupStmtCache, TraceContext, TracePoolCloseErrorData, reconnectCallback=, checkReady, nextMessage, listenChannels, tracer=, listenTask=, Notification, recvBufStart, listen, serverParams, unlisten, isConnected, evictStmtCache, TraceConnectEndData, secretKey, TargetSessionAttrs, TransportCloseStage, PgError, unixSocketPath, quoteIdentifier, simpleQuery, SslMode, effectiveMaxMessageSize, hstoreOid, sendMsg, state, addStmtCache, TraceQueryStartData, stmtCacheCapacity=, invalidateOnTimeout, listenReconnectMaxBackoff, ConnConfig, TracePoolAcquireEndData, CopyInInfo, createdAt=, recvBufStart=, stmtCache, PgPoolOwner, PgPoolError, withConnTracing, dispatchNotice, TracePipelineEndData, TraceInsecureAuthData, listenReconnectMaxAttempts=, config, TraceTransportCloseErrorData, makeCopyInCallback, notifyMaxQueue=, state=, TraceDeprecatedAuthData, TraceCopyDirection, recvBuf, withTracing, close, stopListening, TraceCopyEndData, PgQueryError, makeCopyOutCallback, TracePipelineStartData, connect, TracePrepareStartData, NotifyCallback, listenReconnectMaxBackoff=, listenTask, sendBufMsg, items, notifyMaxQueue, CachedStmt, len, tracer, rows, ProtocolError, createdAt, nextStmtName, notifyDropped, listenReconnectMaxAttempts, notifyCallback, toPgBinaryParam, buildTxBeginAndTimeout, newPipeline, executeIsolated, copyIn, Pipeline, queryValue, copyIn, PipelineResult, Cursor, addQuery, columnIndex, query, queryInTransaction, queryRow, PreparedStatement, queryValueOrDefault, addExec, addExec, AccessMode, close, queryValueOrDefault, execInTransaction, PipelineResultKind, copyInStream, copyIn, DeferrableMode, copyIn, execute, withSavepoint, reset, queryColumn, exec, execInTransaction, queryEach, prepare, queryValueOpt, withTransaction, exec, hasReturnStmt, queryValueOrDefault, notify, queryValueOpt, IsolatedPipelineResults, queryDirect, columnIndex, query, execDirect, TransactionOptions, queryValue, copyOutStream, addQuery, buildBeginSql, queryInTransaction, queryRowOpt, execute, copyOut, queryExists, IsolationLevel, openCursor, close, withCursor, fetchNext, metrics, simpleExec, newPool, activeCount, queryValueOpt, withTransaction, queryValue, initPoolConfig, pendingAcquires, queryEach, exec, queryInTransaction, queryValueOrDefault, query, queryValueOpt, simpleQuery, acquire, PoolConfig, withPipeline, resetSession, queryValueOrDefault, notify, poolConfig, queryRowOpt, size, isClosed, close, PoolMetrics, queryValueOrDefault, queryValue, idleCount, queryExists, queryRow, withConnection, PgPool, computeConnectBackoff, release, queryColumn, execInTransaction, writeQueryColumn, writeQueryRow, PgPoolCluster, writeQueryValue, replicaFallback, writeQueryValueOrDefault, readQueryValueOpt, readQuery, writeExec, readQueryValue, readQueryExists, withWriteConnection, readSimpleExec, readQueryValue, writeQuery, readSimpleQuery, readQueryEach, close, readQueryRowOpt, fallbackTimeout, ReplicaFallback, writeQueryValue, withReadConnection, writeNotify, readQueryValueOpt, readQueryRow, writeQueryValueOrDefault, readQueryValueOrDefault, withPipeline, writeQueryEach, withTransaction, newPoolCluster, primaryPool, readQueryValueOrDefault, writeExecInTransaction, writeQueryValueOpt, readQueryValueOrDefault, writeQueryValueOrDefault, writeSimpleQuery, writeQueryExists, writeQueryRowOpt, readQueryColumn, replicaPool, writeQueryInTransaction, writeQueryValueOpt, writeSimpleExec, isClosed, INV_WRITE, SEEK_END, SEEK_SET, makeLoWriteCallback, loTell, loReadStream, loWriteAll, loDefaultChunkSize, loImport, withLargeObject, makeLoReadCallback, loWrite, LoWriteCallback, Oid, LoReadCallback, INV_READ, SEEK_CUR, loTruncate, loSize, loClose, loWriteStream, loSeek, loCreate, loRead, loUnlink, 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, writeQueryRow, queryValue, writeQueryValue, writeExecInTransaction, queryValueOrDefault, queryValue, writeQueryColumn, writeQueryValueOrDefault, exec, queryEach, addQuery, sql, query, writeQueryRowOpt, queryInTransaction, queryRow, execInTransaction, queryValueOrDefault, readQueryValue, writeQuery, addExec, writeQueryEach, readQueryEach, queryValueOpt, queryValueOrDefault, queryValueOpt, queryValueOrDefault, queryColumn, queryValue, readQueryValueOpt, writeQueryValue, execInTransaction, readQueryValueOpt, readQueryRow, execInTransaction, queryExists, readQueryValueOrDefault, readQuery, queryValueOpt, writeQueryInTransaction, readQueryValueOrDefault, queryEach, writeQueryValueOrDefault, readQueryColumn, exec, queryInTransaction, queryValueOrDefault, readQueryRowOpt, queryValueOpt, writeExec, writeQueryValueOpt, readQueryValue, writeQueryValueOrDefault, queryValueOrDefault, readQueryValueOrDefault, query, readQueryExists, SqlQuery, queryRowOpt, queryValue, writeQueryExists, queryColumn, queryInTransaction, queryRowOpt, queryExists, queryRow, writeQueryValueOpt, sqlParams, decodePgOutput, ReplicationMessage, PgOutputMessageKind, DeleteMessage, toUInt64, ReplicationSlotInfo, readReplicationSlot, ==, dropReplicationSlot, TruncateMessage, currentPgTimestamp, RelationCache, pgEpochOffset, $, CommitMessage, <=, RelationColumn, TupleField, parseReplicationMessage, <, InvalidLsn, SystemInfo, LogicalMessage, parsePgOutputMessage, TypeMessage, toString, BeginMessage, identifySystem, PgOutputMessage, OriginMessage, toInt64, UpdateMessage, PrimaryKeepalive, Lsn, createReplicationSlot, TupleDataKind, sendStandbyStatus, makeReplicationCallback, parseLsn, XLogData, ReplicationMessageKind, InsertMessage, startReplication, connectReplication, stopReplication, ReplicationCallback, connectReplication, RelationInfo