@zmdb/sql 1.0.0-beta.1

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 (98) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +35 -0
  3. package/dist/aggregations/index.d.ts +30 -0
  4. package/dist/aggregations/index.d.ts.map +1 -0
  5. package/dist/aggregations/index.js +52 -0
  6. package/dist/aggregations/index.js.map +1 -0
  7. package/dist/clauses.d.ts +112 -0
  8. package/dist/clauses.d.ts.map +1 -0
  9. package/dist/clauses.js +267 -0
  10. package/dist/clauses.js.map +1 -0
  11. package/dist/comments/index.d.ts +26 -0
  12. package/dist/comments/index.d.ts.map +1 -0
  13. package/dist/comments/index.js +28 -0
  14. package/dist/comments/index.js.map +1 -0
  15. package/dist/compiled-query.d.ts +12 -0
  16. package/dist/compiled-query.d.ts.map +1 -0
  17. package/dist/compiled-query.js +2 -0
  18. package/dist/compiled-query.js.map +1 -0
  19. package/dist/dialects/index.d.ts +19 -0
  20. package/dist/dialects/index.d.ts.map +1 -0
  21. package/dist/dialects/index.js +43 -0
  22. package/dist/dialects/index.js.map +1 -0
  23. package/dist/dialects/protocol.d.ts +230 -0
  24. package/dist/dialects/protocol.d.ts.map +1 -0
  25. package/dist/dialects/protocol.js +230 -0
  26. package/dist/dialects/protocol.js.map +1 -0
  27. package/dist/errors.d.ts +9 -0
  28. package/dist/errors.d.ts.map +1 -0
  29. package/dist/errors.js +17 -0
  30. package/dist/errors.js.map +1 -0
  31. package/dist/expressions/index.d.ts +50 -0
  32. package/dist/expressions/index.d.ts.map +1 -0
  33. package/dist/expressions/index.js +77 -0
  34. package/dist/expressions/index.js.map +1 -0
  35. package/dist/extensions/index.d.ts +85 -0
  36. package/dist/extensions/index.d.ts.map +1 -0
  37. package/dist/extensions/index.js +120 -0
  38. package/dist/extensions/index.js.map +1 -0
  39. package/dist/fts/index.d.ts +28 -0
  40. package/dist/fts/index.d.ts.map +1 -0
  41. package/dist/fts/index.js +110 -0
  42. package/dist/fts/index.js.map +1 -0
  43. package/dist/index.d.ts +128 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +364 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/introspect/types.d.ts +58 -0
  48. package/dist/introspect/types.d.ts.map +1 -0
  49. package/dist/introspect/types.js +2 -0
  50. package/dist/introspect/types.js.map +1 -0
  51. package/dist/joins/index.d.ts +20 -0
  52. package/dist/joins/index.d.ts.map +1 -0
  53. package/dist/joins/index.js +24 -0
  54. package/dist/joins/index.js.map +1 -0
  55. package/dist/migrations/types.d.ts +100 -0
  56. package/dist/migrations/types.d.ts.map +1 -0
  57. package/dist/migrations/types.js +2 -0
  58. package/dist/migrations/types.js.map +1 -0
  59. package/dist/quoting.d.ts +40 -0
  60. package/dist/quoting.d.ts.map +1 -0
  61. package/dist/quoting.js +98 -0
  62. package/dist/quoting.js.map +1 -0
  63. package/dist/schema-objects/extensions.d.ts +5 -0
  64. package/dist/schema-objects/extensions.d.ts.map +1 -0
  65. package/dist/schema-objects/extensions.js +9 -0
  66. package/dist/schema-objects/extensions.js.map +1 -0
  67. package/dist/schema-objects/index.d.ts +25 -0
  68. package/dist/schema-objects/index.d.ts.map +1 -0
  69. package/dist/schema-objects/index.js +86 -0
  70. package/dist/schema-objects/index.js.map +1 -0
  71. package/dist/schema-objects/types.d.ts +62 -0
  72. package/dist/schema-objects/types.d.ts.map +1 -0
  73. package/dist/schema-objects/types.js +2 -0
  74. package/dist/schema-objects/types.js.map +1 -0
  75. package/dist/set-ops/index.d.ts +16 -0
  76. package/dist/set-ops/index.d.ts.map +1 -0
  77. package/dist/set-ops/index.js +41 -0
  78. package/dist/set-ops/index.js.map +1 -0
  79. package/package.json +70 -0
  80. package/src/aggregations/index.ts +127 -0
  81. package/src/clauses.ts +387 -0
  82. package/src/comments/index.ts +49 -0
  83. package/src/compiled-query.ts +12 -0
  84. package/src/dialects/index.ts +103 -0
  85. package/src/dialects/protocol.ts +478 -0
  86. package/src/errors.ts +18 -0
  87. package/src/expressions/index.ts +127 -0
  88. package/src/extensions/index.ts +235 -0
  89. package/src/fts/index.ts +157 -0
  90. package/src/index.ts +685 -0
  91. package/src/introspect/types.ts +60 -0
  92. package/src/joins/index.ts +69 -0
  93. package/src/migrations/types.ts +93 -0
  94. package/src/quoting.ts +111 -0
  95. package/src/schema-objects/extensions.ts +12 -0
  96. package/src/schema-objects/index.ts +125 -0
  97. package/src/schema-objects/types.ts +73 -0
  98. package/src/set-ops/index.ts +48 -0
