@typed-sql/postgres 1.0.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/CHANGELOG.md +113 -0
  2. package/README.md +29 -4
  3. package/dist/packages/postgres/src/bulk.d.ts +30 -0
  4. package/dist/packages/postgres/src/bulk.d.ts.map +1 -0
  5. package/dist/packages/postgres/src/bulk.js +228 -0
  6. package/dist/packages/postgres/src/bulk.js.map +1 -0
  7. package/dist/packages/postgres/src/index.d.ts +5 -1
  8. package/dist/packages/postgres/src/index.d.ts.map +1 -1
  9. package/dist/packages/postgres/src/index.js +17 -4
  10. package/dist/packages/postgres/src/index.js.map +1 -1
  11. package/dist/packages/postgres/src/pg.d.ts +57 -2
  12. package/dist/packages/postgres/src/pg.d.ts.map +1 -1
  13. package/dist/packages/postgres/src/pg.js +346 -2
  14. package/dist/packages/postgres/src/pg.js.map +1 -1
  15. package/dist/packages/postgres/src/provider.d.ts +2 -1
  16. package/dist/packages/postgres/src/provider.d.ts.map +1 -1
  17. package/dist/packages/postgres/src/provider.js +3 -1
  18. package/dist/packages/postgres/src/provider.js.map +1 -1
  19. package/dist/packages/postgres/src/resolver.d.ts.map +1 -1
  20. package/dist/packages/postgres/src/resolver.js +11 -1
  21. package/dist/packages/postgres/src/resolver.js.map +1 -1
  22. package/dist/packages/postgres/src/routing.d.ts +22 -0
  23. package/dist/packages/postgres/src/routing.d.ts.map +1 -0
  24. package/dist/packages/postgres/src/routing.js +70 -0
  25. package/dist/packages/postgres/src/routing.js.map +1 -0
  26. package/dist/packages/postgres/src/runtime.d.ts +14 -1
  27. package/dist/packages/postgres/src/runtime.d.ts.map +1 -1
  28. package/dist/packages/postgres/src/runtime.js +440 -28
  29. package/dist/packages/postgres/src/runtime.js.map +1 -1
  30. package/dist/packages/postgres/src/semantics.d.ts +5 -0
  31. package/dist/packages/postgres/src/semantics.d.ts.map +1 -0
  32. package/dist/packages/postgres/src/semantics.js +211 -0
  33. package/dist/packages/postgres/src/semantics.js.map +1 -0
  34. package/dist/packages/postgres/src/stream.d.ts +7 -7
  35. package/dist/packages/postgres/src/stream.d.ts.map +1 -1
  36. package/dist/packages/postgres/src/stream.js.map +1 -1
  37. package/dist/packages/postgres/src/version.d.ts +2 -0
  38. package/dist/packages/postgres/src/version.d.ts.map +1 -0
  39. package/dist/packages/postgres/src/version.js +2 -0
  40. package/dist/packages/postgres/src/version.js.map +1 -0
  41. package/package.json +4 -4
@@ -1,14 +1,22 @@
1
+ import type { DatabaseObserver, LiveQueryVerifier, QueryPlanInspector } from "@typed-sql/core";
1
2
  import type { Pool as PgPool, PoolConfig } from "pg";
2
- import type { PostgresSchemaSnapshot, PostgresTypePolicy } from "./index.js";
3
+ import type { PostgresSchemaSnapshot } from "./index.js";
3
4
  import { type PostgresQueryable } from "./provider.js";
4
5
  import { type PostgresDatabase, type PostgresPoolLike, type PostgresQueryConfig } from "./runtime.js";
6
+ import { type PostgresTypePolicy } from "./type-policy.js";
5
7
  export interface PgCursorConstructor {
6
8
  new (text: string, values?: readonly unknown[], config?: {
7
9
  readonly types?: PostgresQueryConfig["types"];
8
10
  }): unknown;
9
11
  }
10
12
  export type PgCursorImporter = () => Promise<unknown>;
13
+ export interface PgCopyStreamsModule {
14
+ readonly from: (statement: string) => unknown;
15
+ readonly to: (statement: string) => unknown;
16
+ }
17
+ export type PgCopyStreamsImporter = () => Promise<unknown>;
11
18
  export declare function loadPgCursorDriver(importer?: PgCursorImporter): Promise<PgCursorConstructor>;
