@typed-sql/postgres 2.0.0 → 2.1.0-rc.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 (116) hide show
  1. package/CHANGELOG.md +147 -0
  2. package/README.md +17 -0
  3. package/dist/packages/postgres/src/bulk.d.ts.map +1 -1
  4. package/dist/packages/postgres/src/bulk.js +1 -1
  5. package/dist/packages/postgres/src/bulk.js.map +1 -1
  6. package/dist/packages/postgres/src/capabilities.d.ts +19 -0
  7. package/dist/packages/postgres/src/capabilities.d.ts.map +1 -0
  8. package/dist/packages/postgres/src/capabilities.js +120 -0
  9. package/dist/packages/postgres/src/capabilities.js.map +1 -0
  10. package/dist/packages/postgres/src/catalog/generated/14.d.ts +4 -0
  11. package/dist/packages/postgres/src/catalog/generated/14.d.ts.map +1 -0
  12. package/dist/packages/postgres/src/catalog/generated/14.js +2018 -0
  13. package/dist/packages/postgres/src/catalog/generated/14.js.map +1 -0
  14. package/dist/packages/postgres/src/catalog/generated/15.d.ts +4 -0
  15. package/dist/packages/postgres/src/catalog/generated/15.d.ts.map +1 -0
  16. package/dist/packages/postgres/src/catalog/generated/15.js +2012 -0
  17. package/dist/packages/postgres/src/catalog/generated/15.js.map +1 -0
  18. package/dist/packages/postgres/src/catalog/generated/16.d.ts +4 -0
  19. package/dist/packages/postgres/src/catalog/generated/16.d.ts.map +1 -0
  20. package/dist/packages/postgres/src/catalog/generated/16.js +2012 -0
  21. package/dist/packages/postgres/src/catalog/generated/16.js.map +1 -0
  22. package/dist/packages/postgres/src/catalog/generated/17.d.ts +4 -0
  23. package/dist/packages/postgres/src/catalog/generated/17.d.ts.map +1 -0
  24. package/dist/packages/postgres/src/catalog/generated/17.js +2012 -0
  25. package/dist/packages/postgres/src/catalog/generated/17.js.map +1 -0
  26. package/dist/packages/postgres/src/catalog/generated/18.d.ts +4 -0
  27. package/dist/packages/postgres/src/catalog/generated/18.d.ts.map +1 -0
  28. package/dist/packages/postgres/src/catalog/generated/18.js +2048 -0
  29. package/dist/packages/postgres/src/catalog/generated/18.js.map +1 -0
  30. package/dist/packages/postgres/src/catalog/generated/19.d.ts +4 -0
  31. package/dist/packages/postgres/src/catalog/generated/19.d.ts.map +1 -0
  32. package/dist/packages/postgres/src/catalog/generated/19.js +2048 -0
  33. package/dist/packages/postgres/src/catalog/generated/19.js.map +1 -0
  34. package/dist/packages/postgres/src/catalog/index.d.ts +14 -0
  35. package/dist/packages/postgres/src/catalog/index.d.ts.map +1 -0
  36. package/dist/packages/postgres/src/catalog/index.js +86 -0
  37. package/dist/packages/postgres/src/catalog/index.js.map +1 -0
  38. package/dist/packages/postgres/src/catalog/types.d.ts +46 -0
  39. package/dist/packages/postgres/src/catalog/types.d.ts.map +1 -0
  40. package/dist/packages/postgres/src/catalog/types.js +2 -0
  41. package/dist/packages/postgres/src/catalog/types.js.map +1 -0
  42. package/dist/packages/postgres/src/expression-evidence.d.ts +11 -0
  43. package/dist/packages/postgres/src/expression-evidence.d.ts.map +1 -0
  44. package/dist/packages/postgres/src/expression-evidence.js +33 -0
  45. package/dist/packages/postgres/src/expression-evidence.js.map +1 -0
  46. package/dist/packages/postgres/src/extensions.d.ts +61 -0
  47. package/dist/packages/postgres/src/extensions.d.ts.map +1 -0
  48. package/dist/packages/postgres/src/extensions.js +311 -0
  49. package/dist/packages/postgres/src/extensions.js.map +1 -0
  50. package/dist/packages/postgres/src/index.d.ts +13 -0
  51. package/dist/packages/postgres/src/index.d.ts.map +1 -1
  52. package/dist/packages/postgres/src/index.js +51 -17
  53. package/dist/packages/postgres/src/index.js.map +1 -1
  54. package/dist/packages/postgres/src/parser/index.d.ts +8 -0
  55. package/dist/packages/postgres/src/parser/index.d.ts.map +1 -0
  56. package/dist/packages/postgres/src/parser/index.js +4 -0
  57. package/dist/packages/postgres/src/parser/index.js.map +1 -0
  58. package/dist/packages/postgres/src/parser/parser.d.ts +14 -0
  59. package/dist/packages/postgres/src/parser/parser.d.ts.map +1 -0
  60. package/dist/packages/postgres/src/parser/parser.js +2683 -0
  61. package/dist/packages/postgres/src/parser/parser.js.map +1 -0
  62. package/dist/packages/postgres/src/parser/tokenizer.d.ts +15 -0
  63. package/dist/packages/postgres/src/parser/tokenizer.d.ts.map +1 -0
  64. package/dist/packages/postgres/src/parser/tokenizer.js +470 -0
  65. package/dist/packages/postgres/src/parser/tokenizer.js.map +1 -0
  66. package/dist/packages/postgres/src/parser/types.d.ts +652 -0
  67. package/dist/packages/postgres/src/parser/types.d.ts.map +1 -0
  68. package/dist/packages/postgres/src/parser/types.js +9 -0
  69. package/dist/packages/postgres/src/parser/types.js.map +1 -0
  70. package/dist/packages/postgres/src/parser/walk.d.ts +13 -0
  71. package/dist/packages/postgres/src/parser/walk.d.ts.map +1 -0
  72. package/dist/packages/postgres/src/parser/walk.js +374 -0
  73. package/dist/packages/postgres/src/parser/walk.js.map +1 -0
  74. package/dist/packages/postgres/src/pg.d.ts +35 -4
  75. package/dist/packages/postgres/src/pg.d.ts.map +1 -1
  76. package/dist/packages/postgres/src/pg.js +355 -40
  77. package/dist/packages/postgres/src/pg.js.map +1 -1
  78. package/dist/packages/postgres/src/prepared.d.ts +5 -3
  79. package/dist/packages/postgres/src/prepared.d.ts.map +1 -1
  80. package/dist/packages/postgres/src/prepared.js +23 -15
  81. package/dist/packages/postgres/src/prepared.js.map +1 -1
  82. package/dist/packages/postgres/src/provider.d.ts +149 -11
  83. package/dist/packages/postgres/src/provider.d.ts.map +1 -1
  84. package/dist/packages/postgres/src/provider.js +652 -42
  85. package/dist/packages/postgres/src/provider.js.map +1 -1
  86. package/dist/packages/postgres/src/resolver.d.ts +1 -1
  87. package/dist/packages/postgres/src/resolver.d.ts.map +1 -1
  88. package/dist/packages/postgres/src/resolver.js +2767 -203
  89. package/dist/packages/postgres/src/resolver.js.map +1 -1
  90. package/dist/packages/postgres/src/routing.d.ts.map +1 -1
  91. package/dist/packages/postgres/src/routing.js +1 -1
  92. package/dist/packages/postgres/src/routing.js.map +1 -1
  93. package/dist/packages/postgres/src/runtime-compatibility.d.ts +14 -0
  94. package/dist/packages/postgres/src/runtime-compatibility.d.ts.map +1 -0
  95. package/dist/packages/postgres/src/runtime-compatibility.js +63 -0
  96. package/dist/packages/postgres/src/runtime-compatibility.js.map +1 -0
  97. package/dist/packages/postgres/src/runtime.d.ts +10 -1
  98. package/dist/packages/postgres/src/runtime.d.ts.map +1 -1
  99. package/dist/packages/postgres/src/runtime.js +50 -2
  100. package/dist/packages/postgres/src/runtime.js.map +1 -1
  101. package/dist/packages/postgres/src/semantics.d.ts +1 -1
  102. package/dist/packages/postgres/src/semantics.d.ts.map +1 -1
  103. package/dist/packages/postgres/src/semantics.js +19 -6
  104. package/dist/packages/postgres/src/semantics.js.map +1 -1
  105. package/dist/packages/postgres/src/support.d.ts +29 -0
  106. package/dist/packages/postgres/src/support.d.ts.map +1 -0
  107. package/dist/packages/postgres/src/support.js +45 -0
  108. package/dist/packages/postgres/src/support.js.map +1 -0
  109. package/dist/packages/postgres/src/type-policy.d.ts.map +1 -1
  110. package/dist/packages/postgres/src/type-policy.js +34 -43
  111. package/dist/packages/postgres/src/type-policy.js.map +1 -1
  112. package/dist/packages/postgres/src/type-resolution.d.ts +33 -0
  113. package/dist/packages/postgres/src/type-resolution.d.ts.map +1 -0
  114. package/dist/packages/postgres/src/type-resolution.js +906 -0
  115. package/dist/packages/postgres/src/type-resolution.js.map +1 -0
  116. package/package.json +7 -4
