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 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)

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, PgTimeoutError, ErrorField, initRow, addCString, PgError, RowData, addBindRaw, encodeParse, addInt16, TransactionStatus, FrontendMessageKind, isBinarySafeOid, syncMsg, 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, PgListenError, getErrorField, addClose, DefaultMaxBackendMessageLen, patchMsgLen, encodeCancelRequest, addCopyFieldInt16, formatError, addFlush, Row, addCopyFieldFloat64, reuseRowData, ParseState, encodeBind, clone, 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, parseDataRowInto, encodeSASLInitialResponse, pgCopyBinaryHeader, addInt64, encodeInt16, encodeSync, addCopyFieldBool, encodeExecute, addCopyFieldInt32, 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, toPgBinaryTimestampTzParam, getXmlArrayOpt, getUuidArrayOpt, decodeMultirangeBinaryRaw, get, $, toPgParamInline, writeParamOid, toPgParam, getTimestampArrayOpt, writeBytesAt, getBoolOpt, getTsQueryArrayOpt, pgArrayArrayOid, toPgParam, encodePgArrayElement, decodePgArrayElement, getInt64Array, getPointOpt, getTsMultirange, toPgParam, get, affectedRows, getXml, getInt4Range, getInt, ==, getDate, decodePgArrayElement, getTsMultirangeArray, get, pgArrayElemOid, pgArrayElemOid, <=, getPolygon, ==, PgQueryError, getTsQueryArrayOpt, get, toPgParam, pgArrayArrayOid, getTime, parseAffectedRowsRaw, ==, getStrArray, toPgParam, getDateMultirangeArray, appendBytes, getTsVectorArrayOpt, ==, toPgBinaryParam, getInt4Multirange, PgNullError, getXmlOpt, OidVarchar, toPgParam, fromBE64, getCircleArray, decodeDateRangeBinary, getHstoreArrayOpt, getCircle, encodePgArrayElement, emptyRange, pgArray, $, getTsMultirangeArrayOpt, toPgBinaryParam, getDateOpt, toPgParam, getPointArray, pgArray, getNumRangeOpt, get, PgMultirange, getTimestampArray, pgArrayElemOid, OidTimestampTzArray, paramOidOf, encodeNumericBinary, getXmlArrayOpt, $, OidXmlArray, OidMacAddr, toPgBinaryParam, toPgParamInline, getTsMultirangeOpt, getNumericOpt, writeBE64, toPgParam, getTimestamp, isNull, parseTimeTzText, getInt64ArrayElemOptOpt, OidMoneyArray, pgArrayElemOid, $, OidInt8MultirangeArray, OidPolygonArray, toPgParamInline, OidFloat4Array, get, writeParamOid, encodePgArrayElement, decodePointBinary, $, getLseg, OidRecord, toPgParam, isZero, getTsRange, getInterval, toPgBinaryParam, getTsTzMultirange, expectedElemCount, OidTsMultirangeArray, getTimestampTzArrayOpt, isBinaryCol, get, getJsonArrayOpt, getTimestampArrayOpt, get, writeParamFormat, toPgBinaryParam, ==, getTimestampTzOpt, getInt4RangeArray, toPgParam, $, [], get, $, toPgBinaryParam, toPgParam, toPgBinaryParam, PgPath, getBytesArrayOpt, pgArrayArrayOid, toPgParam, get, toPgParam, $, decodePgArrayElement, getTsVectorOpt, encodePgArrayElement, OidMoney, OidInt4MultirangeArray, 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, getMacAddr8Opt, toPgTsTzMultirangeArrayParam, getStrArrayElemOpt, getFloatOpt, PgConnectionError, OidLine, PgTsVector, toPgBinaryParam, OidInet, OidJson, getCircleOpt, getInt, getTsTzMultirangeArray, nameAccessor, decodeTsRangeBinary, ResultFormat, toPgDateMultirangeParam, toPgBinaryParam, paramOidOf, getMoneyArray, ==, getInt8RangeArrayOpt, getTimestampTzArray, getTimeTz, getBoolArrayOpt, decodePgArrayElement, getBoolArrayElemOpt, get, getTsMultirangeArray, getBitArrayOpt, writeParamValue, writeParamValue, toPgParam, get, pgArrayElemOid, encodePgArrayElement, get, OidInt2Array, toPgBinaryDateMultirangeArrayParam, get, getNumRange, getMacAddrOpt, pgArrayElemOid, toPgParam, pgArrayElemOid, <=, rangeOf, getInet, $, toPgDateRangeParam, OidCidrArray, getInt64Array, get, writeBE16, getTimeOpt, pgArrayElemOid, getPolygon, OidInt2, pgArrayArrayOid, ==, $, toPgBinaryParam, getTsTzMultirangeArrayOpt, getInt4Range, getIntArrayElemOpt, PgNumericSign, get, encodePgArrayElement, getTsRange, get, getPathOpt, ==, toPgParam, toPgParam, toPgParam, getNumRangeArrayOpt, toPgParam, pgArrayArrayOid, toPgBinaryParam, getFloat, getPathArray, get, OidNumRangeArray, getInt8MultirangeArray, ==, len, getNumericArray, getTsTzRangeArrayOpt, encodePgArrayElement, toPgParam, getTimestampOpt, get, getTsTzRange, PgParamInline, pgArrayArrayOid, OidByteaArray, ==, toPgParam, getInt4MultirangeArray, PgMacAddr8, getTsRangeArray, getStrArray, encodePgArrayElement, toPgParam, PgInet, getTsTzRangeArray, getInt4MultirangeArray, pgArrayArrayOid, pgArrayArrayOid, ==, pgArrayArrayOid, decodeBinaryArray, get, toPgBinaryParam, getFloatArrayElemOptOpt, getTimeTzArrayOpt, pgArrayArrayOid, getNumMultirangeOpt, OidCidr, writeParamOid, getDateRange, getDateMultirangeArray, ==, getBitArray, pgArrayArrayOid, getTimeTzOpt, get, toPgBinaryParam, get, get, getXmlArray, getInt64ArrayElemOpt, decodePgArrayElement, getTsRangeArray, OidInt4RangeArray, getMoneyArrayOpt, toBE32, toPgRangeParam, ==, toPgParam, OidDateMultirange, OidIntervalArray, getBoolArray, getEnumArrayElemOpt, toPgParam, toPgParamInline, OidJsonbArray, parseMultirangeText, getTsVectorArray, getLineArray, getTsVector, decodeBinaryComposite, pgArrayArrayOid, get, toPgParam, getBoxArrayOpt, PgTypeError, OidText, getLine, getIntArray, getTsTzRangeOpt, encodePgArrayElement, getNumMultirangeOpt, pgArrayElemOid, get, OidDateArray, PgLseg, cellInfo, get, get, getDateArrayOpt, writeParamOid, fromPgText, getBool, getTsMultirangeOpt, toPgTsTzMultirangeParam, getFloat32ArrayElemOpt, getHstoreArrayOpt, getInetOpt, getFloatArray, parsePgMoney, getCircle, toPgParam, getCircleArrayOpt, getMacAddrArray, getInt64, encodePgArrayElement, toPgBinaryParam, getIntOpt, getInt16, parseTimeText, getTsQueryArray, toPgBinaryParam, parsePgNumeric, PgRangeBound, ==, pgArrayElemOid, pgArray, $, getBitArray, toPgBinaryParam, getHstoreOpt, $, ndim, toPgParam, getTimeArrayOpt, get, getHstoreOpt, OidInt8RangeArray, getTsMultirangeArrayOpt, writeParamValue, rangeUpperInc, writeParamFormat, get, colTypeOid, getHstore, $, get, getArrayNDOpt, getUuidOpt, pgArrayArrayOid, getDateOpt, getStrArrayOpt, toPgBinaryParam, decodePgArrayElement, get, <, OidTimestamp, OidBoolArray, getStrOpt, OidNumericArray, decodeHstoreBinary, decodePgArrayElement, get, OidMacAddr8Array, getNumMultirangeArray, getInt8MultirangeOpt, getTsVectorOpt, getBox, getMoneyArrayND, toPgBinaryParam, getIntervalArray, OidBox, $, decodePgArrayElement, toPgParam, toPgBinaryTsTzMultirangeParam, toMultirange, get, toPgTimestampArrayParam, getEnumArray, encodePgArrayElement, writeBE32, getJsonOpt, getFloat32Array, PgError, getTimestampArray, getEnum, PgMacAddr, pgArrayElemOid, decodeBinaryTime, getDomain, getDomainOpt, getDateMultirangeArrayOpt, getBox, getTimeTzArray, getTsVectorArrayOpt, toPgParam, toBE64, writeParamFormat, getFloatArrayElemOpt, OidPoint, addBindDirect, columnMap, toPgParam, PgLine, OidFloat8, getDateRangeOpt, getBoolArray, PgTimeoutError, getPolygonOpt, $, addParse, getPathArrayOpt, get, ==, toPgParamInline, getBoolOpt, encodePgArrayElement, getPointOpt, getTsQuery, encodeHstoreText, getTime, ==, toPgBinaryParam, getInt4RangeOpt, getDateMultirange, toPgParam, toString, getInt8MultirangeArrayOpt, toPgParamInline, getUuidArrayOpt, PgTime, getInt16ArrayElemOptOpt, get, $, toPgParam, getMoneyOpt, toPgBinaryParam, getInt16Array, getTimeTz, RelOff, getCircleArray, get, toPgParam, getLineOpt, getIntArrayElemOptOpt, getUuid, getXmlOpt, getPolygonArrayOpt, getInt16Opt, PgListenError, getBytes, getMacAddr8ArrayOpt, getBoxOpt, getLineArray, toPgParam, getTsVector, pgArrayArrayOid, pgArrayElemOid, PgTimeTz, encodePgArrayElement, toPgParam, getTsRangeArrayOpt, getTimestampOpt, pgArrayArrayOid, getInt4RangeArray, getTsTzRangeArray, pgArrayArrayOid, get, getTimeTzArrayOpt, toPgBinaryDateRangeParam, isNull, get, encodeBinaryArray, toPgParam, OidBitArray, toPgParamInline, getIntArrayElemOptOpt, pgArrayArrayOid, getLsegArray, getInt4MultirangeOpt, toPgDateMultirangeArrayParam, addBind, getBool, pgArrayElemOid, getTsRangeOpt, getInt64, getInt4RangeArrayOpt, pgArrayElemOid, OidPolygon, getTsTzMultirangeOpt, $, getTsTzRangeArrayOpt, toRow, toPgBinaryDateMultirangeParam, getTsQueryArray, getStrArrayElemOptOpt, toPgParam, get, getLine, getInt4MultirangeOpt, OidNumRange, >, getPolygonOpt, get, encodePgArrayElement, toPgTsMultirangeArrayParam, encodePointBinary, get, get, toPgParam, getPolygonArrayOpt, getMacAddr8ArrayOpt, OidVarbit, decodeBinaryDate, getInt8RangeArray, parseRangeText, toPgParamInline, getDateMultirangeArrayOpt, pgArrayElemOid, decodePgArrayElement, get, getBoolArrayElemOpt, encodePgArrayElement, cmp, OidJsonb, OidTimeTz, get, PgArrayMaxDim, getInt8Multirange, get, OidNumMultirange, toPgBinaryParam, get, OidTimeTzArray, getTimeArrayOpt, getMacAddr, getInt8Multirange, getDate, getDateRangeArrayOpt, hash, get, $, getMoney, get, getLseg, PgNoRowsError, writeParamOid, getEnumArrayOpt, toPgBinaryParam, OidTextArray, writeParamOid, getCompositeOpt, pgArray, encodePgArrayElement, toPgBinaryParam, OidTsTzRangeArray, getBitOpt, paramOidOf, writeParamValue, getInt16ArrayElemOpt, getPathOpt, encodePgArrayElement, parsePointText, getTimestampTzArray, getFloat32, writeParamValue, getNumRangeArray, get, isEmpty, getInt16, pgArrayElemOid, encodeBinaryArray, getIntervalOpt, getIntArrayOpt, writeParamFormat, getInt16ArrayOpt, OidInt4, getNumRangeOpt, OidDateMultirangeArray, getInetOpt, getLsegArrayOpt, getNumeric, toPgBinaryParam, getFloat32Opt, getNumericArrayOpt, getMacAddrArrayOpt, getTsRangeOpt, OidTsQuery, getDateArray, getPath, get, toPgParam, encodeBinaryComposite, PgNumeric, getStrArrayOpt, hash, pgEnum, getNumRangeArray, OidInt4Multirange, getMoneyOpt, OidNumeric, getTsTzRange, get, toPgBinaryParam, getCircleArrayOpt, getJson, $, OidInt4Array, toPgParam, get, toPgBinaryParam, OidTimeArray, decodePgArrayElement, get, getJsonArrayOpt, getLineArrayOpt, PgCircle, toPgParam, RangeBinaryRaw, encodePgArrayElement, get, toPgBinaryParam, getPath, getIntOpt, getDateArrayOpt, toPgBinaryParam, OidXml, getXml, toPgBinaryParam, getInt4RangeArrayOpt, writeParamOid, toPgBinaryParam, getStrArrayElemOptOpt, OidPointArray, toPgBinaryParam, OidInt4Range, toPgBinaryParam, ==, getInetArray, getCidrArray, paramOidOf, toPgDateArrayParam, getTsMultirange, getTsTzMultirangeOpt, OidPathArray, get, decodePgArrayElement, toPgParam, ==, writeParamOid, $, toPgParam, toPgParam, getTsQueryOpt, +, pgArray, PgArray, [], PgXml, getBoolArrayElemOptOpt, encodePgArrayElement, toPgBinaryParam, get, get, OidFloat4, writeParamFormat, $, parseCompositeText, toPgMoneyArrayNDParam, getTimeArray, toPgParam, writeParamFormat, getUuidArray, getBitOpt, toPgParam, toPgTimestampTzParam, toPgBinaryParam, toPgParam, paramOidOf, getInt8RangeArrayOpt, decodeBinaryTsVector, getInt64ArrayElemOpt, writeParamValue, pgComposite, rangeFrom, $, get, toPgBinaryTsTzRangeParam, getNumericArray, OidPath, toPgBinaryParam, getPathArray, getFloat32ArrayElemOpt, get, toPgParam, OidNumMultirangeArray, pgArrayArrayOid, OidTsTzMultirange, getBoolArrayElemOptOpt, writeParamValue, get, getXmlArray, toPgParam, decodeInt8RangeBinary, getDateRangeArray, decodePgArrayElement, columnIndex, toBytes, getLsegArray, toPgParam, parseInetText, OidInt8, toPgBinaryParam, getFloat32, $, writeParamValue, writeParamValue, get, pgArrayArrayOid, getFloatArray, decodePgArrayElement, OidTsVector, getInt8MultirangeArray, OidBit, $, PgTsQuery, encodePgArrayElement, getMacAddr, getInterval, getMacAddr8Opt, getFloatArrayElemOpt, toPgParam, get, toPgParamInline, getMoney, getDateMultirange, toPgBinaryTsTzMultirangeArrayParam, OidUuidArray, getMoneyArrayNDOpt, toPgBinaryParam, 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, OidMacAddr8, decodeNumRangeBinary, getBytesOpt, getBit, toPgBinaryParam, getBoxArray, paramOidOf, getTsTzMultirange, parseBitString, toPgParam, decodeFloat64BE, toPgBinaryParam, get, getInt8MultirangeArrayOpt, getMacAddrArray, pgArrayArrayOid, OidTsQueryArray, getNumeric, toPgMultirangeParam, toPgBinaryParam, decodePgArrayElement, ProtocolError, decodePgArrayElement, get, pgDomain, pgParams, writeParamFormat, OidUuid, toPgDateRangeArrayParam, pgArrayArrayOid, decodePgArrayElement, getTsTzRangeOpt, getNumericArrayOpt, getIntervalArrayOpt, getLsegOpt, getMacAddr8, <, getHstoreArray, getLsegOpt, toPgParamInline, toPgParam, getFloat32ArrayElemOptOpt, toPgParam, getMacAddr8, parseIntervalText, dimsFor1D, getMacAddr8Array, getPointArrayOpt, get, getFloatArrayOpt, rangeTo, getNumMultirangeArrayOpt, OidTime, getInt64ArrayElemOptOpt, getIntArrayElemOpt, OidDateRangeArray, PgBit, toPgParam, toPgParam, PgMoney, get, getLsegArrayOpt, PgInterval, decodePgArrayElement, toPgTsTzRangeParam, getDateRangeArrayOpt, getPolygonArray, getComposite, addParseDirect, toPgParamInline, get, getLineArrayOpt, get, getFloat32ArrayOpt, toPgParam, toPgParam, getNumMultirangeArray, pgArrayElemOid, hash, getTimeArray, getCidr, getInt64ArrayOpt, getInt64Opt, toPgParam, getStrOpt, getDateRange, getStrArrayElemOpt, getFloat32ArrayElemOptOpt, toPgParam, decodePgArrayElement, encodeCompositeText, getNumericOpt, pgEpochUnix, getInt4Multirange, toPgParam, encodePgArrayElement, OidMacAddrArray, OidTsMultirange, CommandResult, paramOidOf, getFloatOpt, getIntervalArray, toPgParam, getTimestamp, validate, PgBitMaxBits, getNumMultirange, columnIndex, toPgBinaryParam, getInt64Opt, >=, PgNotifyOverflowError, $, toPgBinaryParam, decodePgArrayElement, PgBox, OidInt8Range, writeParamFormat, getHstoreArray, getInt16Opt, toPgParam, toPgParam, OidBoxArray, parsePointsText, toPgBinaryParam, rangeHasLower, getCircleOpt, decodeNumericBinary, encodeHstoreBinary, get, getTimeTzOpt, getStr, getTsTzMultirangeArrayOpt, get, OidDate, getNumRangeArrayOpt, rangeHasUpper, ==, getStr, toPgParam, getJsonArray, parseAffectedRows, toPgBinaryParam, getUuid, getNumMultirangeArrayOpt, OidCircleArray, getBoxArrayOpt, writeParamOid, getTimeOpt, decodePgArrayElement, toPgParam, get, initCommandResult, unboundedRange, getJsonOpt, get, encodePgArrayElement, toPgParam, getInt4MultirangeArrayOpt, len, getTsQuery, fromBE16, toPgBinaryParam, decodeBinaryTimeTz, encodeEnumTextArray, getDateRangeArray, getHstore, OidInt8Array, OidTsVectorArray, getArrayND, get, getInt8RangeOpt, getMoneyArray, OidTsRangeArray, toPgParam, toPgParam, toPgByteaArrayParam, getBoxArray, items, ==, getFloat32Array, getInt16ArrayElemOptOpt, PgInlineBufSize, getInt16Array, toPgBinaryDateParam, getBytes, getBytesArrayOpt, encodePgArrayElement, getInt8RangeOpt, getBytesArray, getInet, toPgParam, OidTsTzMultirangeArray, get, OidInetArray, toPgParam, getMoneyArrayOpt, get, toPgBinaryParam, getPointArrayOpt, getEnumOpt, writePointAt, getTsQueryOpt, validatePgArrayShape, decodePgArrayElement, get, pgArrayElemOid, getInt8Range, parseHstoreText, getFloatArrayOpt, bufView, OidLsegArray, PgHstore, getInt16ArrayElemOpt, OidTimestampTz, decodePgArrayElement, toPgDateParam, toPgParam, getInetArrayOpt, pgEnum, toPgBinaryParam, getPolygonArray, readString, getMacAddrOpt, getBit, PgPoolError, PgPolygon, getBitArrayOpt, toPgParam, OidDateRange, readBytes, toPgBinaryParam, writeParamValue, pgArrayArrayOid, toPgParamInline, ==, getInt8MultirangeOpt, OidLseg, get, getTsRangeArrayOpt, toPgParam, PgPoint, getDateMultirangeOpt, getInt4MultirangeArrayOpt, paramOidOf, PgCidr, getInt8Range, getTimeTzArray, parseTimestampText, getInt4RangeOpt, getFloat32ArrayOpt, getPoint, toPgParam, pgArrayElemOid, PgRange, getTimestampTz, decodeBinaryTsQuery, toPgParam, pgArrayElemOid, getInt64ArrayOpt, encodePgArrayElement, toPgParam, getTimestampTzArrayOpt, decodeBinaryTimestamp, get, getNumMultirange, pgEnum, writeParamFormat, toPgBinaryParam, ==, OidTsRange, toPgParam, getInetArray, rangeEmpty, initPgMoney, OidInt8Multirange, getTsTzMultirangeArray, OidVarbitArray, decodeInetBinary, formatPgMoney, getNumRange, pgArrayElemOid, get, paramOidOf, OidVarcharArray, getMacAddr8Array, toPgParam, decodeInt4RangeBinary, OidTimestampArray, rangeLowerInc, toPgParam, getCidr, getCidrOpt, decodeRangeBinaryRaw, getPoint, getTimestampTz, pgArrayElemOid, OidFloat8Array, getCidrArray, toPgBinaryDateRangeArrayParam, getDateRangeOpt, paramOidOf, getInetArrayOpt, toPgParam, getCidrOpt, toPgTsTzRangeArrayParam, PgTimeoutError, simpleExec, clearStmtCache, CopyInInfo, TraceCopyStartData, sendRawBytes, AuthMethod, filterSaslByRequireAuth, ping, HostEntry, ChannelBindingMode, socketHasFin, TracePrepareEndData, TracePoolReleaseEndData, cancelNoWait, newPgQueryError, TraceQueryEndData, PgConnState, fillRecvBuf, listenPump, NoticeCallback, CopyResult, waitNotification, unixSocketPath, parseDsn, PgTypeError, connect, QueryResult, PgNoRowsError, PgNullError, CopyOutInfo, removeStmtCache, closeTransport, TraceCopyEndData, dispatchNotification, columnIndex, fireDeprecatedAuth, PgNotifyOverflowError, listen, fireInsecureAuth, cancel, reconnectInPlace, TracePoolAcquireStartData, PgConnection, getHosts, configureKeepalive, TraceConnectStartData, selectScramMechanism, parseChannelBindingMode, makeCopyOutCallback, parseRequireAuth, CopyOutCallback, TracePoolReleaseStartData, isUnixSocket, recvMessage, RowCallback, simpleExecImpl, connectToHost, lookupStmtCache, TraceContext, TracePoolCloseErrorData, TraceLeakedSessionLocksData, checkReady, nextMessage, checkSessionAttrs, Notice, negotiateSSL, flushPendingStmtCloses, Notification, fireCleanupSkipped, onNotify, PgTracer, unlisten, isConnected, evictStmtCache, TraceConnectEndData, sendBufMsg, TargetSessionAttrs, TransportCloseStage, parseUriDsn, PgError, CleanupSkipReason, quoteIdentifier, SslMode, configureTcpNoDelay, effectiveMaxMessageSize, sendMsg, parsePort, dispatchNotice, addStmtCache, TraceQueryStartData, CopyInCallback, invalidateOnTimeout, simpleQueryImpl, ConnConfig, TracePoolAcquireEndData, PgConnectionError, initConnConfig, PgPoolOwner, enforceAuthAllowed, applyParam, onListenError, PgPoolError, TCP_KEEPCNT, withConnTracing, simpleQuery, parseTargetSessionAttrs, TracePipelineEndData, PgListenError, CleanupKind, TraceTransportCloseErrorData, makeCopyInCallback, sendRawData, TCP_KEEPINTVL, parseKeyValueDsn, TraceDeprecatedAuthData, TraceCopyDirection, withTracing, close, MSG_DONTWAIT, stopListening, PgQueryError, nextStmtName, flushPendingStmtCloses, TracePipelineStartData, connect, TracePrepareStartData, NotifyCallback, TraceCleanupSkippedData, items, TCP_KEEPIDLE, RecvBufSize, compactRecvBuf, lookupTypeOids, bytesToString, CachedStmt, len, TraceInsecureAuthData, rows, parseSslMode, ProtocolError, parseAuthMethod, TypeOidInfo, TCP_NODELAY, startListening, copyIn, prepareImpl, executeIsolated, exec, queryEach, addQuery, PipelineOp, PreparedStatement, isRetryableTxError, addExec, Pipeline, AccessMode, copyIn, newPipeline, execImpl, copyInStream, DeferrableMode, queryDirect, withSavepoint, buildRollbackCleanup, queryColumn, exec, PipelineResult, hasReturnStmt, copyOutStreamImpl, copyInStreamImpl, queryImpl, queryDirectRunImpl, withTransactionRetryDeadline, backoffDelayMs, PipelineOpKind, notify, queryValueOpt, addQuery, queryValueOrDefault, TransactionOptions, columnIndex, execInlineImpl, queryImpl, queryInTransaction, 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, 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, TruncateMessage, currentPgTimestamp, timelineHistory, parseReplicationMessage, RelationCache, pgEpochOffset, $, CommitMessage, <=, RelationColumn, TimelineHistory, TupleField, receivedEndLsn, <, InvalidLsn, SystemInfo, LogicalMessage, ReplicationMode, TypeMessage, toString, BeginMessage, identifySystem, PgOutputMessage, OriginMessage, toInt64, readReplicationSlot, >, UpdateMessage, PrimaryKeepalive, Lsn, createReplicationSlot, TupleDataKind, sendStandbyStatus, parsePgOutputMessage, parseLsn, XLogData, ReplicationMessageKind, makeReplicationCallback, InsertMessage, startReplication, connectReplication, stopReplication, startPhysicalReplication, ReplicationCallback, connectReplication, RelationInfo