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, queryDirect/execDirect, and simpleExec; on timeout the connection is marked closed because the wire protocol desynchronises. simpleQuery currently does 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, remainingDeadlineDuration, allFutures, -, <, completed, >, cancelTimer, registerFdReader, CancelledError, hasAsyncDispatch, nanoseconds, asyncSpawn, clone, RowData, SqlStateUniqueViolation, addInt16, TransactionStatus, isBinarySafeOid, patchMsgLen, syncMsg, encodeClose, SqlStateSerializationFailure, ParseResult, SqlStateExclusionViolation, encodePassword, where, decodeInt32, isSerializationFailure, data, PgQueryError, PgTypeError, decodeInt16, internalQuery, addCopyFieldInt32, encodeStartup, addCopyFieldString, addParse, PgNoRowsError, PgNullError, addClose, DefaultMaxBackendMessageLen, SqlStateSyntaxError, formatError, encodeInt32, reuseRowData, encodeSSLRequest, PgNotifyOverflowError, encodeInt16, addCopyFieldFloat32, addCopyDone, decodeInt64, pgCopyBinaryHeader, addBindRaw, parseBackendMessage, decodeCString, SqlStateQueryCanceled, addInt32, addInt64, ParseState, isDeadlockDetected, tableName, CopyFormat, buildResultFormats, SqlStateDeadlockDetected, reuseRowData, encodeSASLInitialResponse, columnName, addCopyFieldInt16, SqlStateNotNullViolation, ErrorField, initRow, addCString, PgError, schemaName, encodeDescribe, encodeParse, FrontendMessageKind, SqlStateForeignKeyViolation, position, isForeignKeyViolation, flushMsg, addCopyTupleStart, addCopyFieldNull, addExecute, PgTimeoutError, pgCopyBinaryTrailer, encodeTerminate, isCheckViolation, addCopyFieldText, isExclusionViolation, SqlStateCheckViolation, DescribeKind, isIntegrityConstraintViolation, PgConnectionError, BackendMessageKind, encodeSASLResponse, dataTypeName, addCopyFieldBool, PgPoolError, copyDoneMsg, addSync, internalPosition, PgListenError, getErrorField, encodeStandbyStatusUpdate, isQueryCanceled, encodeCancelRequest, encodeCopyFail, PgStateError, Row, encodeBind, BackendMessage, errorField, addCount16, encodeQuery, addCopyBinaryTrailer, BinarySafeOids, addBind, addCopyFieldFloat64, rowIdx, addFlush, encodeCopyData, FieldDescription, newRowData, constraintName, addDescribe, isUniqueViolation, patchLen, encodeFlush, addCopyFieldInt64, PgProtocolError, isNotNullViolation, addCopyBinaryHeader, SqlStateUndefinedTable, ProtocolError, parseDataRowInto, encodeCopyDone, addLen32, encodeSync, encodeExecute, md5AuthHash, scramVerifyServerFinal, scramClientFirstMessage, scramClientFirstMessage, scramClientFinalMessage, computeTlsServerEndpoint, ScramState, burnStr, scramEscapeUsername, pgArrayElemOid, pgArrayElemOid, pgArrayElemOid, encodePgArrayElement, pgArrayElemOid, writeParamOid, PgParam, getTimestampTzOpt, $, OidBool, pgArrayElemOid, ==, get, getPathArrayOpt, encodePgArrayElement, OidCircle, toPgBinaryParam, toPgTimestampTzArrayParam, getPointArray, get, pgArrayElemOid, getXmlArrayOpt, getUuidArrayOpt, decodeMultirangeBinaryRaw, get, $, toPgParamInline, writeParamOid, getInt4MultirangeArray, SqlStateExclusionViolation, getTimestampArrayOpt, writeBytesAt, getBoolOpt, getNumericOpt, pgArrayArrayOid, toPgParam, encodePgArrayElement, decodePgArrayElement, getInt64Array, getPointOpt, getTsMultirange, toPgParam, where, affectedRows, toPgTsTzMultirangeParam, $, getInt, ==, getTsTzMultirangeArray, decodePgArrayElement, getTsMultirangeArray, get, pgArrayElemOid, pgArrayElemOid, <=, getPolygon, ==, PgQueryError, $, get, toPgParam, pgArrayArrayOid, getTime, parseAffectedRowsRaw, ==, getStrArray, getTimeArray, toPgBinaryParam, appendBytes, getCompositeOpt, ==, toPgBinaryParam, getInt4Multirange, PgNullError, getXmlOpt, OidVarchar, toPgParam, fromBE64, pgArrayElemOid, decodeDateRangeBinary, getHstoreArrayOpt, getCircle, SqlStateSyntaxError, encodePgArrayElement, emptyRange, pgArray, toPgMoneyArrayNDParam, pgParseFloat, toPgBinaryParam, getDateOpt, toPgParam, getPointArray, pgArray, toPgBinaryParam, get, PgMultirange, getTimestampArray, pgArrayElemOid, OidTimestampTzArray, paramOidOf, encodeNumericBinary, getXmlArrayOpt, $, OidXmlArray, OidMacAddr, toPgBinaryParam, toPgParamInline, getTsMultirangeOpt, getFloatOpt, pgParseFloat32, writeBE64, toPgParam, getFloatOpt, getTimestamp, isNull, parseTimeTzText, getTimeTzOpt, OidMoneyArray, pgArrayElemOid, $, OidInt8MultirangeArray, OidPolygonArray, toPgParamInline, encodePgArrayElement, get, writeParamOid, encodePgArrayElement, decodePointBinary, $, getLseg, OidRecord, toPgParam, isZero, getTsRange, getInterval, toPgBinaryParam, toPgBinaryParam, expectedElemCount, OidTsMultirangeArray, getTimestampTzArrayOpt, isBinaryCol, get, getJsonArrayOpt, getTimestampArrayOpt, getTimeTz, writeParamFormat, toPgBinaryParam, ==, getTimestampTzOpt, get, toPgParam, OidLine, [], get, schemaName, writeParamFormat, toPgParam, toPgBinaryParam, ErrorField, getBytesArrayOpt, pgArrayArrayOid, writeBE32, get, toPgParam, $, decodePgArrayElement, getTsVectorOpt, encodePgArrayElement, SqlStateForeignKeyViolation, toPgParam, toPgParam, toPgParam, pgArrayArrayOid, decodePgArrayElement, getBoxOpt, toPgBinaryParam, getJsonArray, getLineOpt, getCidrArrayOpt, getBytesOpt, getUuidArray, PgUuid, coerceBinaryParam, writeParamFormat, pgEpochDaysOffset, toBE16, getFloat, getJson, getFloatArrayElemOptOpt, toPgParam, toPgParam, getBoolArrayOpt, get, toPgParam, getTsVectorArray, pgArrayArrayOid, get, toPgParam, getInt16, toPgTsTzMultirangeArrayParam, getStrArrayElemOpt, rangeFrom, PgConnectionError, $, PgTsVector, toPgBinaryParam, OidInet, OidJson, getCircleOpt, getInt, getNumMultirangeOpt, nameAccessor, decodeTsRangeBinary, ==, toPgDateMultirangeParam, toPgBinaryParam, pgParseInt, getMoneyArray, ==, getInt8RangeArrayOpt, getBoxOpt, get, getBoolArrayOpt, decodePgArrayElement, getInt64ArrayElemOpt, get, getTsMultirangeArray, getInt4Range, getBitArrayOpt, get, writeParamValue, SqlStateQueryCanceled, toPgParam, getInt4RangeArray, pgArrayElemOid, encodePgArrayElement, get, getTsVector, OidInt2Array, toPgBinaryDateMultirangeArrayParam, get, getNumRange, getMacAddrOpt, pgArrayElemOid, toPgParam, pgArrayElemOid, <=, getTsQueryArrayOpt, get, $, pgParseHexInt, OidCidrArray, getInt64Array, get, writeBE16, getTimeOpt, pgArrayElemOid, getPolygon, OidInt2, pgArrayArrayOid, ==, PgTimeTz, $, toPgBinaryParam, getTsTzMultirangeArrayOpt, getInt4Range, getTimeOpt, PgNumericSign, get, encodePgArrayElement, constraintName, getTsRange, getInet, getPathOpt, ==, toPgParam, toPgParam, toPgParam, getNumRangeArrayOpt, toPgParam, pgArrayArrayOid, toPgBinaryParam, getMacAddr8Array, getFloat, getPathArray, get, OidNumRangeArray, getInt64ArrayElemOptOpt, ==, len, get, getTsQueryArrayOpt, getTsTzRangeArrayOpt, encodePgArrayElement, toPgParam, getTimestampOpt, get, toPgParam, PgParamInline, pgArrayArrayOid, toPgBinaryParam, ==, isUniqueViolation, getTimeArray, PgMacAddr8, getIntArrayElemOpt, getStrArray, toPgMoneyArrayParam, toPgParam, toPgBinaryParam, getMacAddr8Opt, getDomain, pgArrayArrayOid, pgArrayArrayOid, ==, pgArrayArrayOid, getDateMultirangeArray, decodeBinaryArray, get, getDateMultirangeArray, getFloatArrayElemOptOpt, getTimeTzArrayOpt, pgArrayArrayOid, getNumMultirangeOpt, OidCidr, writeParamOid, getDateRange, getTsQueryOpt, getInt8MultirangeArrayOpt, ==, getBitArray, pgArrayArrayOid, getTimeTz, writeParamValue, toPgBinaryParam, get, get, tableName, getXmlArray, getInt64ArrayElemOpt, decodePgArrayElement, getInt4RangeArray, OidInt4RangeArray, PgMacAddr, toBE32, toPgRangeParam, getUuid, toPgParam, OidPoint, OidIntervalArray, getBoolArray, getEnumArrayElemOpt, toPgParam, toPgParamInline, get, parseMultirangeText, getTsVectorArray, decodeInt8RangeBinary, getLineArray, isSerializationFailure, pgArrayArrayOid, pgArrayArrayOid, columnIndex, toPgParam, getBoxArrayOpt, PgTypeError, OidText, getLine, getIntArray, getTsTzRangeOpt, encodePgArrayElement, getHstoreOpt, pgArrayElemOid, get, OidDateArray, PgLseg, cellInfo, get, get, PgNoRowsError, writeParamOid, encodePgArrayElement, getBool, getTsMultirangeOpt, toPgParam, getFloat32ArrayElemOpt, getHstoreArrayOpt, getInetOpt, getFloatArray, parsePgMoney, getCircle, toPgParam, encodeJsonbBinary, getCircleArrayOpt, getMacAddrArray, getInt64, encodePgArrayElement, PgInet, getIntOpt, getTsQuery, parseTimeText, getTsQueryArray, toPgBinaryParam, parsePgNumeric, PgRangeBound, ==, +, pgArray, $, getBitArray, toPgBinaryParam, getHstoreOpt, $, ndim, toPgParam, getLsegArray, columnIndex, getInet, OidInt8RangeArray, getTsMultirangeArrayOpt, writeParamValue, rangeUpperInc, isIntegrityConstraintViolation, writeParamFormat, get, colTypeOid, getHstore, $, writeParamValue, getArrayNDOpt, getUuidOpt, pgArrayArrayOid, getDateOpt, getStrArrayOpt, toPgBinaryParam, decodePgArrayElement, get, <, OidTimestamp, OidBoolArray, isDeadlockDetected, getStr, OidNumericArray, decodeHstoreBinary, decodePgArrayElement, get, OidMacAddr8Array, getNumMultirangeArray, getInt8MultirangeOpt, getTsVectorOpt, getArrayND, getMoneyArrayND, toPgBinaryParam, getIntervalArray, OidBox, $, decodePgArrayElement, toPgParam, get, toPgBinaryTsTzMultirangeParam, get, toPgTimestampArrayParam, getEnumArray, encodePgArrayElement, getMacAddr8Array, getJsonOpt, pgParseInt32, PgError, getTimestampArray, getEnum, getMoneyArrayOpt, pgArrayElemOid, pgDateDays, pgTimestampMicros, getMacAddr8Opt, getDomainOpt, getDateMultirangeArrayOpt, paramOidOf, getTimeTzArray, position, toString, toPgParam, toPgParam, writeParamFormat, getFloatArrayElemOpt, OidDateMultirange, toPgParam, columnMap, toPgParam, PgLine, OidFloat8, getDateRangeOpt, getBoolArray, PgTimeoutError, getPolygonOpt, $, writeParamValue, getPathArrayOpt, get, ==, toPgParamInline, isExclusionViolation, getBoolOpt, encodePgArrayElement, getPointOpt, toPgParam, encodeHstoreText, getTime, ==, toPgBinaryParam, getInt4RangeOpt, getDateMultirange, toPgBinaryDateRangeArrayParam, getFloat32Array, pgTypeErrorOnValueError, getInt8MultirangeArrayOpt, toPgParamInline, getUuidArrayOpt, pgArrayElemOid, getInt16ArrayElemOptOpt, get, $, toPgParam, dataTypeName, getMoneyOpt, toPgBinaryParam, getInt16Array, get, RelOff, getCircleArray, get, toPgParam, pgParseBiggestInt, getIntArrayElemOptOpt, getUuid, getXmlOpt, getPolygonArrayOpt, internalPosition, getInt16Opt, PgListenError, getBytes, getMacAddr8ArrayOpt, toPgBinaryParam, getLineArray, toPgParam, getTsVector, pgArrayArrayOid, toPgBinaryTimestampTzParam, PgStateError, encodePgArrayElement, toPgParam, getTsRangeArrayOpt, getNumericOpt, getTimestampOpt, pgArrayArrayOid, getNumericArray, getTsTzRangeArray, pgArrayArrayOid, get, getTimeTzArrayOpt, toPgBinaryDateRangeParam, isNull, get, encodeBinaryArray, toPgParam, OidBitArray, toPgParamInline, getIntArrayElemOptOpt, pgArrayArrayOid, getBytesArray, getInt4MultirangeOpt, toPgDateMultirangeArrayParam, addBind, getBool, getCircleArray, getTsRangeOpt, getInt64, getInt4RangeArrayOpt, getInt4MultirangeArray, pgArrayElemOid, OidPolygon, getTsTzMultirangeOpt, $, getTsTzRangeArrayOpt, toRow, toPgBinaryDateMultirangeParam, getTsQueryArray, getStrArrayElemOptOpt, toPgParam, addParse, getLine, getInt4MultirangeOpt, OidNumRange, >, getPolygonOpt, get, OidFloat4Array, toPgTsMultirangeArrayParam, encodePointBinary, isNotNullViolation, get, getStrOpt, toPgParam, getPolygonArrayOpt, getMacAddr8ArrayOpt, OidVarbit, decodeBinaryDate, getInt8RangeArray, parseRangeText, toPgParamInline, getDateMultirangeArrayOpt, getBytesArrayOpt, getTsTzRangeArray, pgParseInt16, decodePgArrayElement, internalQuery, getBoolArrayElemOpt, encodePgArrayElement, cmp, OidJsonb, OidTimeTz, get, PgArrayMaxDim, getInt8Multirange, get, OidNumMultirange, toPgBinaryParam, get, OidTimeTzArray, getTimeArrayOpt, SqlStateUniqueViolation, getMacAddr, getInt8Multirange, getDate, getDateRangeArrayOpt, hash, get, $, toPgParam, get, getLseg, getDateArrayOpt, writeParamOid, SqlStateSerializationFailure, toPgBinaryParam, decodePgArrayElement, writeParamOid, SqlStateDeadlockDetected, pgArray, encodePgArrayElement, toPgBinaryParam, OidTsTzRangeArray, getBitOpt, paramOidOf, writeParamValue, getInt16ArrayElemOpt, getPathOpt, encodePgArrayElement, parsePointText, getTimestampTzArray, getFloat32, get, getNumRangeArray, encodeBinaryComposite, isEmpty, toPgParam, PgTime, encodeBinaryArray, getIntervalOpt, getIntArrayOpt, toPgBinaryParam, getLineOpt, OidInt4, getInt8Range, OidDateMultirangeArray, getInetOpt, getLsegArrayOpt, getNumeric, getTsTzMultirange, getFloat32Opt, getNumericArrayOpt, getMacAddrArrayOpt, getTsRangeOpt, OidTsQuery, getDateArray, getPath, get, toPgParam, getStr, PgNumeric, getStrArrayOpt, hash, pgEnum, getNumRangeArray, OidInt4Multirange, getMoneyOpt, OidNumeric, getXml, get, toPgBinaryParam, getCircleArrayOpt, getJson, $, OidInt4Array, toPgParam, get, toPgBinaryParam, OidTimeArray, decodePgArrayElement, OidJsonbArray, getJsonArrayOpt, getLineArrayOpt, PgCircle, toPgParam, RangeBinaryRaw, encodePgArrayElement, get, getInt16ArrayElemOpt, toPgBinaryParam, getFloatArrayOpt, getIntOpt, getDateArrayOpt, toPgBinaryParam, getBit, getInt16, toPgBinaryParam, getInt4RangeArrayOpt, writeParamOid, toPgBinaryParam, getStrArrayElemOptOpt, getEnumArrayOpt, OidPointArray, toPgBinaryParam, OidInt4Range, toPgBinaryParam, ==, getInetArray, getCidrArray, paramOidOf, toPgDateArrayParam, getTsMultirange, getTsTzMultirange, OidPathArray, get, decodePgArrayElement, toPgParam, ResultFormat, writeParamOid, $, toPgParam, decodeFloat32BE, getTsQueryOpt, pgArrayElemOid, pgArray, PgArray, [], PgXml, getBoolArrayElemOptOpt, fromPgText, toPgBinaryParam, get, getInt8MultirangeArray, OidFloat4, writeParamFormat, errorField, parseCompositeText, $, getXml, OidInt4MultirangeArray, writeParamFormat, getUuidArray, getBitOpt, toPgParam, toPgTimestampTzParam, >=, toPgParam, paramOidOf, getInt8RangeArrayOpt, decodeBinaryTsVector, getTimeArrayOpt, writeParamValue, pgComposite, PgPath, $, get, toPgBinaryTsTzRangeParam, getStrOpt, OidPath, toPgBinaryParam, getPathArray, getFloat32ArrayElemOpt, get, toPgParam, OidNumMultirangeArray, decodeBinaryComposite, getTsTzMultirangeOpt, getTsMultirangeArrayOpt, OidTsTzMultirange, getBoolArrayElemOptOpt, writeParamValue, get, getXmlArray, getMoneyArrayNDOpt, SqlStateCheckViolation, getDateRangeArray, decodePgArrayElement, get, toBytes, getLsegArray, toPgParam, parseInetText, toPgBinaryParam, toPgBinaryParam, getFloat32, $, get, readBytes, get, pgArrayArrayOid, getFloatArray, decodePgArrayElement, OidTsVector, get, OidBit, $, PgTsQuery, encodePgArrayElement, getMacAddr, getInterval, OidMoney, getFloatArrayElemOpt, toPgParam, writeParamValue, toPgParamInline, toPgParam, getDateMultirange, toPgBinaryTsTzMultirangeArrayParam, pgArrayElemOid, toPgParam, getErrorField, getIntervalOpt, OidLineArray, toPgBinaryParam, toPgParam, pgArrayArrayOid, fromBE32, pgArrayArrayOid, parseTextArray, OidInterval, getUuidOpt, decodePgArrayElement, getInt8RangeArray, getIntArray, decodePgArrayElement, OidTsTzRange, rejectMultiDim, getBytesArray, contains, toPgParam, toPgBinaryParam, OidBytea, getIntervalArrayOpt, optAccessor, getIntArrayOpt, getInt16ArrayOpt, getMacAddrArrayOpt, getDateArray, getCidrArrayOpt, getFloat32Opt, toPgBinaryTsTzRangeArrayParam, getDateMultirangeOpt, toPgBinaryParam, writeParamFormat, decodeNumRangeBinary, getInt16ArrayOpt, getBytesOpt, OidXml, toPgBinaryParam, getBoxArray, paramOidOf, getNumRangeOpt, parseBitString, toPgParam, encodeInetBinary, decodeFloat64BE, toPgBinaryParam, get, getTsVectorArrayOpt, getMacAddrArray, pgArrayArrayOid, OidTsQueryArray, getNumeric, toPgMultirangeParam, toPgBinaryParam, decodePgArrayElement, SqlStateUndefinedTable, ProtocolError, decodePgArrayElement, get, pgDomain, pgParams, OidMacAddr8, OidUuid, toPgDateRangeArrayParam, pgArrayArrayOid, OidTextArray, getTsTzRangeOpt, getNumericArrayOpt, getIntervalArrayOpt, getLsegOpt, getInt8MultirangeArray, getMacAddr8, <, getHstoreArray, getLsegOpt, OidTsRangeArray, toPgParamInline, getTsTzMultirangeArray, toPgParam, getFloat32ArrayElemOptOpt, toPgParam, getMacAddr8, parseIntervalText, dimsFor1D, toPgParam, getPointArrayOpt, get, getFloatArrayOpt, rangeTo, getNumMultirangeArrayOpt, OidTime, getInt64ArrayElemOptOpt, getIntArrayElemOpt, OidDateRangeArray, PgBit, toPgParam, toPgParam, PgMoney, getNumericArray, getLsegArrayOpt, PgInterval, decodePgArrayElement, toPgTsTzRangeParam, getDateRangeArrayOpt, getPolygonArray, getComposite, addParseDirect, toPgParamInline, isQueryCanceled, getLineArrayOpt, get, get, getFloat32ArrayOpt, addBindDirect, toPgParam, getNumMultirangeArray, pgArrayElemOid, hash, getMoney, getCidr, getInt64ArrayOpt, getInt64Opt, toPgParam, encodePgArrayElement, getDateRange, getStrArrayElemOpt, getFloat32ArrayElemOptOpt, getBox, toPgParam, decodePgArrayElement, encodeCompositeText, rangeOf, pgEpochUnix, getInt4Multirange, toPgParam, encodePgArrayElement, OidMacAddrArray, OidTsMultirange, CommandResult, paramOidOf, isForeignKeyViolation, getIntervalArray, toBE64, getTimestamp, validate, PgBitMaxBits, getNumMultirange, get, getNumRangeOpt, getInt64Opt, OidInt8, PgNotifyOverflowError, $, toPgBinaryParam, decodePgArrayElement, PgBox, OidInt8Range, writeParamFormat, getHstoreArray, getInt16Opt, toPgParam, toPgParam, OidBoxArray, parsePointsText, toPgBinaryParam, rangeHasLower, getCircleOpt, decodeNumericBinary, encodeHstoreBinary, get, getTimeTzOpt, get, getTsTzMultirangeArrayOpt, get, OidDate, getNumRangeArrayOpt, rangeHasUpper, ==, get, toPgParam, getJsonArray, parseAffectedRows, toPgBinaryParam, ==, getNumMultirangeArrayOpt, OidCircleArray, getBoxArrayOpt, writeParamOid, getDate, decodePgArrayElement, toPgParam, get, initCommandResult, unboundedRange, getJsonOpt, get, encodePgArrayElement, toPgParam, getInt4MultirangeArrayOpt, len, getMoney, fromBE16, toPgBinaryParam, decodeBinaryTimeTz, encodeEnumTextArray, getDateRangeArray, getHstore, OidInt8Array, OidTsVectorArray, columnName, getBox, getTsRangeArray, SqlStateNotNullViolation, getInt8RangeOpt, getMoneyArray, toPgParam, toPgParam, toPgByteaArrayParam, getBoxArray, items, ==, getFloat32Array, getInt16ArrayElemOptOpt, PgInlineBufSize, getInt16Array, toPgBinaryDateParam, getBytes, pgArrayElemOid, encodePgArrayElement, getInt8RangeOpt, getTimestampTzArray, toMultirange, toPgParam, OidTsTzMultirangeArray, get, OidInetArray, toPgParam, getTsTzRange, getMoneyArrayOpt, get, toPgBinaryParam, getPointArrayOpt, getEnumOpt, isCheckViolation, writePointAt, getTsVectorArrayOpt, paramOidOf, decodePgArrayElement, get, OidUuidArray, getBoolArrayElemOpt, parseHstoreText, decodeBinaryTime, getPath, bufView, OidLsegArray, PgHstore, getTsQuery, OidTimestampTz, decodePgArrayElement, toPgDateParam, toPgParam, getInetArrayOpt, pgEnum, toPgBinaryParam, getPolygonArray, readString, getMacAddrOpt, getBit, PgPoolError, PgPolygon, getBitArrayOpt, toPgParam, OidDateRange, get, toPgBinaryParam, writeParamValue, pgArrayArrayOid, toPgParamInline, ==, getInt8MultirangeOpt, OidLseg, get, getTsRangeArrayOpt, toPgParam, PgPoint, getDateMultirangeOpt, getInt4MultirangeArrayOpt, paramOidOf, PgCidr, getInt8Range, getTimeTzArray, parseTimestampText, getInt4RangeOpt, getTsRangeArray, getFloat32ArrayOpt, getPoint, toPgParam, pgArrayElemOid, PgRange, getTimestampTz, decodeBinaryTsQuery, toPgParam, pgArrayElemOid, getInt64ArrayOpt, encodePgArrayElement, toPgParam, getTimestampTzArrayOpt, decodeBinaryTimestamp, get, getNumMultirange, pgEnum, writeParamFormat, OidByteaArray, ==, OidTsRange, toPgDateRangeParam, getInetArray, rangeEmpty, initPgMoney, OidInt8Multirange, get, OidVarbitArray, decodeInetBinary, formatPgMoney, getNumRange, pgArrayElemOid, get, validatePgArrayShape, OidVarcharArray, PgProtocolError, toPgParam, decodeInt4RangeBinary, OidTimestampArray, rangeLowerInc, toPgParam, getCidr, getCidrOpt, decodeRangeBinaryRaw, getPoint, getTimestampTz, pgArrayElemOid, OidFloat8Array, getCidrArray, getTsTzRange, getDateRangeOpt, paramOidOf, getInetArrayOpt, toPgParam, getCidrOpt, toPgTsTzRangeArrayParam, CopyInCallback, ready, RecvWatch, simpleExec, NoticeCallback, SqlStateUniqueViolation, TraceCopyStartData, sendRawBytes, AuthMethod, filterSaslByRequireAuth, fillRecvBuf, ping, HostEntry, SqlStateSerializationFailure, ChannelBindingMode, tableName, SqlStateDeadlockDetected, TracePoolReleaseEndData, cancelNoWait, newPgQueryError, startRecvWatch, replConfirmedFlushLsn, TraceQueryEndData, PgConnState, where, listenPump, CopyInInfo, nextMessage, waitNotification, pending, ConnConfig, isSerializationFailure, parseLoadBalanceHosts, parseDsn, PgQueryError, PgTypeError, QueryResult, internalQuery, TracePrepareEndData, PgNoRowsError, PgNullError, TargetSessionAttrs, flushPendingStmtCloses, CopyOutInfo, PgConnectionError, SqlStateSyntaxError, closeTransport, rearm, PgStateError, dispatchNotification, bytesToString, columnIndex, fireDeprecatedAuth, PgNotifyOverflowError, listen, fireInsecureAuth, cancel, reconnectInPlace, TracePoolAcquireStartData, PgConnection, getHosts, configureKeepalive, TraceConnectStartData, selectScramMechanism, parseChannelBindingMode, SqlStateQueryCanceled, parseRequireAuth, CopyOutCallback, TracePoolReleaseStartData, isUnixSocket, recvMessage, isConnected, simpleExecImpl, initConnConfig, dialAddr, sendBufMsg, columnName, TraceContext, displayHost, TracePoolCloseErrorData, TraceLeakedSessionLocksData, isDeadlockDetected, checkReady, socketHasFin, CopyResult, checkSessionAttrs, confirmReplFlushed, Notice, negotiateSSL, SqlStateExclusionViolation, flushPendingStmtCloses, Notification, fireCleanupSkipped, onNotify, PgTracer, unlisten, RowCallback, TraceConnectEndData, lookupStmtCache, socketHasPendingData, SqlStateNotNullViolation, ErrorField, parseUriDsn, cancel, PgError, schemaName, CleanupSkipReason, quoteIdentifier, SqlStateForeignKeyViolation, dispatchNotice, SslMode, configureTcpNoDelay, effectiveMaxMessageSize, errorField, isForeignKeyViolation, sendMsg, initReplLsnTracking, parsePort, simpleQuery, TraceInsecureAuthData, TraceQueryStartData, PgTimeoutError, invalidateOnTimeout, isCheckViolation, isExclusionViolation, TypeOidInfo, simpleQueryImpl, SqlStateCheckViolation, isIntegrityConstraintViolation, TracePoolAcquireEndData, TraceCopyDirection, PgPoolOwner, dataTypeName, enforceAuthAllowed, applyParam, onListenError, PgPoolError, TCP_KEEPCNT, withConnTracing, LoadBalanceHosts, parseTargetSessionAttrs, TracePipelineEndData, internalPosition, PgListenError, CleanupKind, getErrorField, makeCopyOutCallback, replMaxReceivedLsn, TraceTransportCloseErrorData, CachedStmt, take, TraceAdvisoryUnlockFailedData, isQueryCanceled, makeCopyInCallback, TCP_KEEPINTVL, parseKeyValueDsn, connect, clearStmtCache, TraceDeprecatedAuthData, TransportCloseStage, withTracing, close, MSG_DONTWAIT, stopListening, TraceCopyEndData, nextStmtName, unixSocketPath, sendRawData, TracePipelineStartData, connectToHost, position, TracePrepareStartData, NotifyCallback, constraintName, TraceCleanupSkippedData, isUniqueViolation, items, TracePoolDoubleReleaseData, TCP_KEEPIDLE, RecvBufSize, compactRecvBuf, evictStmtCache, lookupTypeOids, PgProtocolError, isNotNullViolation, len, addStmtCache, TCP_NODELAY, connect, rows, parseSslMode, SqlStateUndefinedTable, ProtocolError, updateReplMaxReceivedLsn, parseAuthMethod, removeStmtCache, fireAdvisoryUnlockFailed, orderedHosts, startListening, copyIn, prepareImpl, executeIsolated, exec, queryEach, addQuery, checkNoBodyEscape, PipelineOp, PreparedStatement, isRetryableTxError, addExec, Pipeline, AccessMode, copyIn, queryInTransaction, execImpl, copyInStream, DeferrableMode, queryDirect, withSavepoint, hasLoopEscapeStmt, buildRollbackCleanup, queryColumn, exec, PipelineResult, hasReturnStmt, copyOutStreamImpl, copyInStreamImpl, queryImpl, queryDirectRunImpl, withTransactionRetryDeadline, backoffDelayMs, PipelineOpKind, notify, queryValueOpt, addQuery, queryValueOrDefault, TransactionOptions, columnIndex, execInlineImpl, queryImpl, reset, queryExists, IsolationLevel, queryRowOpt, withCursor, fetchNext, openCursor, queryValue, close, withSavepointDeadline, buildRetryDeadlineLoop, columnIndex, query, queryRow, copyIn, addExec, PipelineResultKind, queryDirectImpl, execDirectRunImpl, queryValueOpt, close, queryValueOrDefault, execDirect, withTransactionRetry, executeImpl, buildTxBeginAndTimeout, execDirectImpl, execute, buildRetryTxLoop, execInTransaction, execInTransaction, rollbackGraceMs, RetryOptions, prepare, Cursor, copyIn, queryInTransaction, queryValueOrDefault, copyOutImpl, execImpl, withTransactionDeadline, closeImpl, newPipeline, query, copyInRawImpl, queryValue, copyOutStream, IsolatedPipelineResults, buildBeginSql, rollbackGrace, execute, copyOut, withTransaction, queryInlineImpl, queryEachImpl, pendingAcquires, activeCount, queryValue, initPoolConfig, queryEach, PooledConnHandle, query, simpleQuery, acquire, poolConfig, PgPool, acquireHandle, queryValueOpt, release, close, queryValueOrDefault, queryValue, withTransactionRetry, withConnection, simpleExec, release, queryColumn, execInTransaction, metrics, newPool, size, queryRow, withPipeline, withTransactionRetryDeadline, exec, queryInTransaction, queryValueOrDefault, notify, queryValueOpt, withTransactionDeadline, resetSession, queryValueOrDefault, PoolMetrics, queryRowOpt, PoolConfig, idleCount, queryExists, withTransaction, computeConnectBackoff, isClosed, PgPoolCluster, newPoolCluster, writeConnection, replicaFallback, primaryPool, withPipeline, withWriteConnection, ReadFallbackCallback, onReadFallback, close, ReadFallbackReason, withTransactionRetry, fallbackTimeout, replicaPool, ReplicaFallback, withTransaction, withReadConnection, isClosed, readConnection, INV_WRITE, SEEK_END, SEEK_SET, makeLoWriteCallback, loTell, loReadStreamDeadline, loReadStream, loWriteAll, loDefaultChunkSize, loImport, withLargeObject, makeLoReadCallback, loReadAllDeadline, loWriteAllDeadline, loWrite, LoWriteCallback, Oid, LoReadCallback, INV_READ, loWriteStreamDeadline, SEEK_CUR, loTruncate, loSize, 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, >=, ==, dropReplicationSlot, confirmFlushed, TruncateMessage, currentPgTimestamp, timelineHistory, parseReplicationMessage, RelationCache, pgEpochOffset, $, CommitMessage, parseTimelineId, <=, RelationColumn, TimelineHistory, TupleField, receivedEndLsn, <, InvalidLsn, SystemInfo, LogicalMessage, ReplicationMode, TypeMessage, toString, BeginMessage, identifySystem, PgOutputMessage, OriginMessage, toInt64, readReplicationSlot, confirmedFlushLsn, >, UpdateMessage, PrimaryKeepalive, Lsn, createReplicationSlot, TupleDataKind, sendStandbyStatus, parsePgOutputMessage, parseLsn, XLogData, ReplicationMessageKind, makeReplicationCallback, InsertMessage, startReplication, connectReplication, stopReplication, startPhysicalReplication, ReplicationCallback, connectReplication, RelationInfo