@uwdata/mosaic-sql 0.21.1 → 0.23.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 (47) hide show
  1. package/dist/src/ast/query.d.ts +50 -0
  2. package/dist/src/ast/query.d.ts.map +1 -1
  3. package/dist/src/ast/query.js +59 -2
  4. package/dist/src/ast/query.js.map +1 -1
  5. package/dist/src/constants.d.ts +2 -0
  6. package/dist/src/constants.d.ts.map +1 -1
  7. package/dist/src/constants.js +2 -0
  8. package/dist/src/constants.js.map +1 -1
  9. package/dist/src/index.d.ts +1 -1
  10. package/dist/src/index.d.ts.map +1 -1
  11. package/dist/src/index.js +1 -1
  12. package/dist/src/index.js.map +1 -1
  13. package/dist/src/load/create.d.ts +4 -9
  14. package/dist/src/load/create.d.ts.map +1 -1
  15. package/dist/src/load/create.js +5 -11
  16. package/dist/src/load/create.js.map +1 -1
  17. package/dist/src/load/load.d.ts +7 -7
  18. package/dist/src/load/load.d.ts.map +1 -1
  19. package/dist/src/load/load.js.map +1 -1
  20. package/dist/src/visit/codegen/duckdb.d.ts +3 -1
  21. package/dist/src/visit/codegen/duckdb.d.ts.map +1 -1
  22. package/dist/src/visit/codegen/duckdb.js +15 -0
  23. package/dist/src/visit/codegen/duckdb.js.map +1 -1
  24. package/dist/src/visit/codegen/sql.d.ts +4 -2
  25. package/dist/src/visit/codegen/sql.d.ts.map +1 -1
  26. package/dist/src/visit/codegen/sql.js +3 -1
  27. package/dist/src/visit/codegen/sql.js.map +1 -1
  28. package/dist/src/visit/recurse.d.ts.map +1 -1
  29. package/dist/src/visit/recurse.js +3 -1
  30. package/dist/src/visit/recurse.js.map +1 -1
  31. package/package.json +3 -3
  32. package/src/ast/query.ts +83 -3
  33. package/src/constants.ts +2 -0
  34. package/src/index.ts +1 -1
  35. package/src/load/create.ts +6 -22
  36. package/src/load/load.ts +2 -1
  37. package/src/visit/codegen/duckdb.ts +19 -0
  38. package/src/visit/codegen/sql.ts +8 -0
  39. package/src/visit/recurse.ts +4 -0
  40. package/dist/src/visit/duckdb-visitor.d.ts +0 -50
  41. package/dist/src/visit/duckdb-visitor.d.ts.map +0 -1
  42. package/dist/src/visit/duckdb-visitor.js +0 -350
  43. package/dist/src/visit/duckdb-visitor.js.map +0 -1
  44. package/dist/src/visit/to-string-visitor.d.ts +0 -60
  45. package/dist/src/visit/to-string-visitor.d.ts.map +0 -1
  46. package/dist/src/visit/to-string-visitor.js +0 -80
  47. package/dist/src/visit/to-string-visitor.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import type { SQLNode, ExprNode, AggregateNode, BetweenOpNode, NotBetweenOpNode, BinaryOpNode, CaseNode, WhenNode, CastNode, CollateNode, ColumnParamNode, ColumnRefNode, FragmentNode, FromClauseNode, FunctionNode, InOpNode, IntervalNode, JoinNode, ListNode, LiteralNode, LogicalOpNode, OrderByNode, ParamNode, DescribeQuery, SelectQuery, SetOperation, SampleClauseNode, SelectClauseNode, ScalarSubqueryNode, TableRefNode, UnaryOpNode, UnaryPostfixOpNode, UnnestNode, VerbatimNode, WindowNode, WindowClauseNode, WindowDefNode, WindowFunctionNode, WindowFrameNode, WindowFrameExprNode, WithClauseNode } from '../../index.js';
