4. External types

Types referenced by the generated module pages but owned elsewhere — the postgres_stmt statement module, the raw postgres libpq binding, and daslang’s daslib/sql core. This page anchors their labels so the generated pages link without dangling references; follow the upstream links for the authoritative definitions. (Daslang-core types such as Result / Option resolve against the daslang documentation via intersphinx.)

4.1. postgres_stmt::PgStmt

The provider statement handle spliced into _sql-emitted bind/reader blocks. libpq has no per-index bind API — PQexecParams takes the whole parameter set at execute time — so the handle accumulates three parallel arrays (text-format value, NULL flag, explicit type OID) during the bind block, then carries the executed PGresult and the current row for the readers. User code never constructs one; the run_select family owns its lifecycle.

4.2. postgres::PGconn

The raw libpq connection handle (libpq documentation), owned by SqlRunner and passed to PQ* functions when dropping below the boost layer.

4.3. postgres::PGresult

The raw libpq result handle (libpq exec documentation) — a fully materialized query result read by (row, column). Owned by the runner helpers; PgStmt.res points at one while rows are read.

4.4. sql::SqlType

Daslang’s abstract SQL storage class (Integer / Real / Text / Blob / Null, from daslib/sql). The provider renders it to PostgreSQL spellings via postgres_sql_typeBIGINT / DOUBLE PRECISION / TEXT / BYTEA.

4.5. sql::SqlError

Option<string> from daslib/sqlnone on success, some(errmsg) on failure. The return type of every try_* helper that has no payload.