19
+ export declare function loadPgCopyStreams(importer?: PgCopyStreamsImporter): Promise<PgCopyStreamsModule>;
12
20
  export interface PgOptions {
13
21
  readonly connectionString: string | (() => string | Promise<string>);
14
22
  readonly poolConfig?: Omit<PoolConfig, "connectionString" | "query_timeout" | "types">;
@@ -16,6 +24,9 @@ export interface PgOptions {
16
24
  readonly decimal?: (value: string) => unknown;
17
25
  /** Host-injected loader for workspaces or runtimes with nonstandard package resolution. */
18
26
  readonly cursorImporter?: PgCursorImporter;
27
+ /** Host-injected loader for the optional pg-copy-streams bulk protocol package. */
28
+ readonly copyStreamsImporter?: PgCopyStreamsImporter;
29
+ readonly observer?: DatabaseObserver;
19
30
  }
20
31
  export interface PgSchemaProviderOptions {
21
32
  readonly connectionString?: string | (() => string | Promise<string>);
@@ -23,8 +34,52 @@ export interface PgSchemaProviderOptions {
23
34
  readonly schemas?: readonly string[];
24
35
  readonly typePolicy?: PostgresTypePolicy;
25
36
  }
37
+ export interface PgLiveVerifierClient {
38
+ query<Row extends Record<string, unknown>>(sql: string, values?: readonly unknown[]): Promise<{
39
+ readonly rows: readonly Row[];
40
+ }>;
41
+ release(error?: Error | boolean): void;
42
+ }
43
+ export interface PgLiveVerifierPool {
44
+ query<Row extends Record<string, unknown>>(sql: string, values?: readonly unknown[]): Promise<{
45
+ readonly rows: readonly Row[];
46
+ }>;
47
+ connect(): Promise<PgLiveVerifierClient>;
48
+ end(): Promise<void>;
49
+ }
50
+ export interface PgLiveVerifierOptions {
51
+ readonly connectionString?: string | (() => string | Promise<string>);
52
+ readonly pool?: PgLiveVerifierPool;
53
+ readonly poolConfig?: Omit<PoolConfig, "connectionString">;
54
+ readonly typePolicy?: PostgresTypePolicy;
55
+ readonly schema?: PostgresSchemaSnapshot;
56
+ readonly driverImporter?: () => Promise<typeof import("pg")>;
57
+ }
58
+ export interface PgPlanInspectorOptions {
59
+ readonly connectionString?: string | (() => string | Promise<string>);
60
+ readonly pool?: PgPlanInspectorPool;
61
+ readonly poolConfig?: Omit<PoolConfig, "connectionString">;
62
+ readonly driverImporter?: () => Promise<typeof import("pg")>;
63
+ }
64
+ export interface PgPlanInspectorClient {
65
+ query<Row extends Record<string, unknown>>(sql: string, values?: readonly unknown[]): Promise<{
66
+ readonly rows: readonly Row[];
67
+ }>;
68
+ release(error?: Error | boolean): void;
69
+ }
70
+ export interface PgPlanInspectorPool {
71
+ query<Row extends Record<string, unknown>>(sql: string, values?: readonly unknown[]): Promise<{
72
+ readonly rows: readonly Row[];
73
+ }>;
74
+ connect(): Promise<PgPlanInspectorClient>;
75
+ end(): Promise<void>;
76
+ }
26
77
  export declare function loadPgDriver(importer?: () => Promise<typeof import("pg")>): Promise<typeof import("pg")>;
27
- export declare function adaptPgPool(pool: PgPool, cursorImporter?: PgCursorImporter): PostgresPoolLike;
78
+ /** Creates a lazy adapter over PostgreSQL PREPARE and pg_prepared_statements. */
79
+ export declare function createPgLiveVerifier(options: PgLiveVerifierOptions): LiveQueryVerifier;
80
+ /** Creates a lazy, non-executing adapter over PostgreSQL structured EXPLAIN. */
81
+ export declare function createPgPlanInspector(options: PgPlanInspectorOptions): QueryPlanInspector;
82
+ export declare function adaptPgPool(pool: PgPool, cursorImporter?: PgCursorImporter, copyStreamsImporter?: PgCopyStreamsImporter): PostgresPoolLike;
28
83
  export declare function createPgDatabase(options: PgOptions): Promise<PostgresDatabase>;
29
84
  export declare function pg(options: PgSchemaProviderOptions): {
30
85
  introspect(): Promise<PostgresSchemaSnapshot>;
@@ -1 +1 @@
1
- {"version":3,"file":"pg.d.ts","sourceRoot":"","sources":["../../../../src/pg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,MAAM,EAAc,UAAU,EAAe,MAAM,IAAI,CAAC;AAC9E,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,KAAK,iBAAiB,EAA0B,MAAM,eAAe,CAAC;AAC/E,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EAEzB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,mBAAmB;IAClC,KACE,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE,EAC3B,MAAM,CAAC,EAAE;QACP,QAAQ,CAAC,KAAK,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;KAC/C,GACA,OAAO,CAAC;CACZ;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;AAqBtD,wBAAsB,kBAAkB,CACtC,QAAQ,GAAE,gBAA0C,GACnD,OAAO,CAAC,mBAAmB,CAAC,CAY9B;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACrE,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,kBAAkB,GAAG,eAAe,GAAG,OAAO,CAAC,CAAC;IACvF,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,2FAA2F;IAC3F,QAAQ,CAAC,cAAc,CAAC,EAAE,gBAAgB,CAAC;CAC5C;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACtE,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;CAC1C;AAED,wBAAsB,YAAY,CAChC,QAAQ,GAAE,MAAM,OAAO,CAAC,cAAc,IAAI,CAAC,CAAsB,GAChE,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC,CAW9B;AAsCD,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,cAAc,GAAE,gBAA0C,GACzD,gBAAgB,CAqFlB;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAcpF;AAED,wBAAgB,EAAE,CAAC,OAAO,EAAE,uBAAuB,GAAG;IAAE,UAAU,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAAA;CAAE,CAiBtG"}
1
+ {"version":3,"file":"pg.d.ts","sourceRoot":"","sources":["../../../../src/pg.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,18 @@
1
+ import { createHash } from "node:crypto";
2
+ import { once } from "node:events";
3
+ import { finished } from "node:stream/promises";
1
4
  import { PostgresSchemaProvider } from "./provider.js";
2
5
  import { createPostgresDatabase, } from "./runtime.js";
6
+ import { defaultPostgresTypePolicy, isKnownPostgresType, mapPostgresType, } from "./type-policy.js";
3
7
  const pgCursorPackage = "pg-cursor";
8
+ const pgCopyStreamsPackage = "pg-copy-streams";
4
9
  const queryTimeoutError = "@typed-sql/postgres/pg does not accept pg query_timeout because pg can reject before the connection is ready for reuse; use PostgreSQL statement_timeout instead";
5
10
  async function defaultPgCursorImporter() {
6
11
  return import(pgCursorPackage);
7
12
  }
13
+ async function defaultPgCopyStreamsImporter() {
14
+ return import(pgCopyStreamsPackage);
15
+ }
8
16
  function pgCursorConstructor(module) {
9
17
  const candidate = typeof module === "object" && module !== null && "default" in module
10
18
  ? module.default
@@ -25,6 +33,24 @@ export async function loadPgCursorDriver(importer = defaultPgCursorImporter) {
25
33
  throw error;
26
34
  }
27
35
  }
36
+ export async function loadPgCopyStreams(importer = defaultPgCopyStreamsImporter) {
37
+ try {
38
+ const module = await importer();
39
+ if (typeof module !== "object" ||
40
+ module === null ||
41
+ typeof module.from !== "function" ||
42
+ typeof module.to !== "function") {
43
+ throw new TypeError("The application-owned pg-copy-streams package must export from() and to() factories");
44
+ }
45
+ return module;
46
+ }
47
+ catch (error) {
48
+ if (error instanceof Error && "code" in error && error.code === "ERR_MODULE_NOT_FOUND") {
49
+ throw new Error("@typed-sql/postgres/pg COPY requires the application-owned pg-copy-streams package. Install it with: pnpm add pg-copy-streams", { cause: error });
50
+ }
51
+ throw error;
52
+ }
53
+ }
28
54
  export async function loadPgDriver(importer = () => import("pg")) {
29
55
  try {
30
56
  return await importer();
@@ -44,6 +70,243 @@ async function connectionString(value) {
44
70
  throw new TypeError("PostgreSQL connectionString must not be empty");
45
71
  return resolved;
46
72
  }
73
+ const POSTGRES_LIVE_VERIFIER_VERSION = "postgres-prepare-v1";
74
+ /** Creates a lazy adapter over PostgreSQL PREPARE and pg_prepared_statements. */
75
+ export function createPgLiveVerifier(options) {
76
+ const ownsPool = options.pool === undefined;
77
+ let poolPromise;
78
+ let serverPromise;
79
+ const acquirePool = () => {
80
+ poolPromise ??= (async () => {
81
+ if (options.pool !== undefined)
82
+ return options.pool;
83
+ if (options.connectionString === undefined)
84
+ throw new TypeError("PostgreSQL live verification requires connectionString or pool");
85
+ const value = await connectionString(options.connectionString);
86
+ const { Pool } = await loadPgDriver(options.driverImporter);
87
+ return new Pool({ ...options.poolConfig, connectionString: value });
88
+ })();
89
+ return poolPromise;
90
+ };
91
+ const server = async () => {
92
+ serverPromise ??= (async () => {
93
+ const pool = await acquirePool();
94
+ const version = await pool.query("SELECT current_setting('server_version') AS version");
95
+ const extensions = await pool.query("SELECT extname || ':' || extversion AS extension FROM pg_extension ORDER BY extname");
96
+ return { version: version.rows[0]?.version ?? "unknown", features: extensions.rows.map((row) => row.extension) };
97
+ })();
98
+ return serverPromise;
99
+ };
100
+ return {
101
+ dialect: "postgres",
102
+ adapterVersion: POSTGRES_LIVE_VERIFIER_VERSION,
103
+ server,
104
+ async verify(request) {
105
+ if (!/^sha256:[a-f\d]{64}$/u.test(request.fingerprint)) {
106
+ throw new TypeError("PostgreSQL live verification requires a SHA-256 query fingerprint");
107
+ }
108
+ const pool = await acquirePool();
109
+ const client = await pool.connect();
110
+ const name = `typed_sql_${request.fingerprint.replace(/^sha256:/u, "").slice(0, 32)}`;
111
+ let prepared = false;
112
+ let evidence;
113
+ let failure;
114
+ try {
115
+ await client.query(`PREPARE ${name} AS ${request.sql}`);
116
+ prepared = true;
117
+ const major = Number.parseInt((await server()).version.split(".")[0] ?? "0", 10);
118
+ const metadata = await client.query(major >= 18
119
+ ? `SELECT parameter_types::text[] AS "parameterTypes", result_types::text[] AS "resultTypes" FROM pg_prepared_statements WHERE name = '${name}'`
120
+ : `SELECT parameter_types::text[] AS "parameterTypes" FROM pg_prepared_statements WHERE name = '${name}'`);
121
+ const row = metadata.rows[0];
122
+ if (row === undefined)
123
+ throw new Error("Prepared statement metadata was not returned");
124
+ const policy = options.typePolicy ?? defaultPostgresTypePolicy;
125
+ const fields = (types) => (types ?? []).map((databaseType, offset) => ({
126
+ index: offset + 1,
127
+ databaseType,
128
+ ...(isKnownPostgresType(databaseType, options.schema)
129
+ ? { tsType: mapPostgresType(databaseType, policy, options.schema) }
130
+ : {}),
131
+ }));
132
+ evidence = {
133
+ parameters: fields(row.parameterTypes),
134
+ columns: fields(row.resultTypes),
135
+ ...(major >= 18 ? {} : { unavailable: ["columns"] }),
136
+ };
137
+ }
138
+ catch (error) {
139
+ failure = error;
140
+ }
141
+ let cleanupFailure;
142
+ if (prepared) {
143
+ try {
144
+ await client.query(`DEALLOCATE ${name}`);
145
+ }
146
+ catch (error) {
147
+ cleanupFailure = error;
148
+ }
149
+ }
150
+ client.release(cleanupFailure instanceof Error ? cleanupFailure : cleanupFailure === undefined ? undefined : true);
151
+ if (failure !== undefined)
152
+ throw failure;
153
+ if (cleanupFailure !== undefined)
154
+ throw cleanupFailure;
155
+ if (evidence === undefined)
156
+ throw new Error("PostgreSQL verification produced no evidence");
157
+ return evidence;
158
+ },
159
+ async close() {
160
+ if (ownsPool && poolPromise !== undefined)
161
+ await (await poolPromise).end();
162
+ },
163
+ };
164
+ }
165
+ const POSTGRES_PLAN_INSPECTOR_VERSION = "postgres-explain-json-v1";
166
+ const postgresPlanSettings = [
167
+ "cpu_index_tuple_cost",
168
+ "cpu_operator_cost",
169
+ "cpu_tuple_cost",
170
+ "cursor_tuple_fraction",
171
+ "default_statistics_target",
172
+ "effective_cache_size",
173
+ "effective_io_concurrency",
174
+ "enable_bitmapscan",
175
+ "enable_gathermerge",
176
+ "enable_hashagg",
177
+ "enable_hashjoin",
178
+ "enable_incremental_sort",
179
+ "enable_indexonlyscan",
180
+ "enable_indexscan",
181
+ "enable_material",
182
+ "enable_memoize",
183
+ "enable_mergejoin",
184
+ "enable_nestloop",
185
+ "enable_parallel_append",
186
+ "enable_parallel_hash",
187
+ "enable_partition_pruning",
188
+ "enable_partitionwise_aggregate",
189
+ "enable_partitionwise_join",
190
+ "enable_seqscan",
191
+ "enable_sort",
192
+ "enable_tidscan",
193
+ "jit",
194
+ "max_parallel_workers_per_gather",
195
+ "min_parallel_index_scan_size",
196
+ "min_parallel_table_scan_size",
197
+ "parallel_setup_cost",
198
+ "parallel_tuple_cost",
199
+ "plan_cache_mode",
200
+ "random_page_cost",
201
+ "work_mem",
202
+ ];
203
+ function postgresPlan(value) {
204
+ const parsed = typeof value === "string" ? JSON.parse(value) : value;
205
+ const document = Array.isArray(parsed) ? parsed[0] : undefined;
206
+ const root = typeof document === "object" && document !== null && "Plan" in document
207
+ ? document.Plan
208
+ : undefined;
209
+ if (typeof root !== "object" || root === null || Array.isArray(root)) {
210
+ throw new TypeError("PostgreSQL returned an unsupported JSON plan");
211
+ }
212
+ const rootRecord = root;
213
+ const nodes = [];
214
+ const visit = (value) => {
215
+ const kind = value["Node Type"];
216
+ if (typeof kind !== "string" || kind.length === 0)
217
+ throw new TypeError("PostgreSQL plan node has no type");
218
+ const relation = value["Relation Name"];
219
+ const index = value["Index Name"];
220
+ const estimatedRows = value["Plan Rows"];
221
+ const estimatedCost = value["Total Cost"];
222
+ nodes.push({
223
+ kind,
224
+ ...(typeof relation === "string" ? { relation } : {}),
225
+ ...(typeof index === "string" ? { index } : {}),
226
+ ...(typeof estimatedRows === "number" ? { estimatedRows } : {}),
227
+ ...(typeof estimatedCost === "number" ? { estimatedCost } : {}),
228
+ });
229
+ const children = value.Plans;
230
+ if (Array.isArray(children)) {
231
+ for (const child of children) {
232
+ if (typeof child !== "object" || child === null || Array.isArray(child)) {
233
+ throw new TypeError("PostgreSQL plan child is invalid");
234
+ }
235
+ visit(child);
236
+ }
237
+ }
238
+ };
239
+ visit(rootRecord);
240
+ return {
241
+ ...(typeof rootRecord["Total Cost"] === "number" ? { totalCost: rootRecord["Total Cost"] } : {}),
242
+ ...(typeof rootRecord["Plan Rows"] === "number" ? { estimatedRows: rootRecord["Plan Rows"] } : {}),
243
+ nodes,
244
+ };
245
+ }
246
+ /** Creates a lazy, non-executing adapter over PostgreSQL structured EXPLAIN. */
247
+ export function createPgPlanInspector(options) {
248
+ const ownsPool = options.pool === undefined;
249
+ let poolPromise;
250
+ let environmentPromise;
251
+ const acquirePool = () => {
252
+ poolPromise ??= (async () => {
253
+ if (options.pool !== undefined)
254
+ return options.pool;
255
+ if (options.connectionString === undefined) {
256
+ throw new TypeError("PostgreSQL plan capture requires connectionString or pool");
257
+ }
258
+ const value = await connectionString(options.connectionString);
259
+ const { Pool } = await loadPgDriver(options.driverImporter);
260
+ return new Pool({ ...options.poolConfig, connectionString: value });
261
+ })();
262
+ return poolPromise;
263
+ };
264
+ return {
265
+ dialect: "postgres",
266
+ adapterVersion: POSTGRES_PLAN_INSPECTOR_VERSION,
267
+ parameterMode: "value-free",
268
+ async environment() {
269
+ environmentPromise ??= (async () => {
270
+ const pool = await acquirePool();
271
+ const versionResult = await pool.query("SELECT current_setting('server_version') AS version");
272
+ const settingResult = await pool.query("SELECT name, setting FROM pg_settings WHERE name = ANY($1::text[]) ORDER BY name", [postgresPlanSettings]);
273
+ const statistics = await pool.query("SELECT schemaname, relname, n_live_tup::text, n_dead_tup::text, COALESCE(last_analyze::text, '') AS last_analyze, COALESCE(last_autoanalyze::text, '') AS last_autoanalyze FROM pg_stat_all_tables WHERE schemaname NOT IN ('pg_catalog', 'information_schema') ORDER BY schemaname, relname");
274
+ return {
275
+ version: versionResult.rows[0]?.version ?? "unknown",
276
+ settings: Object.fromEntries(settingResult.rows.map((row) => [row.name, row.setting])),
277
+ statisticsFingerprint: `sha256:${createHash("sha256").update(JSON.stringify(statistics.rows)).digest("hex")}`,
278
+ };
279
+ })();
280
+ return environmentPromise;
281
+ },
282
+ async capture(request) {
283
+ if (!/^sha256:[a-f\d]{64}$/u.test(request.fingerprint)) {
284
+ throw new TypeError("PostgreSQL plan capture requires a SHA-256 query fingerprint");
285
+ }
286
+ if (request.values !== undefined && request.values.length !== request.parameterCount) {
287
+ throw new TypeError("PostgreSQL plan samples do not match the parameter count");
288
+ }
289
+ const client = await (await acquirePool()).connect();
290
+ let failure;
291
+ try {
292
+ const prefix = request.values === undefined ? "EXPLAIN (GENERIC_PLAN TRUE, FORMAT JSON) " : "EXPLAIN (FORMAT JSON) ";
293
+ const result = await client.query(`${prefix}${request.sql}`, request.values);
294
+ return postgresPlan(result.rows[0]?.["QUERY PLAN"]);
295
+ }
296
+ catch (error) {
297
+ failure = error;
298
+ throw error;
299
+ }
300
+ finally {
301
+ client.release(failure instanceof Error ? failure : failure === undefined ? undefined : true);
302
+ }
303
+ },
304
+ async close() {
305
+ if (ownsPool && poolPromise !== undefined)
306
+ await (await poolPromise).end();
307
+ },
308
+ };
309
+ }
47
310
  function validatePoolConfig(poolConfig) {
48
311
  if (poolConfig !== undefined && "query_timeout" in poolConfig)
49
312
  throw new TypeError(queryTimeoutError);
@@ -73,7 +336,7 @@ function queryConfig(config) {
73
336
  ...(config.types === undefined ? {} : { types: config.types }),
74
337
  };
75
338
  }
76
- export function adaptPgPool(pool, cursorImporter = defaultPgCursorImporter) {
339
+ export function adaptPgPool(pool, cursorImporter = defaultPgCursorImporter, copyStreamsImporter = defaultPgCopyStreamsImporter) {
77
340
  const options = pool.options;
78
341
  if (options !== undefined && "query_timeout" in options)
79
342
  throw new TypeError(queryTimeoutError);
@@ -84,6 +347,11 @@ export function adaptPgPool(pool, cursorImporter = defaultPgCursorImporter) {
84
347
  cursorConstructorPromise ??= loadPgCursorDriver(cursorImporter);
85
348
  return cursorConstructorPromise;
86
349
  };
350
+ let copyStreamsPromise;
351
+ const loadCopyStreams = () => {
352
+ copyStreamsPromise ??= loadPgCopyStreams(copyStreamsImporter);
353
+ return copyStreamsPromise;
354
+ };
87
355
  const wrapClient = (client) => {
88
356
  let fatalError;
89
357
  let rejectFatal;
@@ -131,6 +399,77 @@ export function adaptPgPool(pool, cursorImporter = defaultPgCursorImporter) {
131
399
  },
132
400
  };
133
401
  },
402
+ async openCopyFrom(statement) {
403
+ const copy = await loadCopyStreams();
404
+ const nativeQuery = client.query.bind(client);
405
+ const writable = nativeQuery(copy.from(statement));
406
+ const terminal = finished(writable);
407
+ void terminal.catch(() => undefined);
408
+ return {
409
+ async write(chunk) {
410
+ if (!writable.write(chunk))
411
+ await once(writable, "drain");
412
+ },
413
+ async finish() {
414
+ writable.end();
415
+ await terminal;
416
+ },
417
+ async abort(error) {
418
+ writable.destroy(error instanceof Error ? error : new Error("PostgreSQL COPY FROM aborted"));
419
+ await terminal.catch(() => undefined);
420
+ },
421
+ };
422
+ },
423
+ async openCopyTo(statement) {
424
+ const copy = await loadCopyStreams();
425
+ const nativeQuery = client.query.bind(client);
426
+ const readable = nativeQuery(copy.to(statement));
427
+ const terminal = finished(readable);
428
+ void terminal.catch(() => undefined);
429
+ const iterator = readable[Symbol.asyncIterator]();
430
+ let complete = false;
431
+ const close = async () => {
432
+ const early = !complete;
433
+ complete = true;
434
+ if (early)
435
+ readable.destroy();
436
+ if (early)
437
+ await terminal.catch(() => undefined);
438
+ else
439
+ await terminal;
440
+ };
441
+ const source = {
442
+ [Symbol.asyncIterator]() {
443
+ return source;
444
+ },
445
+ async next() {
446
+ const result = await iterator.next();
447
+ if (result.done === true) {
448
+ complete = true;
449
+ return { done: true, value: undefined };
450
+ }
451
+ const value = result.value;
452
+ return {
453
+ done: false,
454
+ value: value instanceof Uint8Array ? value : Buffer.from(value),
455
+ };
456
+ },
457
+ async return() {
458
+ await close();
459
+ return { done: true, value: undefined };
460
+ },
461
+ close,
462
+ async abort(error) {
463
+ readable.destroy(error instanceof Error ? error : new Error("PostgreSQL COPY TO aborted"));
464
+ await terminal.catch(() => undefined);
465
+ complete = true;
466
+ },
467
+ async [Symbol.asyncDispose]() {
468
+ await close();
469
+ },
470
+ };
471
+ return source;
472
+ },
134
473
  release(error) {
135
474
  client.removeListener("error", onError);
136
475
  client.removeListener("end", onEnd);
@@ -139,6 +478,7 @@ export function adaptPgPool(pool, cursorImporter = defaultPgCursorImporter) {
139
478
  };
140
479
  };
141
480
  return {
481
+ executionCapabilities: Object.freeze({ cancellation: true, deadlines: true }),
142
482
  async query(config) {
143
483
  const result = typeof config === "string"
144
484
  ? await pool.query(config)
@@ -148,6 +488,9 @@ export function adaptPgPool(pool, cursorImporter = defaultPgCursorImporter) {
148
488
  async ensureCursor() {
149
489
  await loadCursor();
150
490
  },
491
+ async ensureCopy() {
492
+ await loadCopyStreams();
493
+ },
151
494
  async connect() {
152
495
  return wrapClient(await pool.connect());
153
496
  },
@@ -164,11 +507,12 @@ export async function createPgDatabase(options) {
164
507
  const { Pool } = driver;
165
508
  const pool = new Pool({ ...options.poolConfig, connectionString: resolvedConnectionString });
166
509
  return createPostgresDatabase({
167
- pool: adaptPgPool(pool, options.cursorImporter),
510
+ pool: adaptPgPool(pool, options.cursorImporter, options.copyStreamsImporter),
168
511
  ownsPool: true,
169
512
  fallbackTypeParsers: driver.types,
170
513
  ...(options.typePolicy === undefined ? {} : { typePolicy: options.typePolicy }),
171
514
  ...(options.decimal === undefined ? {} : { decimal: options.decimal }),
515
+ ...(options.observer === undefined ? {} : { observer: options.observer }),
172
516
  });
173
517
  }
174
518
  export function pg(options) {
@@ -1 +1 @@
1
- {"version":3,"file":"pg.js","sourceRoot":"","sources":["../../../../src/pg.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pg.js","sourceRoot":"","sources":["../../../../src/pg.ts"],"names":[],"mappings":"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"}
@@ -81,7 +81,8 @@ export declare const postgresCatalogQueries: {
81
81
  ORDER BY position
82
82
  ) AS argument_types,
83
83
  format_type(p.prorettype, NULL) AS database_return_type,
84
- p.proretset AS set_returning
84
+ p.proretset AS set_returning,
85
+ p.provolatile AS volatility
85
86
  FROM pg_catalog.pg_proc AS p
86
87
  JOIN pg_catalog.pg_namespace AS n ON n.oid = p.pronamespace
87
88
  WHERE p.prokind = 'f'
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,WAAW,EACX,cAAc,EACd,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAA8C,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEvG,MAAM,WAAW,mBAAmB,CAAC,GAAG;IACtC,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE,GAC1B,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,2BAA4B,SAAQ,iBAAiB;IACpE,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,IAAI,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAChD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE;QAAE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,KAAK,yBAAyB,CAAC;CACjG;AAED,MAAM,MAAM,sBAAsB,GAAG,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAEzE,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,yBAAyB,CAAC;IAC1C,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;CAC1C;AAqCD,eAAO,MAAM,sBAAsB;aACjC,OAAO,EAAE,4DAA4D;aACrE,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;GAqBR;aACD,KAAK,EAAE;;;;;;;;GAQN;aACD,OAAO,EAAE;;;;;;;;;;;;GAYR;aACD,SAAS,EAAE;;;;;;;;;;;;;;;;;GAiBV;CACO,CAAC;AAWX,wBAAsB,kBAAkB,CACtC,QAAQ,GAAE,sBAA4F,GACrG,OAAO,CAAC,oBAAoB,CAAC,CAY/B;AA0CD,qBAAa,sBAAuB,YAAW,cAAc;;IAG3D,YAAY,OAAO,GAAE,6BAAkC,EAEtD;IAEK,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CA6E5D;CACF;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,6BAAkC,GAC1C,OAAO,CAAC,cAAc,CAAC,CAEzB"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,WAAW,EACX,cAAc,EACd,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAA8C,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEvG,MAAM,WAAW,mBAAmB,CAAC,GAAG;IACtC,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE,GAC1B,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,2BAA4B,SAAQ,iBAAiB;IACpE,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,IAAI,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAChD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE;QAAE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,KAAK,yBAAyB,CAAC;CACjG;AAED,MAAM,MAAM,sBAAsB,GAAG,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAEzE,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,yBAAyB,CAAC;IAC1C,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;CAC1C;AAsCD,eAAO,MAAM,sBAAsB;aACjC,OAAO,EAAE,4DAA4D;aACrE,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;GAqBR;aACD,KAAK,EAAE;;;;;;;;GAQN;aACD,OAAO,EAAE;;;;;;;;;;;;GAYR;aACD,SAAS,EAAE;;;;;;;;;;;;;;;;;;GAkBV;CACO,CAAC;AAWX,wBAAsB,kBAAkB,CACtC,QAAQ,GAAE,sBAA4F,GACrG,OAAO,CAAC,oBAAoB,CAAC,CAY/B;AA0CD,qBAAa,sBAAuB,YAAW,cAAc;;IAG3D,YAAY,OAAO,GAAE,6BAAkC,EAEtD;IAEK,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CA8E5D;CACF;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,6BAAkC,GAC1C,OAAO,CAAC,cAAc,CAAC,CAEzB"}
@@ -55,7 +55,8 @@ export const postgresCatalogQueries = {
55
55
  ORDER BY position
56
56
  ) AS argument_types,
57
57
  format_type(p.prorettype, NULL) AS database_return_type,
58
- p.proretset AS set_returning
58
+ p.proretset AS set_returning,
59
+ p.provolatile AS volatility
59
60
  FROM pg_catalog.pg_proc AS p
60
61
  JOIN pg_catalog.pg_namespace AS n ON n.oid = p.pronamespace
61
62
  WHERE p.prokind = 'f'
@@ -184,6 +185,7 @@ export class PostgresSchemaProvider {
184
185
  returnType: mapPostgresType(row.database_return_type, policy, schemaForFunctions),
185
186
  nullable: true,
186
187
  ...(row.set_returning ? { setReturning: true } : {}),
188
+ volatility: row.volatility === "i" ? "immutable" : row.volatility === "s" ? "stable" : "volatile",
187
189
  };
188
190
  }
189
191
  const version = versionResult.rows[0]?.server_version;