kysely 0.27.5 → 0.28.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.
- package/CODE_OF_CONDUCT.md +183 -0
- package/FUNDING.md +25 -0
- package/README.md +182 -3
- package/deno.check.d.ts +7 -0
- package/dist/cjs/dialect/mssql/mssql-dialect-config.d.ts +26 -16
- package/dist/cjs/dialect/mssql/mssql-driver.d.ts +6 -3
- package/dist/cjs/dialect/mssql/mssql-driver.js +33 -19
- package/dist/cjs/dialect/mssql/mssql-query-compiler.d.ts +2 -0
- package/dist/cjs/dialect/mssql/mssql-query-compiler.js +11 -0
- package/dist/cjs/dialect/mysql/mysql-driver.d.ts +4 -0
- package/dist/cjs/dialect/mysql/mysql-driver.js +27 -12
- package/dist/cjs/dialect/postgres/postgres-driver.d.ts +4 -0
- package/dist/cjs/dialect/postgres/postgres-driver.js +28 -18
- package/dist/cjs/dialect/postgres/postgres-introspector.js +7 -17
- package/dist/cjs/dialect/sqlite/sqlite-driver.d.ts +4 -0
- package/dist/cjs/dialect/sqlite/sqlite-driver.js +19 -13
- package/dist/cjs/dialect/sqlite/sqlite-introspector.js +66 -44
- package/dist/cjs/dialect/sqlite/sqlite-query-compiler.d.ts +2 -0
- package/dist/cjs/dialect/sqlite/sqlite-query-compiler.js +4 -0
- package/dist/cjs/driver/database-connection.d.ts +0 -4
- package/dist/cjs/driver/driver.d.ts +17 -0
- package/dist/cjs/driver/driver.js +13 -1
- package/dist/cjs/driver/dummy-driver.d.ts +3 -0
- package/dist/cjs/driver/dummy-driver.js +9 -0
- package/dist/cjs/driver/runtime-driver.d.ts +4 -0
- package/dist/cjs/driver/runtime-driver.js +43 -3
- package/dist/cjs/expression/expression-builder.d.ts +9 -10
- package/dist/cjs/helpers/postgres.d.ts +48 -0
- package/dist/cjs/helpers/postgres.js +50 -0
- package/dist/cjs/index.d.ts +13 -2
- package/dist/cjs/index.js +13 -2
- package/dist/cjs/kysely.d.ts +339 -2
- package/dist/cjs/kysely.js +465 -11
- package/dist/cjs/migration/migrator.d.ts +16 -1
- package/dist/cjs/migration/migrator.js +14 -4
- package/dist/cjs/operation-node/aggregate-function-node.d.ts +2 -1
- package/dist/cjs/operation-node/aggregate-function-node.js +4 -3
- package/dist/cjs/operation-node/alter-table-node.d.ts +3 -1
- package/dist/cjs/operation-node/collate-node.d.ts +13 -0
- package/dist/cjs/operation-node/collate-node.js +19 -0
- package/dist/cjs/operation-node/constraint-node.d.ts +1 -1
- package/dist/cjs/operation-node/create-type-node.d.ts +1 -1
- package/dist/cjs/operation-node/create-type-node.js +1 -1
- package/dist/cjs/operation-node/delete-query-node.d.ts +8 -2
- package/dist/cjs/operation-node/delete-query-node.js +11 -15
- package/dist/cjs/operation-node/foreign-key-constraint-node.d.ts +4 -0
- package/dist/cjs/operation-node/insert-query-node.d.ts +3 -0
- package/dist/cjs/operation-node/join-node.d.ts +1 -1
- package/dist/cjs/operation-node/merge-query-node.d.ts +2 -0
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +106 -97
- package/dist/cjs/operation-node/operation-node-transformer.js +352 -312
- package/dist/cjs/operation-node/operation-node-visitor.d.ts +9 -1
- package/dist/cjs/operation-node/operation-node-visitor.js +4 -0
- package/dist/cjs/operation-node/operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/or-action-node.d.ts +12 -0
- package/dist/cjs/operation-node/or-action-node.js +18 -0
- package/dist/cjs/operation-node/order-by-item-node.d.ts +5 -0
- package/dist/cjs/operation-node/order-by-item-node.js +6 -0
- package/dist/cjs/operation-node/primary-key-constraint-node.d.ts +29 -0
- package/dist/cjs/operation-node/{primary-constraint-node.js → primary-key-constraint-node.js} +11 -2
- package/dist/cjs/operation-node/query-node.d.ts +7 -0
- package/dist/cjs/operation-node/query-node.js +15 -0
- package/dist/cjs/operation-node/refresh-materialized-view-node.d.ts +17 -0
- package/dist/cjs/operation-node/refresh-materialized-view-node.js +25 -0
- package/dist/cjs/operation-node/rename-constraint-node.d.ts +14 -0
- package/dist/cjs/operation-node/rename-constraint-node.js +20 -0
- package/dist/cjs/operation-node/select-query-node.d.ts +8 -2
- package/dist/cjs/operation-node/select-query-node.js +11 -15
- package/dist/cjs/operation-node/unique-constraint-node.d.ts +2 -0
- package/dist/cjs/operation-node/update-query-node.d.ts +3 -4
- package/dist/cjs/operation-node/update-query-node.js +5 -2
- package/dist/cjs/parser/collate-parser.d.ts +1 -0
- package/dist/cjs/parser/collate-parser.js +2 -0
- package/dist/cjs/parser/delete-from-parser.d.ts +5 -0
- package/dist/cjs/parser/delete-from-parser.js +2 -0
- package/dist/cjs/parser/insert-values-parser.js +3 -1
- package/dist/cjs/parser/join-parser.d.ts +1 -1
- package/dist/cjs/parser/join-parser.js +7 -1
- package/dist/cjs/parser/merge-into-parser.d.ts +5 -0
- package/dist/cjs/parser/merge-into-parser.js +2 -0
- package/dist/cjs/parser/order-by-parser.d.ts +18 -5
- package/dist/cjs/parser/order-by-parser.js +24 -14
- package/dist/cjs/parser/savepoint-parser.d.ts +4 -0
- package/dist/cjs/parser/savepoint-parser.js +11 -0
- package/dist/cjs/parser/select-from-parser.d.ts +4 -0
- package/dist/cjs/parser/select-from-parser.js +2 -0
- package/dist/cjs/parser/table-parser.d.ts +2 -5
- package/dist/cjs/parser/update-parser.d.ts +5 -0
- package/dist/cjs/parser/update-parser.js +2 -0
- package/dist/cjs/parser/update-set-parser.d.ts +7 -4
- package/dist/cjs/plugin/camel-case/camel-case-plugin.js +1 -1
- package/dist/cjs/plugin/camel-case/camel-case-transformer.d.ts +2 -1
- package/dist/cjs/plugin/camel-case/camel-case-transformer.js +2 -2
- package/dist/cjs/plugin/camel-case/camel-case.js +4 -1
- package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
- package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-transformer.d.ts +4 -3
- package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-transformer.js +6 -6
- package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists-plugin.d.ts +211 -0
- package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists-plugin.js +162 -0
- package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists-transformer.d.ts +8 -0
- package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists-transformer.js +29 -0
- package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists.d.ts +44 -0
- package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists.js +66 -0
- package/dist/cjs/plugin/immediate-value/immediate-value-plugin.js +1 -1
- package/dist/cjs/plugin/immediate-value/immediate-value-transformer.d.ts +2 -0
- package/dist/cjs/plugin/immediate-value/immediate-value-transformer.js +6 -4
- package/dist/cjs/plugin/with-schema/with-schema-plugin.js +1 -1
- package/dist/cjs/plugin/with-schema/with-schema-transformer.d.ts +8 -3
- package/dist/cjs/plugin/with-schema/with-schema-transformer.js +45 -14
- package/dist/cjs/query-builder/aggregate-function-builder.d.ts +83 -5
- package/dist/cjs/query-builder/aggregate-function-builder.js +15 -27
- package/dist/cjs/query-builder/cte-builder.js +0 -2
- package/dist/cjs/query-builder/delete-query-builder.d.ts +36 -47
- package/dist/cjs/query-builder/delete-query-builder.js +12 -78
- package/dist/cjs/query-builder/function-module.d.ts +31 -4
- package/dist/cjs/query-builder/insert-query-builder.d.ts +161 -6
- package/dist/cjs/query-builder/insert-query-builder.js +197 -10
- package/dist/cjs/query-builder/join-builder.js +0 -2
- package/dist/cjs/query-builder/merge-query-builder.d.ts +145 -3
- package/dist/cjs/query-builder/merge-query-builder.js +28 -7
- package/dist/cjs/query-builder/on-conflict-builder.js +0 -4
- package/dist/cjs/query-builder/order-by-interface.d.ts +176 -0
- package/dist/cjs/query-builder/order-by-interface.js +2 -0
- package/dist/cjs/query-builder/order-by-item-builder.d.ts +43 -0
- package/dist/cjs/query-builder/order-by-item-builder.js +75 -0
- package/dist/cjs/query-builder/over-builder.d.ts +43 -6
- package/dist/cjs/query-builder/over-builder.js +8 -25
- package/dist/cjs/query-builder/returning-interface.d.ts +20 -3
- package/dist/cjs/query-builder/select-query-builder.d.ts +279 -98
- package/dist/cjs/query-builder/select-query-builder.js +26 -26
- package/dist/cjs/query-builder/update-query-builder.d.ts +88 -9
- package/dist/cjs/query-builder/update-query-builder.js +17 -15
- package/dist/cjs/query-compiler/compiled-query.d.ts +2 -0
- package/dist/cjs/query-compiler/compiled-query.js +2 -0
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +17 -2
- package/dist/cjs/query-compiler/default-query-compiler.js +97 -2
- package/dist/cjs/query-compiler/query-compiler.d.ts +4 -2
- package/dist/cjs/query-creator.d.ts +23 -25
- package/dist/cjs/query-creator.js +280 -8
- package/dist/cjs/query-executor/default-query-executor.d.ts +2 -1
- package/dist/cjs/query-executor/default-query-executor.js +2 -2
- package/dist/cjs/query-executor/query-executor-base.js +7 -25
- package/dist/cjs/raw-builder/raw-builder.js +0 -3
- package/dist/cjs/raw-builder/sql.d.ts +4 -4
- package/dist/cjs/raw-builder/sql.js +1 -1
- package/dist/cjs/schema/alter-column-builder.js +0 -3
- package/dist/cjs/schema/alter-table-add-foreign-key-constraint-builder.d.ts +4 -0
- package/dist/cjs/schema/alter-table-add-foreign-key-constraint-builder.js +24 -2
- package/dist/cjs/schema/alter-table-add-index-builder.js +0 -2
- package/dist/cjs/schema/alter-table-builder.d.ts +7 -3
- package/dist/cjs/schema/alter-table-builder.js +21 -10
- package/dist/cjs/schema/alter-table-drop-constraint-builder.js +0 -2
- package/dist/cjs/schema/alter-table-executor.js +0 -2
- package/dist/cjs/schema/check-constraint-builder.d.ts +13 -0
- package/dist/cjs/schema/check-constraint-builder.js +20 -0
- package/dist/cjs/schema/column-definition-builder.js +0 -2
- package/dist/cjs/schema/create-index-builder.js +1 -3
- package/dist/cjs/schema/create-schema-builder.js +0 -2
- package/dist/cjs/schema/create-table-builder.d.ts +5 -4
- package/dist/cjs/schema/create-table-builder.js +9 -7
- package/dist/cjs/schema/create-type-builder.d.ts +1 -1
- package/dist/cjs/schema/create-type-builder.js +0 -2
- package/dist/cjs/schema/create-view-builder.js +0 -2
- package/dist/cjs/schema/drop-index-builder.js +0 -2
- package/dist/cjs/schema/drop-schema-builder.js +0 -2
- package/dist/cjs/schema/drop-table-builder.js +0 -2
- package/dist/cjs/schema/drop-type-builder.js +0 -2
- package/dist/cjs/schema/drop-view-builder.js +0 -2
- package/dist/cjs/schema/foreign-key-constraint-builder.d.ts +9 -0
- package/dist/cjs/schema/foreign-key-constraint-builder.js +16 -2
- package/dist/cjs/schema/primary-key-constraint-builder.d.ts +17 -0
- package/dist/cjs/schema/primary-key-constraint-builder.js +37 -0
- package/dist/cjs/schema/refresh-materialized-view-builder.d.ts +47 -0
- package/dist/cjs/schema/refresh-materialized-view-builder.js +75 -0
- package/dist/cjs/schema/schema.d.ts +14 -0
- package/dist/cjs/schema/schema.js +21 -0
- package/dist/cjs/schema/unique-constraint-builder.d.ts +10 -1
- package/dist/cjs/schema/unique-constraint-builder.js +26 -5
- package/dist/cjs/util/infer-result.d.ts +1 -1
- package/dist/cjs/util/log.d.ts +1 -0
- package/dist/cjs/util/log.js +3 -2
- package/dist/cjs/util/provide-controlled-connection.d.ts +7 -0
- package/dist/cjs/util/provide-controlled-connection.js +24 -0
- package/dist/esm/dialect/mssql/mssql-dialect-config.d.ts +26 -16
- package/dist/esm/dialect/mssql/mssql-driver.d.ts +6 -3
- package/dist/esm/dialect/mssql/mssql-driver.js +33 -19
- package/dist/esm/dialect/mssql/mssql-query-compiler.d.ts +2 -0
- package/dist/esm/dialect/mssql/mssql-query-compiler.js +11 -0
- package/dist/esm/dialect/mysql/mysql-driver.d.ts +4 -0
- package/dist/esm/dialect/mysql/mysql-driver.js +27 -12
- package/dist/esm/dialect/postgres/postgres-driver.d.ts +4 -0
- package/dist/esm/dialect/postgres/postgres-driver.js +28 -18
- package/dist/esm/dialect/postgres/postgres-introspector.js +7 -17
- package/dist/esm/dialect/sqlite/sqlite-driver.d.ts +4 -0
- package/dist/esm/dialect/sqlite/sqlite-driver.js +19 -13
- package/dist/esm/dialect/sqlite/sqlite-introspector.js +66 -44
- package/dist/esm/dialect/sqlite/sqlite-query-compiler.d.ts +2 -0
- package/dist/esm/dialect/sqlite/sqlite-query-compiler.js +4 -0
- package/dist/esm/driver/database-connection.d.ts +0 -4
- package/dist/esm/driver/driver.d.ts +17 -0
- package/dist/esm/driver/driver.js +11 -0
- package/dist/esm/driver/dummy-driver.d.ts +3 -0
- package/dist/esm/driver/dummy-driver.js +9 -0
- package/dist/esm/driver/runtime-driver.d.ts +4 -0
- package/dist/esm/driver/runtime-driver.js +43 -3
- package/dist/esm/expression/expression-builder.d.ts +9 -10
- package/dist/esm/helpers/postgres.d.ts +48 -0
- package/dist/esm/helpers/postgres.js +49 -0
- package/dist/esm/index.d.ts +13 -2
- package/dist/esm/index.js +11 -1
- package/dist/esm/kysely.d.ts +339 -2
- package/dist/esm/kysely.js +461 -10
- package/dist/esm/migration/migrator.d.ts +16 -1
- package/dist/esm/migration/migrator.js +14 -4
- package/dist/esm/operation-node/aggregate-function-node.d.ts +2 -1
- package/dist/esm/operation-node/aggregate-function-node.js +4 -3
- package/dist/esm/operation-node/alter-table-node.d.ts +3 -1
- package/dist/esm/operation-node/collate-node.d.ts +13 -0
- package/dist/esm/operation-node/collate-node.js +17 -0
- package/dist/esm/operation-node/constraint-node.d.ts +1 -1
- package/dist/esm/operation-node/create-type-node.d.ts +1 -1
- package/dist/esm/operation-node/create-type-node.js +1 -1
- package/dist/esm/operation-node/delete-query-node.d.ts +8 -2
- package/dist/esm/operation-node/delete-query-node.js +11 -15
- package/dist/esm/operation-node/foreign-key-constraint-node.d.ts +4 -0
- package/dist/esm/operation-node/insert-query-node.d.ts +3 -0
- package/dist/esm/operation-node/join-node.d.ts +1 -1
- package/dist/esm/operation-node/merge-query-node.d.ts +2 -0
- package/dist/esm/operation-node/operation-node-transformer.d.ts +106 -97
- package/dist/esm/operation-node/operation-node-transformer.js +352 -312
- package/dist/esm/operation-node/operation-node-visitor.d.ts +9 -1
- package/dist/esm/operation-node/operation-node-visitor.js +4 -0
- package/dist/esm/operation-node/operation-node.d.ts +1 -1
- package/dist/esm/operation-node/or-action-node.d.ts +12 -0
- package/dist/esm/operation-node/or-action-node.js +16 -0
- package/dist/esm/operation-node/order-by-item-node.d.ts +5 -0
- package/dist/esm/operation-node/order-by-item-node.js +6 -0
- package/dist/esm/operation-node/primary-key-constraint-node.d.ts +29 -0
- package/dist/esm/operation-node/{primary-constraint-node.js → primary-key-constraint-node.js} +11 -2
- package/dist/esm/operation-node/query-node.d.ts +7 -0
- package/dist/esm/operation-node/query-node.js +15 -0
- package/dist/esm/operation-node/refresh-materialized-view-node.d.ts +17 -0
- package/dist/esm/operation-node/refresh-materialized-view-node.js +23 -0
- package/dist/esm/operation-node/rename-constraint-node.d.ts +14 -0
- package/dist/esm/operation-node/rename-constraint-node.js +18 -0
- package/dist/esm/operation-node/select-query-node.d.ts +8 -2
- package/dist/esm/operation-node/select-query-node.js +11 -15
- package/dist/esm/operation-node/unique-constraint-node.d.ts +2 -0
- package/dist/esm/operation-node/update-query-node.d.ts +3 -4
- package/dist/esm/operation-node/update-query-node.js +5 -2
- package/dist/esm/parser/collate-parser.d.ts +1 -0
- package/dist/esm/parser/collate-parser.js +2 -0
- package/dist/esm/parser/delete-from-parser.d.ts +5 -0
- package/dist/esm/parser/delete-from-parser.js +2 -0
- package/dist/esm/parser/insert-values-parser.js +3 -1
- package/dist/esm/parser/join-parser.d.ts +1 -1
- package/dist/esm/parser/join-parser.js +7 -1
- package/dist/esm/parser/merge-into-parser.d.ts +5 -0
- package/dist/esm/parser/merge-into-parser.js +2 -0
- package/dist/esm/parser/order-by-parser.d.ts +18 -5
- package/dist/esm/parser/order-by-parser.js +27 -17
- package/dist/esm/parser/savepoint-parser.d.ts +4 -0
- package/dist/esm/parser/savepoint-parser.js +9 -0
- package/dist/esm/parser/select-from-parser.d.ts +4 -0
- package/dist/esm/parser/select-from-parser.js +2 -0
- package/dist/esm/parser/table-parser.d.ts +2 -5
- package/dist/esm/parser/update-parser.d.ts +5 -0
- package/dist/esm/parser/update-parser.js +2 -0
- package/dist/esm/parser/update-set-parser.d.ts +7 -4
- package/dist/esm/plugin/camel-case/camel-case-plugin.js +1 -1
- package/dist/esm/plugin/camel-case/camel-case-transformer.d.ts +2 -1
- package/dist/esm/plugin/camel-case/camel-case-transformer.js +2 -2
- package/dist/esm/plugin/camel-case/camel-case.js +4 -1
- package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
- package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-transformer.d.ts +4 -3
- package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-transformer.js +6 -6
- package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists-plugin.d.ts +211 -0
- package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists-plugin.js +159 -0
- package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists-transformer.d.ts +8 -0
- package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists-transformer.js +26 -0
- package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists.d.ts +44 -0
- package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists.js +63 -0
- package/dist/esm/plugin/immediate-value/immediate-value-plugin.js +1 -1
- package/dist/esm/plugin/immediate-value/immediate-value-transformer.d.ts +2 -0
- package/dist/esm/plugin/immediate-value/immediate-value-transformer.js +6 -4
- package/dist/esm/plugin/with-schema/with-schema-plugin.js +1 -1
- package/dist/esm/plugin/with-schema/with-schema-transformer.d.ts +8 -3
- package/dist/esm/plugin/with-schema/with-schema-transformer.js +45 -14
- package/dist/esm/query-builder/aggregate-function-builder.d.ts +83 -5
- package/dist/esm/query-builder/aggregate-function-builder.js +15 -27
- package/dist/esm/query-builder/cte-builder.js +0 -2
- package/dist/esm/query-builder/delete-query-builder.d.ts +36 -47
- package/dist/esm/query-builder/delete-query-builder.js +12 -78
- package/dist/esm/query-builder/function-module.d.ts +31 -4
- package/dist/esm/query-builder/insert-query-builder.d.ts +161 -6
- package/dist/esm/query-builder/insert-query-builder.js +197 -10
- package/dist/esm/query-builder/join-builder.js +0 -2
- package/dist/esm/query-builder/merge-query-builder.d.ts +145 -3
- package/dist/esm/query-builder/merge-query-builder.js +29 -8
- package/dist/esm/query-builder/on-conflict-builder.js +0 -4
- package/dist/esm/query-builder/order-by-interface.d.ts +176 -0
- package/dist/esm/query-builder/order-by-interface.js +2 -0
- package/dist/esm/query-builder/order-by-item-builder.d.ts +43 -0
- package/dist/esm/query-builder/order-by-item-builder.js +72 -0
- package/dist/esm/query-builder/over-builder.d.ts +43 -6
- package/dist/esm/query-builder/over-builder.js +8 -25
- package/dist/esm/query-builder/returning-interface.d.ts +20 -3
- package/dist/esm/query-builder/select-query-builder.d.ts +279 -98
- package/dist/esm/query-builder/select-query-builder.js +26 -26
- package/dist/esm/query-builder/update-query-builder.d.ts +88 -9
- package/dist/esm/query-builder/update-query-builder.js +17 -15
- package/dist/esm/query-compiler/compiled-query.d.ts +2 -0
- package/dist/esm/query-compiler/compiled-query.js +2 -0
- package/dist/esm/query-compiler/default-query-compiler.d.ts +17 -2
- package/dist/esm/query-compiler/default-query-compiler.js +97 -2
- package/dist/esm/query-compiler/query-compiler.d.ts +4 -2
- package/dist/esm/query-creator.d.ts +23 -25
- package/dist/esm/query-creator.js +281 -9
- package/dist/esm/query-executor/default-query-executor.d.ts +2 -1
- package/dist/esm/query-executor/default-query-executor.js +2 -2
- package/dist/esm/query-executor/query-executor-base.js +7 -25
- package/dist/esm/raw-builder/raw-builder.js +0 -3
- package/dist/esm/raw-builder/sql.d.ts +4 -4
- package/dist/esm/raw-builder/sql.js +1 -1
- package/dist/esm/schema/alter-column-builder.js +0 -3
- package/dist/esm/schema/alter-table-add-foreign-key-constraint-builder.d.ts +4 -0
- package/dist/esm/schema/alter-table-add-foreign-key-constraint-builder.js +24 -2
- package/dist/esm/schema/alter-table-add-index-builder.js +0 -2
- package/dist/esm/schema/alter-table-builder.d.ts +7 -3
- package/dist/esm/schema/alter-table-builder.js +22 -11
- package/dist/esm/schema/alter-table-drop-constraint-builder.js +0 -2
- package/dist/esm/schema/alter-table-executor.js +0 -2
- package/dist/esm/schema/check-constraint-builder.d.ts +13 -0
- package/dist/esm/schema/check-constraint-builder.js +17 -0
- package/dist/esm/schema/column-definition-builder.js +0 -2
- package/dist/esm/schema/create-index-builder.js +1 -3
- package/dist/esm/schema/create-schema-builder.js +0 -2
- package/dist/esm/schema/create-table-builder.d.ts +5 -4
- package/dist/esm/schema/create-table-builder.js +10 -8
- package/dist/esm/schema/create-type-builder.d.ts +1 -1
- package/dist/esm/schema/create-type-builder.js +0 -2
- package/dist/esm/schema/create-view-builder.js +0 -2
- package/dist/esm/schema/drop-index-builder.js +0 -2
- package/dist/esm/schema/drop-schema-builder.js +0 -2
- package/dist/esm/schema/drop-table-builder.js +0 -2
- package/dist/esm/schema/drop-type-builder.js +0 -2
- package/dist/esm/schema/drop-view-builder.js +0 -2
- package/dist/esm/schema/foreign-key-constraint-builder.d.ts +9 -0
- package/dist/esm/schema/foreign-key-constraint-builder.js +16 -2
- package/dist/esm/schema/primary-key-constraint-builder.d.ts +17 -0
- package/dist/esm/schema/primary-key-constraint-builder.js +34 -0
- package/dist/esm/schema/refresh-materialized-view-builder.d.ts +47 -0
- package/dist/esm/schema/refresh-materialized-view-builder.js +72 -0
- package/dist/esm/schema/schema.d.ts +14 -0
- package/dist/esm/schema/schema.js +21 -0
- package/dist/esm/schema/unique-constraint-builder.d.ts +10 -1
- package/dist/esm/schema/unique-constraint-builder.js +26 -5
- package/dist/esm/util/infer-result.d.ts +1 -1
- package/dist/esm/util/log.d.ts +1 -0
- package/dist/esm/util/log.js +3 -2
- package/dist/esm/util/provide-controlled-connection.d.ts +7 -0
- package/dist/esm/util/provide-controlled-connection.js +22 -0
- package/outdated-typescript.d.ts +5 -0
- package/package.json +16 -2
- package/CONTRIBUTING.md +0 -70
- package/dist/cjs/operation-node/primary-constraint-node.d.ts +0 -15
- package/dist/cjs/util/prevent-await.d.ts +0 -1
- package/dist/cjs/util/prevent-await.js +0 -13
- package/dist/esm/operation-node/primary-constraint-node.d.ts +0 -15
- package/dist/esm/util/prevent-await.d.ts +0 -1
- package/dist/esm/util/prevent-await.js +0 -11
|
@@ -37,7 +37,7 @@ import { OnConflictNode } from './on-conflict-node.js';
|
|
|
37
37
|
import { CreateIndexNode } from './create-index-node.js';
|
|
38
38
|
import { ListNode } from './list-node.js';
|
|
39
39
|
import { DropIndexNode } from './drop-index-node.js';
|
|
40
|
-
import { PrimaryKeyConstraintNode } from './primary-constraint-node.js';
|
|
40
|
+
import { PrimaryKeyConstraintNode } from './primary-key-constraint-node.js';
|
|
41
41
|
import { UniqueConstraintNode } from './unique-constraint-node.js';
|
|
42
42
|
import { ReferencesNode } from './references-node.js';
|
|
43
43
|
import { CheckConstraintNode } from './check-constraint-node.js';
|
|
@@ -92,6 +92,10 @@ import { CastNode } from './cast-node.js';
|
|
|
92
92
|
import { FetchNode } from './fetch-node.js';
|
|
93
93
|
import { TopNode } from './top-node.js';
|
|
94
94
|
import { OutputNode } from './output-node.js';
|
|
95
|
+
import { RefreshMaterializedViewNode } from './refresh-materialized-view-node.js';
|
|
96
|
+
import { OrActionNode } from './or-action-node.js';
|
|
97
|
+
import { CollateNode } from './collate-node.js';
|
|
98
|
+
import { RenameConstraintNode } from './rename-constraint-node.js';
|
|
95
99
|
export declare abstract class OperationNodeVisitor {
|
|
96
100
|
#private;
|
|
97
101
|
protected readonly nodeStack: OperationNode[];
|
|
@@ -148,6 +152,7 @@ export declare abstract class OperationNodeVisitor {
|
|
|
148
152
|
protected abstract visitModifyColumn(node: ModifyColumnNode): void;
|
|
149
153
|
protected abstract visitAddConstraint(node: AddConstraintNode): void;
|
|
150
154
|
protected abstract visitDropConstraint(node: DropConstraintNode): void;
|
|
155
|
+
protected abstract visitRenameConstraint(node: RenameConstraintNode): void;
|
|
151
156
|
protected abstract visitForeignKeyConstraint(node: ForeignKeyConstraintNode): void;
|
|
152
157
|
protected abstract visitDataType(node: DataTypeNode): void;
|
|
153
158
|
protected abstract visitSelectAll(node: SelectAllNode): void;
|
|
@@ -157,6 +162,7 @@ export declare abstract class OperationNodeVisitor {
|
|
|
157
162
|
protected abstract visitPrimitiveValueList(node: PrimitiveValueListNode): void;
|
|
158
163
|
protected abstract visitOperator(node: OperatorNode): void;
|
|
159
164
|
protected abstract visitCreateView(node: CreateViewNode): void;
|
|
165
|
+
protected abstract visitRefreshMaterializedView(node: RefreshMaterializedViewNode): void;
|
|
160
166
|
protected abstract visitDropView(node: DropViewNode): void;
|
|
161
167
|
protected abstract visitGenerated(node: GeneratedNode): void;
|
|
162
168
|
protected abstract visitDefaultValue(node: DefaultValueNode): void;
|
|
@@ -190,4 +196,6 @@ export declare abstract class OperationNodeVisitor {
|
|
|
190
196
|
protected abstract visitFetch(node: FetchNode): void;
|
|
191
197
|
protected abstract visitTop(node: TopNode): void;
|
|
192
198
|
protected abstract visitOutput(node: OutputNode): void;
|
|
199
|
+
protected abstract visitOrAction(node: OrActionNode): void;
|
|
200
|
+
protected abstract visitCollate(node: CollateNode): void;
|
|
193
201
|
}
|
|
@@ -64,8 +64,10 @@ export class OperationNodeVisitor {
|
|
|
64
64
|
ModifyColumnNode: this.visitModifyColumn.bind(this),
|
|
65
65
|
AddConstraintNode: this.visitAddConstraint.bind(this),
|
|
66
66
|
DropConstraintNode: this.visitDropConstraint.bind(this),
|
|
67
|
+
RenameConstraintNode: this.visitRenameConstraint.bind(this),
|
|
67
68
|
ForeignKeyConstraintNode: this.visitForeignKeyConstraint.bind(this),
|
|
68
69
|
CreateViewNode: this.visitCreateView.bind(this),
|
|
70
|
+
RefreshMaterializedViewNode: this.visitRefreshMaterializedView.bind(this),
|
|
69
71
|
DropViewNode: this.visitDropView.bind(this),
|
|
70
72
|
GeneratedNode: this.visitGenerated.bind(this),
|
|
71
73
|
DefaultValueNode: this.visitDefaultValue.bind(this),
|
|
@@ -99,6 +101,8 @@ export class OperationNodeVisitor {
|
|
|
99
101
|
FetchNode: this.visitFetch.bind(this),
|
|
100
102
|
TopNode: this.visitTop.bind(this),
|
|
101
103
|
OutputNode: this.visitOutput.bind(this),
|
|
104
|
+
OrActionNode: this.visitOrAction.bind(this),
|
|
105
|
+
CollateNode: this.visitCollate.bind(this),
|
|
102
106
|
});
|
|
103
107
|
visitNode = (node) => {
|
|
104
108
|
this.nodeStack.push(node);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type OperationNodeKind = 'IdentifierNode' | 'SchemableIdentifierNode' | 'RawNode' | 'SelectQueryNode' | 'SelectionNode' | 'ReferenceNode' | 'ColumnNode' | 'TableNode' | 'AliasNode' | 'FromNode' | 'SelectAllNode' | 'AndNode' | 'OrNode' | 'ParensNode' | 'ValueNode' | 'ValueListNode' | 'PrimitiveValueListNode' | 'JoinNode' | 'OperatorNode' | 'WhereNode' | 'InsertQueryNode' | 'DeleteQueryNode' | 'ReturningNode' | 'CreateTableNode' | 'ColumnDefinitionNode' | 'AddColumnNode' | 'DropTableNode' | 'DataTypeNode' | 'OrderByNode' | 'OrderByItemNode' | 'GroupByNode' | 'GroupByItemNode' | 'UpdateQueryNode' | 'ColumnUpdateNode' | 'LimitNode' | 'OffsetNode' | 'OnConflictNode' | 'OnDuplicateKeyNode' | 'CreateIndexNode' | 'DropIndexNode' | 'ListNode' | 'ReferencesNode' | 'PrimaryKeyConstraintNode' | 'UniqueConstraintNode' | 'CheckConstraintNode' | 'ForeignKeyConstraintNode' | 'WithNode' | 'CommonTableExpressionNode' | 'HavingNode' | 'CreateSchemaNode' | 'DropSchemaNode' | 'AlterTableNode' | 'ModifyColumnNode' | 'DropColumnNode' | 'RenameColumnNode' | 'AlterColumnNode' | 'AddConstraintNode' | 'DropConstraintNode' | 'CreateViewNode' | 'DropViewNode' | 'GeneratedNode' | 'DefaultValueNode' | 'OnNode' | 'ValuesNode' | 'CommonTableExpressionNameNode' | 'SelectModifierNode' | 'CreateTypeNode' | 'DropTypeNode' | 'ExplainNode' | 'DefaultInsertValueNode' | 'AggregateFunctionNode' | 'OverNode' | 'PartitionByNode' | 'PartitionByItemNode' | 'SetOperationNode' | 'BinaryOperationNode' | 'UnaryOperationNode' | 'UsingNode' | 'FunctionNode' | 'CaseNode' | 'WhenNode' | 'JSONReferenceNode' | 'JSONPathNode' | 'JSONPathLegNode' | 'JSONOperatorChainNode' | 'TupleNode' | 'MergeQueryNode' | 'MatchedNode' | 'AddIndexNode' | 'CastNode' | 'FetchNode' | 'TopNode' | 'OutputNode';
|
|
1
|
+
export type OperationNodeKind = 'IdentifierNode' | 'SchemableIdentifierNode' | 'RawNode' | 'SelectQueryNode' | 'SelectionNode' | 'ReferenceNode' | 'ColumnNode' | 'TableNode' | 'AliasNode' | 'FromNode' | 'SelectAllNode' | 'AndNode' | 'OrNode' | 'ParensNode' | 'ValueNode' | 'ValueListNode' | 'PrimitiveValueListNode' | 'JoinNode' | 'OperatorNode' | 'WhereNode' | 'InsertQueryNode' | 'DeleteQueryNode' | 'ReturningNode' | 'CreateTableNode' | 'ColumnDefinitionNode' | 'AddColumnNode' | 'DropTableNode' | 'DataTypeNode' | 'OrderByNode' | 'OrderByItemNode' | 'GroupByNode' | 'GroupByItemNode' | 'UpdateQueryNode' | 'ColumnUpdateNode' | 'LimitNode' | 'OffsetNode' | 'OnConflictNode' | 'OnDuplicateKeyNode' | 'CreateIndexNode' | 'DropIndexNode' | 'ListNode' | 'ReferencesNode' | 'PrimaryKeyConstraintNode' | 'UniqueConstraintNode' | 'CheckConstraintNode' | 'ForeignKeyConstraintNode' | 'WithNode' | 'CommonTableExpressionNode' | 'HavingNode' | 'CreateSchemaNode' | 'DropSchemaNode' | 'AlterTableNode' | 'ModifyColumnNode' | 'DropColumnNode' | 'RenameColumnNode' | 'AlterColumnNode' | 'AddConstraintNode' | 'DropConstraintNode' | 'CreateViewNode' | 'RefreshMaterializedViewNode' | 'DropViewNode' | 'GeneratedNode' | 'DefaultValueNode' | 'OnNode' | 'ValuesNode' | 'CommonTableExpressionNameNode' | 'SelectModifierNode' | 'CreateTypeNode' | 'DropTypeNode' | 'ExplainNode' | 'DefaultInsertValueNode' | 'AggregateFunctionNode' | 'OverNode' | 'PartitionByNode' | 'PartitionByItemNode' | 'SetOperationNode' | 'BinaryOperationNode' | 'UnaryOperationNode' | 'UsingNode' | 'FunctionNode' | 'CaseNode' | 'WhenNode' | 'JSONReferenceNode' | 'JSONPathNode' | 'JSONPathLegNode' | 'JSONOperatorChainNode' | 'TupleNode' | 'MergeQueryNode' | 'MatchedNode' | 'AddIndexNode' | 'CastNode' | 'FetchNode' | 'TopNode' | 'OutputNode' | 'OrActionNode' | 'CollateNode' | 'RenameConstraintNode';
|
|
2
2
|
export interface OperationNode {
|
|
3
3
|
readonly kind: OperationNodeKind;
|
|
4
4
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { OperationNode } from './operation-node.js';
|
|
2
|
+
export interface OrActionNode extends OperationNode {
|
|
3
|
+
readonly kind: 'OrActionNode';
|
|
4
|
+
readonly action: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
export declare const OrActionNode: Readonly<{
|
|
10
|
+
is(node: OperationNode): node is OrActionNode;
|
|
11
|
+
create(action: string): OrActionNode;
|
|
12
|
+
}>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/// <reference types="./or-action-node.d.ts" />
|
|
2
|
+
import { freeze } from '../util/object-utils.js';
|
|
3
|
+
/**
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export const OrActionNode = freeze({
|
|
7
|
+
is(node) {
|
|
8
|
+
return node.kind === 'OrActionNode';
|
|
9
|
+
},
|
|
10
|
+
create(action) {
|
|
11
|
+
return freeze({
|
|
12
|
+
kind: 'OrActionNode',
|
|
13
|
+
action,
|
|
14
|
+
});
|
|
15
|
+
},
|
|
16
|
+
});
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
import { CollateNode } from './collate-node.js';
|
|
1
2
|
import { OperationNode } from './operation-node.js';
|
|
3
|
+
export type OrderByItemNodeProps = Omit<OrderByItemNode, 'kind' | 'orderBy'>;
|
|
2
4
|
export interface OrderByItemNode extends OperationNode {
|
|
3
5
|
readonly kind: 'OrderByItemNode';
|
|
4
6
|
readonly orderBy: OperationNode;
|
|
5
7
|
readonly direction?: OperationNode;
|
|
8
|
+
readonly nulls?: 'first' | 'last';
|
|
9
|
+
readonly collation?: CollateNode;
|
|
6
10
|
}
|
|
7
11
|
/**
|
|
8
12
|
* @internal
|
|
@@ -10,4 +14,5 @@ export interface OrderByItemNode extends OperationNode {
|
|
|
10
14
|
export declare const OrderByItemNode: Readonly<{
|
|
11
15
|
is(node: OperationNode): node is OrderByItemNode;
|
|
12
16
|
create(orderBy: OperationNode, direction?: OperationNode): OrderByItemNode;
|
|
17
|
+
cloneWith(node: OrderByItemNode, props: OrderByItemNodeProps): OrderByItemNode;
|
|
13
18
|
}>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ColumnNode } from './column-node.js';
|
|
2
|
+
import { IdentifierNode } from './identifier-node.js';
|
|
3
|
+
import { OperationNode } from './operation-node.js';
|
|
4
|
+
export interface PrimaryKeyConstraintNode extends OperationNode {
|
|
5
|
+
readonly kind: 'PrimaryKeyConstraintNode';
|
|
6
|
+
readonly columns: ReadonlyArray<ColumnNode>;
|
|
7
|
+
readonly name?: IdentifierNode;
|
|
8
|
+
readonly deferrable?: boolean;
|
|
9
|
+
readonly initiallyDeferred?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export type PrimaryKeyConstraintNodeProps = Omit<Partial<PrimaryKeyConstraintNode>, 'kind'>;
|
|
12
|
+
/**
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
export declare const PrimaryKeyConstraintNode: Readonly<{
|
|
16
|
+
is(node: OperationNode): node is PrimaryKeyConstraintNode;
|
|
17
|
+
create(columns: string[], constraintName?: string): PrimaryKeyConstraintNode;
|
|
18
|
+
cloneWith(node: PrimaryKeyConstraintNode, props: PrimaryKeyConstraintNodeProps): PrimaryKeyConstraintNode;
|
|
19
|
+
}>;
|
|
20
|
+
/**
|
|
21
|
+
* Backwards compatibility for a typo in the codebase.
|
|
22
|
+
*
|
|
23
|
+
* @deprecated Use {@link PrimaryKeyConstraintNode} instead.
|
|
24
|
+
*/
|
|
25
|
+
export declare const PrimaryConstraintNode: Readonly<{
|
|
26
|
+
is(node: OperationNode): node is PrimaryKeyConstraintNode;
|
|
27
|
+
create(columns: string[], constraintName?: string): PrimaryKeyConstraintNode;
|
|
28
|
+
cloneWith(node: PrimaryKeyConstraintNode, props: PrimaryKeyConstraintNodeProps): PrimaryKeyConstraintNode;
|
|
29
|
+
}>;
|
package/dist/esm/operation-node/{primary-constraint-node.js → primary-key-constraint-node.js}
RENAMED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
/// <reference types="./primary-constraint-node.d.ts" />
|
|
1
|
+
/// <reference types="./primary-key-constraint-node.d.ts" />
|
|
2
2
|
import { freeze } from '../util/object-utils.js';
|
|
3
3
|
import { ColumnNode } from './column-node.js';
|
|
4
4
|
import { IdentifierNode } from './identifier-node.js';
|
|
5
5
|
/**
|
|
6
6
|
* @internal
|
|
7
7
|
*/
|
|
8
|
-
export const
|
|
8
|
+
export const PrimaryKeyConstraintNode = freeze({
|
|
9
9
|
is(node) {
|
|
10
10
|
return node.kind === 'PrimaryKeyConstraintNode';
|
|
11
11
|
},
|
|
@@ -16,4 +16,13 @@ export const PrimaryConstraintNode = freeze({
|
|
|
16
16
|
name: constraintName ? IdentifierNode.create(constraintName) : undefined,
|
|
17
17
|
});
|
|
18
18
|
},
|
|
19
|
+
cloneWith(node, props) {
|
|
20
|
+
return freeze({ ...node, ...props });
|
|
21
|
+
},
|
|
19
22
|
});
|
|
23
|
+
/**
|
|
24
|
+
* Backwards compatibility for a typo in the codebase.
|
|
25
|
+
*
|
|
26
|
+
* @deprecated Use {@link PrimaryKeyConstraintNode} instead.
|
|
27
|
+
*/
|
|
28
|
+
export const PrimaryConstraintNode = PrimaryKeyConstraintNode;
|
|
@@ -13,6 +13,8 @@ import { Expression } from '../expression/expression.js';
|
|
|
13
13
|
import { MergeQueryNode } from './merge-query-node.js';
|
|
14
14
|
import { TopNode } from './top-node.js';
|
|
15
15
|
import { OutputNode } from './output-node.js';
|
|
16
|
+
import { OrderByNode } from './order-by-node.js';
|
|
17
|
+
import { OrderByItemNode } from './order-by-item-node.js';
|
|
16
18
|
export type QueryNode = SelectQueryNode | InsertQueryNode | UpdateQueryNode | DeleteQueryNode | MergeQueryNode;
|
|
17
19
|
type HasJoins = {
|
|
18
20
|
joins?: ReadonlyArray<JoinNode>;
|
|
@@ -35,6 +37,9 @@ type HasOutput = {
|
|
|
35
37
|
type HasEndModifiers = {
|
|
36
38
|
endModifiers?: ReadonlyArray<OperationNode>;
|
|
37
39
|
};
|
|
40
|
+
type HasOrderBy = {
|
|
41
|
+
orderBy?: OrderByNode;
|
|
42
|
+
};
|
|
38
43
|
/**
|
|
39
44
|
* @internal
|
|
40
45
|
*/
|
|
@@ -49,5 +54,7 @@ export declare const QueryNode: Readonly<{
|
|
|
49
54
|
cloneWithExplain<T extends HasExplain>(node: T, format: ExplainFormat | undefined, options: Expression<any> | undefined): T;
|
|
50
55
|
cloneWithTop<T extends HasTop>(node: T, top: TopNode): T;
|
|
51
56
|
cloneWithOutput<T extends HasOutput>(node: T, selections: ReadonlyArray<SelectionNode>): T;
|
|
57
|
+
cloneWithOrderByItems<T extends HasOrderBy>(node: T, items: ReadonlyArray<OrderByItemNode>): T;
|
|
58
|
+
cloneWithoutOrderBy<T extends HasOrderBy>(node: T): T;
|
|
52
59
|
}>;
|
|
53
60
|
export {};
|
|
@@ -9,6 +9,7 @@ import { ReturningNode } from './returning-node.js';
|
|
|
9
9
|
import { ExplainNode } from './explain-node.js';
|
|
10
10
|
import { MergeQueryNode } from './merge-query-node.js';
|
|
11
11
|
import { OutputNode } from './output-node.js';
|
|
12
|
+
import { OrderByNode } from './order-by-node.js';
|
|
12
13
|
/**
|
|
13
14
|
* @internal
|
|
14
15
|
*/
|
|
@@ -82,4 +83,18 @@ export const QueryNode = freeze({
|
|
|
82
83
|
: OutputNode.create(selections),
|
|
83
84
|
});
|
|
84
85
|
},
|
|
86
|
+
cloneWithOrderByItems(node, items) {
|
|
87
|
+
return freeze({
|
|
88
|
+
...node,
|
|
89
|
+
orderBy: node.orderBy
|
|
90
|
+
? OrderByNode.cloneWithItems(node.orderBy, items)
|
|
91
|
+
: OrderByNode.create(items),
|
|
92
|
+
});
|
|
93
|
+
},
|
|
94
|
+
cloneWithoutOrderBy(node) {
|
|
95
|
+
return freeze({
|
|
96
|
+
...node,
|
|
97
|
+
orderBy: undefined,
|
|
98
|
+
});
|
|
99
|
+
},
|
|
85
100
|
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { OperationNode } from './operation-node.js';
|
|
2
|
+
import { SchemableIdentifierNode } from './schemable-identifier-node.js';
|
|
3
|
+
export type RefreshMaterializedViewNodeParams = Omit<Partial<RefreshMaterializedViewNode>, 'kind' | 'name'>;
|
|
4
|
+
export interface RefreshMaterializedViewNode extends OperationNode {
|
|
5
|
+
readonly kind: 'RefreshMaterializedViewNode';
|
|
6
|
+
readonly name: SchemableIdentifierNode;
|
|
7
|
+
readonly concurrently?: boolean;
|
|
8
|
+
readonly withNoData?: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export declare const RefreshMaterializedViewNode: Readonly<{
|
|
14
|
+
is(node: OperationNode): node is RefreshMaterializedViewNode;
|
|
15
|
+
create(name: string): RefreshMaterializedViewNode;
|
|
16
|
+
cloneWith(createView: RefreshMaterializedViewNode, params: RefreshMaterializedViewNodeParams): RefreshMaterializedViewNode;
|
|
17
|
+
}>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/// <reference types="./refresh-materialized-view-node.d.ts" />
|
|
2
|
+
import { freeze } from '../util/object-utils.js';
|
|
3
|
+
import { SchemableIdentifierNode } from './schemable-identifier-node.js';
|
|
4
|
+
/**
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
export const RefreshMaterializedViewNode = freeze({
|
|
8
|
+
is(node) {
|
|
9
|
+
return node.kind === 'RefreshMaterializedViewNode';
|
|
10
|
+
},
|
|
11
|
+
create(name) {
|
|
12
|
+
return freeze({
|
|
13
|
+
kind: 'RefreshMaterializedViewNode',
|
|
14
|
+
name: SchemableIdentifierNode.create(name),
|
|
15
|
+
});
|
|
16
|
+
},
|
|
17
|
+
cloneWith(createView, params) {
|
|
18
|
+
return freeze({
|
|
19
|
+
...createView,
|
|
20
|
+
...params,
|
|
21
|
+
});
|
|
22
|
+
},
|
|
23
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { OperationNode } from './operation-node.js';
|
|
2
|
+
import { IdentifierNode } from './identifier-node.js';
|
|
3
|
+
export interface RenameConstraintNode extends OperationNode {
|
|
4
|
+
readonly kind: 'RenameConstraintNode';
|
|
5
|
+
readonly oldName: IdentifierNode;
|
|
6
|
+
readonly newName: IdentifierNode;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
export declare const RenameConstraintNode: Readonly<{
|
|
12
|
+
is(node: OperationNode): node is RenameConstraintNode;
|
|
13
|
+
create(oldName: string, newName: string): RenameConstraintNode;
|
|
14
|
+
}>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/// <reference types="./rename-constraint-node.d.ts" />
|
|
2
|
+
import { freeze } from '../util/object-utils.js';
|
|
3
|
+
import { IdentifierNode } from './identifier-node.js';
|
|
4
|
+
/**
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
export const RenameConstraintNode = freeze({
|
|
8
|
+
is(node) {
|
|
9
|
+
return node.kind === 'RenameConstraintNode';
|
|
10
|
+
},
|
|
11
|
+
create(oldName, newName) {
|
|
12
|
+
return freeze({
|
|
13
|
+
kind: 'RenameConstraintNode',
|
|
14
|
+
oldName: IdentifierNode.create(oldName),
|
|
15
|
+
newName: IdentifierNode.create(newName),
|
|
16
|
+
});
|
|
17
|
+
},
|
|
18
|
+
});
|
|
@@ -46,7 +46,10 @@ export declare const SelectQueryNode: Readonly<{
|
|
|
46
46
|
cloneWithSelections(select: SelectQueryNode, selections: ReadonlyArray<SelectionNode>): SelectQueryNode;
|
|
47
47
|
cloneWithDistinctOn(select: SelectQueryNode, expressions: ReadonlyArray<OperationNode>): SelectQueryNode;
|
|
48
48
|
cloneWithFrontModifier(select: SelectQueryNode, modifier: SelectModifierNode): SelectQueryNode;
|
|
49
|
-
|
|
49
|
+
/**
|
|
50
|
+
* @deprecated Use `QueryNode.cloneWithoutOrderBy` instead.
|
|
51
|
+
*/
|
|
52
|
+
cloneWithOrderByItems: (node: SelectQueryNode, items: ReadonlyArray<OrderByItemNode>) => SelectQueryNode;
|
|
50
53
|
cloneWithGroupByItems(selectNode: SelectQueryNode, items: ReadonlyArray<GroupByItemNode>): SelectQueryNode;
|
|
51
54
|
cloneWithLimit(selectNode: SelectQueryNode, limit: LimitNode): SelectQueryNode;
|
|
52
55
|
cloneWithOffset(selectNode: SelectQueryNode, offset: OffsetNode): SelectQueryNode;
|
|
@@ -56,6 +59,9 @@ export declare const SelectQueryNode: Readonly<{
|
|
|
56
59
|
cloneWithoutSelections(select: SelectQueryNode): SelectQueryNode;
|
|
57
60
|
cloneWithoutLimit(select: SelectQueryNode): SelectQueryNode;
|
|
58
61
|
cloneWithoutOffset(select: SelectQueryNode): SelectQueryNode;
|
|
59
|
-
|
|
62
|
+
/**
|
|
63
|
+
* @deprecated Use `QueryNode.cloneWithoutOrderBy` instead.
|
|
64
|
+
*/
|
|
65
|
+
cloneWithoutOrderBy: (node: SelectQueryNode) => SelectQueryNode;
|
|
60
66
|
cloneWithoutGroupBy(select: SelectQueryNode): SelectQueryNode;
|
|
61
67
|
}>;
|
|
@@ -3,7 +3,7 @@ import { freeze } from '../util/object-utils.js';
|
|
|
3
3
|
import { FromNode } from './from-node.js';
|
|
4
4
|
import { GroupByNode } from './group-by-node.js';
|
|
5
5
|
import { HavingNode } from './having-node.js';
|
|
6
|
-
import {
|
|
6
|
+
import { QueryNode } from './query-node.js';
|
|
7
7
|
/**
|
|
8
8
|
* @internal
|
|
9
9
|
*/
|
|
@@ -48,14 +48,11 @@ export const SelectQueryNode = freeze({
|
|
|
48
48
|
: freeze([modifier]),
|
|
49
49
|
});
|
|
50
50
|
},
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
: OrderByNode.create(items),
|
|
57
|
-
});
|
|
58
|
-
},
|
|
51
|
+
// TODO: remove in v0.29
|
|
52
|
+
/**
|
|
53
|
+
* @deprecated Use `QueryNode.cloneWithoutOrderBy` instead.
|
|
54
|
+
*/
|
|
55
|
+
cloneWithOrderByItems: (node, items) => QueryNode.cloneWithOrderByItems(node, items),
|
|
59
56
|
cloneWithGroupByItems(selectNode, items) {
|
|
60
57
|
return freeze({
|
|
61
58
|
...selectNode,
|
|
@@ -116,12 +113,11 @@ export const SelectQueryNode = freeze({
|
|
|
116
113
|
offset: undefined,
|
|
117
114
|
});
|
|
118
115
|
},
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
},
|
|
116
|
+
// TODO: remove in v0.29
|
|
117
|
+
/**
|
|
118
|
+
* @deprecated Use `QueryNode.cloneWithoutOrderBy` instead.
|
|
119
|
+
*/
|
|
120
|
+
cloneWithoutOrderBy: (node) => QueryNode.cloneWithoutOrderBy(node),
|
|
125
121
|
cloneWithoutGroupBy(select) {
|
|
126
122
|
return freeze({
|
|
127
123
|
...select,
|
|
@@ -6,6 +6,8 @@ export interface UniqueConstraintNode extends OperationNode {
|
|
|
6
6
|
readonly columns: ReadonlyArray<ColumnNode>;
|
|
7
7
|
readonly name?: IdentifierNode;
|
|
8
8
|
readonly nullsNotDistinct?: boolean;
|
|
9
|
+
readonly deferrable?: boolean;
|
|
10
|
+
readonly initiallyDeferred?: boolean;
|
|
9
11
|
}
|
|
10
12
|
export type UniqueConstraintNodeProps = Omit<Partial<UniqueConstraintNode>, 'kind'>;
|
|
11
13
|
/**
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { ColumnUpdateNode } from './column-update-node.js';
|
|
2
2
|
import { JoinNode } from './join-node.js';
|
|
3
3
|
import { OperationNode } from './operation-node.js';
|
|
4
|
-
import { PrimitiveValueListNode } from './primitive-value-list-node.js';
|
|
5
4
|
import { ReturningNode } from './returning-node.js';
|
|
6
|
-
import { ValueListNode } from './value-list-node.js';
|
|
7
5
|
import { WhereNode } from './where-node.js';
|
|
8
6
|
import { WithNode } from './with-node.js';
|
|
9
7
|
import { FromNode } from './from-node.js';
|
|
@@ -11,7 +9,7 @@ import { ExplainNode } from './explain-node.js';
|
|
|
11
9
|
import { LimitNode } from './limit-node.js';
|
|
12
10
|
import { TopNode } from './top-node.js';
|
|
13
11
|
import { OutputNode } from './output-node.js';
|
|
14
|
-
|
|
12
|
+
import { OrderByNode } from './order-by-node.js';
|
|
15
13
|
export interface UpdateQueryNode extends OperationNode {
|
|
16
14
|
readonly kind: 'UpdateQueryNode';
|
|
17
15
|
readonly table?: OperationNode;
|
|
@@ -26,13 +24,14 @@ export interface UpdateQueryNode extends OperationNode {
|
|
|
26
24
|
readonly limit?: LimitNode;
|
|
27
25
|
readonly top?: TopNode;
|
|
28
26
|
readonly output?: OutputNode;
|
|
27
|
+
readonly orderBy?: OrderByNode;
|
|
29
28
|
}
|
|
30
29
|
/**
|
|
31
30
|
* @internal
|
|
32
31
|
*/
|
|
33
32
|
export declare const UpdateQueryNode: Readonly<{
|
|
34
33
|
is(node: OperationNode): node is UpdateQueryNode;
|
|
35
|
-
create(
|
|
34
|
+
create(tables: ReadonlyArray<OperationNode>, withNode?: WithNode): UpdateQueryNode;
|
|
36
35
|
createWithoutTable(): UpdateQueryNode;
|
|
37
36
|
cloneWithFromItems(updateQuery: UpdateQueryNode, fromItems: ReadonlyArray<OperationNode>): UpdateQueryNode;
|
|
38
37
|
cloneWithUpdates(updateQuery: UpdateQueryNode, updates: ReadonlyArray<ColumnUpdateNode>): UpdateQueryNode;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="./update-query-node.d.ts" />
|
|
2
2
|
import { freeze } from '../util/object-utils.js';
|
|
3
3
|
import { FromNode } from './from-node.js';
|
|
4
|
+
import { ListNode } from './list-node.js';
|
|
4
5
|
/**
|
|
5
6
|
* @internal
|
|
6
7
|
*/
|
|
@@ -8,10 +9,12 @@ export const UpdateQueryNode = freeze({
|
|
|
8
9
|
is(node) {
|
|
9
10
|
return node.kind === 'UpdateQueryNode';
|
|
10
11
|
},
|
|
11
|
-
create(
|
|
12
|
+
create(tables, withNode) {
|
|
12
13
|
return freeze({
|
|
13
14
|
kind: 'UpdateQueryNode',
|
|
14
|
-
table
|
|
15
|
+
// For backwards compatibility, use the raw table node when there's only one table
|
|
16
|
+
// and don't rename the property to something like `tables`.
|
|
17
|
+
table: tables.length === 1 ? tables[0] : ListNode.create(tables),
|
|
15
18
|
...(withNode && { with: withNode }),
|
|
16
19
|
});
|
|
17
20
|
},
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type Collation = 'nocase' | 'binary' | 'rtrim' | (string & {});
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { DeleteQueryBuilder } from '../query-builder/delete-query-builder.js';
|
|
2
|
+
import type { DeleteResult } from '../query-builder/delete-result.js';
|
|
3
|
+
import type { ShallowRecord } from '../util/type-utils.js';
|
|
4
|
+
import type { ExtractTableAlias, From, FromTables, TableExpressionOrList } from './table-parser.js';
|
|
5
|
+
export type DeleteFrom<DB, TE extends TableExpressionOrList<DB, never>> = TE extends ReadonlyArray<infer T> ? DeleteQueryBuilder<From<DB, T>, FromTables<DB, never, T>, DeleteResult> : TE extends keyof DB & string ? DeleteQueryBuilder<DB, ExtractTableAlias<DB, TE>, DeleteResult> : TE extends `${infer T} as ${infer A}` ? T extends keyof DB ? DeleteQueryBuilder<DB & ShallowRecord<A, DB[T]>, A, DeleteResult> : never : DeleteQueryBuilder<From<DB, TE>, FromTables<DB, never, TE>, DeleteResult>;
|
|
@@ -40,9 +40,11 @@ function parseRowValues(row, columns) {
|
|
|
40
40
|
length: columns.size,
|
|
41
41
|
});
|
|
42
42
|
let hasUndefinedOrComplexColumns = false;
|
|
43
|
+
let indexedRowColumns = rowColumns.length;
|
|
43
44
|
for (const col of rowColumns) {
|
|
44
45
|
const columnIdx = columns.get(col);
|
|
45
46
|
if (isUndefined(columnIdx)) {
|
|
47
|
+
indexedRowColumns--;
|
|
46
48
|
continue;
|
|
47
49
|
}
|
|
48
50
|
const value = row[col];
|
|
@@ -51,7 +53,7 @@ function parseRowValues(row, columns) {
|
|
|
51
53
|
}
|
|
52
54
|
rowValues[columnIdx] = value;
|
|
53
55
|
}
|
|
54
|
-
const hasMissingColumns =
|
|
56
|
+
const hasMissingColumns = indexedRowColumns < columns.size;
|
|
55
57
|
if (hasMissingColumns || hasUndefinedOrComplexColumns) {
|
|
56
58
|
const defaultValue = DefaultInsertValueNode.create();
|
|
57
59
|
return ValueListNode.create(rowValues.map((it) => isUndefined(it) ? defaultValue : parseValueExpression(it)));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { JoinNode, JoinType } from '../operation-node/join-node.js';
|
|
2
|
+
import { JoinBuilder } from '../query-builder/join-builder.js';
|
|
2
3
|
import { AnyColumn, AnyColumnWithTable, DrainOuterGeneric } from '../util/type-utils.js';
|
|
3
4
|
import { From, FromTables } from './table-parser.js';
|
|
4
|
-
import { JoinBuilder } from '../query-builder/join-builder.js';
|
|
5
5
|
export type JoinReferenceExpression<DB, TB extends keyof DB, TE> = DrainOuterGeneric<AnyJoinColumn<DB, TB, TE> | AnyJoinColumnWithTable<DB, TB, TE>>;
|
|
6
6
|
export type JoinCallbackExpression<DB, TB extends keyof DB, TE> = (join: JoinBuilder<From<DB, TE>, FromTables<DB, TB, TE>>) => JoinBuilder<any, any>;
|
|
7
7
|
type AnyJoinColumn<DB, TB extends keyof DB, TE> = AnyColumn<From<DB, TE>, FromTables<DB, TB, TE>>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/// <reference types="./join-parser.d.ts" />
|
|
2
2
|
import { JoinNode } from '../operation-node/join-node.js';
|
|
3
|
-
import { parseTableExpression, } from './table-parser.js';
|
|
4
3
|
import { parseReferentialBinaryOperation } from './binary-operation-parser.js';
|
|
5
4
|
import { createJoinBuilder } from './parse-utils.js';
|
|
5
|
+
import { parseTableExpression, } from './table-parser.js';
|
|
6
6
|
export function parseJoin(joinType, args) {
|
|
7
7
|
if (args.length === 3) {
|
|
8
8
|
return parseSingleOnJoin(joinType, args[0], args[1], args[2]);
|
|
@@ -10,6 +10,9 @@ export function parseJoin(joinType, args) {
|
|
|
10
10
|
else if (args.length === 2) {
|
|
11
11
|
return parseCallbackJoin(joinType, args[0], args[1]);
|
|
12
12
|
}
|
|
13
|
+
else if (args.length === 1) {
|
|
14
|
+
return parseOnlessJoin(joinType, args[0]);
|
|
15
|
+
}
|
|
13
16
|
else {
|
|
14
17
|
throw new Error('not implemented');
|
|
15
18
|
}
|
|
@@ -20,3 +23,6 @@ function parseCallbackJoin(joinType, from, callback) {
|
|
|
20
23
|
function parseSingleOnJoin(joinType, from, lhsColumn, rhsColumn) {
|
|
21
24
|
return JoinNode.createWithOn(joinType, parseTableExpression(from), parseReferentialBinaryOperation(lhsColumn, '=', rhsColumn));
|
|
22
25
|
}
|
|
26
|
+
function parseOnlessJoin(joinType, from) {
|
|
27
|
+
return JoinNode.create(joinType, parseTableExpression(from));
|
|
28
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { MergeQueryBuilder } from '../query-builder/merge-query-builder.js';
|
|
2
|
+
import type { MergeResult } from '../query-builder/merge-result.js';
|
|
3
|
+
import type { ShallowRecord } from '../util/type-utils.js';
|
|
4
|
+
import type { ExtractTableAlias, SimpleTableReference } from './table-parser.js';
|
|
5
|
+
export type MergeInto<DB, TE extends SimpleTableReference<DB>> = TE extends keyof DB & string ? MergeQueryBuilder<DB, ExtractTableAlias<DB, TE>, MergeResult> : TE extends `${infer T} as ${infer A}` ? T extends keyof DB ? MergeQueryBuilder<DB & ShallowRecord<A, DB[T]>, A, MergeResult> : never : never;
|
|
@@ -1,12 +1,25 @@
|
|
|
1
|
+
import { DynamicReferenceBuilder } from '../dynamic/dynamic-reference-builder.js';
|
|
1
2
|
import { Expression } from '../expression/expression.js';
|
|
2
3
|
import { OrderByItemNode } from '../operation-node/order-by-item-node.js';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
4
|
+
import { OrderByItemBuilder } from '../query-builder/order-by-item-builder.js';
|
|
5
|
+
import { ExpressionOrFactory } from './expression-parser.js';
|
|
6
|
+
import { ReferenceExpression, StringReference } from './reference-parser.js';
|
|
7
|
+
export type OrderByExpression<DB, TB extends keyof DB, O> = StringReference<DB, TB> | (keyof O & string) | ExpressionOrFactory<DB, TB, any> | DynamicReferenceBuilder<any>;
|
|
8
|
+
export type OrderByModifiers = OrderByDirection | OrderByModifiersCallbackExpression;
|
|
5
9
|
export type OrderByDirection = 'asc' | 'desc';
|
|
6
10
|
export declare function isOrderByDirection(thing: unknown): thing is OrderByDirection;
|
|
11
|
+
export type OrderByModifiersCallbackExpression = (builder: OrderByItemBuilder) => OrderByItemBuilder;
|
|
12
|
+
/**
|
|
13
|
+
* @deprecated performance reasons, use {@link OrderByExpression} instead.
|
|
14
|
+
*/
|
|
7
15
|
export type DirectedOrderByStringReference<DB, TB extends keyof DB, O> = `${StringReference<DB, TB> | (keyof O & string)} ${OrderByDirection}`;
|
|
8
|
-
|
|
9
|
-
|
|
16
|
+
/**
|
|
17
|
+
* @deprecated replaced with {@link OrderByModifiers}
|
|
18
|
+
*/
|
|
10
19
|
export type OrderByDirectionExpression = OrderByDirection | Expression<any>;
|
|
20
|
+
/**
|
|
21
|
+
* @deprecated use {@link OrderByExpression} instead.
|
|
22
|
+
*/
|
|
23
|
+
export type UndirectedOrderByExpression<DB, TB extends keyof DB, O> = ReferenceExpression<DB, TB> | (keyof O & string);
|
|
11
24
|
export declare function parseOrderBy(args: any[]): OrderByItemNode[];
|
|
12
|
-
export declare function parseOrderByItem(
|
|
25
|
+
export declare function parseOrderByItem(expr: OrderByExpression<any, any, any>, modifiers?: OrderByModifiers): OrderByItemNode;
|