1
+ import type { SQLNode, ExprNode, AggregateNode, BetweenOpNode, NotBetweenOpNode, BinaryOpNode, CaseNode, WhenNode, CastNode, CollateNode, ColumnParamNode, ColumnRefNode, CreateQuery, CreateSchemaQuery, FragmentNode, FromClauseNode, FunctionNode, InOpNode, IntervalNode, JoinNode, ListNode, LiteralNode, LogicalOpNode, OrderByNode, ParamNode, DescribeQuery, SelectQuery, SetOperation, SampleClauseNode, SelectClauseNode, ScalarSubqueryNode, TableRefNode, UnaryOpNode, UnaryPostfixOpNode, UnnestNode, VerbatimNode, WindowNode, WindowClauseNode, WindowDefNode, WindowFunctionNode, WindowFrameNode, WindowFrameExprNode, WithClauseNode } from '../../index.js';
2
2
  /**
3
3
  * Abstract base class for SQL code generation visitors.
4
4
  */
@@ -9,7 +9,7 @@ export declare abstract class SQLCodeGenerator {
9
9
  * @returns The SQL string representation.
10
10
  */
11
11
  toString(node: SQLNode): string;
12
- protected getVisitMethod(nodeType: string): ((node: AggregateNode) => string) | ((node: BetweenOpNode) => string) | ((node: BinaryOpNode) => string) | ((node: CaseNode) => string) | ((node: CastNode) => string) | ((node: CollateNode) => string) | ((node: ColumnParamNode) => string) | ((node: DescribeQuery) => string);
12
+ protected getVisitMethod(nodeType: string): ((node: AggregateNode) => string) | ((node: BetweenOpNode) => string) | ((node: BinaryOpNode) => string) | ((node: CaseNode) => string) | ((node: CastNode) => string) | ((node: CollateNode) => string) | ((node: ColumnParamNode) => string) | ((node: CreateQuery) => string) | ((node: CreateSchemaQuery) => string) | ((node: DescribeQuery) => string);
13
13
  /**
14
14
  * Helper method to convert child nodes to strings.
15
15
  * @param nodes Array of child nodes.
@@ -24,6 +24,8 @@ export declare abstract class SQLCodeGenerator {
24
24
  abstract visitCollate(node: CollateNode): string;
25
25
  abstract visitColumnParam(node: ColumnParamNode): string;
26
26
  abstract visitColumnRef(node: ColumnRefNode): string;
27
+ abstract visitCreateQuery(node: CreateQuery): string;
28
+ abstract visitCreateSchemaQuery(node: CreateSchemaQuery): string;
27
29
  abstract visitDescribeQuery(node: DescribeQuery): string;
28
30
  abstract visitExpression(node: ExprNode): string;
29
31
  abstract visitFragment(node: FragmentNode): string;
@@ -1 +1 @@
1
- {"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../../../src/visit/codegen/sql.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../../../src/visit/codegen/sql.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { AGGREGATE, BETWEEN_OPERATOR, BINARY_OPERATOR, CASE, CAST, COLLATE, COLUMN_PARAM, COLUMN_REF, DESCRIBE_QUERY, EXPRESSION, FRAGMENT, FROM_CLAUSE, FUNCTION, IN_OPERATOR, INTERVAL, JOIN_CLAUSE, LIST, LITERAL, LOGICAL_OPERATOR, NOT_BETWEEN_OPERATOR, ORDER_BY, PARAM, SAMPLE_CLAUSE, SCALAR_SUBQUERY, SELECT_CLAUSE, SELECT_QUERY, SET_OPERATION, TABLE_REF, UNARY_OPERATOR, UNARY_POSTFIX_OPERATOR, UNNEST, VERBATIM, WHEN, WINDOW, WINDOW_CLAUSE, WINDOW_DEF, WINDOW_EXTENT_EXPR, WINDOW_FRAME, WINDOW_FUNCTION, WITH_CLAUSE } from '../../constants.js';
1
+ import { AGGREGATE, BETWEEN_OPERATOR, BINARY_OPERATOR, CASE, CAST, COLLATE, COLUMN_PARAM, COLUMN_REF, CREATE_QUERY, CREATE_SCHEMA_QUERY, DESCRIBE_QUERY, EXPRESSION, FRAGMENT, FROM_CLAUSE, FUNCTION, IN_OPERATOR, INTERVAL, JOIN_CLAUSE, LIST, LITERAL, LOGICAL_OPERATOR, NOT_BETWEEN_OPERATOR, ORDER_BY, PARAM, SAMPLE_CLAUSE, SCALAR_SUBQUERY, SELECT_CLAUSE, SELECT_QUERY, SET_OPERATION, TABLE_REF, UNARY_OPERATOR, UNARY_POSTFIX_OPERATOR, UNNEST, VERBATIM, WHEN, WINDOW, WINDOW_CLAUSE, WINDOW_DEF, WINDOW_EXTENT_EXPR, WINDOW_FRAME, WINDOW_FUNCTION, WITH_CLAUSE } from '../../constants.js';
2
2
  /**
3
3
  * Abstract base class for SQL code generation visitors.
4
4
  */
@@ -37,6 +37,8 @@ export class SQLCodeGenerator {
37
37
  case COLLATE: return this.visitCollate;
38
38
  case COLUMN_PARAM: return this.visitColumnParam;
39
39
  case COLUMN_REF: return this.visitColumnRef;
40
+ case CREATE_QUERY: return this.visitCreateQuery;
41
+ case CREATE_SCHEMA_QUERY: return this.visitCreateSchemaQuery;
40
42
  case DESCRIBE_QUERY: return this.visitDescribeQuery;
41
43
  case EXPRESSION: return this.visitExpression;
42
44
  case FRAGMENT: return this.visitFragment;
@@ -1 +1 @@
1
- {"version":3,"file":"sql.js","sourceRoot":"","sources":["../../../../src/visit/codegen/sql.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sql.js","sourceRoot":"","sources":["../../../../src/visit/codegen/sql.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"recurse.d.ts","sourceRoot":"","sources":["../../../src/visit/recurse.ts"],"names":[],"mappings":"AAqCA,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAmC5C,CAAC"}
1
+ {"version":3,"file":"recurse.d.ts","sourceRoot":"","sources":["../../../src/visit/recurse.ts"],"names":[],"mappings":"AAuCA,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAqC5C,CAAC"}
@@ -1,4 +1,4 @@
1
- import { AGGREGATE, BETWEEN_OPERATOR, BINARY_OPERATOR, CASE, CAST, COLLATE, COLUMN_PARAM, COLUMN_REF, DESCRIBE_QUERY, EXPRESSION, FRAGMENT, FROM_CLAUSE, FUNCTION, IN_OPERATOR, JOIN_CLAUSE, LOGICAL_OPERATOR, NOT_BETWEEN_OPERATOR, ORDER_BY, PARAM, SCALAR_SUBQUERY, SELECT_CLAUSE, SELECT_QUERY, SET_OPERATION, UNARY_OPERATOR, UNARY_POSTFIX_OPERATOR, UNNEST, WHEN, WINDOW, WINDOW_CLAUSE, WINDOW_DEF, WINDOW_EXTENT_EXPR, WINDOW_FRAME, WINDOW_FUNCTION, WITH_CLAUSE } from '../constants.js';
1
+ import { AGGREGATE, BETWEEN_OPERATOR, BINARY_OPERATOR, CASE, CAST, COLLATE, COLUMN_PARAM, COLUMN_REF, CREATE_QUERY, CREATE_SCHEMA_QUERY, DESCRIBE_QUERY, EXPRESSION, FRAGMENT, FROM_CLAUSE, FUNCTION, IN_OPERATOR, JOIN_CLAUSE, LOGICAL_OPERATOR, NOT_BETWEEN_OPERATOR, ORDER_BY, PARAM, SCALAR_SUBQUERY, SELECT_CLAUSE, SELECT_QUERY, SET_OPERATION, UNARY_OPERATOR, UNARY_POSTFIX_OPERATOR, UNNEST, WHEN, WINDOW, WINDOW_CLAUSE, WINDOW_DEF, WINDOW_EXTENT_EXPR, WINDOW_FRAME, WINDOW_FUNCTION, WITH_CLAUSE } from '../constants.js';
2
2
  export const recurse = {
3
3
  [AGGREGATE]: ['args', 'order', 'filter'],
4
4
  [BETWEEN_OPERATOR]: ['expr', 'extent'],
@@ -8,6 +8,8 @@ export const recurse = {
8
8
  [COLLATE]: ['expr'],
9
9
  [COLUMN_PARAM]: ['param', 'table'],
10
10
  [COLUMN_REF]: ['table'],
11
+ [CREATE_QUERY]: ['name', 'query'],
12
+ [CREATE_SCHEMA_QUERY]: ['name'],
11
13
  [DESCRIBE_QUERY]: ['query'],
12
14
  [EXPRESSION]: ['node'],
13
15
  [FRAGMENT]: ['spans'],
@@ -1 +1 @@
1
- {"version":3,"file":"recurse.js","sourceRoot":"","sources":["../../../src/visit/recurse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recurse.js","sourceRoot":"","sources":["../../../src/visit/recurse.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,UAAU,EACV,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACpB,QAAQ,EACR,KAAK,EACL,eAAe,EACf,aAAa,EACb,YAAY,EACZ,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,MAAM,EACN,IAAI,EACJ,MAAM,EACN,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,WAAW,EACZ,MAAM,iBAAiB,CAAC;AAEzB,MAAM,CAAC,MAAM,OAAO,GAA6B;IAC/C,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC;IACxC,CAAC,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;IACtC,CAAC,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;IACpC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;IAClC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;IAChB,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC;IACnB,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;IAClC,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC;IACvB,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;IACjC,CAAC,mBAAmB,CAAC,EAAE,CAAC,MAAM,CAAC;IAC/B,CAAC,cAAc,CAAC,EAAE,CAAC,OAAO,CAAC;IAC3B,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC;IACtB,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC;IACrB,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC;IACvB,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC;IACpB,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;IACjC,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC;IACzD,CAAC,gBAAgB,CAAC,EAAE,CAAC,SAAS,CAAC;IAC/B,CAAC,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1C,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC;IACpB,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC;IAClB,CAAC,eAAe,CAAC,EAAE,CAAC,UAAU,CAAC;IAC/B,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC;IACzB,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC;IAC5H,CAAC,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;IACxC,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC;IAC1B,CAAC,sBAAsB,CAAC,EAAE,CAAC,MAAM,CAAC;IAClC,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC;IAClB,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;IACzB,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,CAAC;IACxB,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,UAAU,CAAC;IAChD,CAAC,kBAAkB,CAAC,EAAE,CAAC,MAAM,CAAC;IAC9B,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,CAAC;IAC1B,CAAC,eAAe,CAAC,EAAE,CAAC,MAAM,CAAC;IAC3B,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC;CACzB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uwdata/mosaic-sql",
3
- "version": "0.21.1",
3
+ "version": "0.23.0",
4
4
  "description": "SQL query construction and analysis.",
5
5
  "keywords": [
6
6
  "sql",
@@ -27,7 +27,7 @@
27
27
  "clean": "rimraf dist && mkdir dist",
28
28
  "lint": "eslint src test",
29
29
  "test": "vitest run",
30
- "prepublishOnly": "npm run test && npm run lint && tsc --build"
30
+ "prepublishOnly": "pnpm run test && pnpm run lint && tsc --build"
31
31
  },
32
- "gitHead": "296762423ac032193344646ad4f10cf604ca69a2"
32
+ "gitHead": "8d153a15b9b1c69130d5384ecd59aa634e3f90b3"
33
33
  }
package/src/ast/query.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { FilterExpr, FromExpr, GroupByExpr, MaybeArray, OrderByExpr, SelectExpr, WithExpr } from '../types.js';
2
2
  import type { SampleMethod } from './sample.js';
3
- import { DESCRIBE_QUERY, SELECT_QUERY, SET_OPERATION } from '../constants.js';
4
- import { asNode, asVerbatim, maybeTableRef } from '../util/ast.js';
3
+ import { CREATE_QUERY, CREATE_SCHEMA_QUERY, DESCRIBE_QUERY, SELECT_QUERY, SET_OPERATION } from '../constants.js';
4
+ import { asNode, asTableRef, asVerbatim, maybeTableRef } from '../util/ast.js';
5
5
  import { exprList, nodeList } from '../util/function.js';
6
6
  import { unquote } from '../util/string.js';
7
7
  import { isArray, isString } from '../util/type-check.js';
@@ -10,7 +10,8 @@ import { FromClauseNode, FromNode } from './from.js';
10
10
  import { ExprNode, SQLNode, isNode } from './node.js';
11
11
  import { SampleClauseNode } from './sample.js';
12
12
  import { SelectClauseNode } from './select.js';
13
- import { isTableRef } from './table-ref.js';
13
+ import { isTableRef, TableRefNode } from './table-ref.js';
14
+ import { VerbatimNode } from './verbatim.js';
14
15
  import { WindowClauseNode, type WindowDefNode } from './window.js';
15
16
  import { WithClauseNode } from './with.js';
16
17
 
@@ -38,6 +39,22 @@ export function isDescribeQuery(value: unknown): value is DescribeQuery {
38
39
  return value instanceof DescribeQuery;
39
40
  }
40
41
 
42
+ /**
43
+ * Check if a value is a create query.
44
+ * @param value The value to check.
45
+ */
46
+ export function isCreateQuery(value: unknown): value is CreateQuery {
47
+ return value instanceof CreateQuery;
48
+ }
49
+
50
+ /**
51
+ * Check if a value is a create schema query.
52
+ * @param value The value to check.
53
+ */
54
+ export function isCreateSchemaQuery(value: unknown): value is CreateSchemaQuery {
55
+ return value instanceof CreateSchemaQuery;
56
+ }
57
+
41
58
  export class Query extends ExprNode {
42
59
  /**
43
60
  * Create a new WITH clause with the given CTE queries.
@@ -477,6 +494,69 @@ export class DescribeQuery extends SQLNode {
477
494
  }
478
495
  }
479
496
 
497
+ export interface CreateTableOptions {
498
+ replace?: boolean;
499
+ temp?: boolean;
500
+ view?: boolean;
501
+ }
502
+
503
+ export class CreateQuery extends SQLNode {
504
+ /** The table or view name. */
505
+ readonly name: TableRefNode;
506
+ /** The source query. */
507
+ readonly query: SQLNode;
508
+ /** Whether to use OR REPLACE. */
509
+ readonly replace: boolean;
510
+ /** Whether to create a TEMP table/view. */
511
+ readonly temp: boolean;
512
+ /** Whether to create a VIEW instead of a TABLE. */
513
+ readonly view: boolean;
514
+
515
+ /**
516
+ * Instantiate a create query.
517
+ * @param name The table or view name.
518
+ * @param query The source query.
519
+ * @param options Create options.
520
+ */
521
+ constructor(
522
+ name: string | TableRefNode,
523
+ query: string | Query,
524
+ { replace = false, temp = false, view = false }: CreateTableOptions = {}
525
+ ) {
526
+ super(CREATE_QUERY);
527
+ this.name = asTableRef(name)!;
528
+ this.query = isString(query) ? new VerbatimNode(query) : query;
529
+ this.replace = replace;
530
+ this.temp = temp;
531
+ this.view = view;
532
+ }
533
+ }
534
+
535
+ export interface CreateSchemaOptions {
536
+ strict?: boolean;
537
+ }
538
+
539
+ export class CreateSchemaQuery extends SQLNode {
540
+ /** The schema name. */
541
+ readonly name: TableRefNode;
542
+ /** Whether to error if the schema already exists. */
543
+ readonly strict: boolean;
544
+
545
+ /**
546
+ * Instantiate a create schema query.
547
+ * @param name The schema name.
548
+ * @param options Create schema options.
549
+ */
550
+ constructor(
551
+ name: string | TableRefNode,
552
+ { strict = false }: CreateSchemaOptions = {}
553
+ ) {
554
+ super(CREATE_SCHEMA_QUERY);
555
+ this.name = asTableRef(name)!;
556
+ this.strict = strict;
557
+ }
558
+ }
559
+
480
560
  export class SetOperation extends Query {
481
561
  /** The set operation to perform. */
482
562
  readonly op: string;
package/src/constants.ts CHANGED
@@ -44,4 +44,6 @@ export const SAMPLE_CLAUSE = 'SAMPLE_CLAUSE';
44
44
  export const SELECT_QUERY = 'SELECT_QUERY';
45
45
  export const DESCRIBE_QUERY = 'DESCRIBE_QUERY';
46
46
  export const SET_OPERATION = 'SET_OPERATION';
47
+ export const CREATE_QUERY = 'CREATE_QUERY';
48
+ export const CREATE_SCHEMA_QUERY = 'CREATE_SCHEMA_QUERY';
47
49
  export const SCALAR_SUBQUERY = 'SCALAR_SUBQUERY';
package/src/index.ts CHANGED
@@ -21,7 +21,7 @@ export { LogicalOpNode, AndNode, OrNode } from './ast/logical-op.js';
21
21
  export { SQLNode, ExprNode, isNode } from './ast/node.js';
22
22
  export { OrderByNode } from './ast/order-by.js';
23
23
  export { ParamNode } from './ast/param.js';
24
- export { DescribeQuery, Query, SelectQuery, SetOperation, isDescribeQuery, isQuery, isSelectQuery } from './ast/query.js';
24
+ export { CreateQuery, type CreateTableOptions, CreateSchemaQuery, type CreateSchemaOptions, DescribeQuery, Query, SelectQuery, SetOperation, isCreateQuery, isCreateSchemaQuery, isDescribeQuery, isQuery, isSelectQuery } from './ast/query.js';
25
25
  export { SampleClauseNode } from './ast/sample.js';
26
26
  export { ScalarSubqueryNode } from './ast/subquery.js';
27
27
  export { SelectClauseNode } from './ast/select.js';
@@ -1,26 +1,10 @@
1
- export interface CreateTableOptions {
2
- replace?: boolean;
3
- temp?: boolean;
4
- view?: boolean;
5
- }
1
+ import { CreateQuery, type CreateTableOptions, CreateSchemaQuery, type CreateSchemaOptions, type Query } from "../ast/query.js";
2
+ import type { TableRefNode } from "../ast/table-ref.js";
6
3
 
7
- export function createTable(name: string, query: string, {
8
- replace = false,
9
- temp = false,
10
- view = false
11
- }: CreateTableOptions = {}) {
12
- return 'CREATE'
13
- + (replace ? ' OR REPLACE ' : ' ')
14
- + (temp ? 'TEMP ' : '')
15
- + (view ? 'VIEW' : 'TABLE')
16
- + (replace ? ' ' : ' IF NOT EXISTS ')
17
- + name + ' AS ' + query;
4
+ export function createTable(name: string | TableRefNode, query: string | Query, options: CreateTableOptions = {}) {
5
+ return new CreateQuery(name, query, options);
18
6
  }
19
7
 
20
- export function createSchema(name: string, {
21
- strict = false
22
- } = {}) {
23
- return 'CREATE SCHEMA '
24
- + (strict ? '' : 'IF NOT EXISTS ')
25
- + name;
8
+ export function createSchema(name: string | TableRefNode, options: CreateSchemaOptions = {}) {
9
+ return new CreateSchemaQuery(name, options);
26
10
  }
package/src/load/load.ts CHANGED
@@ -1,4 +1,5 @@
1
- import { createTable, CreateTableOptions } from './create.js';
1
+ import { type CreateTableOptions } from '../ast/query.js';
2
+ import { createTable } from './create.js';
2
3
  import { sqlFrom } from './sql-from.js';
3
4
 
4
5
  type Options =
@@ -11,6 +11,8 @@ import {
11
11
  CollateNode,
12
12
  ColumnParamNode,
13
13
  ColumnRefNode,
14
+ CreateQuery,
15
+ CreateSchemaQuery,
14
16
  FragmentNode,
15
17
  FromClauseNode,
16
18
  FunctionNode,
@@ -106,6 +108,23 @@ export class DuckDBCodeGenerator extends SQLCodeGenerator {
106
108
  return `${tref}${id}`;
107
109
  }
108
110
 
111
+ visitCreateQuery(node: CreateQuery): string {
112
+ const { name, query, replace, temp, view } = node;
113
+ return 'CREATE'
114
+ + (replace ? ' OR REPLACE ' : ' ')
115
+ + (temp ? 'TEMP ' : '')
116
+ + (view ? 'VIEW' : 'TABLE')
117
+ + (replace ? ' ' : ' IF NOT EXISTS ')
118
+ + this.toString(name) + ' AS ' + this.toString(query);
119
+ }
120
+
121
+ visitCreateSchemaQuery(node: CreateSchemaQuery): string {
122
+ const { name, strict } = node;
123
+ return 'CREATE SCHEMA '
124
+ + (strict ? '' : 'IF NOT EXISTS ')
125
+ + this.toString(name);
126
+ }
127
+
109
128
  visitDescribeQuery(node: DescribeQuery): string {
110
129
  const { query } = node;
111
130
  return `DESC ${this.toString(query)}`;
@@ -11,6 +11,8 @@ import type {
11
11
  CollateNode,
12
12
  ColumnParamNode,
13
13
  ColumnRefNode,
14
+ CreateQuery,
15
+ CreateSchemaQuery,
14
16
  FragmentNode,
15
17
  FromClauseNode,
16
18
  FunctionNode,
@@ -50,6 +52,8 @@ import {
50
52
  COLLATE,
51
53
  COLUMN_PARAM,
52
54
  COLUMN_REF,
55
+ CREATE_QUERY,
56
+ CREATE_SCHEMA_QUERY,
53
57
  DESCRIBE_QUERY,
54
58
  EXPRESSION,
55
59
  FRAGMENT,
@@ -123,6 +127,8 @@ export abstract class SQLCodeGenerator {
123
127
  case COLLATE: return this.visitCollate;
124
128
  case COLUMN_PARAM: return this.visitColumnParam;
125
129
  case COLUMN_REF: return this.visitColumnRef;
130
+ case CREATE_QUERY: return this.visitCreateQuery;
131
+ case CREATE_SCHEMA_QUERY: return this.visitCreateSchemaQuery;
126
132
  case DESCRIBE_QUERY: return this.visitDescribeQuery;
127
133
  case EXPRESSION: return this.visitExpression;
128
134
  case FRAGMENT: return this.visitFragment;
@@ -178,6 +184,8 @@ export abstract class SQLCodeGenerator {
178
184
  abstract visitCollate(node: CollateNode): string;
179
185
  abstract visitColumnParam(node: ColumnParamNode): string;
180
186
  abstract visitColumnRef(node: ColumnRefNode): string;
187
+ abstract visitCreateQuery(node: CreateQuery): string;
188
+ abstract visitCreateSchemaQuery(node: CreateSchemaQuery): string;
181
189
  abstract visitDescribeQuery(node: DescribeQuery): string;
182
190
  abstract visitExpression(node: ExprNode): string;
183
191
  abstract visitFragment(node: FragmentNode): string;
@@ -7,6 +7,8 @@ import {
7
7
  COLLATE,
8
8
  COLUMN_PARAM,
9
9
  COLUMN_REF,
10
+ CREATE_QUERY,
11
+ CREATE_SCHEMA_QUERY,
10
12
  DESCRIBE_QUERY,
11
13
  EXPRESSION,
12
14
  FRAGMENT,
@@ -44,6 +46,8 @@ export const recurse: Record<string, string[]> = {
44
46
  [COLLATE]: ['expr'],
45
47
  [COLUMN_PARAM]: ['param', 'table'],
46
48
  [COLUMN_REF]: ['table'],
49
+ [CREATE_QUERY]: ['name', 'query'],
50
+ [CREATE_SCHEMA_QUERY]: ['name'],
47
51
  [DESCRIBE_QUERY]: ['query'],
48
52
  [EXPRESSION]: ['node'],
49
53
  [FRAGMENT]: ['spans'],
@@ -1,50 +0,0 @@
1
- import { ToStringVisitor } from './to-string-visitor.js';
2
- import { ExprNode, AggregateNode, BetweenOpNode, NotBetweenOpNode, BinaryOpNode, CaseNode, WhenNode, CastNode, CollateNode, ColumnParamNode, ColumnRefNode, FragmentNode, FromClauseNode, FunctionNode, InOpNode, IntervalNode, JoinNode, ListNode, LiteralNode, LogicalOpNode, OrderByNode, ParamNode, DescribeQuery, SelectQuery, SetOperation, SampleClauseNode, SelectClauseNode, ScalarSubqueryNode, TableRefNode, UnaryOpNode, UnaryPostfixOpNode, UnnestNode, VerbatimNode, WindowNode, WindowClauseNode, WindowDefNode, WindowFunctionNode, WindowFrameNode, WindowFrameExprNode, WithClauseNode } from '../index.js';
3
- /**
4
- * DuckDB SQL dialect visitor for converting AST nodes to DuckDB-compatible SQL.
5
- */
6
- export declare class DuckDBVisitor extends ToStringVisitor {
7
- visitAggregate(node: AggregateNode): string;
8
- visitBetween(node: BetweenOpNode): string;
9
- visitBinary(node: BinaryOpNode): string;
10
- visitCase(node: CaseNode): string;
11
- visitCast(node: CastNode): string;
12
- visitCollate(node: CollateNode): string;
13
- visitColumnParam(node: ColumnParamNode): string;
14
- visitColumnRef(node: ColumnRefNode): string;
15
- visitDescribeQuery(node: DescribeQuery): string;
16
- visitExpression(node: ExprNode): string;
17
- visitFragment(node: FragmentNode): string;
18
- visitFromClause(node: FromClauseNode): string;
19
- visitFunction(node: FunctionNode): string;
20
- visitIn(node: InOpNode): string;
21
- visitInterval(node: IntervalNode): string;
22
- visitJoinClause(node: JoinNode): string;
23
- visitList(node: ListNode): string;
24
- visitLiteral(node: LiteralNode): string;
25
- visitLogicalOperator(node: LogicalOpNode<ExprNode>): string;
26
- visitNotBetween(node: NotBetweenOpNode): string;
27
- visitOrderBy(node: OrderByNode): string;
28
- visitParam(node: ParamNode): string;
29
- visitSampleClause(node: SampleClauseNode): string;
30
- visitScalarSubquery(node: ScalarSubqueryNode): string;
31
- visitSelectClause(node: SelectClauseNode): string;
32
- visitSelectQuery(node: SelectQuery): string;
33
- visitSetOperation(node: SetOperation): string;
34
- visitTableRef(node: TableRefNode): string;
35
- visitUnary(node: UnaryOpNode): string;
36
- visitUnaryPostfix(node: UnaryPostfixOpNode): string;
37
- visitUnnest(node: UnnestNode): string;
38
- visitVerbatim(node: VerbatimNode): string;
39
- visitWhen(node: WhenNode): string;
40
- visitWindow(node: WindowNode): string;
41
- visitWindowClause(node: WindowClauseNode): string;
42
- visitWindowDef(node: WindowDefNode): string;
43
- visitWindowExtentExpr(node: WindowFrameExprNode): string;
44
- visitWindowFrame(node: WindowFrameNode): string;
45
- private formatFrameValue;
46
- visitWindowFunction(node: WindowFunctionNode): string;
47
- visitWithClause(node: WithClauseNode): string;
48
- }
49
- export declare const duckdbVisitor: DuckDBVisitor;
50
- //# sourceMappingURL=duckdb-visitor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"duckdb-visitor.d.ts","sourceRoot":"","sources":["../../../src/visit/duckdb-visitor.ts"],"names":[],"mappings":"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"}