@@ -0,0 +1,128 @@
1
+ import type { CompiledQuery } from './compiled-query.js';
2
+ import { type DialectTarget, type SqlDialect } from './dialects/index.js';
3
+ export { QueryCompilerError, UnsupportedFeatureError } from './errors.js';
4
+ export type { CompiledQuery, QueryTelemetry } from './compiled-query.js';
5
+ export { defineSqlDialect, dialectCapabilities, dialectFamily, dialectName, dialectSupportsReturning, dialectTraits, extendSqlDialect, isSqlDialect, } from './dialects/index.js';
6
+ export type { AppliedMigration, DatabaseCapabilities, DialectCompiler, DialectFeature, DialectOutbox, DialectReturningColumn, DialectReturningContext, DialectReturningSql, DialectSqlType, DialectTarget, DialectTypeMap, DialectUpsertConflict, DialectUpsertContext, DialectUpsertReferences, IntrospectionDriver, Introspector, IntrospectOptions, MigrationConnection, MigrationDialect, MigrationDriver, MigrationPlan, MigrationTableOptions, PaginationTail, PlaceholderStyle, ResolvedDialectTraits, ReturningCapability, ReturningStatement, ReturningStyle, SchemaObjectOperation, SqlDialect, SqlDialectDefinition, SqlDialectExtension, } from './dialects/index.js';
7
+ export type { ChangeOp, ColumnSnapshot, ExtensionSnapshot, ExtensionType, ForeignKeySnapshot, ReferentialAction, SchemaSnapshot, TableOptions, TableSnapshot, } from './migrations/types.js';
8
+ export type { CatalogColumnSnapshot, CatalogForeignKeySnapshot, CatalogIndexColumn, CatalogIndexSnapshot, CatalogSchemaSnapshot, CatalogSelection, CatalogTableSnapshot, CatalogWarning, } from './introspect/types.js';
9
+ import { type ComparisonPredicate } from './clauses.js';
10
+ import { type AliasedDistanceExpression, type DistanceExpression, type SpatialPredicate } from './extensions/index.js';
11
+ import { formatPlaceholder, quoteColumn, quoteIdentifier, quoteTable, renumberPlaceholders } from './quoting.js';
12
+ export { EXPR, coalesce, concat, dec, inc, mul, not, proposed } from './expressions/index.js';
13
+ export type { ColumnExpr, SetValue } from './expressions/index.js';
14
+ export { DISTANCE_OPERATORS, distance, stContains, stDWithin } from './extensions/index.js';
15
+ export type { AliasedDistanceExpression, DistanceExpression, DistanceOp, ExtensionColumnOf, GeoJsonGeometry, GeometryColumnOf, GeometryValueOf, SpatialPredicate, VectorColumnOf, } from './extensions/index.js';
16
+ export { formatPlaceholder, quoteColumn, quoteIdentifier, quoteTable, renumberPlaceholders };
17
+ export type Operator = '=' | '!=' | '<' | '<=' | '>' | '>=' | 'like' | 'ilike' | 'in' | 'not in' | 'nin' | 'exists' | 'not exists' | 'is null' | 'is not null' | (string & {});
18
+ export { OP_MAP } from './clauses.js';
19
+ export { renderPredicate } from './clauses.js';
20
+ export type { ComparisonPredicate, Predicate, PredicateGroup } from './clauses.js';
21
+ export type Direction = 'asc' | 'desc';
22
+ /** A database column projected under an application-facing result key. */
23
+ export interface AliasedColumn {
24
+ readonly column: string;
25
+ readonly alias: string;
26
+ }
27
+ type SelectedColumn = string | AliasedColumn | AliasedDistanceExpression;
28
+ type ReturningColumn = string | AliasedColumn;
29
+ /**
30
+ * Collection utility that deduplicates keys while preserving insertion order AND
31
+ * filtering out `null` and `undefined` key values.
32
+ *
33
+ * Note: Dropping null/undefined key values is a semantic choice designed for batch key loading
34
+ * (parent rows with a null foreign key are silently omitted from relationship loading).
35
+ */
36
+ export declare function sanitizeKeys<T>(keys: readonly T[]): T[];
37
+ /**
38
+ * Collection utility that partitions an array into contiguous chunks of at most `chunkSize` elements.
39
+ * Used to split large batch parameter lists into parameter-safe sub-queries.
40
+ */
41
+ export declare function chunkArray<T>(array: readonly T[], chunkSize: number): T[][];
42
+ export { appendComment, serializeComment, withComments } from './comments/index.js';
43
+ export { type CommentKey, type CommentKeys, type CommentPairs } from './comments/index.js';
44
+ /** Optional compiler features that would otherwise change every query shape. */
45
+ export interface QueryCompilerOptions {
46
+ readonly telemetry?: true;
47
+ }
48
+ export interface SelectBuilder<T = unknown> {
49
+ select(columns?: readonly SelectedColumn[]): SelectBuilder<T>;
50
+ where(predicate: SpatialPredicate): SelectBuilder<T>;
51
+ where(col: string, op: Operator, value: unknown): SelectBuilder<T>;
52
+ andWhere(predicate: SpatialPredicate): SelectBuilder<T>;
53
+ andWhere(col: string, op: Operator, value: unknown): SelectBuilder<T>;
54
+ orWhere(predicate: SpatialPredicate): SelectBuilder<T>;
55
+ orWhere(col: string, op: Operator, value: unknown): SelectBuilder<T>;
56
+ whereGroup(predicates: readonly ComparisonPredicate[]): SelectBuilder<T>;
57
+ orWhereGroup(predicates: readonly ComparisonPredicate[]): SelectBuilder<T>;
58
+ whereIn(col: string, values: readonly unknown[]): SelectBuilder<T>;
59
+ andWhereIn(col: string, values: readonly unknown[]): SelectBuilder<T>;
60
+ orWhereIn(col: string, values: readonly unknown[]): SelectBuilder<T>;
61
+ whereNotIn(col: string, values: readonly unknown[]): SelectBuilder<T>;
62
+ andWhereNotIn(col: string, values: readonly unknown[]): SelectBuilder<T>;
63
+ orWhereNotIn(col: string, values: readonly unknown[]): SelectBuilder<T>;
64
+ whereExists(subquery: SelectBuilder<unknown> | {
65
+ compile(): CompiledQuery;
66
+ }): SelectBuilder<T>;
67
+ andWhereExists(subquery: SelectBuilder<unknown> | {
68
+ compile(): CompiledQuery;
69
+ }): SelectBuilder<T>;
70
+ orWhereExists(subquery: SelectBuilder<unknown> | {
71
+ compile(): CompiledQuery;
72
+ }): SelectBuilder<T>;
73
+ whereNotExists(subquery: SelectBuilder<unknown> | {
74
+ compile(): CompiledQuery;
75
+ }): SelectBuilder<T>;
76
+ andWhereNotExists(subquery: SelectBuilder<unknown> | {
77
+ compile(): CompiledQuery;
78
+ }): SelectBuilder<T>;
79
+ orWhereNotExists(subquery: SelectBuilder<unknown> | {
80
+ compile(): CompiledQuery;
81
+ }): SelectBuilder<T>;
82
+ orderBy(col: string | DistanceExpression, dir: Direction): SelectBuilder<T>;
83
+ limit(n: number): SelectBuilder<T>;
84
+ offset(n: number): SelectBuilder<T>;
85
+ compile(): CompiledQuery;
86
+ readonly dialect: DialectTarget;
87
+ readonly _type?: T;
88
+ }
89
+ export interface OnConflictBuilder {
90
+ doUpdate(updateFields?: readonly string[] | Record<string, unknown>): InsertBuilder;
91
+ doNothing(): InsertBuilder;
92
+ }
93
+ export interface InsertBuilder {
94
+ values(row: Record<string, unknown>): InsertBuilder;
95
+ onConflict(target?: string | readonly string[]): OnConflictBuilder;
96
+ returning(cols?: readonly ReturningColumn[]): InsertBuilder;
97
+ compile(): CompiledQuery;
98
+ }
99
+ export interface UpdateBuilder {
100
+ set(row: Record<string, unknown>): UpdateBuilder;
101
+ where(col: string, op: Operator, value: unknown): UpdateBuilder;
102
+ orWhere(col: string, op: Operator, value: unknown): UpdateBuilder;
103
+ whereGroup(predicates: readonly ComparisonPredicate[]): UpdateBuilder;
104
+ whereIn(col: string, values: readonly unknown[]): UpdateBuilder;
105
+ whereNotIn(col: string, values: readonly unknown[]): UpdateBuilder;
106
+ returning(cols?: readonly ReturningColumn[]): UpdateBuilder;
107
+ compile(): CompiledQuery;
108
+ }
109
+ export interface DeleteBuilder {
110
+ where(col: string, op: Operator, value: unknown): DeleteBuilder;
111
+ orWhere(col: string, op: Operator, value: unknown): DeleteBuilder;
112
+ whereGroup(predicates: readonly ComparisonPredicate[]): DeleteBuilder;
113
+ whereIn(col: string, values: readonly unknown[]): DeleteBuilder;
114
+ whereNotIn(col: string, values: readonly unknown[]): DeleteBuilder;
115
+ returning(cols?: readonly ReturningColumn[]): DeleteBuilder;
116
+ compile(): CompiledQuery;
117
+ }
118
+ export interface QueryCompiler {
119
+ selectFrom(table: string): SelectBuilder;
120
+ insertInto(table: string): InsertBuilder;
121
+ updateTable(table: string): UpdateBuilder;
122
+ deleteFrom(table: string): DeleteBuilder;
123
+ callFunction(name: string, args: readonly unknown[]): CompiledQuery;
124
+ callTableFunction(name: string, args: readonly unknown[]): CompiledQuery;
125
+ callProcedure(name: string, args: readonly unknown[]): CompiledQuery;
126
+ }
127
+ export declare function createQueryCompiler<Name extends string>(dialect: SqlDialect<Name>, options?: QueryCompilerOptions): QueryCompiler;
128
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,364 @@
1
+ // @zmdb/sql — implementation.
2
+ import { dialectName, dialectTraits, } from './dialects/index.js';
3
+ import { UnsupportedFeatureError } from './errors.js';
4
+ export { QueryCompilerError, UnsupportedFeatureError } from './errors.js';
5
+ export { defineSqlDialect, dialectCapabilities, dialectFamily, dialectName, dialectSupportsReturning, dialectTraits, extendSqlDialect, isSqlDialect, } from './dialects/index.js';
6
+ // #17 SELECT compilation implemented (+ shared dialect quoting/placeholders,
7
+ // which also satisfies the SELECT-based dialect tests of #19). Write builders
8
+ // (#18 INSERT/UPDATE/DELETE) remain unimplemented; their tests stay red.
9
+ import { frozenQuery, queryTelemetry, tailClause, tailMethods, whereClause, } from './clauses.js';
10
+ import { emitColumnExpr, isColumnExpr } from './expressions/index.js';
11
+ import { isAliasedDistanceExpression, isDistanceExpression, isSpatialPredicate, renderAliasedDistanceExpression, renderDistanceExpression, } from './extensions/index.js';
12
+ import { formatPlaceholder, quoteColumn, quoteIdentifier, quoteTable, renumberPlaceholders } from './quoting.js';
13
+ export { EXPR, coalesce, concat, dec, inc, mul, not, proposed } from './expressions/index.js';
14
+ export { DISTANCE_OPERATORS, distance, stContains, stDWithin } from './extensions/index.js';
15
+ export { formatPlaceholder, quoteColumn, quoteIdentifier, quoteTable, renumberPlaceholders };
16
+ export { OP_MAP } from './clauses.js';
17
+ export { renderPredicate } from './clauses.js';
18
+ function isAliasedColumn(column) {
19
+ return typeof column === 'object' && 'column' in column && 'alias' in column;
20
+ }
21
+ /**
22
+ * Collection utility that deduplicates keys while preserving insertion order AND
23
+ * filtering out `null` and `undefined` key values.
24
+ *
25
+ * Note: Dropping null/undefined key values is a semantic choice designed for batch key loading
26
+ * (parent rows with a null foreign key are silently omitted from relationship loading).
27
+ */
28
+ export function sanitizeKeys(keys) {
29
+ const result = [];
30
+ const seen = new Set();
31
+ for (const k of keys) {
32
+ if (k !== null && k !== undefined && !seen.has(k)) {
33
+ seen.add(k);
34
+ result.push(k);
35
+ }
36
+ }
37
+ return result;
38
+ }
39
+ /**
40
+ * Collection utility that partitions an array into contiguous chunks of at most `chunkSize` elements.
41
+ * Used to split large batch parameter lists into parameter-safe sub-queries.
42
+ */
43
+ export function chunkArray(array, chunkSize) {
44
+ if (chunkSize <= 0)
45
+ throw new Error('chunkSize must be greater than 0');
46
+ const chunks = [];
47
+ for (let i = 0; i < array.length; i += chunkSize) {
48
+ chunks.push(array.slice(i, i + chunkSize));
49
+ }
50
+ return chunks;
51
+ }
52
+ export { appendComment, serializeComment, withComments } from './comments/index.js';
53
+ export {} from './comments/index.js';
54
+ function makeSelect(d, state, telemetry) {
55
+ const next = (patch) => makeSelect(d, { ...state, ...patch }, telemetry);
56
+ const addWhere = (connector, col, op, value) => next({ wheres: [...state.wheres, { col, op, value, connector }] });
57
+ const addSpatial = (connector, predicate) => next({ wheres: [...state.wheres, { ...predicate, connector }] });
58
+ const addGroup = (connector, predicates) => next({ wheres: [...state.wheres, { kind: 'group', predicates, connector }] });
59
+ function where(first, op, value) {
60
+ if (isSpatialPredicate(first))
61
+ return addSpatial('AND', first);
62
+ if (op === undefined)
63
+ throw new TypeError('where(column, operator, value) requires an operator');
64
+ return addWhere('AND', first, op, value);
65
+ }
66
+ function andWhere(first, op, value) {
67
+ if (isSpatialPredicate(first))
68
+ return addSpatial('AND', first);
69
+ if (op === undefined)
70
+ throw new TypeError('andWhere(column, operator, value) requires an operator');
71
+ return addWhere('AND', first, op, value);
72
+ }
73
+ function orWhere(first, op, value) {
74
+ if (isSpatialPredicate(first))
75
+ return addSpatial('OR', first);
76
+ if (op === undefined)
77
+ throw new TypeError('orWhere(column, operator, value) requires an operator');
78
+ return addWhere('OR', first, op, value);
79
+ }
80
+ return {
81
+ ...tailMethods(state, next),
82
+ dialect: d,
83
+ select: columns => (columns === undefined ? next({}) : next({ columns })),
84
+ where,
85
+ andWhere,
86
+ orWhere,
87
+ whereGroup: predicates => addGroup('AND', predicates),
88
+ orWhereGroup: predicates => addGroup('OR', predicates),
89
+ whereIn: (col, values) => addWhere('AND', col, 'in', values),
90
+ andWhereIn: (col, values) => addWhere('AND', col, 'in', values),
91
+ orWhereIn: (col, values) => addWhere('OR', col, 'in', values),
92
+ whereNotIn: (col, values) => addWhere('AND', col, 'not in', values),
93
+ andWhereNotIn: (col, values) => addWhere('AND', col, 'not in', values),
94
+ orWhereNotIn: (col, values) => addWhere('OR', col, 'not in', values),
95
+ whereExists: subquery => addWhere('AND', '', 'EXISTS', subquery),
96
+ andWhereExists: subquery => addWhere('AND', '', 'EXISTS', subquery),
97
+ orWhereExists: subquery => addWhere('OR', '', 'EXISTS', subquery),
98
+ whereNotExists: subquery => addWhere('AND', '', 'NOT EXISTS', subquery),
99
+ andWhereNotExists: subquery => addWhere('AND', '', 'NOT EXISTS', subquery),
100
+ orWhereNotExists: subquery => addWhere('OR', '', 'NOT EXISTS', subquery),
101
+ compile: () => {
102
+ const params = [];
103
+ const cols = state.columns && state.columns.length > 0
104
+ ? state.columns
105
+ .map(column => isAliasedColumn(column)
106
+ ? `${quoteColumn(d, column.column)} AS ${quoteIdentifier(d, column.alias)}`
107
+ : isAliasedDistanceExpression(column)
108
+ ? renderAliasedDistanceExpression(d, column, params)
109
+ : quoteColumn(d, column))
110
+ .join(', ')
111
+ : '*';
112
+ const predicates = whereClause(d, state.wheres, params);
113
+ const orderBy = state.orderBys.length === 0
114
+ ? ''
115
+ : ` ORDER BY ${state.orderBys
116
+ .map(order => {
117
+ const expression = isDistanceExpression(order.col)
118
+ ? renderDistanceExpression(d, order.col, params)
119
+ : quoteColumn(d, order.col);
120
+ return `${expression} ${order.dir.toUpperCase()}`;
121
+ })
122
+ .join(', ')}`;
123
+ const text = `SELECT ${cols} FROM ${quoteTable(d, state.table)}` +
124
+ predicates +
125
+ orderBy +
126
+ tailClause(d, {
127
+ limitN: state.limitN,
128
+ offsetN: state.offsetN,
129
+ ordered: state.orderBys.length > 0,
130
+ });
131
+ return frozenQuery(text, params, queryTelemetry(d, 'SELECT', state.table, telemetry));
132
+ },
133
+ };
134
+ }
135
+ function routineCall(dialect, name, args, kind) {
136
+ const nameOfDialect = dialectName(dialect);
137
+ const traits = dialectTraits(dialect);
138
+ const supported = kind === 'function' ? traits.functions : kind === 'procedure' ? traits.procedures : traits.tableFunctions;
139
+ if (!supported) {
140
+ throw new UnsupportedFeatureError(`stored routine "${name}"`, nameOfDialect);
141
+ }
142
+ const placeholders = args.map((_, index) => formatPlaceholder(dialect, index + 1)).join(', ');
143
+ const routine = quoteIdentifier(dialect, name);
144
+ const text = kind === 'procedure'
145
+ ? `CALL ${routine}(${placeholders})`
146
+ : kind === 'table-function'
147
+ ? `SELECT * FROM ${routine}(${placeholders})`
148
+ : `SELECT ${routine}(${placeholders}) AS ${quoteIdentifier(dialect, 'result')}`;
149
+ return frozenQuery(text, args);
150
+ }
151
+ function returningColumn(d, column) {
152
+ if (typeof column === 'string')
153
+ return column === '*' ? '*' : quoteColumn(d, column);
154
+ return `${quoteColumn(d, column.column)} AS ${quoteIdentifier(d, column.alias)}`;
155
+ }
156
+ const NO_RETURNING_SQL = Object.freeze({ inline: '', suffix: '' });
157
+ function returningSql(d, statement, row, cols) {
158
+ if (!cols || cols.length === 0)
159
+ return NO_RETURNING_SQL;
160
+ const style = dialectTraits(d).returning[statement];
161
+ if (style === 'none') {
162
+ const name = dialectName(d);
163
+ throw new UnsupportedFeatureError('returning', name, `returning is not supported for ${statement.toUpperCase()} on dialect "${name}"; ` +
164
+ 'omit returning() and perform an explicit read');
165
+ }
166
+ if (style === 'suffix') {
167
+ return Object.freeze({
168
+ inline: '',
169
+ suffix: ` RETURNING ${cols.map(column => returningColumn(d, column)).join(', ')}`,
170
+ });
171
+ }
172
+ if (typeof d === 'string' || d.compiler === undefined) {
173
+ throw new UnsupportedFeatureError(`${style} returning strategy`, dialectName(d), `dialect "${dialectName(d)}" must provide its package-owned compiler strategy`);
174
+ }
175
+ return d.compiler.returning({
176
+ dialect: d,
177
+ statement,
178
+ row,
179
+ columns: cols,
180
+ });
181
+ }
182
+ function normalizeTarget(target) {
183
+ if (!target)
184
+ return undefined;
185
+ if (typeof target === 'string')
186
+ return [target];
187
+ return target;
188
+ }
189
+ /** ` (a, b)` for an explicit conflict target; '' when the server infers it. */
190
+ function conflictTarget(d, target) {
191
+ if (!target || target.length === 0)
192
+ return '';
193
+ return ` (${target.map(t => quoteIdentifier(d, t)).join(', ')})`;
194
+ }
195
+ /**
196
+ * `col = <the value this INSERT tried to write>` for each column. MySQL spells
197
+ * that VALUES(col) where postgres and sqlite say EXCLUDED.col. VALUES() is
198
+ * deprecated in MySQL 8.0.20+ in favour of a row alias (`AS new`), but keeping
199
+ * it means servers older than that still work.
200
+ */
201
+ function upsertSetSql(d, cols, upsert) {
202
+ const value = (c) => upsert === 'onDuplicateKey' ? `VALUES(${quoteIdentifier(d, c)})` : `EXCLUDED.${quoteIdentifier(d, c)}`;
203
+ return cols.map(c => `${quoteIdentifier(d, c)} = ${value(c)}`).join(', ');
204
+ }
205
+ function setValueSql(d, table, column, value, params, scope, references) {
206
+ if (!isColumnExpr(value)) {
207
+ params.push(value);
208
+ return formatPlaceholder(d, params.length);
209
+ }
210
+ const emitted = emitColumnExpr(value, {
211
+ dialect: d,
212
+ table,
213
+ column,
214
+ parameterIndex: params.length + 1,
215
+ scope,
216
+ ...(references === undefined
217
+ ? {}
218
+ : {
219
+ currentReference: references.current,
220
+ proposedReference: references.proposed,
221
+ }),
222
+ });
223
+ params.push(...emitted.params);
224
+ return emitted.sql;
225
+ }
226
+ function makeInsert(d, table, row, ret, conflict, telemetry = false) {
227
+ const setConflict = (c) => makeInsert(d, table, row, ret, c, telemetry);
228
+ return {
229
+ values: r => makeInsert(d, table, r, ret, conflict, telemetry),
230
+ returning: cols => makeInsert(d, table, row, cols ?? [], conflict, telemetry),
231
+ onConflict: target => {
232
+ const normTarget = normalizeTarget(target);
233
+ return {
234
+ doUpdate: updateFields => {
235
+ if (Array.isArray(updateFields) && updateFields.length === 0) {
236
+ throw new Error('Empty updateFields array is not allowed in doUpdate(). Omit updateFields (or pass undefined) to update all non-target columns, or use doNothing().');
237
+ }
238
+ return setConflict({ action: 'update', target: normTarget, updateFields });
239
+ },
240
+ doNothing: () => setConflict({ action: 'ignore', target: normTarget }),
241
+ };
242
+ },
243
+ compile: () => {
244
+ if (!row)
245
+ throw new Error('insertInto requires values()');
246
+ const keys = Object.keys(row);
247
+ const params = keys.map(k => row[k]);
248
+ const cols = keys.map(k => quoteIdentifier(d, k)).join(', ');
249
+ const placeholders = keys.map((_, i) => formatPlaceholder(d, i + 1));
250
+ const placeholderList = placeholders.join(', ');
251
+ const returning = returningSql(d, conflict === undefined ? 'insert' : 'upsert', 'new', ret);
252
+ const insert = `INSERT INTO ${quoteTable(d, table)} (${cols})${returning.inline} VALUES (${placeholderList})`;
253
+ let text;
254
+ if (!conflict) {
255
+ text = insert;
256
+ }
257
+ else {
258
+ const upsert = dialectTraits(d).upsert;
259
+ if (upsert === 'none')
260
+ throw new UnsupportedFeatureError('upsert', dialectName(d));
261
+ if (upsert === 'merge') {
262
+ if (typeof d === 'string' || d.compiler === undefined) {
263
+ throw new UnsupportedFeatureError(`${upsert} upsert strategy`, dialectName(d), `dialect "${dialectName(d)}" must provide its package-owned compiler strategy`);
264
+ }
265
+ text = d.compiler.upsert({
266
+ dialect: d,
267
+ table,
268
+ columns: keys,
269
+ placeholders,
270
+ conflict,
271
+ returning,
272
+ renderUpdateValue: (column, value, references) => setValueSql(d, table, column, value, params, 'upsert', references),
273
+ isProposedValue: value => isColumnExpr(value) && value.op === 'proposed',
274
+ });
275
+ }
276
+ else if (conflict.action === 'ignore') {
277
+ text =
278
+ upsert === 'onDuplicateKey'
279
+ ? `INSERT IGNORE INTO ${quoteTable(d, table)} (${cols}) VALUES (${placeholderList})`
280
+ : `${insert} ON CONFLICT${conflictTarget(d, conflict.target)} DO NOTHING`;
281
+ }
282
+ else {
283
+ let setSql;
284
+ if (Array.isArray(conflict.updateFields)) {
285
+ setSql = upsertSetSql(d, conflict.updateFields, upsert);
286
+ }
287
+ else if (conflict.updateFields) {
288
+ setSql = Object.entries(conflict.updateFields)
289
+ .map(([k, val]) => `${quoteIdentifier(d, k)} = ${setValueSql(d, table, k, val, params, 'upsert')}`)
290
+ .join(', ');
291
+ }
292
+ else {
293
+ const targetSet = new Set(conflict.target ?? []);
294
+ const nonTarget = keys.filter(k => !targetSet.has(k));
295
+ // If every inserted column is a conflict target, nonTarget is empty and
296
+ // the SET list would be empty SQL. Setting them all back to what the
297
+ // INSERT carried is a valid no-op.
298
+ setSql = upsertSetSql(d, nonTarget.length > 0 ? nonTarget : keys, upsert);
299
+ }
300
+ text =
301
+ upsert === 'onDuplicateKey'
302
+ ? `${insert} ON DUPLICATE KEY UPDATE ${setSql}`
303
+ : `${insert} ON CONFLICT${conflictTarget(d, conflict.target)} DO UPDATE SET ${setSql}`;
304
+ }
305
+ }
306
+ text += returning.suffix;
307
+ return frozenQuery(text, params, queryTelemetry(d, 'INSERT', table, telemetry));
308
+ },
309
+ };
310
+ }
311
+ function makeUpdate(d, table, row, wheres = [], ret, telemetry = false) {
312
+ return {
313
+ set: r => makeUpdate(d, table, r, wheres, ret, telemetry),
314
+ where: (col, op, value) => makeUpdate(d, table, row, [...wheres, { col, op, value, connector: 'AND' }], ret, telemetry),
315
+ orWhere: (col, op, value) => makeUpdate(d, table, row, [...wheres, { col, op, value, connector: 'OR' }], ret, telemetry),
316
+ whereGroup: predicates => makeUpdate(d, table, row, [...wheres, { kind: 'group', predicates, connector: 'AND' }], ret, telemetry),
317
+ whereIn: (col, values) => makeUpdate(d, table, row, [...wheres, { col, op: 'in', value: values, connector: 'AND' }], ret, telemetry),
318
+ whereNotIn: (col, values) => makeUpdate(d, table, row, [...wheres, { col, op: 'not in', value: values, connector: 'AND' }], ret, telemetry),
319
+ returning: cols => makeUpdate(d, table, row, wheres, cols ?? [], telemetry),
320
+ compile: () => {
321
+ if (!row)
322
+ throw new Error('updateTable requires set()');
323
+ const params = [];
324
+ const sets = Object.keys(row)
325
+ .map(k => `${quoteIdentifier(d, k)} = ${setValueSql(d, table, k, row[k], params, 'update')}`)
326
+ .join(', ');
327
+ const returning = returningSql(d, 'update', 'new', ret);
328
+ const text = `UPDATE ${quoteTable(d, table)} SET ${sets}` +
329
+ returning.inline +
330
+ whereClause(d, wheres, params) +
331
+ returning.suffix;
332
+ return frozenQuery(text, params, queryTelemetry(d, 'UPDATE', table, telemetry));
333
+ },
334
+ };
335
+ }
336
+ function makeDelete(d, table, wheres = [], ret, telemetry = false) {
337
+ return {
338
+ where: (col, op, value) => makeDelete(d, table, [...wheres, { col, op, value, connector: 'AND' }], ret, telemetry),
339
+ orWhere: (col, op, value) => makeDelete(d, table, [...wheres, { col, op, value, connector: 'OR' }], ret, telemetry),
340
+ whereGroup: predicates => makeDelete(d, table, [...wheres, { kind: 'group', predicates, connector: 'AND' }], ret, telemetry),
341
+ whereIn: (col, values) => makeDelete(d, table, [...wheres, { col, op: 'in', value: values, connector: 'AND' }], ret, telemetry),
342
+ whereNotIn: (col, values) => makeDelete(d, table, [...wheres, { col, op: 'not in', value: values, connector: 'AND' }], ret, telemetry),
343
+ returning: cols => makeDelete(d, table, wheres, cols ?? [], telemetry),
344
+ compile: () => {
345
+ const params = [];
346
+ const returning = returningSql(d, 'delete', 'old', ret);
347
+ const text = `DELETE FROM ${quoteTable(d, table)}` + returning.inline + whereClause(d, wheres, params) + returning.suffix;
348
+ return frozenQuery(text, params, queryTelemetry(d, 'DELETE', table, telemetry));
349
+ },
350
+ };
351
+ }
352
+ export function createQueryCompiler(dialect, options) {
353
+ const telemetry = options?.telemetry === true;
354
+ return {
355
+ selectFrom: table => makeSelect(dialect, { table, wheres: [], orderBys: [] }, telemetry),
356
+ insertInto: table => makeInsert(dialect, table, undefined, undefined, undefined, telemetry),
357
+ updateTable: table => makeUpdate(dialect, table, undefined, [], undefined, telemetry),
358
+ deleteFrom: table => makeDelete(dialect, table, [], undefined, telemetry),
359
+ callFunction: (name, args) => routineCall(dialect, name, args, 'function'),
360
+ callTableFunction: (name, args) => routineCall(dialect, name, args, 'table-function'),
361
+ callProcedure: (name, args) => routineCall(dialect, name, args, 'procedure'),
362
+ };
363
+ }
364
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import type { ColumnSnapshot, SchemaSnapshot, TableSnapshot } from '../migrations/types.js';
2
+ export type ReferentialAction = 'no action' | 'restrict' | 'cascade' | 'set null' | 'set default';
3
+ export type CatalogIndexColumn = string | {
4
+ readonly column: string;
5
+ readonly opclass?: string;
6
+ } | {
7
+ readonly expr: string;
8
+ readonly opclass?: string;
9
+ };
10
+ export interface CatalogForeignKeySnapshot {
11
+ readonly name: string;
12
+ readonly columns: readonly string[];
13
+ readonly targetTable: string;
14
+ readonly targetColumns: readonly string[];
15
+ readonly onDelete: ReferentialAction;
16
+ readonly onUpdate: ReferentialAction;
17
+ }
18
+ export interface CatalogIndexSnapshot {
19
+ readonly name: string;
20
+ readonly columns: readonly CatalogIndexColumn[];
21
+ readonly unique: boolean;
22
+ readonly method?: string;
23
+ readonly where?: string;
24
+ }
25
+ export interface CatalogColumnSnapshot extends ColumnSnapshot {
26
+ readonly catalogType: string;
27
+ readonly default?: string;
28
+ /** Dialect catalog evidence for a generated column. Drift comparison may ignore it. */
29
+ readonly generated?: {
30
+ readonly expression: string;
31
+ readonly stored: boolean;
32
+ };
33
+ }
34
+ export interface CatalogWarning {
35
+ readonly table: string;
36
+ readonly column?: string;
37
+ readonly reason: string;
38
+ }
39
+ export interface CatalogTableSnapshot extends Omit<TableSnapshot, 'columns'> {
40
+ readonly columns: readonly CatalogColumnSnapshot[];
41
+ readonly primaryKey: readonly string[];
42
+ readonly foreignKeys: readonly CatalogForeignKeySnapshot[];
43
+ readonly indexes: readonly CatalogIndexSnapshot[];
44
+ }
45
+ export interface CatalogSchemaSnapshot extends Omit<SchemaSnapshot, 'tables'> {
46
+ readonly tables: readonly CatalogTableSnapshot[];
47
+ readonly extensions: readonly {
48
+ readonly name: string;
49
+ readonly schema?: string;
50
+ }[];
51
+ readonly warnings: readonly CatalogWarning[];
52
+ }
53
+ export interface CatalogSelection {
54
+ readonly schemas?: readonly string[];
55
+ readonly include?: readonly string[];
56
+ readonly exclude?: readonly string[];
57
+ }
58
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/introspect/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5F,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,aAAa,CAAC;AAElG,MAAM,MAAM,kBAAkB,GAC1B,MAAM,GACN;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;CACtC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAChD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAC3D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,uFAAuF;IACvF,QAAQ,CAAC,SAAS,CAAC,EAAE;QACnB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC;IAC1E,QAAQ,CAAC,OAAO,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACnD,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAC3D,QAAQ,CAAC,OAAO,EAAE,SAAS,oBAAoB,EAAE,CAAC;CACnD;AAED,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC;IAC3E,QAAQ,CAAC,MAAM,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACjD,QAAQ,CAAC,UAAU,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACpF,QAAQ,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;CAC9C;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/introspect/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,20 @@
1
+ import { type ComparisonPredicate, type JoinCondition, type Predicate } from '../clauses.js';
2
+ import type { DialectTarget } from '../dialects/index.js';
3
+ import { type CompiledQuery, type QueryCompilerOptions } from '../index.js';
4
+ export type { JoinCondition, JoinKind } from '../clauses.js';
5
+ export interface JoinableSelect {
6
+ innerJoin(target: string, leftCol: string, rightCol: string, on?: readonly Predicate[]): JoinableSelect;
7
+ innerJoin(target: string, conditions: readonly JoinCondition[], on?: readonly Predicate[]): JoinableSelect;
8
+ leftJoin(target: string, leftCol: string, rightCol: string, on?: readonly Predicate[]): JoinableSelect;
9
+ leftJoin(target: string, conditions: readonly JoinCondition[], on?: readonly Predicate[]): JoinableSelect;
10
+ rightJoin(target: string, leftCol: string, rightCol: string, on?: readonly Predicate[]): JoinableSelect;
11
+ rightJoin(target: string, conditions: readonly JoinCondition[], on?: readonly Predicate[]): JoinableSelect;
12
+ where(col: string, op: string, value: unknown): JoinableSelect;
13
+ whereGroup(predicates: readonly ComparisonPredicate[]): JoinableSelect;
14
+ orderBy(col: string, dir: 'asc' | 'desc'): JoinableSelect;
15
+ limit(n: number): JoinableSelect;
16
+ offset(n: number): JoinableSelect;
17
+ compile(): CompiledQuery;
18
+ }
19
+ export declare function joinableSelectFrom(table: string, dialect: DialectTarget, options?: QueryCompilerOptions): JoinableSelect;
20
+ //# sourceMappingURL=index.d.ts.map