@typesql/core 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +4 -0
  3. package/dist/engine/ast.d.ts +270 -13
  4. package/dist/engine/ast.d.ts.map +1 -1
  5. package/dist/engine/binder/from.d.ts +108 -23
  6. package/dist/engine/binder/from.d.ts.map +1 -1
  7. package/dist/engine/cache.d.ts +1 -1
  8. package/dist/engine/ddl/apply.d.ts +71 -10
  9. package/dist/engine/ddl/apply.d.ts.map +1 -1
  10. package/dist/engine/infer.d.ts +13 -3
  11. package/dist/engine/infer.d.ts.map +1 -1
  12. package/dist/engine/lexer/lex.d.ts +70 -25
  13. package/dist/engine/lexer/lex.d.ts.map +1 -1
  14. package/dist/engine/lexer/unicode.d.ts +251 -0
  15. package/dist/engine/lexer/unicode.d.ts.map +1 -0
  16. package/dist/engine/lexer/unicode.js +2 -0
  17. package/dist/engine/lexer/unicode.js.map +1 -0
  18. package/dist/engine/parser/ddl.d.ts +221 -35
  19. package/dist/engine/parser/ddl.d.ts.map +1 -1
  20. package/dist/engine/parser/dml.d.ts +91 -25
  21. package/dist/engine/parser/dml.d.ts.map +1 -1
  22. package/dist/engine/parser/expr.d.ts +120 -29
  23. package/dist/engine/parser/expr.d.ts.map +1 -1
  24. package/dist/engine/parser/json.d.ts +190 -0
  25. package/dist/engine/parser/json.d.ts.map +1 -0
  26. package/dist/engine/parser/json.js +2 -0
  27. package/dist/engine/parser/json.js.map +1 -0
  28. package/dist/engine/parser/merge.d.ts +69 -0
  29. package/dist/engine/parser/merge.d.ts.map +1 -0
  30. package/dist/engine/parser/merge.js +2 -0
  31. package/dist/engine/parser/merge.js.map +1 -0
  32. package/dist/engine/parser/select.d.ts +154 -29
  33. package/dist/engine/parser/select.d.ts.map +1 -1
  34. package/dist/engine/parser/stmt.d.ts +27 -3
  35. package/dist/engine/parser/stmt.d.ts.map +1 -1
  36. package/dist/engine/parser/typename.d.ts +8 -3
  37. package/dist/engine/parser/typename.d.ts.map +1 -1
  38. package/dist/engine/parser/utility.d.ts +51 -0
  39. package/dist/engine/parser/utility.d.ts.map +1 -0
  40. package/dist/engine/parser/utility.js +2 -0
  41. package/dist/engine/parser/utility.js.map +1 -0
  42. package/dist/engine/parser/xml.d.ts +129 -0
  43. package/dist/engine/parser/xml.d.ts.map +1 -0
  44. package/dist/engine/parser/xml.js +2 -0
  45. package/dist/engine/parser/xml.js.map +1 -0
  46. package/dist/engine/project/dml.d.ts +149 -36
  47. package/dist/engine/project/dml.d.ts.map +1 -1
  48. package/dist/engine/project/merge.d.ts +86 -0
  49. package/dist/engine/project/merge.d.ts.map +1 -0
  50. package/dist/engine/project/merge.js +2 -0
  51. package/dist/engine/project/merge.js.map +1 -0
  52. package/dist/engine/project/naming.d.ts +11 -2
  53. package/dist/engine/project/naming.d.ts.map +1 -1
  54. package/dist/engine/project/select.d.ts +61 -6
  55. package/dist/engine/project/select.d.ts.map +1 -1
  56. package/dist/engine/project/stmt.d.ts +7 -4
  57. package/dist/engine/project/stmt.d.ts.map +1 -1
  58. package/dist/engine/typer/catalog.d.ts +17 -0
  59. package/dist/engine/typer/catalog.d.ts.map +1 -1
  60. package/dist/engine/typer/operators.d.ts +7 -4
  61. package/dist/engine/typer/operators.d.ts.map +1 -1
  62. package/dist/engine/typer/params.d.ts +24 -1
  63. package/dist/engine/typer/params.d.ts.map +1 -1
  64. package/dist/engine/typer/sqljson.d.ts +113 -0
  65. package/dist/engine/typer/sqljson.d.ts.map +1 -0
  66. package/dist/engine/typer/sqljson.js +2 -0
  67. package/dist/engine/typer/sqljson.js.map +1 -0
  68. package/dist/engine/typer/typeof.d.ts +51 -7
  69. package/dist/engine/typer/typeof.d.ts.map +1 -1
  70. package/dist/engine/typer/xml.d.ts +74 -0
  71. package/dist/engine/typer/xml.d.ts.map +1 -0
  72. package/dist/engine/typer/xml.js +2 -0
  73. package/dist/engine/typer/xml.js.map +1 -0
  74. package/package.json +2 -2
  75. package/src/engine/ast.ts +205 -12
  76. package/src/engine/binder/from.ts +125 -10
  77. package/src/engine/cache.ts +1 -1
  78. package/src/engine/ddl/apply.ts +53 -13
  79. package/src/engine/infer.ts +10 -2
  80. package/src/engine/lexer/lex.ts +170 -77
  81. package/src/engine/lexer/unicode.ts +153 -0
  82. package/src/engine/parser/ddl.ts +269 -37
  83. package/src/engine/parser/dml.ts +125 -41
  84. package/src/engine/parser/expr.ts +161 -30
  85. package/src/engine/parser/json.ts +418 -0
  86. package/src/engine/parser/merge.ts +116 -0
  87. package/src/engine/parser/select.ts +257 -49
  88. package/src/engine/parser/stmt.ts +25 -7
  89. package/src/engine/parser/typename.ts +12 -5
  90. package/src/engine/parser/utility.ts +92 -0
  91. package/src/engine/parser/xml.ts +271 -0
  92. package/src/engine/project/dml.ts +207 -43
  93. package/src/engine/project/merge.ts +149 -0
  94. package/src/engine/project/naming.ts +8 -1
  95. package/src/engine/project/select.ts +100 -12
  96. package/src/engine/project/stmt.ts +7 -4
  97. package/src/engine/typer/catalog.ts +19 -0
  98. package/src/engine/typer/operators.ts +13 -4
  99. package/src/engine/typer/params.ts +12 -0
  100. package/src/engine/typer/sqljson.ts +172 -0
  101. package/src/engine/typer/typeof.ts +58 -6
  102. package/src/engine/typer/xml.ts +122 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,35 @@