@@ -0,0 +1,652 @@
1
+ export interface SourceRange {
2
+ readonly start: number;
3
+ readonly end: number;
4
+ readonly line: number;
5
+ readonly column: number;
6
+ }
7
+ export type TokenKind = "identifier" | "quoted-identifier" | "keyword" | "number" | "string" | "parameter" | "operator" | "punctuation" | "eof";
8
+ export interface Token {
9
+ readonly kind: TokenKind;
10
+ readonly text: string;
11
+ readonly value: string;
12
+ readonly range: SourceRange;
13
+ }
14
+ export interface Identifier {
15
+ readonly name: string;
16
+ readonly quoted: boolean;
17
+ readonly range: SourceRange;
18
+ }
19
+ export interface QualifiedIdentifier {
20
+ readonly parts: readonly Identifier[];
21
+ readonly range: SourceRange;
22
+ }
23
+ export interface TypeName {
24
+ readonly name: string;
25
+ readonly range: SourceRange;
26
+ }
27
+ export interface ColumnExpression {
28
+ readonly kind: "column";
29
+ readonly relation?: Identifier;
30
+ readonly column: Identifier;
31
+ readonly range: SourceRange;
32
+ }
33
+ export interface StarExpression {
34
+ readonly kind: "star";
35
+ readonly relation?: Identifier;
36
+ readonly range: SourceRange;
37
+ }
38
+ export interface LiteralExpression {
39
+ readonly kind: "literal";
40
+ readonly value: string | number | boolean | null;
41
+ readonly range: SourceRange;
42
+ }
43
+ export interface ParameterExpression {
44
+ readonly kind: "parameter";
45
+ readonly index: number;
46
+ readonly range: SourceRange;
47
+ }
48
+ export interface ArrayExpression {
49
+ readonly kind: "array";
50
+ readonly elements: readonly Expression[];
51
+ readonly range: SourceRange;
52
+ }
53
+ export interface RowExpression {
54
+ readonly kind: "row";
55
+ readonly elements: readonly Expression[];
56
+ readonly range: SourceRange;
57
+ }
58
+ export interface SubscriptExpression {
59
+ readonly kind: "subscript";
60
+ readonly expression: Expression;
61
+ readonly index?: Expression;
62
+ readonly lower?: Expression;
63
+ readonly upper?: Expression;
64
+ readonly slice: boolean;
65
+ readonly range: SourceRange;
66
+ }
67
+ export interface FieldAccessExpression {
68
+ readonly kind: "field-access";
69
+ readonly expression: Expression;
70
+ readonly field: Identifier;
71
+ readonly range: SourceRange;
72
+ }
73
+ export interface CollateExpression {
74
+ readonly kind: "collate";
75
+ readonly expression: Expression;
76
+ readonly collation: QualifiedIdentifier;
77
+ readonly range: SourceRange;
78
+ }
79
+ export interface AtTimeZoneExpression {
80
+ readonly kind: "at-time-zone";
81
+ readonly expression: Expression;
82
+ readonly zone?: Expression;
83
+ readonly local: boolean;
84
+ readonly range: SourceRange;
85
+ }
86
+ export interface JsonFormat {
87
+ readonly encoding?: "UTF8" | "UTF16" | "UTF32";
88
+ readonly range: SourceRange;
89
+ }
90
+ export interface JsonValueExpression {
91
+ readonly expression: Expression;
92
+ readonly format?: JsonFormat;
93
+ readonly range: SourceRange;
94
+ }
95
+ export interface JsonPassingArgument {
96
+ readonly value: JsonValueExpression;
97
+ readonly name: Identifier;
98
+ readonly range: SourceRange;
99
+ }
100
+ export interface JsonBehavior {
101
+ readonly kind: "error" | "null" | "true" | "false" | "unknown" | "empty-array" | "empty-object" | "default";
102
+ readonly expression?: Expression;
103
+ readonly range: SourceRange;
104
+ }
105
+ export interface JsonReturning {
106
+ readonly databaseType: TypeName;
107
+ readonly format?: JsonFormat;
108
+ readonly range: SourceRange;
109
+ }
110
+ export interface JsonObjectEntry {
111
+ readonly key: Expression;
112
+ readonly value: JsonValueExpression;
113
+ readonly range: SourceRange;
114
+ }
115
+ export interface JsonObjectExpression {
116
+ readonly kind: "json-object";
117
+ readonly entries: readonly JsonObjectEntry[];
118
+ readonly nullPolicy: "null" | "absent";
119
+ readonly uniqueKeys: boolean;
120
+ readonly returning?: JsonReturning;
121
+ readonly range: SourceRange;
122
+ }
123
+ export interface JsonArrayExpression {
124
+ readonly kind: "json-array";
125
+ readonly values: readonly JsonValueExpression[];
126
+ readonly query?: SelectStatement;
127
+ readonly queryFormat?: JsonFormat;
128
+ readonly nullPolicy: "null" | "absent";
129
+ readonly returning?: JsonReturning;
130
+ readonly range: SourceRange;
131
+ }
132
+ export interface JsonObjectAggregateExpression {
133
+ readonly kind: "json-object-aggregate";
134
+ readonly key: Expression;
135
+ readonly value: JsonValueExpression;
136
+ readonly nullPolicy: "null" | "absent";
137
+ readonly uniqueKeys: boolean;
138
+ readonly returning?: JsonReturning;
139
+ readonly filter?: Expression;
140
+ readonly over?: Identifier | WindowSpecification;
141
+ readonly range: SourceRange;
142
+ }
143
+ export interface JsonArrayAggregateExpression {
144
+ readonly kind: "json-array-aggregate";
145
+ readonly value: JsonValueExpression;
146
+ readonly orderBy: readonly OrderByItem[];
147
+ readonly nullPolicy: "null" | "absent";
148
+ readonly returning?: JsonReturning;
149
+ readonly filter?: Expression;
150
+ readonly over?: Identifier | WindowSpecification;
151
+ readonly range: SourceRange;
152
+ }
153
+ export interface JsonParseExpression {
154
+ readonly kind: "json-parse";
155
+ readonly value: JsonValueExpression;
156
+ readonly uniqueKeys: boolean;
157
+ readonly range: SourceRange;
158
+ }
159
+ export interface JsonScalarExpression {
160
+ readonly kind: "json-scalar";
161
+ readonly expression: Expression;
162
+ readonly range: SourceRange;
163
+ }
164
+ export interface JsonSerializeExpression {
165
+ readonly kind: "json-serialize";
166
+ readonly value: JsonValueExpression;
167
+ readonly returning?: JsonReturning;
168
+ readonly range: SourceRange;
169
+ }
170
+ export interface JsonIsExpression {
171
+ readonly kind: "json-is";
172
+ readonly expression: Expression;
173
+ readonly constraint: "value" | "scalar" | "array" | "object";
174
+ readonly negated: boolean;
175
+ readonly uniqueKeys: boolean;
176
+ readonly range: SourceRange;
177
+ }
178
+ export interface JsonExistsExpression {
179
+ readonly kind: "json-exists";
180
+ readonly context: JsonValueExpression;
181
+ readonly path: Expression;
182
+ readonly passing: readonly JsonPassingArgument[];
183
+ readonly onError?: "true" | "false" | "unknown" | "error";
184
+ readonly range: SourceRange;
185
+ }
186
+ export interface JsonQueryExpression {
187
+ readonly kind: "json-query";
188
+ readonly context: JsonValueExpression;
189
+ readonly path: Expression;
190
+ readonly passing: readonly JsonPassingArgument[];
191
+ readonly returning?: JsonReturning;
192
+ readonly wrapper?: "without" | "conditional" | "unconditional";
193
+ readonly quotes?: "keep" | "omit";
194
+ readonly onEmpty?: JsonBehavior;
195
+ readonly onError?: JsonBehavior;
196
+ readonly range: SourceRange;
197
+ }
198
+ export interface JsonValueQueryExpression {
199
+ readonly kind: "json-value";
200
+ readonly context: JsonValueExpression;
201
+ readonly path: Expression;
202
+ readonly passing: readonly JsonPassingArgument[];
203
+ readonly returning?: JsonReturning;
204
+ readonly onEmpty?: JsonBehavior;
205
+ readonly onError?: JsonBehavior;
206
+ readonly range: SourceRange;
207
+ }
208
+ export interface CallExpression {
209
+ readonly kind: "call";
210
+ readonly name: Identifier;
211
+ readonly schema?: Identifier;
212
+ readonly arguments: readonly Expression[];
213
+ readonly argumentNames?: readonly (Identifier | undefined)[];
214
+ readonly variadic?: true;
215
+ readonly distinct: boolean;
216
+ readonly orderBy?: readonly OrderByItem[];
217
+ readonly withinGroup?: readonly OrderByItem[];
218
+ readonly filter?: Expression;
219
+ readonly over?: Identifier | WindowSpecification;
220
+ readonly range: SourceRange;
221
+ }
222
+ export interface CastExpression {
223
+ readonly kind: "cast";
224
+ readonly expression: Expression;
225
+ readonly databaseType: TypeName;
226
+ readonly syntax: "cast" | "postgres" | "typed-literal";
227
+ readonly range: SourceRange;
228
+ }
229
+ export interface BinaryExpression {
230
+ readonly kind: "binary";
231
+ readonly left: Expression;
232
+ readonly operator: string;
233
+ readonly right: Expression;
234
+ readonly range: SourceRange;
235
+ }
236
+ export interface UnaryExpression {
237
+ readonly kind: "unary";
238
+ readonly operator: string;
239
+ readonly expression: Expression;
240
+ readonly range: SourceRange;
241
+ }
242
+ export interface CaseBranch {
243
+ readonly when: Expression;
244
+ readonly then: Expression;
245
+ readonly range: SourceRange;
246
+ }
247
+ export interface CaseExpression {
248
+ readonly kind: "case";
249
+ readonly operand?: Expression;
250
+ readonly branches: readonly CaseBranch[];
251
+ readonly elseExpression?: Expression;
252
+ readonly range: SourceRange;
253
+ }
254
+ export interface SubqueryExpression {
255
+ readonly kind: "subquery";
256
+ readonly query: SelectStatement;
257
+ readonly range: SourceRange;
258
+ }
259
+ export interface ExistsExpression {
260
+ readonly kind: "exists";
261
+ readonly query: SelectStatement;
262
+ readonly range: SourceRange;
263
+ }
264
+ export interface InExpression {
265
+ readonly kind: "in";
266
+ readonly expression: Expression;
267
+ readonly values: readonly Expression[] | SelectStatement;
268
+ readonly negated: boolean;
269
+ readonly range: SourceRange;
270
+ }
271
+ export interface BetweenExpression {
272
+ readonly kind: "between";
273
+ readonly expression: Expression;
274
+ readonly lower: Expression;
275
+ readonly upper: Expression;
276
+ readonly negated: boolean;
277
+ readonly range: SourceRange;
278
+ }
279
+ export interface QuantifiedComparisonExpression {
280
+ readonly kind: "quantified-comparison";
281
+ readonly left: Expression;
282
+ readonly operator: string;
283
+ readonly quantifier: "any" | "some" | "all";
284
+ readonly right: Expression | SelectStatement;
285
+ readonly range: SourceRange;
286
+ }
287
+ export type Expression = ColumnExpression | StarExpression | LiteralExpression | ParameterExpression | ArrayExpression | RowExpression | SubscriptExpression | FieldAccessExpression | CollateExpression | AtTimeZoneExpression | JsonObjectExpression | JsonArrayExpression | JsonObjectAggregateExpression | JsonArrayAggregateExpression | JsonParseExpression | JsonScalarExpression | JsonSerializeExpression | JsonIsExpression | JsonExistsExpression | JsonQueryExpression | JsonValueQueryExpression | CallExpression | CastExpression | BinaryExpression | UnaryExpression | CaseExpression | SubqueryExpression | ExistsExpression | InExpression | BetweenExpression | QuantifiedComparisonExpression;
288
+ export interface SelectItem {
289
+ readonly expression: Expression;
290
+ readonly alias?: Identifier;
291
+ readonly range: SourceRange;
292
+ }
293
+ export interface NamedTableReference {
294
+ readonly kind: "table";
295
+ readonly name: Identifier;
296
+ readonly schema?: Identifier;
297
+ readonly alias?: Identifier;
298
+ readonly lateral: boolean;
299
+ readonly only?: true;
300
+ readonly includeDescendants?: true;
301
+ readonly sample?: TableSampleClause;
302
+ readonly range: SourceRange;
303
+ }
304
+ export interface SubqueryTableReference {
305
+ readonly kind: "subquery";
306
+ readonly query: SelectStatement;
307
+ readonly alias?: Identifier;
308
+ readonly columns: readonly Identifier[];
309
+ readonly lateral: boolean;
310
+ readonly name?: never;
311
+ readonly schema?: never;
312
+ readonly range: SourceRange;
313
+ }
314
+ export interface TableFunctionColumn {
315
+ readonly name: Identifier;
316
+ readonly databaseType?: TypeName;
317
+ readonly range: SourceRange;
318
+ }
319
+ export interface TableFunctionItem {
320
+ readonly call: CallExpression;
321
+ readonly columns: readonly TableFunctionColumn[];
322
+ readonly range: SourceRange;
323
+ }
324
+ export interface FunctionTableReference {
325
+ readonly kind: "function";
326
+ readonly rowsFrom?: true;
327
+ readonly functions: readonly TableFunctionItem[];
328
+ readonly withOrdinality: boolean;
329
+ readonly alias?: Identifier;
330
+ readonly columns: readonly TableFunctionColumn[];
331
+ readonly lateral: boolean;
332
+ readonly name?: never;
333
+ readonly schema?: never;
334
+ readonly range: SourceRange;
335
+ }
336
+ export interface JsonTableOrdinalityColumn {
337
+ readonly kind: "ordinality";
338
+ readonly name: Identifier;
339
+ readonly range: SourceRange;
340
+ }
341
+ export interface JsonTableValueColumn {
342
+ readonly kind: "value";
343
+ readonly name: Identifier;
344
+ readonly databaseType: TypeName;
345
+ readonly format?: JsonFormat;
346
+ readonly path?: LiteralExpression;
347
+ readonly wrapper?: "without" | "conditional" | "unconditional";
348
+ readonly quotes?: "keep" | "omit";
349
+ readonly onEmpty?: JsonBehavior;
350
+ readonly onError?: JsonBehavior;
351
+ readonly range: SourceRange;
352
+ }
353
+ export interface JsonTableExistsColumn {
354
+ readonly kind: "exists";
355
+ readonly name: Identifier;
356
+ readonly databaseType: TypeName;
357
+ readonly path?: LiteralExpression;
358
+ readonly onError?: JsonBehavior;
359
+ readonly range: SourceRange;
360
+ }
361
+ export interface JsonTableNestedColumn {
362
+ readonly kind: "nested";
363
+ readonly path: LiteralExpression;
364
+ readonly pathName?: Identifier;
365
+ readonly columns: readonly JsonTableColumn[];
366
+ readonly range: SourceRange;
367
+ }
368
+ export type JsonTableColumn = JsonTableOrdinalityColumn | JsonTableValueColumn | JsonTableExistsColumn | JsonTableNestedColumn;
369
+ export interface JsonTableReference {
370
+ readonly kind: "json-table";
371
+ readonly context: JsonValueExpression;
372
+ readonly path: Expression;
373
+ readonly pathName?: Identifier;
374
+ readonly passing: readonly JsonPassingArgument[];
375
+ readonly jsonColumns: readonly JsonTableColumn[];
376
+ readonly onError?: JsonBehavior;
377
+ readonly alias?: Identifier;
378
+ readonly columns: readonly Identifier[];
379
+ readonly lateral: boolean;
380
+ readonly name?: never;
381
+ readonly schema?: never;
382
+ readonly range: SourceRange;
383
+ }
384
+ export interface TableSampleClause {
385
+ readonly method: Identifier;
386
+ readonly arguments: readonly Expression[];
387
+ readonly repeatable?: Expression;
388
+ readonly range: SourceRange;
389
+ }
390
+ export type TableReference = NamedTableReference | SubqueryTableReference | FunctionTableReference | JsonTableReference;
391
+ export type JoinKind = "inner" | "left" | "right" | "full" | "cross";
392
+ export interface JoinClause {
393
+ readonly kind: JoinKind;
394
+ readonly table: TableReference;
395
+ readonly on?: Expression;
396
+ readonly using?: readonly Identifier[];
397
+ readonly range: SourceRange;
398
+ }
399
+ export interface OrderByItem {
400
+ readonly expression: Expression;
401
+ readonly direction?: "asc" | "desc";
402
+ readonly using?: string;
403
+ readonly nulls?: "first" | "last";
404
+ readonly range: SourceRange;
405
+ }
406
+ export type GroupingElement = Expression | {
407
+ readonly kind: "empty-group";
408
+ readonly range: SourceRange;
409
+ } | {
410
+ readonly kind: "grouping-set" | "rollup" | "cube" | "grouping-sets";
411
+ readonly elements: readonly GroupingElement[];
412
+ readonly range: SourceRange;
413
+ };
414
+ export type WindowFrameUnit = "rows" | "range" | "groups";
415
+ export type WindowFrameExclusion = "current-row" | "group" | "ties" | "no-others";
416
+ export type WindowFrameBound = {
417
+ readonly kind: "unbounded-preceding" | "unbounded-following" | "current-row";
418
+ readonly range: SourceRange;
419
+ } | {
420
+ readonly kind: "preceding" | "following";
421
+ readonly expression: Expression;
422
+ readonly range: SourceRange;
423
+ };
424
+ export interface WindowFrame {
425
+ readonly unit: WindowFrameUnit;
426
+ readonly start: WindowFrameBound;
427
+ readonly end?: WindowFrameBound;
428
+ readonly exclusion?: WindowFrameExclusion;
429
+ readonly range: SourceRange;
430
+ }
431
+ export interface WindowSpecification {
432
+ readonly base?: Identifier;
433
+ readonly partitionBy: readonly Expression[];
434
+ readonly orderBy: readonly OrderByItem[];
435
+ readonly frame?: WindowFrame;
436
+ readonly range: SourceRange;
437
+ }
438
+ export interface NamedWindow {
439
+ readonly name: Identifier;
440
+ readonly specification: WindowSpecification;
441
+ readonly range: SourceRange;
442
+ }
443
+ export interface CommonTableExpression {
444
+ readonly name: Identifier;
445
+ readonly columns: readonly Identifier[];
446
+ readonly statement: Statement;
447
+ readonly materialization?: "materialized" | "not-materialized";
448
+ readonly search?: {
449
+ readonly order: "breadth" | "depth";
450
+ readonly by: readonly Identifier[];
451
+ readonly set: Identifier;
452
+ readonly range: SourceRange;
453
+ };
454
+ readonly cycle?: {
455
+ readonly columns: readonly Identifier[];
456
+ readonly set: Identifier;
457
+ readonly markValue?: Expression;
458
+ readonly markDefault?: Expression;
459
+ readonly using: Identifier;
460
+ readonly range: SourceRange;
461
+ };
462
+ readonly range: SourceRange;
463
+ }
464
+ export interface WithClause {
465
+ readonly recursive: boolean;
466
+ readonly queries: readonly CommonTableExpression[];
467
+ readonly range: SourceRange;
468
+ }
469
+ export interface SelectLockingClause {
470
+ readonly strength: "update" | "no-key-update" | "share" | "key-share";
471
+ readonly relations: readonly Identifier[];
472
+ readonly wait?: "nowait" | "skip-locked";
473
+ readonly range: SourceRange;
474
+ }
475
+ export interface CompoundSelect {
476
+ readonly operator: "union" | "intersect" | "except";
477
+ readonly all: boolean;
478
+ readonly statement: SelectStatement;
479
+ readonly range: SourceRange;
480
+ }
481
+ export interface FetchClause {
482
+ readonly count?: Expression;
483
+ readonly withTies: boolean;
484
+ readonly range: SourceRange;
485
+ }
486
+ export interface SelectStatement {
487
+ readonly kind: "select";
488
+ readonly with?: WithClause;
489
+ readonly distinct: boolean;
490
+ readonly distinctOn: readonly Expression[];
491
+ readonly columns: readonly SelectItem[];
492
+ readonly from?: TableReference;
493
+ readonly joins: readonly JoinClause[];
494
+ readonly where?: Expression;
495
+ readonly groupModifier?: "all" | "distinct";
496
+ readonly groupBy: readonly GroupingElement[];
497
+ readonly having?: Expression;
498
+ readonly windows: readonly NamedWindow[];
499
+ readonly orderBy: readonly OrderByItem[];
500
+ readonly limit?: Expression;
501
+ readonly limitAll?: true;
502
+ readonly offset?: Expression;
503
+ readonly fetch?: FetchClause;
504
+ readonly locking: readonly SelectLockingClause[];
505
+ readonly compounds: readonly CompoundSelect[];
506
+ readonly range: SourceRange;
507
+ }
508
+ export interface ValuesClause {
509
+ readonly kind: "values";
510
+ readonly rows: readonly (readonly Expression[])[];
511
+ readonly range: SourceRange;
512
+ }
513
+ export interface DefaultValuesClause {
514
+ readonly kind: "default-values";
515
+ readonly range: SourceRange;
516
+ }
517
+ export interface InsertConflictElement {
518
+ readonly expression: Expression;
519
+ readonly collation?: QualifiedIdentifier;
520
+ readonly operatorClass?: QualifiedIdentifier;
521
+ readonly range: SourceRange;
522
+ }
523
+ export type InsertConflictTarget = {
524
+ readonly kind: "inference";
525
+ readonly elements: readonly InsertConflictElement[];
526
+ readonly predicate?: Expression;
527
+ readonly range: SourceRange;
528
+ } | {
529
+ readonly kind: "constraint";
530
+ readonly constraint: Identifier;
531
+ readonly range: SourceRange;
532
+ };
533
+ export type InsertConflictAction = {
534
+ readonly kind: "nothing";
535
+ readonly range: SourceRange;
536
+ } | {
537
+ readonly kind: "update";
538
+ readonly assignments: readonly UpdateAssignment[];
539
+ readonly where?: Expression;
540
+ readonly range: SourceRange;
541
+ };
542
+ export interface InsertConflictClause {
543
+ readonly target?: InsertConflictTarget;
544
+ readonly action: InsertConflictAction;
545
+ readonly range: SourceRange;
546
+ }
547
+ export interface ReturningAliases {
548
+ readonly old?: Identifier;
549
+ readonly new?: Identifier;
550
+ readonly range: SourceRange;
551
+ }
552
+ export interface InsertStatement {
553
+ readonly kind: "insert";
554
+ readonly with?: WithClause;
555
+ readonly table: NamedTableReference;
556
+ readonly columns: readonly Identifier[];
557
+ readonly overriding?: "system" | "user";
558
+ readonly source: ValuesClause | DefaultValuesClause | SelectStatement;
559
+ readonly conflict?: InsertConflictClause;
560
+ readonly returningAliases?: ReturningAliases;
561
+ readonly returning: readonly SelectItem[];
562
+ readonly range: SourceRange;
563
+ }
564
+ export type UpdateAssignment = {
565
+ readonly column: Identifier;
566
+ readonly value: Expression;
567
+ readonly range: SourceRange;
568
+ } | {
569
+ readonly columns: readonly Identifier[];
570
+ readonly value: Expression;
571
+ readonly range: SourceRange;
572
+ };
573
+ export interface CurrentOfClause {
574
+ readonly cursor: Identifier;
575
+ readonly range: SourceRange;
576
+ }
577
+ export interface UpdateStatement {
578
+ readonly kind: "update";
579
+ readonly with?: WithClause;
580
+ readonly table: NamedTableReference;
581
+ readonly assignments: readonly UpdateAssignment[];
582
+ readonly from?: TableReference;
583
+ readonly joins: readonly JoinClause[];
584
+ readonly where?: Expression;
585
+ readonly currentOf?: CurrentOfClause;
586
+ readonly returningAliases?: ReturningAliases;
587
+ readonly returning: readonly SelectItem[];
588
+ readonly range: SourceRange;
589
+ }
590
+ export interface DeleteStatement {
591
+ readonly kind: "delete";
592
+ readonly with?: WithClause;
593
+ readonly table: NamedTableReference;
594
+ readonly using: readonly TableReference[];
595
+ readonly joins: readonly JoinClause[];
596
+ readonly where?: Expression;
597
+ readonly currentOf?: CurrentOfClause;
598
+ readonly returningAliases?: ReturningAliases;
599
+ readonly returning: readonly SelectItem[];
600
+ readonly range: SourceRange;
601
+ }
602
+ export interface MergeInsertAction {
603
+ readonly kind: "insert";
604
+ readonly columns: readonly Identifier[];
605
+ readonly overriding?: "system" | "user";
606
+ readonly source: ValuesClause | DefaultValuesClause;
607
+ readonly range: SourceRange;
608
+ }
609
+ export interface MergeUpdateAction {
610
+ readonly kind: "update";
611
+ readonly assignments: readonly UpdateAssignment[];
612
+ readonly range: SourceRange;
613
+ }
614
+ export type MergeAction = MergeInsertAction | MergeUpdateAction | {
615
+ readonly kind: "delete" | "nothing";
616
+ readonly range: SourceRange;
617
+ };
618
+ export interface MergeWhenClause {
619
+ readonly match: "matched" | "not-matched-target" | "not-matched-source";
620
+ readonly by?: "target" | "source";
621
+ readonly condition?: Expression;
622
+ readonly action: MergeAction;
623
+ readonly range: SourceRange;
624
+ }
625
+ export interface MergeStatement {
626
+ readonly kind: "merge";
627
+ readonly with?: WithClause;
628
+ readonly table: NamedTableReference;
629
+ readonly source: TableReference | MergeValuesReference;
630
+ readonly on: Expression;
631
+ readonly clauses: readonly MergeWhenClause[];
632
+ readonly returningAliases?: ReturningAliases;
633
+ readonly returning: readonly SelectItem[];
634
+ readonly range: SourceRange;
635
+ }
636
+ export interface MergeValuesReference {
637
+ readonly kind: "values";
638
+ readonly rows: readonly (readonly Expression[])[];
639
+ readonly alias?: Identifier;
640
+ readonly columns: readonly Identifier[];
641
+ readonly range: SourceRange;
642
+ }
643
+ export type Statement = SelectStatement | InsertStatement | UpdateStatement | DeleteStatement | MergeStatement;
644
+ export interface SqlDiagnostic {
645
+ readonly code: string;
646
+ readonly message: string;
647
+ readonly range: SourceRange;
648
+ readonly severity: "error" | "warning" | "info";
649
+ readonly suggestion?: string;
650
+ }
651
+ export declare function mergeRanges(first: SourceRange, last: SourceRange): SourceRange;
652
+ //# sourceMappingURL=types.d.ts.map