typhex 0.1.0-alpha.0 → 0.1.0-alpha.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 +15 -0
- package/README.md +1 -1
- package/dist/arrow/aggregates.d.ts +5 -1
- package/dist/arrow/aggregates.d.ts.map +1 -1
- package/dist/arrow/aggregates.js +23 -1
- package/dist/arrow/aggregates.js.map +1 -1
- package/dist/arrow/index.d.ts +7 -3
- package/dist/arrow/index.d.ts.map +1 -1
- package/dist/arrow/index.js +24 -3
- package/dist/arrow/index.js.map +1 -1
- package/dist/dbs/base-migrator.d.ts +0 -1
- package/dist/dbs/base-migrator.d.ts.map +1 -1
- package/dist/dbs/base-migrator.js +5 -7
- package/dist/dbs/base-migrator.js.map +1 -1
- package/dist/dbs/postgres/driver.d.ts.map +1 -1
- package/dist/dbs/postgres/driver.js +3 -0
- package/dist/dbs/postgres/driver.js.map +1 -1
- package/dist/dbs/postgres/query-compiler.d.ts +6 -2
- package/dist/dbs/postgres/query-compiler.d.ts.map +1 -1
- package/dist/dbs/postgres/query-compiler.js +11 -11
- package/dist/dbs/postgres/query-compiler.js.map +1 -1
- package/dist/dbs/query-compiler.d.ts +13 -13
- package/dist/dbs/query-compiler.d.ts.map +1 -1
- package/dist/dbs/query-compiler.js +11 -37
- package/dist/dbs/query-compiler.js.map +1 -1
- package/dist/dbs/sqlite/index.d.ts +2 -2
- package/dist/dbs/sqlite/index.d.ts.map +1 -1
- package/dist/dbs/sqlite/index.js +1 -1
- package/dist/dbs/sqlite/index.js.map +1 -1
- package/dist/dbs/sqlite/query-compiler.d.ts +4 -1
- package/dist/dbs/sqlite/query-compiler.d.ts.map +1 -1
- package/dist/dbs/sqlite/query-compiler.js +11 -2
- package/dist/dbs/sqlite/query-compiler.js.map +1 -1
- package/dist/dbs/types.d.ts +5 -11
- package/dist/dbs/types.d.ts.map +1 -1
- package/dist/dbs/types.js +1 -1
- package/dist/dbs/types.js.map +1 -1
- package/dist/driver/compile-only.d.ts +8 -0
- package/dist/driver/compile-only.d.ts.map +1 -0
- package/dist/driver/compile-only.js +26 -0
- package/dist/driver/compile-only.js.map +1 -0
- package/dist/driver/sqlite.d.ts.map +1 -1
- package/dist/driver/sqlite.js +3 -0
- package/dist/driver/sqlite.js.map +1 -1
- package/dist/entity/entity.d.ts +1 -1
- package/dist/entity/entity.d.ts.map +1 -1
- package/dist/entity/entity.js +14 -11
- package/dist/entity/entity.js.map +1 -1
- package/dist/entity/global-driver.d.ts +5 -3
- package/dist/entity/global-driver.d.ts.map +1 -1
- package/dist/entity/global-driver.js +51 -2
- package/dist/entity/global-driver.js.map +1 -1
- package/dist/entity/index.d.ts +1 -1
- package/dist/entity/index.d.ts.map +1 -1
- package/dist/entity/index.js +1 -1
- package/dist/entity/index.js.map +1 -1
- package/dist/entity/pk-columns.d.ts +0 -2
- package/dist/entity/pk-columns.d.ts.map +1 -1
- package/dist/entity/pk-columns.js +2 -10
- package/dist/entity/pk-columns.js.map +1 -1
- package/dist/entity/relations.d.ts +0 -4
- package/dist/entity/relations.d.ts.map +1 -1
- package/dist/entity/relations.js.map +1 -1
- package/dist/index.d.ts +3 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/migration/cli.js +120 -117
- package/dist/migration/cli.js.map +1 -1
- package/dist/migration/index.d.ts +1 -1
- package/dist/migration/index.d.ts.map +1 -1
- package/dist/migration/runner.d.ts +2 -6
- package/dist/migration/runner.d.ts.map +1 -1
- package/dist/migration/runner.js +1 -3
- package/dist/migration/runner.js.map +1 -1
- package/dist/migration/types.d.ts +0 -5
- package/dist/migration/types.d.ts.map +1 -1
- package/dist/orm/db.d.ts +16 -10
- package/dist/orm/db.d.ts.map +1 -1
- package/dist/orm/db.js +37 -9
- package/dist/orm/db.js.map +1 -1
- package/dist/orm/helpers/insert-graph/insert-graph-batch-executor.d.ts +2 -2
- package/dist/orm/helpers/insert-graph/insert-graph-batch-executor.d.ts.map +1 -1
- package/dist/orm/helpers/insert-graph/insert-graph-batch-executor.js.map +1 -1
- package/dist/orm/helpers/insert-graph/insert-graph-executor.d.ts +3 -3
- package/dist/orm/helpers/insert-graph/insert-graph-executor.d.ts.map +1 -1
- package/dist/orm/helpers/insert-graph/insert-graph-executor.js.map +1 -1
- package/dist/orm/helpers/insert-graph/insert-graph-planner.d.ts +3 -3
- package/dist/orm/helpers/insert-graph/insert-graph-planner.d.ts.map +1 -1
- package/dist/orm/helpers/insert-graph/insert-graph-planner.js +1 -1
- package/dist/orm/helpers/insert-graph/insert-graph-planner.js.map +1 -1
- package/dist/orm/helpers/insert-graph/insert-graph-sequential-executor.d.ts +2 -2
- package/dist/orm/helpers/insert-graph/insert-graph-sequential-executor.d.ts.map +1 -1
- package/dist/orm/helpers/insert-graph/insert-graph-sequential-executor.js.map +1 -1
- package/dist/orm/helpers/insert-graph/sequence-id-assigner.d.ts +2 -2
- package/dist/orm/helpers/insert-graph/sequence-id-assigner.d.ts.map +1 -1
- package/dist/orm/helpers/insert-graph/sequence-id-assigner.js.map +1 -1
- package/dist/orm/helpers/query-plan/query-plan.d.ts +19 -11
- package/dist/orm/helpers/query-plan/query-plan.d.ts.map +1 -1
- package/dist/orm/helpers/query-plan/query-plan.js +24 -4
- package/dist/orm/helpers/query-plan/query-plan.js.map +1 -1
- package/dist/orm/helpers/relations/relation-assembler.d.ts.map +1 -1
- package/dist/orm/helpers/relations/relation-assembler.js +14 -5
- package/dist/orm/helpers/relations/relation-assembler.js.map +1 -1
- package/dist/orm/helpers/relations/relation-fetcher.d.ts +20 -0
- package/dist/orm/helpers/relations/relation-fetcher.d.ts.map +1 -1
- package/dist/orm/helpers/relations/relation-fetcher.js +106 -23
- package/dist/orm/helpers/relations/relation-fetcher.js.map +1 -1
- package/dist/orm/index.d.ts +1 -1
- package/dist/orm/index.d.ts.map +1 -1
- package/dist/orm/index.js +1 -1
- package/dist/orm/index.js.map +1 -1
- package/dist/orm/insert-builder.d.ts +37 -0
- package/dist/orm/insert-builder.d.ts.map +1 -0
- package/dist/orm/insert-builder.js +134 -0
- package/dist/orm/insert-builder.js.map +1 -0
- package/dist/orm/query-builder.d.ts +51 -52
- package/dist/orm/query-builder.d.ts.map +1 -1
- package/dist/orm/query-builder.js +197 -223
- package/dist/orm/query-builder.js.map +1 -1
- package/dist/orm/query-execution-context.d.ts +5 -0
- package/dist/orm/query-execution-context.d.ts.map +1 -0
- package/dist/orm/query-execution-context.js +16 -0
- package/dist/orm/query-execution-context.js.map +1 -0
- package/dist/orm/query-helpers.d.ts.map +1 -1
- package/dist/orm/query-helpers.js +1 -1
- package/dist/orm/query-helpers.js.map +1 -1
- package/dist/orm/query-state.d.ts +10 -6
- package/dist/orm/query-state.d.ts.map +1 -1
- package/dist/orm/query-state.js.map +1 -1
- package/dist/orm/statement.d.ts +33 -0
- package/dist/orm/statement.d.ts.map +1 -0
- package/dist/orm/statement.js +31 -0
- package/dist/orm/statement.js.map +1 -0
- package/dist/parser/group-by.d.ts.map +1 -1
- package/dist/parser/group-by.js +2 -1
- package/dist/parser/group-by.js.map +1 -1
- package/dist/parser/predicate-walk.d.ts.map +1 -1
- package/dist/parser/predicate-walk.js +12 -32
- package/dist/parser/predicate-walk.js.map +1 -1
- package/dist/parser/resolve.js +1 -1
- package/dist/parser/resolve.js.map +1 -1
- package/dist/parser/select.js +3 -3
- package/dist/parser/select.js.map +1 -1
- package/dist/schema/column-definition.d.ts +10 -0
- package/dist/schema/column-definition.d.ts.map +1 -0
- package/dist/schema/column-definition.js +13 -0
- package/dist/schema/column-definition.js.map +1 -0
- package/dist/transformer/ir-emit.d.ts.map +1 -1
- package/dist/transformer/ir-emit.js +3 -0
- package/dist/transformer/ir-emit.js.map +1 -1
- package/dist/transformer/select-transformer.d.ts.map +1 -1
- package/dist/transformer/select-transformer.js +18 -0
- package/dist/transformer/select-transformer.js.map +1 -1
- package/dist/transformer/ts-aggregates.d.ts.map +1 -1
- package/dist/transformer/ts-aggregates.js +9 -14
- package/dist/transformer/ts-aggregates.js.map +1 -1
- package/dist/transformer/where-transformer.d.ts.map +1 -1
- package/dist/transformer/where-transformer.js +15 -24
- package/dist/transformer/where-transformer.js.map +1 -1
- package/docs/guide/entities-relations.md +12 -3
- package/docs/guide/getting-started.md +10 -3
- package/docs/public-api.md +6 -6
- package/docs/reference/api.md +14 -6
- package/docs/reference/architecture.md +11 -3
- package/etc/typhex.api.md +59 -59
- package/package.json +2 -2
- package/dist/dbs/sqlite/driver.d.ts +0 -9
- package/dist/dbs/sqlite/driver.d.ts.map +0 -1
- package/dist/dbs/sqlite/driver.js +0 -66
- package/dist/dbs/sqlite/driver.js.map +0 -1
- package/dist/schema/index.d.ts +0 -2
- package/dist/schema/index.d.ts.map +0 -1
- package/dist/schema/index.js +0 -2
- package/dist/schema/index.js.map +0 -1
- package/dist/schema/types.d.ts +0 -16
- package/dist/schema/types.d.ts.map +0 -1
- package/dist/schema/types.js +0 -40
- package/dist/schema/types.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,21 @@ Typhex follows semantic versioning for the documented public API. During the
|
|
|
7
7
|
|
|
8
8
|
## Unreleased
|
|
9
9
|
|
|
10
|
+
## 0.1.0-alpha.2 - 2026-08-30
|
|
11
|
+
|
|
12
|
+
- Query terminals (`toArray`, `first`, `count`, `findById`, `update`, `delete`, and inserts) now return a lazy `Statement`: `await` to execute, `.toSql()` to compile without running.
|
|
13
|
+
- Add `TYPHEX_COMPILE_ONLY` to compile queries without a live database.
|
|
14
|
+
- Query builder chains are immutable.
|
|
15
|
+
- Nested queries are planned before SQL compilation.
|
|
16
|
+
- `Db` can own an explicit `entities` collection for migrate/validate/generate; the process registry remains the fallback.
|
|
17
|
+
- Keep `update()` and `patch()` as distinct operations.
|
|
18
|
+
- Remove pre-release compatibility aliases.
|
|
19
|
+
- Bump `better-sqlite3`, `pg`, and `acorn`.
|
|
20
|
+
|
|
21
|
+
## 0.1.0-alpha.1 - 2026-06-15
|
|
22
|
+
|
|
23
|
+
- Switch release workflow to npm Trusted Publishing (OIDC) instead of `NPM_TOKEN`.
|
|
24
|
+
|
|
10
25
|
## 0.1.0-alpha.0 - 2026-06-15
|
|
11
26
|
|
|
12
27
|
- Initial public alpha preview.
|
package/README.md
CHANGED
|
@@ -109,7 +109,7 @@ await User.query()
|
|
|
109
109
|
.delete();
|
|
110
110
|
```
|
|
111
111
|
|
|
112
|
-
`update()` returns the number of rows changed. `patch()`
|
|
112
|
+
`update()` returns the number of rows changed. `patch()` applies a partial update and returns the updated row.
|
|
113
113
|
|
|
114
114
|
## Runtime vs Transformer Mode
|
|
115
115
|
|
|
@@ -3,10 +3,14 @@
|
|
|
3
3
|
* identifiers (e.g. `groupConcat`) to IR func names (`GROUP_CONCAT`).
|
|
4
4
|
* Shared by runtime parser and compile-time transformer.
|
|
5
5
|
*/
|
|
6
|
+
import type { IrAggregate, IrNode } from "../ir/types.js";
|
|
6
7
|
/** Recognized aggregate function names in IR. */
|
|
7
|
-
export declare const AGGREGATE_FUNCS:
|
|
8
|
+
export declare const AGGREGATE_FUNCS: ReadonlySet<IrAggregate["func"]>;
|
|
8
9
|
/** Map a JS identifier (e.g. `count`, `groupConcat`) to the canonical IR func name. */
|
|
9
10
|
export declare function toIrFuncName(rawName: string): string;
|
|
10
11
|
/** True if `name` is a known aggregate after normalization. */
|
|
11
12
|
export declare function isAggregateFunc(name: string): boolean;
|
|
13
|
+
export declare function toIrAggregateFunc(rawName: string): IrAggregate["func"] | null;
|
|
14
|
+
export declare function getAggregateSeparatorArgIndex(func: IrAggregate["func"]): number | null;
|
|
15
|
+
export declare function buildIrAggregate(func: IrAggregate["func"], arg: IrNode | null, distinct: boolean, separator?: string): IrAggregate;
|
|
12
16
|
//# sourceMappingURL=aggregates.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregates.d.ts","sourceRoot":"","sources":["../../src/arrow/aggregates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,iDAAiD;AACjD,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"aggregates.d.ts","sourceRoot":"","sources":["../../src/arrow/aggregates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE1D,iDAAiD;AACjD,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAU3D,CAAC;AAcH,uFAAuF;AACvF,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,+DAA+D;AAC/D,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAG7E;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,CAEtF;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,EACzB,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,QAAQ,EAAE,OAAO,EACjB,SAAS,CAAC,EAAE,MAAM,GACjB,WAAW,CAUb"}
|
package/dist/arrow/aggregates.js
CHANGED
|
@@ -15,6 +15,10 @@ export const AGGREGATE_FUNCS = new Set([
|
|
|
15
15
|
"ARRAY_AGG",
|
|
16
16
|
"JSON_AGG",
|
|
17
17
|
]);
|
|
18
|
+
const SEPARATOR_ARG_INDEX = {
|
|
19
|
+
GROUP_CONCAT: 1,
|
|
20
|
+
STRING_AGG: 1,
|
|
21
|
+
};
|
|
18
22
|
const AGGREGATE_FUNC_MAP = {
|
|
19
23
|
groupconcat: "GROUP_CONCAT",
|
|
20
24
|
stringagg: "STRING_AGG",
|
|
@@ -27,6 +31,24 @@ export function toIrFuncName(rawName) {
|
|
|
27
31
|
}
|
|
28
32
|
/** True if `name` is a known aggregate after normalization. */
|
|
29
33
|
export function isAggregateFunc(name) {
|
|
30
|
-
return
|
|
34
|
+
return toIrAggregateFunc(name) !== null;
|
|
35
|
+
}
|
|
36
|
+
export function toIrAggregateFunc(rawName) {
|
|
37
|
+
const func = toIrFuncName(rawName);
|
|
38
|
+
return AGGREGATE_FUNCS.has(func) ? func : null;
|
|
39
|
+
}
|
|
40
|
+
export function getAggregateSeparatorArgIndex(func) {
|
|
41
|
+
return SEPARATOR_ARG_INDEX[func] ?? null;
|
|
42
|
+
}
|
|
43
|
+
export function buildIrAggregate(func, arg, distinct, separator) {
|
|
44
|
+
return {
|
|
45
|
+
kind: "aggregate",
|
|
46
|
+
func,
|
|
47
|
+
arg,
|
|
48
|
+
...(distinct ? { distinct: true } : {}),
|
|
49
|
+
...(getAggregateSeparatorArgIndex(func) !== null && separator !== undefined
|
|
50
|
+
? { separator }
|
|
51
|
+
: {}),
|
|
52
|
+
};
|
|
31
53
|
}
|
|
32
54
|
//# sourceMappingURL=aggregates.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregates.js","sourceRoot":"","sources":["../../src/arrow/aggregates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"aggregates.js","sourceRoot":"","sources":["../../src/arrow/aggregates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,iDAAiD;AACjD,MAAM,CAAC,MAAM,eAAe,GAAqC,IAAI,GAAG,CAAC;IACvE,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,cAAc;IACd,YAAY;IACZ,WAAW;IACX,UAAU;CACX,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAiD;IACxE,YAAY,EAAE,CAAC;IACf,UAAU,EAAE,CAAC;CACd,CAAC;AAEF,MAAM,kBAAkB,GAA2B;IACjD,WAAW,EAAE,cAAc;IAC3B,SAAS,EAAE,YAAY;IACvB,QAAQ,EAAE,WAAW;IACrB,OAAO,EAAE,UAAU;CACpB,CAAC;AAEF,uFAAuF;AACvF,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,OAAO,kBAAkB,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;AAC5E,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACnC,OAAO,eAAe,CAAC,GAAG,CAAC,IAA2B,CAAC,CAAC,CAAC,CAAE,IAA4B,CAAC,CAAC,CAAC,IAAI,CAAC;AACjG,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,IAAyB;IACrE,OAAO,mBAAmB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,IAAyB,EACzB,GAAkB,EAClB,QAAiB,EACjB,SAAkB;IAElB,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,IAAI;QACJ,GAAG;QACH,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,6BAA6B,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,SAAS,KAAK,SAAS;YACzE,CAAC,CAAC,EAAE,SAAS,EAAE;YACf,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC"}
|
package/dist/arrow/index.d.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* Shared arrow-expression language rules and semantic IR builders. The
|
|
3
|
+
* parser and transformer keep their AST-specific traversal in their own
|
|
4
|
+
* modules and converge here only after child expressions are resolved.
|
|
4
5
|
*/
|
|
6
|
+
import type { IrCase, IrExists, IrNode } from "../ir/types.js";
|
|
5
7
|
export { DEFAULT_ROW_PARAM, ALLOWED_METHODS, RELATION_QUERY_METHODS, ACORN_BINARY_OPS, } from "./constants.js";
|
|
6
|
-
export { AGGREGATE_FUNCS,
|
|
8
|
+
export { AGGREGATE_FUNCS, buildIrAggregate, getAggregateSeparatorArgIndex, isAggregateFunc, toIrAggregateFunc, toIrFuncName, } from "./aggregates.js";
|
|
9
|
+
export declare function buildIrCase(when: IrNode, then: IrNode, alternate: IrNode): IrCase;
|
|
10
|
+
export declare function buildIrExists(quantifier: "some" | "every", rootParam: string, relationKey: string, innerParam: string, innerWhere: IrNode): IrExists;
|
|
7
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/arrow/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/arrow/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE/D,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,6BAA6B,EAC7B,eAAe,EACf,iBAAiB,EACjB,YAAY,GACb,MAAM,iBAAiB,CAAC;AAEzB,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CASjF;AAED,wBAAgB,aAAa,CAC3B,UAAU,EAAE,MAAM,GAAG,OAAO,EAC5B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,QAAQ,CASV"}
|
package/dist/arrow/index.js
CHANGED
|
@@ -1,7 +1,28 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* Shared arrow-expression language rules and semantic IR builders. The
|
|
3
|
+
* parser and transformer keep their AST-specific traversal in their own
|
|
4
|
+
* modules and converge here only after child expressions are resolved.
|
|
4
5
|
*/
|
|
5
6
|
export { DEFAULT_ROW_PARAM, ALLOWED_METHODS, RELATION_QUERY_METHODS, ACORN_BINARY_OPS, } from "./constants.js";
|
|
6
|
-
export { AGGREGATE_FUNCS,
|
|
7
|
+
export { AGGREGATE_FUNCS, buildIrAggregate, getAggregateSeparatorArgIndex, isAggregateFunc, toIrAggregateFunc, toIrFuncName, } from "./aggregates.js";
|
|
8
|
+
export function buildIrCase(when, then, alternate) {
|
|
9
|
+
if (alternate.kind === "case") {
|
|
10
|
+
return {
|
|
11
|
+
kind: "case",
|
|
12
|
+
branches: [{ when, then }, ...alternate.branches],
|
|
13
|
+
...(alternate.else !== undefined ? { else: alternate.else } : {}),
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
return { kind: "case", branches: [{ when, then }], else: alternate };
|
|
17
|
+
}
|
|
18
|
+
export function buildIrExists(quantifier, rootParam, relationKey, innerParam, innerWhere) {
|
|
19
|
+
return {
|
|
20
|
+
kind: "exists",
|
|
21
|
+
...(quantifier === "every" ? { negated: true } : {}),
|
|
22
|
+
rootParam,
|
|
23
|
+
relationKey,
|
|
24
|
+
innerParam,
|
|
25
|
+
innerWhere,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
7
28
|
//# sourceMappingURL=index.js.map
|
package/dist/arrow/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/arrow/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/arrow/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,6BAA6B,EAC7B,eAAe,EACf,iBAAiB,EACjB,YAAY,GACb,MAAM,iBAAiB,CAAC;AAEzB,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,IAAY,EAAE,SAAiB;IACvE,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC9B,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC;YACjD,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClE,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,UAA4B,EAC5B,SAAiB,EACjB,WAAmB,EACnB,UAAkB,EAClB,UAAkB;IAElB,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,GAAG,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,SAAS;QACT,WAAW;QACX,UAAU;QACV,UAAU;KACX,CAAC;AACJ,CAAC"}
|
|
@@ -14,7 +14,6 @@ export declare abstract class BaseMigrator implements DbMigrator {
|
|
|
14
14
|
diffSchema(driver: ResolvedDriver, entities: readonly RegisteredEntity[]): Promise<DiffAction[]>;
|
|
15
15
|
private diffColumns;
|
|
16
16
|
protected static normalizeDefault(value: string | null): string | null;
|
|
17
|
-
protected static extractDefault(def: string): string | null;
|
|
18
17
|
protected static computeColumnChanges(dbCol: DbColumnInfo, entityDef: string): ColumnChange[];
|
|
19
18
|
}
|
|
20
19
|
//# sourceMappingURL=base-migrator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-migrator.d.ts","sourceRoot":"","sources":["../../src/dbs/base-migrator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,YAAY,EAEZ,UAAU,EACV,YAAY,EACZ,UAAU,EACV,WAAW,EACX,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"base-migrator.d.ts","sourceRoot":"","sources":["../../src/dbs/base-migrator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,YAAY,EAEZ,UAAU,EACV,YAAY,EACZ,UAAU,EACV,WAAW,EACX,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIzD,8BAAsB,YAAa,YAAW,UAAU;IAEpD,QAAQ,CAAC,WAAW,EAAE,WAAW;IACjC,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa;gBADtC,WAAW,EAAE,WAAW,EACd,aAAa,EAAE,aAAa;IAGjD,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAC/D,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAE/E,UAAU,CACd,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,SAAS,gBAAgB,EAAE,GACpC,OAAO,CAAC,UAAU,EAAE,CAAC;YAuBV,WAAW;IAuCzB,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI;IActE,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,EAAE;CAkC9F"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Each dialect subclasses this and overrides dialect-specific hooks.
|
|
4
4
|
*/
|
|
5
5
|
import { getColumnDef } from "./types.js";
|
|
6
|
+
import { parseColumnDefinition } from "../schema/column-definition.js";
|
|
6
7
|
import { extractBaseType } from "../utils.js";
|
|
7
8
|
export class BaseMigrator {
|
|
8
9
|
dialectName;
|
|
@@ -76,21 +77,18 @@ export class BaseMigrator {
|
|
|
76
77
|
return null;
|
|
77
78
|
return normalized;
|
|
78
79
|
}
|
|
79
|
-
static extractDefault(def) {
|
|
80
|
-
const match = /\bdefault\s+(.+?)(?:\s+not\s+null|\s+primary\s+key|\s+unique|\s+references\b|$)/i.exec(def);
|
|
81
|
-
return BaseMigrator.normalizeDefault(match?.[1] ?? null);
|
|
82
|
-
}
|
|
83
80
|
static computeColumnChanges(dbCol, entityDef) {
|
|
84
81
|
const changes = [];
|
|
82
|
+
const metadata = parseColumnDefinition(entityDef);
|
|
85
83
|
const dbBaseType = extractBaseType(dbCol.type);
|
|
86
84
|
const entityBaseType = extractBaseType(entityDef);
|
|
87
85
|
if (dbBaseType !== entityBaseType) {
|
|
88
86
|
changes.push({ kind: "type", from: dbBaseType, to: entityBaseType });
|
|
89
87
|
}
|
|
90
88
|
const dbPk = dbCol.pk > 0;
|
|
91
|
-
const entityPk =
|
|
89
|
+
const entityPk = metadata.primaryKey;
|
|
92
90
|
const dbNotNull = dbCol.notnull === 1 || dbPk;
|
|
93
|
-
const entityNotNull =
|
|
91
|
+
const entityNotNull = metadata.notNull || entityPk;
|
|
94
92
|
if (dbNotNull !== entityNotNull) {
|
|
95
93
|
changes.push({
|
|
96
94
|
kind: entityNotNull ? "not_null" : "nullable",
|
|
@@ -99,7 +97,7 @@ export class BaseMigrator {
|
|
|
99
97
|
});
|
|
100
98
|
}
|
|
101
99
|
const dbDefault = BaseMigrator.normalizeDefault(dbCol.dflt_value);
|
|
102
|
-
const entityDefault = BaseMigrator.
|
|
100
|
+
const entityDefault = BaseMigrator.normalizeDefault(metadata.defaultValue);
|
|
103
101
|
if (dbDefault !== entityDefault) {
|
|
104
102
|
changes.push({ kind: "default", from: dbDefault, to: entityDefault });
|
|
105
103
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-migrator.js","sourceRoot":"","sources":["../../src/dbs/base-migrator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,OAAgB,YAAY;IAErB;IACU;IAFrB,YACW,WAAwB,EACd,aAA4B;QADtC,gBAAW,GAAX,WAAW,CAAa;QACd,kBAAa,GAAb,aAAa,CAAe;IAC9C,CAAC;IAKJ,KAAK,CAAC,UAAU,CACd,MAAsB,EACtB,QAAqC;QAErC,MAAM,OAAO,GAAiB,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QACzD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAErF,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;YAC3C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBACnD,SAAS;YACX,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QACnE,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC7D,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,MAAsB,EACtB,KAAa,EACb,
|
|
1
|
+
{"version":3,"file":"base-migrator.js","sourceRoot":"","sources":["../../src/dbs/base-migrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../../src/dbs/postgres/driver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,EACV,MAAM,EAKP,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../../src/dbs/postgres/driver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,EACV,MAAM,EAKP,MAAM,uBAAuB,CAAC;AAwB/B,wGAAwG;AACxG,MAAM,WAAW,qBAAqB;IACpC,+EAA+E;IAC/E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4EAA4E;IAC5E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qBAAqB;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,GAAG,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACjC,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6EAA6E;IAC7E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,yEAAyE;IACzE,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,KAAK,IAAI,CAAA;KAAE,CAAC;CACvD;AAED,kDAAkD;AAClD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,CAmG3E"}
|
|
@@ -6,6 +6,7 @@ import pg from "pg";
|
|
|
6
6
|
import { PostgresTrx } from "./trx.js";
|
|
7
7
|
import { postgresDialect } from "./dialect.js";
|
|
8
8
|
import { isRecord } from "../../utils.js";
|
|
9
|
+
import { createCompileOnlyDriver, isCompileOnlyEnabled } from "../../driver/compile-only.js";
|
|
9
10
|
const { Pool } = pg;
|
|
10
11
|
function toBindable(value) {
|
|
11
12
|
if (value === undefined || value === null)
|
|
@@ -25,6 +26,8 @@ function toBindable(value) {
|
|
|
25
26
|
}
|
|
26
27
|
/** Creates a PostgreSQL driver backed by `pg`. */
|
|
27
28
|
export function createPostgresDriver(options) {
|
|
29
|
+
if (isCompileOnlyEnabled())
|
|
30
|
+
return createCompileOnlyDriver(postgresDialect);
|
|
28
31
|
const connectionString = options.connectionString ?? options.url;
|
|
29
32
|
const baseConfig = connectionString
|
|
30
33
|
? { connectionString }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../src/dbs/postgres/driver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AAQpB,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../src/dbs/postgres/driver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { BaseQueryCompiler } from "../query-compiler.js";
|
|
2
2
|
import type { CompileResult, DiffAction, ExpandPlaceholdersResult, CompiledCteBody } from "../types.js";
|
|
3
|
-
import type { ExprAggregate
|
|
3
|
+
import type { ExprAggregate } from "../../orm/expr.js";
|
|
4
|
+
import type { JoinType } from "../../ir/types.js";
|
|
4
5
|
type AlterColumnAction = Extract<DiffAction, {
|
|
5
6
|
kind: "alter_column";
|
|
6
7
|
}>;
|
|
7
8
|
export declare class PostgresQueryCompiler extends BaseQueryCompiler {
|
|
8
9
|
protected readonly dialect: "postgres";
|
|
10
|
+
protected placeholder(index: number): string;
|
|
11
|
+
protected compileXorSql(left: string, right: string): string;
|
|
12
|
+
protected shiftUpdateWherePlaceholders(whereSql: string, offset: number): string;
|
|
9
13
|
compileNextSequenceValues(): CompileResult;
|
|
10
14
|
compileTrackingTable(): CompileResult;
|
|
11
15
|
compileListTables(): CompileResult;
|
|
@@ -14,7 +18,7 @@ export declare class PostgresQueryCompiler extends BaseQueryCompiler {
|
|
|
14
18
|
protected compileWithClause(coreSql: string, coreParams: unknown[], bodies: CompiledCteBody[], paramStartIndex: number): CompileResult;
|
|
15
19
|
private shiftPlaceholders;
|
|
16
20
|
compileAggregate(agg: ExprAggregate, params?: unknown[]): string;
|
|
17
|
-
protected
|
|
21
|
+
protected joinKeyword(joinType: JoinType): string;
|
|
18
22
|
protected compileAlterColumn(action: AlterColumnAction, reverse: boolean): string;
|
|
19
23
|
}
|
|
20
24
|
export declare const postgresQueryCompiler: PostgresQueryCompiler;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-compiler.d.ts","sourceRoot":"","sources":["../../../src/dbs/postgres/query-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,wBAAwB,EACxB,eAAe,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"query-compiler.d.ts","sourceRoot":"","sources":["../../../src/dbs/postgres/query-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,wBAAwB,EACxB,eAAe,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,KAAK,iBAAiB,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC,CAAC;AAEvE,qBAAa,qBAAsB,SAAQ,iBAAiB;IAC1D,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAG,UAAU,CAAU;IAEjD,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAI5C,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAI5D,SAAS,CAAC,4BAA4B,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAIhF,yBAAyB,IAAI,aAAa;IAI1C,oBAAoB,IAAI,aAAa;IAWrC,iBAAiB,IAAI,aAAa;IAalC,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa;IAwBhD,SAAS,CAAC,kBAAkB,CAC1B,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,OAAO,EAAE,EACzB,QAAQ,SAAI,GACX,wBAAwB;IAgB3B,SAAS,CAAC,iBAAiB,CACzB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,OAAO,EAAE,EACrB,MAAM,EAAE,eAAe,EAAE,EACzB,eAAe,EAAE,MAAM,GACtB,aAAa;IAiBhB,OAAO,CAAC,iBAAiB;IAKzB,gBAAgB,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,GAAE,OAAO,EAAO,GAAG,MAAM;IAapE,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;IAIjD,SAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM;CA8BlF;AAED,eAAO,MAAM,qBAAqB,uBAA8B,CAAC"}
|
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
import { BaseQueryCompiler } from "../query-compiler.js";
|
|
2
2
|
export class PostgresQueryCompiler extends BaseQueryCompiler {
|
|
3
3
|
dialect = "postgres";
|
|
4
|
+
placeholder(index) {
|
|
5
|
+
return `$${index}`;
|
|
6
|
+
}
|
|
7
|
+
compileXorSql(left, right) {
|
|
8
|
+
return `(${left} # ${right})`;
|
|
9
|
+
}
|
|
10
|
+
shiftUpdateWherePlaceholders(whereSql, offset) {
|
|
11
|
+
return whereSql.replaceAll(/\$(\d+)/g, (_, n) => `$${Number.parseInt(n, 10) + offset}`);
|
|
12
|
+
}
|
|
4
13
|
compileNextSequenceValues() {
|
|
5
14
|
throw new Error("Postgres sequence allocation is not configured for this dialect yet");
|
|
6
15
|
}
|
|
@@ -95,17 +104,8 @@ export class PostgresQueryCompiler extends BaseQueryCompiler {
|
|
|
95
104
|
return super.compileAggregate(agg, params);
|
|
96
105
|
}
|
|
97
106
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
? "INNER JOIN"
|
|
101
|
-
: (BaseQueryCompiler.JOIN_SQL_KEYWORDS[join.joinType] ?? "LEFT JOIN");
|
|
102
|
-
if (join.on) {
|
|
103
|
-
return ` ${kw} ${this.escapeIdentifier(join.targetTable)} AS ${this.escapeIdentifier(join.alias)} ON ${onSql}`;
|
|
104
|
-
}
|
|
105
|
-
const on = join.foreignKeys
|
|
106
|
-
.map((fk, i) => `${this.escapeIdentifier(mainAlias)}.${this.escapeIdentifier(fk)} = ${this.escapeIdentifier(join.alias)}.${this.escapeIdentifier(join.targetPkColumns[i] ?? join.targetPkColumns[0])}`)
|
|
107
|
-
.join(" AND ");
|
|
108
|
-
return ` ${kw} ${this.escapeIdentifier(join.targetTable)} AS ${this.escapeIdentifier(join.alias)} ON ${on}`;
|
|
107
|
+
joinKeyword(joinType) {
|
|
108
|
+
return joinType === "cross" ? "INNER JOIN" : super.joinKeyword(joinType);
|
|
109
109
|
}
|
|
110
110
|
compileAlterColumn(action, reverse) {
|
|
111
111
|
const table = this.escapeIdentifier(action.table);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-compiler.js","sourceRoot":"","sources":["../../../src/dbs/postgres/query-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"query-compiler.js","sourceRoot":"","sources":["../../../src/dbs/postgres/query-compiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,11 +4,10 @@
|
|
|
4
4
|
* The public surface compiles complete query/migration operations. Dialect
|
|
5
5
|
* subclasses override protected pieces where SQL differs.
|
|
6
6
|
*/
|
|
7
|
-
import type {
|
|
7
|
+
import type { DialectColumnDef, CompileQueryOpts, CompileResult, CompileSelectOpts, DiffAction, ExpandPlaceholdersResult, OnConflictClause, QueryCompiler, CompiledCteBody } from "./types.js";
|
|
8
8
|
import type { Expr, ExprAggregate, ExprCase, ExprColumn, BinaryOp, GroupByItem, JoinSpec } from "../orm/expr.js";
|
|
9
|
-
import type { QueryPlan } from "../orm/helpers/query-plan/query-plan.js";
|
|
10
|
-
import type {
|
|
11
|
-
import type { DialectName, WithClause } from "./types.js";
|
|
9
|
+
import type { QueryPlan, QueryPlanCte, QueryPlanFromSource } from "../orm/helpers/query-plan/query-plan.js";
|
|
10
|
+
import type { DialectName } from "./types.js";
|
|
12
11
|
import type { JoinType } from "../ir/types.js";
|
|
13
12
|
type AlterColumnAction = Extract<DiffAction, {
|
|
14
13
|
kind: "alter_column";
|
|
@@ -32,7 +31,7 @@ export declare abstract class BaseQueryCompiler implements QueryCompiler {
|
|
|
32
31
|
protected abstract readonly dialect: DialectName;
|
|
33
32
|
protected renderColumn(col: ExprColumn): string;
|
|
34
33
|
protected compileUnarySql(op: "!" | "~", operandSql: string): string;
|
|
35
|
-
protected compileXorSql(left: string, right: string): string;
|
|
34
|
+
protected abstract compileXorSql(left: string, right: string): string;
|
|
36
35
|
protected compileBinarySql(op: BinaryOp, left: string, right: string): string;
|
|
37
36
|
protected compileInlineExpr(arg: Expr | null, params: unknown[]): string;
|
|
38
37
|
protected inlineConstLiteral(value: unknown): string;
|
|
@@ -48,12 +47,12 @@ export declare abstract class BaseQueryCompiler implements QueryCompiler {
|
|
|
48
47
|
compileGroupBy(items: GroupByItem[]): string;
|
|
49
48
|
compilePlan(plan: QueryPlan, options?: CompileQueryOpts): CompileResult;
|
|
50
49
|
compileResultSize(plan: QueryPlan): CompileResult;
|
|
51
|
-
protected compileCteBodies(ctes:
|
|
50
|
+
protected compileCteBodies(ctes: QueryPlanCte[] | undefined): CompiledCteBody[];
|
|
52
51
|
protected resolvePlanFromClause(plan: {
|
|
53
52
|
tableName: string;
|
|
54
53
|
tableAlias: string;
|
|
55
|
-
fromSource?:
|
|
56
|
-
},
|
|
54
|
+
fromSource?: QueryPlanFromSource;
|
|
55
|
+
}, paramStartIndex: number): {
|
|
57
56
|
fromClause: string;
|
|
58
57
|
fromParams: unknown[];
|
|
59
58
|
};
|
|
@@ -63,7 +62,7 @@ export declare abstract class BaseQueryCompiler implements QueryCompiler {
|
|
|
63
62
|
protected attachCteBodies(core: CompileResult, bodies: CompiledCteBody[], paramStartIndex: number): CompileResult;
|
|
64
63
|
compileMigrationUp(action: DiffAction): string;
|
|
65
64
|
compileMigrationDown(action: DiffAction): string;
|
|
66
|
-
compileCreateTableIfNotExists(table: string, schema: Record<string,
|
|
65
|
+
compileCreateTableIfNotExists(table: string, schema: Record<string, DialectColumnDef>): string;
|
|
67
66
|
compileAppliedMigrations(): CompileResult;
|
|
68
67
|
compileRecordMigration(name: string): CompileResult;
|
|
69
68
|
compileDeleteMigration(name: string): CompileResult;
|
|
@@ -72,9 +71,9 @@ export declare abstract class BaseQueryCompiler implements QueryCompiler {
|
|
|
72
71
|
abstract compileListTables(): CompileResult;
|
|
73
72
|
abstract compileListColumns(table: string): CompileResult;
|
|
74
73
|
protected escapeIdentifier(name: string): string;
|
|
75
|
-
protected placeholder(index: number): string;
|
|
74
|
+
protected abstract placeholder(index: number): string;
|
|
76
75
|
protected abstract expandPlaceholders(sql: string, resolvedParams: unknown[], startIdx?: number): ExpandPlaceholdersResult;
|
|
77
|
-
protected toColumnDef(def:
|
|
76
|
+
protected toColumnDef(def: DialectColumnDef): string;
|
|
78
77
|
protected compileSelectPlan(plan: QueryPlan, options: CompileQueryOpts): CompileResult;
|
|
79
78
|
protected compileUpdatePlan(plan: QueryPlan): CompileResult;
|
|
80
79
|
protected compileDeletePlan(plan: QueryPlan): CompileResult;
|
|
@@ -104,6 +103,7 @@ export declare abstract class BaseQueryCompiler implements QueryCompiler {
|
|
|
104
103
|
protected compileLike(receiver: string, arg: string, mode: "startsWith" | "endsWith" | "includes"): string;
|
|
105
104
|
compileAggregate(agg: ExprAggregate, params?: unknown[]): string;
|
|
106
105
|
protected buildJoinClause(join: JoinSpec, mainAlias: string, onSql?: string): string;
|
|
106
|
+
protected joinKeyword(joinType: JoinType): string;
|
|
107
107
|
protected appendOnConflict(baseSql: string, onConflict: OnConflictClause, insertColumns: string[]): string;
|
|
108
108
|
protected excludedTableName(): string;
|
|
109
109
|
protected singleInsertReturnsRows(hasPk: boolean): boolean;
|
|
@@ -111,10 +111,10 @@ export declare abstract class BaseQueryCompiler implements QueryCompiler {
|
|
|
111
111
|
sql: string;
|
|
112
112
|
params: unknown[];
|
|
113
113
|
};
|
|
114
|
-
protected
|
|
114
|
+
protected abstract shiftUpdateWherePlaceholders(whereSql: string, offset: number): string;
|
|
115
115
|
protected registeredCteNames(plan: QueryPlan): Set<string>;
|
|
116
116
|
protected fixMutationWhereAlias(table: string, whereSql: string, alias?: string, keepAlias?: boolean): string;
|
|
117
|
-
protected compileCreateTable(table: string, schema: Record<string,
|
|
117
|
+
protected compileCreateTable(table: string, schema: Record<string, DialectColumnDef>, ifNotExists: boolean): string;
|
|
118
118
|
protected compileRecreateDroppedTable(table: string, columnInfos: Array<{
|
|
119
119
|
name: string;
|
|
120
120
|
type: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-compiler.d.ts","sourceRoot":"","sources":["../../src/dbs/query-compiler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"query-compiler.d.ts","sourceRoot":"","sources":["../../src/dbs/query-compiler.ts"],"names":[],"mappings":"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"}
|