1
1
  # @typesql/core
2
2
 
3
+ ## 0.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Parse cursor statements (`DECLARE ... CURSOR FOR query` checks its query and types its parameters; `FETCH`, `MOVE`, `CLOSE`), `END`, `ABORT` and `REASSIGN OWNED`, and more DDL as PostgreSQL 18 does: `CREATE RECURSIVE VIEW`, `CREATE SCHEMA` with embedded elements (applied by `ApplyDdl`), table-level and `ALTER TABLE ... ADD` `NOT NULL col`, `NO INHERIT`, `[NOT] ENFORCED`, `WITHOUT OVERLAPS` keys, `CREATE TABLE ... OF type`, `AS EXECUTE`, any type modifier list and any `PARTITION BY` strategy.
8
+
9
+ - Any operator Postgres can lex is accepted: user-defined and geometric operators such as `*=`, `~<~`, `|>>` or `@-@`, prefix operators like `@@ box` and `OPERATOR(schema.op) x`; built-in geometric tests type as `boolean`, unknown operators as `unknown`.
10
+
11
+ - Parse and type more PostgreSQL expression syntax: typed literals with keyword type names (`timestamp with time zone '…'`, `char(20) '…'`, `interval(2) '…'`), named (`f(a => 1)`, `f(a := 1)`) and `VARIADIC` arguments, `x LIKE ANY (…)` and `op ANY/ALL` with every operator, `(a, b) OVERLAPS (c, d)`, `AT LOCAL`, `IS [NFC|…] NORMALIZED`, `COLLATION FOR (…)`, `SUBSTRING(… SIMILAR … ESCAPE …)`, `e[i].field`, several `WITHIN GROUP` sort keys, and `CURRENT_DATE`, `CAST(…)` or `COLLATION FOR (…)` in FROM.
12
+
13
+ - Queries can use `ROWS FROM (f(…), g(…)) [WITH ORDINALITY]`, `TABLESAMPLE method (…) [REPEATABLE (…)]`, `SEARCH` / `CYCLE` on recursive CTEs (the columns they add are typed), joins nested Postgres-style (`a JOIN b LEFT JOIN c ON … ON …`, `((SELECT …) s JOIN t ON …) j`) and `WITHIN GROUP (ORDER BY a, b)`.
14
+
15
+ - SQL/XML is parsed and typed: `XMLELEMENT(NAME n, XMLATTRIBUTES(…), …)`, `XMLFOREST`, `XMLCONCAT`, `XMLPI`, `XMLROOT`, `XMLPARSE`, `XMLSERIALIZE(… AS type)`, `XMLEXISTS(… PASSING …)`, `IS [NOT] DOCUMENT` and `XMLTABLE(… COLUMNS …)` in `FROM`, with Postgres's column names, types and nullability.
16
+
17
+ - The SQL/JSON syntax of PostgreSQL 16+ parses and is typed: `JSON_OBJECT`, `JSON_ARRAY` (values or a query), `JSON_OBJECTAGG` / `JSON_ARRAYAGG`, `JSON`, `JSON_SCALAR`, `JSON_SERIALIZE`, `JSON_EXISTS` / `JSON_VALUE` / `JSON_QUERY` with all their clauses, `IS [NOT] JSON`, and `JSON_TABLE` in FROM with typed columns.
18
+
19
+ - Queries can use `MERGE` (`WHEN [NOT] MATCHED [BY SOURCE | BY TARGET]`, `RETURNING` with `merge_action()`, inside `WITH`), `RETURNING old.*` / `new.*` and `RETURNING WITH (OLD AS o, NEW AS n)`, array, `jsonb` and field assignment targets (`SET a[1] = $1`, `INSERT INTO t (c.f)`), `WHERE CURRENT OF` and `SELECT … INTO new_table`, all checked and typed like PostgreSQL 18.
20
+
21
+ ### Patch Changes
22
+
23
+ - The package description and README say the parser is tested against PostgreSQL 18's regression suite and link to how.
24
+
25
+ - Strings and numbers lex like Postgres: `E'\\'` and other escaped backslashes before the closing quote, string literals continued on the next line, `U&'…'` / `U&"…"` with `UESCAPE`, invalid Unicode escapes and trailing junk such as `123abc` are errors, and numbers of any length no longer fail with TS2589.
26
+
27
+ - Recognising `SELECT … INTO` costs ordinary SELECT statements less type-checking work.
28
+
29
+ - A JOIN's `ON` condition can only reference the two sides of its join, `SELECT DISTINCT` needs a target list, and a function in `FROM` cannot have `OVER` / `FILTER` / `WITHIN GROUP`, as in Postgres.
30
+
31
+ - The pattern forms of `SUBSTRING` (`FROM 'regex'`, `SIMILAR … ESCAPE …`) are nullable, `FETCH … WITH TIES` may be followed by `OFFSET`, and `CREATE VIEW … USING` is a syntax error, as in Postgres.
32
+
3
33
  ## 0.2.0
