@typed-sql/postgres 1.0.0-beta.1 → 1.0.0-beta.2
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.
- package/CHANGELOG.md +34 -0
- package/README.md +22 -2
- package/dist/packages/postgres/src/index.d.ts +4 -4
- package/dist/packages/postgres/src/index.d.ts.map +1 -1
- package/dist/packages/postgres/src/index.js +21 -4
- package/dist/packages/postgres/src/index.js.map +1 -1
- package/dist/packages/postgres/src/pg.d.ts +1 -1
- package/dist/packages/postgres/src/pg.d.ts.map +1 -1
- package/dist/packages/postgres/src/pg.js +25 -8
- package/dist/packages/postgres/src/pg.js.map +1 -1
- package/dist/packages/postgres/src/provider.d.ts.map +1 -1
- package/dist/packages/postgres/src/provider.js +12 -4
- package/dist/packages/postgres/src/provider.js.map +1 -1
- package/dist/packages/postgres/src/resolver.d.ts +3 -2
- package/dist/packages/postgres/src/resolver.d.ts.map +1 -1
- package/dist/packages/postgres/src/resolver.js +237 -105
- package/dist/packages/postgres/src/resolver.js.map +1 -1
- package/dist/packages/postgres/src/runtime.d.ts +3 -1
- package/dist/packages/postgres/src/runtime.d.ts.map +1 -1
- package/dist/packages/postgres/src/runtime.js +18 -13
- package/dist/packages/postgres/src/runtime.js.map +1 -1
- package/dist/packages/postgres/src/type-policy.d.ts.map +1 -1
- package/dist/packages/postgres/src/type-policy.js +28 -4
- package/dist/packages/postgres/src/type-policy.js.map +1 -1
- package/package.json +8 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,39 @@
|
|
|
1
1
|
# @typed-sql/postgres
|
|
2
2
|
|
|
3
|
+
## 1.0.0-beta.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 1563a7a: Declare and enforce the 1.0 package stability boundary. Core SQL, compiler, schema, config, AST,
|
|
8
|
+
PostgreSQL, MySQL, and CLI packages form the stable train; the TypeScript preview bridge and
|
|
9
|
+
language server remain explicitly experimental. Freeze public entrypoints and query type contracts,
|
|
10
|
+
and remove internal compiler/type helpers from stable package-root exports before 1.0.
|
|
11
|
+
- 9dd6bc4: Finalize dialect contract version 3 with explicit identifier quoting and grammar-owned capability
|
|
12
|
+
declarations. Accept third-party snapshot dialects, validate grammar versions, and document the
|
|
13
|
+
public grammar-authoring and conformance workflow.
|
|
14
|
+
- 642cebd: Prove and document runtime codec fidelity against live PostgreSQL and MySQL values. PostgreSQL now
|
|
15
|
+
delegates non-policy OIDs to the installed pg parser table, MySQL maps BIT to Uint8Array, and the
|
|
16
|
+
mysql2 adapter rejects pool settings that would contradict its type policy.
|
|
17
|
+
- 3e2c75c: Infer ordered query parameter tuples and let TypeScript reject interpolation values that do not
|
|
18
|
+
match their SQL context. Dialect contract version 2 adds explicit parameter analysis; unresolved
|
|
19
|
+
positions remain `unknown`. Add typed nullable predicate composition through `sql.fragment()`,
|
|
20
|
+
`sql.and()`, `sql.or()`, `sql.where()`, and `sql.append()` while preserving row and parameter tuples.
|
|
21
|
+
Direct append fragments are grammar-analyzed cumulatively against their static base, so TypeScript
|
|
22
|
+
rejects fragment interpolation values that disagree with the referenced database columns.
|
|
23
|
+
Add `sql.empty` and SQL-template-native conditional structural fragments. The compiler analyzes
|
|
24
|
+
complete branch variants, preserves literal boolean-dependent result rows, and type-checks nested
|
|
25
|
+
fragment parameters without adding a query-builder DSL. Bound independent structural expansion at
|
|
26
|
+
64 variants by default, correlate repeated conditions, merge diagnostics and fragment expectations
|
|
27
|
+
across variants, and fail closed on incompatible contexts. Share indexed catalog and conservative
|
|
28
|
+
parameter-resolution primitives across grammars, harden cooked-template scanning, and add runtime,
|
|
29
|
+
resolver, scanner, and structural performance gates.
|
|
30
|
+
- Updated dependencies [1563a7a]
|
|
31
|
+
- Updated dependencies [9dd6bc4]
|
|
32
|
+
- Updated dependencies [3e2c75c]
|
|
33
|
+
- @typed-sql/core@1.0.0-beta.2
|
|
34
|
+
- @typed-sql/ast@1.0.0-beta.2
|
|
35
|
+
- @typed-sql/schema@1.0.0-beta.2
|
|
36
|
+
|
|
3
37
|
## 1.0.0-beta.1
|
|
4
38
|
|
|
5
39
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -68,8 +68,28 @@ const rows = await database.execute(query);
|
|
|
68
68
|
|
|
69
69
|
The default lossless policy maps PostgreSQL `bigint` to `bigint`, `numeric` to `string`, temporal
|
|
70
70
|
types to `Date`, JSON to `unknown`, enums to literal unions, arrays recursively, and `bytea` to
|
|
71
|
-
`Uint8Array`. Per-query parsers do not mutate `pg` globals
|
|
71
|
+
`Uint8Array`. Per-query parsers do not mutate `pg` globals and delegate non-policy OIDs to the
|
|
72
|
+
installed driver's native parser table. See the tested
|
|
73
|
+
[runtime codec matrix](https://github.com/Lojhan/typed-sql/blob/main/docs/CODEC_FIDELITY.md#postgresql-and-pg).
|
|
72
74
|
|
|
73
|
-
|
|
75
|
+
## Supported SQL
|
|
76
|
+
|
|
77
|
+
| Surface | Status | Notes |
|
|
78
|
+
| --- | --- | --- |
|
|
79
|
+
| Static tagged templates | Supported | Imports and aliases from `@typed-sql/postgres` are recognized. |
|
|
80
|
+
| `SELECT`, `DISTINCT`, `DISTINCT ON` | Supported | Static row-shape inference. |
|
|
81
|
+
| Tables, schemas, aliases and stars | Supported | Catalog lookup, ambiguity checks and `USING` column merging. |
|
|
82
|
+
| Inner and outer joins | Supported | Outer-join nullability propagates into result columns. |
|
|
83
|
+
| CTEs and derived/correlated/scalar subqueries | Supported | Recursive CTEs and unsafe scalar/IN arity diagnose. |
|
|
84
|
+
| Grouping, aggregates and windows | Supported | Includes common aggregates, `FILTER`, named and inline windows. |
|
|
85
|
+
| Expressions, `CASE`, casts and `$n` parameters | Supported | Parameters infer from columns, casts, DML targets, ranges, limits, and catalog functions; ambiguous positions remain `unknown`. |
|
|
86
|
+
| Arrays, enums, domains, JSON and catalog functions | Supported | Known types and function name/arity are validated. |
|
|
87
|
+
| `INSERT`, `UPDATE`, `DELETE`, `RETURNING` | Supported | Commands without `RETURNING` infer `Query<never, Parameters>`. |
|
|
88
|
+
| Set operations and `WITHIN GROUP` | Not supported | Fail safely during parsing. |
|
|
89
|
+
| Dynamic SQL or identifiers | No static inference | Use runtime values and `sql.ident()` explicitly. |
|
|
90
|
+
|
|
91
|
+
A feature not marked supported produces a diagnostic or `Query<unknown>`; it never receives an
|
|
92
|
+
optimistic row type. Introspection covers tables, views, columns, defaults, server version, arrays,
|
|
93
|
+
enums, domains and user functions.
|
|
74
94
|
|
|
75
95
|
MIT © typed-sql contributors
|
|
@@ -9,11 +9,11 @@ export interface PostgresDialectOptions {
|
|
|
9
9
|
readonly typePolicy?: PostgresTypePolicy;
|
|
10
10
|
}
|
|
11
11
|
export declare function postgres(options?: PostgresDialectOptions): DialectPlugin<PostgresSchemaSnapshot, PostgresTypePolicy>;
|
|
12
|
-
export { parseSchemaSnapshot, } from "@typed-sql/schema";
|
|
13
12
|
export { sql } from "@typed-sql/core";
|
|
14
|
-
export { introspectPostgres, loadPostgresDriver, PostgresSchemaProvider, postgresCatalogQueries } from "./provider.js";
|
|
15
|
-
export { defaultPostgresTypePolicy, defaultPostgresTypePolicy as typePolicy, isKnownPostgresType, mapPostgresType } from "./type-policy.js";
|
|
16
|
-
export type { PostgresTypePolicy } from "./type-policy.js";
|
|
17
13
|
export type { SchemaSnapshot } from "@typed-sql/schema";
|
|
14
|
+
export { parseSchemaSnapshot } from "@typed-sql/schema";
|
|
18
15
|
export type { PostgresDriverImporter, PostgresDriverModule, PostgresIntrospectionClient, PostgresIntrospectionPool, PostgresQueryable, PostgresQueryResult, PostgresSchemaProviderOptions, } from "./provider.js";
|
|
16
|
+
export { introspectPostgres, loadPostgresDriver, PostgresSchemaProvider, postgresCatalogQueries } from "./provider.js";
|
|
17
|
+
export type { PostgresTypePolicy } from "./type-policy.js";
|
|
18
|
+
export { defaultPostgresTypePolicy, defaultPostgresTypePolicy as typePolicy, isKnownPostgresType, mapPostgresType, } from "./type-policy.js";
|
|
19
19
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE7E,OAAO,EAA6B,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtF,eAAO,MAAM,wBAAwB,UAAU,CAAC;AAEhD,MAAM,MAAM,sBAAsB,GAAG,cAAc,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAA;CAAE,CAAC;AACvF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;CAC1C;AAyBD,wBAAgB,QAAQ,CACtB,OAAO,GAAE,sBAA2B,GACnC,aAAa,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,CA8B3D;AAED,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EACV,sBAAsB,EACtB,oBAAoB,EACpB,2BAA2B,EAC3B,yBAAyB,EACzB,iBAAiB,EACjB,mBAAmB,EACnB,6BAA6B,GAC9B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvH,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EACL,yBAAyB,EACzB,yBAAyB,IAAI,UAAU,EACvC,mBAAmB,EACnB,eAAe,GAChB,MAAM,kBAAkB,CAAC"}
|
|
@@ -1,14 +1,26 @@
|
|
|
1
|
-
import { DIALECT_CONTRACT_VERSION } from "@typed-sql/core";
|
|
2
1
|
import { parseStatement, SqlParseError } from "@typed-sql/ast";
|
|
3
|
-
import {
|
|
2
|
+
import { DIALECT_CONTRACT_VERSION } from "@typed-sql/core";
|
|
3
|
+
import { parseSchemaSnapshot } from "@typed-sql/schema";
|
|
4
4
|
import { resolveStatement } from "./resolver.js";
|
|
5
5
|
import { defaultPostgresTypePolicy } from "./type-policy.js";
|
|
6
6
|
export const POSTGRES_DIALECT_VERSION = "1.0.0";
|
|
7
|
+
const capabilities = Object.freeze({
|
|
8
|
+
aggregateFilter: true,
|
|
9
|
+
arrays: true,
|
|
10
|
+
distinctOn: true,
|
|
11
|
+
fullJoins: true,
|
|
12
|
+
recursiveCtes: true,
|
|
13
|
+
returning: true,
|
|
14
|
+
setOperations: false,
|
|
15
|
+
});
|
|
7
16
|
function validatePostgresSnapshot(value) {
|
|
8
17
|
const snapshot = parseSchemaSnapshot(value);
|
|
9
18
|
if (snapshot.dialect !== "postgres") {
|
|
10
19
|
throw new TypeError(`@typed-sql/postgres cannot use a ${snapshot.dialect} schema snapshot`);
|
|
11
20
|
}
|
|
21
|
+
if (snapshot.dialectVersion !== undefined && snapshot.dialectVersion !== POSTGRES_DIALECT_VERSION) {
|
|
22
|
+
throw new TypeError(`@typed-sql/postgres grammar ${POSTGRES_DIALECT_VERSION} cannot use snapshot dialectVersion ${snapshot.dialectVersion}`);
|
|
23
|
+
}
|
|
12
24
|
return snapshot;
|
|
13
25
|
}
|
|
14
26
|
export function postgres(options = {}) {
|
|
@@ -18,12 +30,16 @@ export function postgres(options = {}) {
|
|
|
18
30
|
id: "postgres",
|
|
19
31
|
grammarVersion: POSTGRES_DIALECT_VERSION,
|
|
20
32
|
sqlModule: "@typed-sql/postgres",
|
|
33
|
+
capabilities,
|
|
21
34
|
defaultTypePolicy,
|
|
22
35
|
placeholder(index) {
|
|
23
36
|
if (!Number.isInteger(index) || index < 1)
|
|
24
37
|
throw new RangeError("PostgreSQL parameter indexes start at 1");
|
|
25
38
|
return `$${index}`;
|
|
26
39
|
},
|
|
40
|
+
quoteIdentifier(identifier) {
|
|
41
|
+
return `"${identifier.replaceAll('"', '""')}"`;
|
|
42
|
+
},
|
|
27
43
|
analyze(sql, snapshot, policy = defaultTypePolicy) {
|
|
28
44
|
try {
|
|
29
45
|
return resolveStatement(parseStatement(sql), snapshot, { typePolicy: policy });
|
|
@@ -33,6 +49,7 @@ export function postgres(options = {}) {
|
|
|
33
49
|
throw error;
|
|
34
50
|
return {
|
|
35
51
|
columns: [],
|
|
52
|
+
parameters: [],
|
|
36
53
|
diagnostics: [{ code: error.code, message: error.message, severity: "error", range: error.range }],
|
|
37
54
|
};
|
|
38
55
|
}
|
|
@@ -40,8 +57,8 @@ export function postgres(options = {}) {
|
|
|
40
57
|
validateSnapshot: validatePostgresSnapshot,
|
|
41
58
|
});
|
|
42
59
|
}
|
|
43
|
-
export { parseSchemaSnapshot, } from "@typed-sql/schema";
|
|
44
60
|
export { sql } from "@typed-sql/core";
|
|
61
|
+
export { parseSchemaSnapshot } from "@typed-sql/schema";
|
|
45
62
|
export { introspectPostgres, loadPostgresDriver, PostgresSchemaProvider, postgresCatalogQueries } from "./provider.js";
|
|
46
|
-
export { defaultPostgresTypePolicy, defaultPostgresTypePolicy as typePolicy, isKnownPostgresType, mapPostgresType } from "./type-policy.js";
|
|
63
|
+
export { defaultPostgresTypePolicy, defaultPostgresTypePolicy as typePolicy, isKnownPostgresType, mapPostgresType, } from "./type-policy.js";
|
|
47
64
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Pool as PgPool, PoolConfig } from "pg";
|
|
2
|
-
import {
|
|
2
|
+
import type { PostgresSchemaSnapshot, PostgresTypePolicy } from "./index.js";
|
|
3
3
|
import { type PostgresQueryable } from "./provider.js";
|
|
4
4
|
import { type PostgresDatabase, type PostgresPoolLike } from "./runtime.js";
|
|
5
5
|
export interface PgOptions {
|
|
@@ -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,EAAE,
|
|
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,EAGL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EAGtB,MAAM,cAAc,CAAC;AAEtB,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,OAAO,CAAC,CAAC;IACrE,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;CAC/C;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;AAwBD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CA4B1D;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAYpF;AAED,wBAAgB,EAAE,CAAC,OAAO,EAAE,uBAAuB,GAAG;IAAE,UAAU,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAAA;CAAE,CAiBtG"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import {} from "./index.js";
|
|
2
1
|
import { PostgresSchemaProvider } from "./provider.js";
|
|
3
2
|
import { createPostgresDatabase, } from "./runtime.js";
|
|
4
3
|
export async function loadPgDriver(importer = () => import("pg")) {
|
|
@@ -7,7 +6,9 @@ export async function loadPgDriver(importer = () => import("pg")) {
|
|
|
7
6
|
}
|
|
8
7
|
catch (error) {
|
|
9
8
|
if (error instanceof Error && "code" in error && error.code === "ERR_MODULE_NOT_FOUND") {
|
|
10
|
-
throw new Error("@typed-sql/postgres/pg requires the application-owned pg driver. Install it with: pnpm add pg", {
|
|
9
|
+
throw new Error("@typed-sql/postgres/pg requires the application-owned pg driver. Install it with: pnpm add pg", {
|
|
10
|
+
cause: error,
|
|
11
|
+
});
|
|
11
12
|
}
|
|
12
13
|
throw error;
|
|
13
14
|
}
|
|
@@ -18,6 +19,11 @@ async function connectionString(value) {
|
|
|
18
19
|
throw new TypeError("PostgreSQL connectionString must not be empty");
|
|
19
20
|
return resolved;
|
|
20
21
|
}
|
|
22
|
+
function validatePoolConfig(poolConfig) {
|
|
23
|
+
if (poolConfig !== undefined && "types" in poolConfig) {
|
|
24
|
+
throw new TypeError("@typed-sql/postgres/pg owns poolConfig.types so decoded values match typePolicy; remove that option");
|
|
25
|
+
}
|
|
26
|
+
}
|
|
21
27
|
function queryConfig(config) {
|
|
22
28
|
return {
|
|
23
29
|
text: config.text,
|
|
@@ -33,7 +39,9 @@ export function adaptPgPool(pool) {
|
|
|
33
39
|
: await client.query(queryConfig(config));
|
|
34
40
|
return { rows: result.rows };
|
|
35
41
|
},
|
|
36
|
-
release() {
|
|
42
|
+
release() {
|
|
43
|
+
client.release();
|
|
44
|
+
},
|
|
37
45
|
});
|
|
38
46
|
return {
|
|
39
47
|
async query(config) {
|
|
@@ -42,16 +50,23 @@ export function adaptPgPool(pool) {
|
|
|
42
50
|
: await pool.query(queryConfig(config));
|
|
43
51
|
return { rows: result.rows };
|
|
44
52
|
},
|
|
45
|
-
async connect() {
|
|
46
|
-
|
|
53
|
+
async connect() {
|
|
54
|
+
return wrapClient(await pool.connect());
|
|
55
|
+
},
|
|
56
|
+
async end() {
|
|
57
|
+
await pool.end();
|
|
58
|
+
},
|
|
47
59
|
};
|
|
48
60
|
}
|
|
49
61
|
export async function createPgDatabase(options) {
|
|
50
|
-
|
|
62
|
+
validatePoolConfig(options.poolConfig);
|
|
63
|
+
const driver = await loadPgDriver();
|
|
64
|
+
const { Pool } = driver;
|
|
51
65
|
const pool = new Pool({ ...options.poolConfig, connectionString: await connectionString(options.connectionString) });
|
|
52
66
|
return createPostgresDatabase({
|
|
53
67
|
pool: adaptPgPool(pool),
|
|
54
68
|
ownsPool: true,
|
|
69
|
+
fallbackTypeParsers: driver.types,
|
|
55
70
|
...(options.typePolicy === undefined ? {} : { typePolicy: options.typePolicy }),
|
|
56
71
|
...(options.decimal === undefined ? {} : { decimal: options.decimal }),
|
|
57
72
|
});
|
|
@@ -68,8 +83,10 @@ export function pg(options) {
|
|
|
68
83
|
...(options.typePolicy === undefined ? {} : { typePolicy: options.typePolicy }),
|
|
69
84
|
});
|
|
70
85
|
if (options.client !== undefined)
|
|
71
|
-
return await provider.introspect({});
|
|
72
|
-
return await provider.introspect({
|
|
86
|
+
return (await provider.introspect({}));
|
|
87
|
+
return (await provider.introspect({
|
|
88
|
+
url: await connectionString(options.connectionString),
|
|
89
|
+
}));
|
|
73
90
|
},
|
|
74
91
|
};
|
|
75
92
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pg.js","sourceRoot":"","sources":["../../../../src/pg.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pg.js","sourceRoot":"","sources":["../../../../src/pg.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,
|
|
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"}
|
|
@@ -71,7 +71,7 @@ function redactError(error, connectionString) {
|
|
|
71
71
|
const message = error instanceof Error ? error.message : String(error);
|
|
72
72
|
return new Error(message.replaceAll(connectionString, "[REDACTED_DATABASE_URL]"));
|
|
73
73
|
}
|
|
74
|
-
export async function loadPostgresDriver(importer = async () => await import("pg")) {
|
|
74
|
+
export async function loadPostgresDriver(importer = async () => (await import("pg"))) {
|
|
75
75
|
try {
|
|
76
76
|
return await importer();
|
|
77
77
|
}
|
|
@@ -108,7 +108,9 @@ async function withConnection(input, options, fn) {
|
|
|
108
108
|
try {
|
|
109
109
|
await client.query("ROLLBACK");
|
|
110
110
|
}
|
|
111
|
-
catch {
|
|
111
|
+
catch {
|
|
112
|
+
/* Preserve the introspection error. */
|
|
113
|
+
}
|
|
112
114
|
throw redactError(error, input.url);
|
|
113
115
|
}
|
|
114
116
|
finally {
|
|
@@ -133,8 +135,14 @@ export class PostgresSchemaProvider {
|
|
|
133
135
|
client.query(postgresCatalogQueries.functions, values),
|
|
134
136
|
]);
|
|
135
137
|
const enums = {};
|
|
136
|
-
for (const row of enumResult.rows)
|
|
137
|
-
|
|
138
|
+
for (const row of enumResult.rows) {
|
|
139
|
+
const key = qualifiedKey(row.schema_name, row.type_name);
|
|
140
|
+
const values = enums[key];
|
|
141
|
+
if (values === undefined)
|
|
142
|
+
enums[key] = [row.enum_label];
|
|
143
|
+
else
|
|
144
|
+
values.push(row.enum_label);
|
|
145
|
+
}
|
|
138
146
|
const policy = this.#options.typePolicy ?? defaultPostgresTypePolicy;
|
|
139
147
|
const domains = {};
|
|
140
148
|
for (const row of domainResult.rows) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../src/provider.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,yBAAyB,EAAE,eAAe,EAA2B,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../src/provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { SelectStatement, SourceRange, SqlDiagnostic, Statement } from "@typed-sql/ast";
|
|
2
|
+
import { type ResolvedParameter } from "@typed-sql/core";
|
|
2
3
|
import type { SchemaSnapshot } from "@typed-sql/schema";
|
|
3
4
|
import { type PostgresTypePolicy } from "./type-policy.js";
|
|
4
5
|
interface ResolvedType {
|
|
@@ -12,6 +13,7 @@ export interface ResolvedColumn extends ResolvedType {
|
|
|
12
13
|
}
|
|
13
14
|
export interface ResolvedQuery {
|
|
14
15
|
readonly columns: readonly ResolvedColumn[];
|
|
16
|
+
readonly parameters: readonly ResolvedParameter[];
|
|
15
17
|
readonly diagnostics: readonly SqlDiagnostic[];
|
|
16
18
|
readonly resultKind: "rows" | "command";
|
|
17
19
|
}
|
|
@@ -21,6 +23,5 @@ export interface ResolveOptions {
|
|
|
21
23
|
}
|
|
22
24
|
export declare function resolveStatement(statement: Statement, schema: SchemaSnapshot, options?: ResolveOptions): ResolvedQuery;
|
|
23
25
|
export declare function resolveSelect(statement: SelectStatement, schema: SchemaSnapshot, options?: ResolveOptions): ResolvedQuery;
|
|
24
|
-
export
|
|
25
|
-
export {};
|
|
26
|
+
export { rowTypeLiteral } from "@typed-sql/core";
|
|
26
27
|
//# sourceMappingURL=resolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../../src/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../../src/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,eAAe,EACf,WAAW,EACX,aAAa,EACb,SAAS,EAIV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAGL,KAAK,iBAAiB,EAGvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAoC,cAAc,EAAiB,MAAM,mBAAmB,CAAC;AACzG,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,kBAAkB,CAAC;AAc1B,UAAU,YAAY;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAClD,QAAQ,CAAC,WAAW,EAAE,SAAS,aAAa,EAAE,CAAC;IAC/C,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACtC;AAk3BD,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,cAAmB,GAC3B,aAAa,CAEf;AAED,wBAAgB,aAAa,CAC3B,SAAS,EAAE,eAAe,EAC1B,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,cAAmB,GAC3B,aAAa,CAEf;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
|