4
34
 
5
35
  ### Minor Changes
package/README.md CHANGED
@@ -5,6 +5,10 @@ Type-level Postgres SQL for TypeScript. You write a SQL string literal; the comp
5
5
  the resulting schema. No codegen, no database connection, no build step. Zero runtime
6
6
  dependencies.
7
7
 
8
+ Tested against PostgreSQL's own regression suite: on all 49,999 statements of PostgreSQL 18's
9
+ regression tests that can be checked statically, the parser accepts exactly what Postgres accepts
10
+ and rejects its syntax errors ([how it is tested](https://typesql.karsli.net/guide/postgres-compatibility)).
11
+
8
12
  ```sh
9
13
  pnpm add @typesql/core
10
14
  ```
@@ -67,7 +67,12 @@ export type Cast = {
67
67
  readonly e: Expr;
68
68
  readonly to: string;
69
69
  };
70
- /** Function call, aggregate, or window call. */
70
+ /**
71
+ * Function call, aggregate, or window call. `args` may end with `NamedArg`s and a `VariadicArg`.
72
+ * Special syntax that Postgres turns into a function call is a `Call` too:
73
+ * `COLLATION FOR (e)` → `pg_collation_for(e)`, `e AT LOCAL` → `timezone(e)`,
74
+ * `(a, b) OVERLAPS (c, d)` → `overlaps(a, b, c, d)`, `e IS [form] NORMALIZED` → `is_normalized(e[, 'form'])`.
75
+ */
71
76
  export type Call = {
72
77
  readonly t: "call";
73
78
  readonly name: string;
@@ -79,7 +84,7 @@ export type Call = {
79
84
  readonly over: boolean;
80
85
  /** The window specification when `over` is true (`OVER name` → `{ name, partition: [], order: [] }`). */
81
86
  readonly win: WindowSpec | null;
82
- /** `WITHIN GROUP (ORDER BY e)` — the ordered expression, if any. */
87
+ /** `WITHIN GROUP (ORDER BY e, ...)` — the ordered expression, or a `row` of them when there are several (the first types the result). */
83
88
  readonly withinGroup: Expr | null;
84
89
  };
85
90
  /** `[existing_window] [PARTITION BY ...] [ORDER BY ...] [frame]` — the frame clause is parsed and discarded. */
@@ -195,7 +200,7 @@ export type Position = {
195
200
  readonly sub: Expr;
196
201
  readonly in: Expr;
197
202
  };
198
- /** `SUBSTRING(e [FROM a] [FOR b])` and `SUBSTRING(e SIMILAR p ESCAPE c)` */
203
+ /** `SUBSTRING(e [FROM a] [FOR b])`; `SUBSTRING(e SIMILAR p ESCAPE c)` is `from: p, for: c` (both are `substring(text, text, text)`). */
199
204
  export type Substring = {
200
205
  readonly t: "substring";
201
206
  readonly e: Expr;
@@ -232,9 +237,75 @@ export type FieldAccess = {
232
237
  readonly e: Expr;
233
238
  readonly name: string;
234
239
  };
240
+ /** `name => e` / `name := e`: a named argument (call arguments only; positional ones come first). */
241
+ export type NamedArg = {
242
+ readonly t: "named";
243
+ readonly name: string;
244
+ readonly e: Expr;
245
+ };
246
+ /** `VARIADIC e`: an array passed as the variadic parameter (the last call argument only). */
247
+ export type VariadicArg = {
248
+ readonly t: "variadic";
249
+ readonly e: Expr;
250
+ };
235
251
  /** `GROUPING(...)`, `NULLIF`, `COALESCE`, `GREATEST`, `LEAST` are `Call`s with those names. */
252
+ /**
253
+ * SQL/XML special forms (parser/xml.ts, typer/xml.ts): `XMLCONCAT(args)`,
254
+ * `XMLELEMENT(NAME n [, XMLATTRIBUTES(named)] [, args])`, `XMLFOREST(named)`, `XMLPI(NAME n [, arg])`,
255
+ * `XMLROOT(xml, VERSION v | NO VALUE [, STANDALONE ...])` (args: xml[, version]),
256
+ * `XMLPARSE(DOCUMENT | CONTENT arg)`, `XMLSERIALIZE(DOCUMENT | CONTENT arg AS to)`,
257
+ * `arg IS DOCUMENT` (`IS NOT DOCUMENT` is `NOT (arg IS DOCUMENT)`). Element, attribute and PI
258
+ * names are not kept. `XMLEXISTS(x PASSING d)` is the call `xmlexists(x, d)`, as in Postgres.
259
+ */
260
+ export type XmlExpr = {
261
+ readonly t: "xml";
262
+ readonly op: "concat" | "element" | "forest" | "pi" | "root" | "parse" | "serialize" | "document";
263
+ readonly args: readonly Expr[];
264
+ /** XMLATTRIBUTES / XMLFOREST values (any type). */
265
+ readonly named: readonly Expr[];
266
+ /** XMLSERIALIZE's target type (canonical), else null. */
267
+ readonly to: string | null;
268
+ };
269
+ /** `e FORMAT JSON [ENCODING …]`: a text / bytea value embedded as JSON. */
270
+ export type JsonFormat = {
271
+ readonly t: "jsonfmt";
272
+ readonly e: Expr;
273
+ };
274
+ /** `e IS [NOT] JSON [VALUE | SCALAR | ARRAY | OBJECT] [WITH | WITHOUT UNIQUE [KEYS]]` */
275
+ export type IsJson = {
276
+ readonly t: "isjson";
277
+ readonly e: Expr;
278
+ readonly not: boolean;
279
+ };
280
+ /** `JSON(…)`, `JSON_SCALAR`, `JSON_SERIALIZE`, `JSON_OBJECT`, `JSON_ARRAY`, `JSON_EXISTS`, `JSON_VALUE`, `JSON_QUERY`. */
281
+ export type JsonFn = {
282
+ readonly t: "jsonfn";
283
+ /** The function, also Postgres's output column name. */
284
+ readonly fn: "json" | "json_scalar" | "json_serialize" | "json_object" | "json_array" | "json_exists" | "json_value" | "json_query";
285
+ /** JSON_OBJECT: `[k1, v1, k2, v2, …]`; query functions: `[context item, path]`; others: the values. */
286
+ readonly args: readonly Expr[];
287
+ /** `PASSING` values (query functions). */
288
+ readonly passing: readonly Expr[];
289
+ /** `DEFAULT e ON EMPTY | ON ERROR` expressions (query functions). */
290
+ readonly defaults: readonly Expr[];
291
+ /** `JSON_ARRAY(query)` */
292
+ readonly q: SelectStmt | null;
293
+ /** `RETURNING` type (canonical), or null. */
294
+ readonly ret: string | null;
295
+ /** `ABSENT ON NULL` (JSON_OBJECT, JSON_ARRAY). */
296
+ readonly absent: boolean;
297
+ /** `UNKNOWN ON ERROR` (JSON_EXISTS). */
298
+ readonly unknownOnError: boolean;
299
+ };
300
+ /** `JSON_OBJECTAGG` / `JSON_ARRAYAGG`: `e` is the `json[b]_[object_]agg[_strict]` call they mean. */
301
+ export type JsonAgg = {
302
+ readonly t: "jsonagg";
303
+ readonly fn: "json_objectagg" | "json_arrayagg";
304
+ readonly e: Call;
305
+ readonly ret: string | null;
306
+ };
236
307
  /** The precise union of expression nodes (documentation and tooling; not used as a constraint). */
237
- export type ExprNode = ColRef | Star | NumLit | StrLit | BoolLit | NullLit | Param | DefaultExpr | TypedLit | BinOp | UnOp | Cast | Call | CaseExpr | IsTest | IsDistinct | Between | InList | InSub | Like | Quantified | ScalarSub | Exists | ArrayCtor | ArraySub | RowCtor | Subscript | Slice | Extract | Position | Substring | Trim | Overlay | AtTimeZone | Collate | FieldAccess;
308
+ export type ExprNode = ColRef | Star | NumLit | StrLit | BoolLit | NullLit | Param | DefaultExpr | TypedLit | BinOp | UnOp | Cast | Call | CaseExpr | IsTest | IsDistinct | Between | InList | InSub | Like | Quantified | ScalarSub | Exists | ArrayCtor | ArraySub | RowCtor | Subscript | Slice | Extract | Position | Substring | Trim | Overlay | AtTimeZone | Collate | FieldAccess | XmlExpr | JsonFormat | IsJson | JsonFn | JsonAgg | NamedArg | VariadicArg;
238
309
  /** Discriminants of expression nodes. */
239
310
  export type ExprTag = ExprNode["t"];
240
311
  /**
@@ -279,13 +350,32 @@ export type FromFunc = {
279
350
  readonly call: Expr;
280
351
  readonly alias: string | null;
281
352
  readonly colAliases: readonly string[] | null;
282
- readonly colDefs: readonly {
283
- readonly name: string;
284
- readonly type: string;
285
- }[] | null;
353
+ readonly colDefs: readonly ColDef[] | null;
286
354
  readonly lateral: boolean;
287
355
  readonly withOrdinality: boolean;
288
356
  };
357
+ /** `XMLTABLE` column: `name type [PATH p] [DEFAULT d] [[NOT] NULL]`, or `name FOR ORDINALITY` (int4, not null). */
358
+ export type XmlTableCol = {
359
+ readonly name: string;
360
+ readonly type: string;
361
+ readonly path: Expr | null;
362
+ readonly def: Expr | null;
363
+ readonly notNull: boolean;
364
+ readonly ordinality: boolean;
365
+ };
366
+ /** `[LATERAL] XMLTABLE([XMLNAMESPACES(uri AS name, ...),] row PASSING doc COLUMNS ...) [alias [(cols)]]`, always lateral. */
367
+ export type FromXmlTable = {
368
+ readonly t: "xmltable";
369
+ /** XMLNAMESPACES URIs. */
370
+ readonly ns: readonly Expr[];
371
+ /** `XMLNAMESPACES(DEFAULT uri)` was given (parsed, then rejected like Postgres). */
372
+ readonly defaultNs: boolean;
373
+ readonly row: Expr;
374
+ readonly doc: Expr;
375
+ readonly cols: readonly XmlTableCol[];
376
+ readonly alias: string | null;
377
+ readonly colAliases: readonly string[] | null;
378
+ };
289
379
  export type JoinKind = "inner" | "left" | "right" | "full" | "cross";
290
380
  export type FromJoin = {
291
381
  readonly t: "join";
@@ -296,11 +386,81 @@ export type FromJoin = {
296
386
  readonly using: readonly string[] | null;
297
387
  readonly natural: boolean;
298
388
  };
299
- export type FromItem = FromTable | FromSub | FromFunc | FromJoin;
389
+ /** A JSON_TABLE column: `{ n: name, t: { type, nullable } }` (an output column entry). */
390
+ export type JsonTableCol = {
391
+ readonly n: string;
392
+ readonly t: {
393
+ readonly type: string;
394
+ readonly nullable: boolean;
395
+ };
396
+ };
397
+ /** `JSON_TABLE(…) [alias [(cols)]]`, always lateral (parser/json.ts `ParseJsonTable`). */
398
+ export type FromJsonTable = {
399
+ readonly t: "jsontable";
400
+ readonly jt: {
401
+ readonly ctx: Expr;
402
+ readonly path: Expr;
403
+ readonly passing: readonly Expr[];
404
+ /** Output columns in Postgres's order (nested paths' columns after their parent's). */
405
+ readonly cols: readonly JsonTableCol[];
406
+ /** Path and column names, in declaration order (must be distinct). */
407
+ readonly names: readonly string[];
408
+ /** DEFAULT expressions and the type of their column. */
409
+ readonly defs: readonly {
410
+ readonly e: Expr;
411
+ readonly type: string;
412
+ }[];
413
+ };
414
+ readonly alias: string | null;
415
+ readonly colAliases: readonly string[] | null;
416
+ };
417
+ /** Column definition list entry of a function in FROM (`AS (a int, b text)`). */
418
+ export type ColDef = {
419
+ readonly name: string;
420
+ readonly type: string;
421
+ };
422
+ /** `table [AS alias] TABLESAMPLE method (args) [REPEATABLE (seed)]` */
423
+ export type FromSample = {
424
+ readonly t: "sample";
425
+ readonly table: FromTable;
426
+ readonly method: string;
427
+ readonly args: readonly Expr[];
428
+ readonly repeatable: Expr | null;
429
+ };
430
+ /** `ROWS FROM (f(...) [AS (coldefs)], ...) [WITH ORDINALITY] [AS] alias [(cols) | (coldefs)]` */
431
+ export type FromRowsFrom = {
432
+ readonly t: "rowsfrom";
433
+ readonly funcs: readonly {
434
+ readonly call: Expr;
435
+ readonly colDefs: readonly ColDef[] | null;
436
+ }[];
437
+ readonly alias: string | null;
438
+ readonly colAliases: readonly string[] | null;
439
+ readonly colDefs: readonly ColDef[] | null;
440
+ readonly lateral: boolean;
441
+ readonly withOrdinality: boolean;
442
+ };
443
+ export type FromItem = FromTable | FromSub | FromFunc | FromJoin | FromXmlTable | FromJsonTable | FromSample | FromRowsFrom;
444
+ /** `SEARCH {DEPTH | BREADTH} FIRST BY cols SET seq` */
445
+ export type CteSearch = {
446
+ readonly breadth: boolean;
447
+ readonly cols: readonly string[];
448
+ readonly set: string;
449
+ };
450
+ /** `CYCLE cols SET mark [TO value DEFAULT default] USING path` (`to` / `default` are constants) */
451
+ export type CteCycle = {
452
+ readonly cols: readonly string[];
453
+ readonly set: string;
454
+ readonly to: Expr | null;
455
+ readonly default: Expr | null;
456
+ readonly using: string;
457
+ };
300
458
  export type Cte = {
301
459
  readonly name: string;
302
460
  readonly cols: readonly string[] | null;
303
461
  readonly q: Stmt;
462
+ readonly search: CteSearch | null;
463
+ readonly cycle: CteCycle | null;
304
464
  };
305
465
  export type WithClause = {
306
466
  readonly recursive: boolean;
@@ -359,17 +519,36 @@ export type InsertSource = {
359
519
  } | {
360
520
  readonly t: "default";
361
521
  };
522
+ /**
523
+ * Indirection on an assignment target (`a[1] = …`, `c.f = …`, `INSERT INTO t (a[1:2], c.f)`):
524
+ * the target as an expression rooted at the bare column (`{ t: "col", tbl: null, name }`),
525
+ * wrapped in `idx` / `slice` / `field` nodes, or `null` when the column is assigned whole.
526
+ */
527
+ export type TargetInd = Expr | null;
362
528
  export type SetItem = {
363
529
  readonly t: "set";
364
530
  readonly col: string;
365
531
  readonly e: Expr;
366
532
  }
367
- /** `SET (a, b) = (1, 2)` or `= (SELECT ...)` */
533
+ /** `SET a[1] = e`, `SET c.f = e`: `target` is the indirection (see `TargetInd`). */
534
+ | {
535
+ readonly t: "setind";
536
+ readonly col: string;
537
+ readonly target: Expr;
538
+ readonly e: Expr;
539
+ }
540
+ /** `SET (a, b) = (1, 2)` or `= (SELECT ...)`; `ind` is null unless a target has indirection. */
368
541
  | {
369
542
  readonly t: "setmulti";
370
543
  readonly cols: readonly string[];
544
+ readonly ind: readonly TargetInd[] | null;
371
545
  readonly e: Expr;
372
546
  };
547
+ /** `RETURNING WITH (OLD AS o, NEW AS n)` options, in order (`[]` without the clause). */
548
+ export type ReturningOpt = {
549
+ readonly kind: "old" | "new";
550
+ readonly alias: string;
551
+ };
373
552
  export type OnConflict = {
374
553
  readonly t: "nothing";
375
554
  } | {
@@ -383,9 +562,12 @@ export type InsertStmt = {
383
562
  readonly table: TableRef;
384
563
  readonly alias: string | null;
385
564
  readonly columns: readonly string[] | null;
565
+ /** Indirection per column (`INSERT INTO t (a[1], c.f)`), `null` when no column has any. */
566
+ readonly colInd: readonly TargetInd[] | null;
386
567
  readonly source: InsertSource;
387
568
  readonly onConflict: OnConflict | null;
388
569
  readonly returning: readonly Target[] | null;
570
+ readonly retOpts: readonly ReturningOpt[];
389
571
  };
390
572
  export type UpdateStmt = {
391
573
  readonly t: "update";
@@ -394,8 +576,10 @@ export type UpdateStmt = {
394
576
  readonly alias: string | null;
395
577
  readonly set: readonly SetItem[];
396
578
  readonly from: readonly FromItem[];
579
+ /** `WHERE CURRENT OF cursor` is `null` (the cursor's row is not known at the type level). */
397
580
  readonly where: Expr | null;
398
581
  readonly returning: readonly Target[] | null;
582
+ readonly retOpts: readonly ReturningOpt[];
399
583
  };
400
584
  export type DeleteStmt = {
401
585
  readonly t: "delete";
@@ -403,9 +587,48 @@ export type DeleteStmt = {
403
587
  readonly table: TableRef;
404
588
  readonly alias: string | null;
405
589
  readonly using: readonly FromItem[];
590
+ /** `WHERE CURRENT OF cursor` is `null` (the cursor's row is not known at the type level). */
406
591
  readonly where: Expr | null;
407
592
  readonly returning: readonly Target[] | null;
593
+ readonly retOpts: readonly ReturningOpt[];
408
594
  };
595
+ /**
596
+ * `WHEN [NOT] MATCHED [BY SOURCE | BY TARGET] [AND cond] THEN action` of MERGE.
597
+ * `match`: `"matched"`, `"source"` (NOT MATCHED BY SOURCE) or `"target"` (NOT MATCHED [BY TARGET]).
598
+ */
599
+ export type MergeWhen = {
600
+ readonly match: "matched" | "source" | "target";
601
+ readonly cond: Expr | null;
602
+ readonly action: MergeAction;
603
+ };
604
+ export type MergeAction = {
605
+ readonly t: "update";
606
+ readonly set: readonly SetItem[];
607
+ } | {
608
+ readonly t: "delete";
609
+ }
610
+ /** `INSERT [(cols)] [OVERRIDING …] VALUES (…)`; `values` is `null` for `DEFAULT VALUES`. */
611
+ | {
612
+ readonly t: "insert";
613
+ readonly columns: readonly string[] | null;
614
+ readonly colInd: readonly TargetInd[] | null;
615
+ readonly values: readonly Expr[] | null;
616
+ } | {
617
+ readonly t: "nothing";
618
+ };
619
+ export type MergeStmt = {
620
+ readonly t: "merge";
621
+ readonly with: WithClause | null;
622
+ readonly table: TableRef;
623
+ readonly alias: string | null;
624
+ readonly source: FromItem;
625
+ readonly on: Expr;
626
+ readonly whens: readonly MergeWhen[];
627
+ readonly returning: readonly Target[] | null;
628
+ readonly retOpts: readonly ReturningOpt[];
629
+ };
630
+ /** The DML statements (they share WITH, a target table and RETURNING). */
631
+ export type DmlStmt = InsertStmt | UpdateStmt | DeleteStmt | MergeStmt;
409
632
  export type ColumnDef = {
410
633
  readonly name: string;
411
634
  /** canonical type name (arrays as `T[]`) */
@@ -418,6 +641,11 @@ export type ColumnDef = {
418
641
  export type TableConstraint = {
419
642
  readonly t: "pk";
420
643
  readonly cols: readonly string[];
644
+ }
645
+ /** table-level `NOT NULL col` */
646
+ | {
647
+ readonly t: "not_null";
648
+ readonly col: string;
421
649
  } | {
422
650
  readonly t: "other";
423
651
  };
@@ -436,6 +664,8 @@ export type CreateTable = {
436
664
  readonly like: readonly LikeClause[];
437
665
  /** `INHERITS (parents)` or `PARTITION OF parent`: parent columns come first, with their defaults */
438
666
  readonly inherits: readonly TableRef[];
667
+ /** `OF type`: a typed table, whose columns come from a composite type (not tracked: ApplyDdl rejects it) */
668
+ readonly of: TableRef | null;
439
669
  };
440
670
  /** `CREATE TABLE name [(cols)] AS select`. Columns come from the query; all nullable, no defaults (as Postgres). */
441
671
  export type CreateTableAs = {
@@ -443,7 +673,12 @@ export type CreateTableAs = {
443
673
  readonly ifNotExists: boolean;
444
674
  readonly table: TableRef;
445
675
  readonly cols: readonly string[] | null;
446
- readonly q: SelectStmt;
676
+ /** the query, or `AS EXECUTE name(…)` (a prepared statement, whose columns are unknown) */
677
+ readonly q: SelectStmt | ExecuteSource;
678
+ };
679
+ export type ExecuteSource = {
680
+ readonly t: "execute";
681
+ readonly name: string;
447
682
  };
448
683
  export type AlterAction = {
449
684
  readonly t: "add_column";
@@ -546,10 +781,16 @@ export type DropType = {
546
781
  readonly names: readonly TableRef[];
547
782
  readonly cascade: boolean;
548
783
  };
784
+ /**
785
+ * `CREATE SCHEMA name [AUTHORIZATION role] [element ...]`. `elements` holds the embedded CREATE TABLE
786
+ * and CREATE VIEW statements (the other elements have no schema effect), tables first, then views:
787
+ * the order Postgres runs them in. Their names are qualified with the new schema.
788
+ */
549
789
  export type CreateSchema = {
550
790
  readonly t: "create_schema";
551
791
  readonly ifNotExists: boolean;
552
792
  readonly name: string;
793
+ readonly elements: readonly (CreateTable | CreateView)[];
553
794
  };
554
795
  export type DropSchema = {
555
796
  readonly t: "drop_schema";
@@ -575,6 +816,22 @@ export type NoopStmt = {
575
816
  readonly t: "noop";
576
817
  readonly what: string;
577
818
  };
578
- export type DdlStmt = CreateTable | CreateTableAs | AlterTable | DropTable | CreateView | DropView | CreateEnum | AlterEnum | DropType | CreateSchema | DropSchema | RenameSchema | CreateFunction | NoopStmt;
579
- export type Stmt = SelectStmt | InsertStmt | UpdateStmt | DeleteStmt | DdlStmt;
819
+ /** `DECLARE name [options] CURSOR [WITH[OUT] HOLD] FOR query`: the query is checked; the statement returns no rows. */
820
+ export type DeclareCursor = {
821
+ readonly t: "declare_cursor";
822
+ readonly name: string;
823
+ readonly q: SelectStmt;
824
+ };
825
+ /** `FETCH` / `MOVE [direction] [FROM | IN] cursor`. The cursor's query is another statement: no row type. */
826
+ export type FetchStmt = {
827
+ readonly t: "fetch" | "move";
828
+ readonly cursor: string;
829
+ };
830
+ /** `CLOSE name | ALL` (`cursor` is `null` for ALL). */
831
+ export type CloseCursor = {
832
+ readonly t: "close_cursor";
833
+ readonly cursor: string | null;
834
+ };
835
+ export type DdlStmt = CreateTable | CreateTableAs | AlterTable | DropTable | CreateView | DropView | CreateEnum | AlterEnum | DropType | CreateSchema | DropSchema | RenameSchema | CreateFunction | NoopStmt | DeclareCursor | FetchStmt | CloseCursor;
836
+ export type Stmt = SelectStmt | InsertStmt | UpdateStmt | DeleteStmt | MergeStmt | DdlStmt;
580
837
  //# sourceMappingURL=ast.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ast.d.ts","sources":["../../src/engine/ast.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ast.d.ts","sources":["../../src/engine/ast.ts"],"names":[],"mappings":"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"}