kysely 0.27.6 → 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/README.md +169 -1
- 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-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 +7 -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 +8 -0
- package/dist/cjs/migration/migrator.js +1 -1
- 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/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/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 +6 -5
- package/dist/cjs/plugin/with-schema/with-schema-transformer.js +29 -24
- 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 +3 -3
- 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-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 +7 -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 +8 -0
- package/dist/esm/migration/migrator.js +1 -1
- 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/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/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 +6 -5
- package/dist/esm/plugin/with-schema/with-schema-transformer.js +29 -24
- 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 +3 -3
- 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 -168
- 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
|
@@ -39,23 +39,13 @@ class PostgresIntrospector {
|
|
|
39
39
|
'typ.typname as type',
|
|
40
40
|
'dtns.nspname as type_schema',
|
|
41
41
|
(0, sql_js_1.sql) `col_description(a.attrelid, a.attnum)`.as('column_description'),
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
.whereRef('relnamespace', '=', 'c.relnamespace')
|
|
49
|
-
.where('relkind', '=', 'S')
|
|
50
|
-
.where('relname', '=', (0, sql_js_1.sql) `c.relname || '_' || a.attname || '_seq'`)
|
|
51
|
-
.as('auto_incrementing'),
|
|
42
|
+
(0, sql_js_1.sql) `pg_get_serial_sequence(ns.nspname || '.' || c.relname, a.attname)`.as('auto_incrementing'),
|
|
43
|
+
])
|
|
44
|
+
.where('c.relkind', 'in', [
|
|
45
|
+
'r' /*regular table*/,
|
|
46
|
+
'v' /*view*/,
|
|
47
|
+
'p' /*partitioned table*/,
|
|
52
48
|
])
|
|
53
|
-
// r == normal table
|
|
54
|
-
.where((eb) => eb.or([
|
|
55
|
-
eb('c.relkind', '=', 'r'),
|
|
56
|
-
eb('c.relkind', '=', 'v'),
|
|
57
|
-
eb('c.relkind', '=', 'p'),
|
|
58
|
-
]))
|
|
59
49
|
.where('ns.nspname', '!~', '^pg_')
|
|
60
50
|
.where('ns.nspname', '!=', 'information_schema')
|
|
61
51
|
// No system columns
|
|
@@ -95,7 +85,7 @@ class PostgresIntrospector {
|
|
|
95
85
|
dataType: it.type,
|
|
96
86
|
dataTypeSchema: it.type_schema,
|
|
97
87
|
isNullable: !it.not_null,
|
|
98
|
-
isAutoIncrementing:
|
|
88
|
+
isAutoIncrementing: it.auto_incrementing !== null,
|
|
99
89
|
hasDefaultValue: it.has_default,
|
|
100
90
|
comment: it.column_description ?? undefined,
|
|
101
91
|
}));
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { DatabaseConnection } from '../../driver/database-connection.js';
|
|
2
2
|
import { Driver } from '../../driver/driver.js';
|
|
3
|
+
import { QueryCompiler } from '../../query-compiler/query-compiler.js';
|
|
3
4
|
import { SqliteDialectConfig } from './sqlite-dialect-config.js';
|
|
4
5
|
export declare class SqliteDriver implements Driver {
|
|
5
6
|
#private;
|
|
@@ -27,6 +28,9 @@ export declare class SqliteDriver implements Driver {
|
|
|
27
28
|
* Rolls back a transaction.
|
|
28
29
|
*/
|
|
29
30
|
rollbackTransaction(connection: DatabaseConnection): Promise<void>;
|
|
31
|
+
savepoint(connection: DatabaseConnection, savepointName: string, compileQuery: QueryCompiler['compileQuery']): Promise<void>;
|
|
32
|
+
rollbackToSavepoint(connection: DatabaseConnection, savepointName: string, compileQuery: QueryCompiler['compileQuery']): Promise<void>;
|
|
33
|
+
releaseSavepoint(connection: DatabaseConnection, savepointName: string, compileQuery: QueryCompiler['compileQuery']): Promise<void>;
|
|
30
34
|
/**
|
|
31
35
|
* Releases a connection back to the pool.
|
|
32
36
|
*/
|
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SqliteDriver = void 0;
|
|
4
4
|
const select_query_node_js_1 = require("../../operation-node/select-query-node.js");
|
|
5
|
+
const savepoint_parser_js_1 = require("../../parser/savepoint-parser.js");
|
|
5
6
|
const compiled_query_js_1 = require("../../query-compiler/compiled-query.js");
|
|
6
7
|
const object_utils_js_1 = require("../../util/object-utils.js");
|
|
8
|
+
const query_id_js_1 = require("../../util/query-id.js");
|
|
7
9
|
class SqliteDriver {
|
|
8
10
|
#config;
|
|
9
11
|
#connectionMutex = new ConnectionMutex();
|
|
@@ -36,6 +38,15 @@ class SqliteDriver {
|
|
|
36
38
|
async rollbackTransaction(connection) {
|
|
37
39
|
await connection.executeQuery(compiled_query_js_1.CompiledQuery.raw('rollback'));
|
|
38
40
|
}
|
|
41
|
+
async savepoint(connection, savepointName, compileQuery) {
|
|
42
|
+
await connection.executeQuery(compileQuery((0, savepoint_parser_js_1.parseSavepointCommand)('savepoint', savepointName), (0, query_id_js_1.createQueryId)()));
|
|
43
|
+
}
|
|
44
|
+
async rollbackToSavepoint(connection, savepointName, compileQuery) {
|
|
45
|
+
await connection.executeQuery(compileQuery((0, savepoint_parser_js_1.parseSavepointCommand)('rollback to', savepointName), (0, query_id_js_1.createQueryId)()));
|
|
46
|
+
}
|
|
47
|
+
async releaseSavepoint(connection, savepointName, compileQuery) {
|
|
48
|
+
await connection.executeQuery(compileQuery((0, savepoint_parser_js_1.parseSavepointCommand)('release', savepointName), (0, query_id_js_1.createQueryId)()));
|
|
49
|
+
}
|
|
39
50
|
async releaseConnection() {
|
|
40
51
|
this.#connectionMutex.unlock();
|
|
41
52
|
}
|
|
@@ -57,19 +68,14 @@ class SqliteConnection {
|
|
|
57
68
|
rows: stmt.all(parameters),
|
|
58
69
|
});
|
|
59
70
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
? BigInt(lastInsertRowid)
|
|
69
|
-
: undefined,
|
|
70
|
-
rows: [],
|
|
71
|
-
});
|
|
72
|
-
}
|
|
71
|
+
const { changes, lastInsertRowid } = stmt.run(parameters);
|
|
72
|
+
return Promise.resolve({
|
|
73
|
+
numAffectedRows: changes !== undefined && changes !== null ? BigInt(changes) : undefined,
|
|
74
|
+
insertId: lastInsertRowid !== undefined && lastInsertRowid !== null
|
|
75
|
+
? BigInt(lastInsertRowid)
|
|
76
|
+
: undefined,
|
|
77
|
+
rows: [],
|
|
78
|
+
});
|
|
73
79
|
}
|
|
74
80
|
async *streamQuery(compiledQuery, _chunkSize) {
|
|
75
81
|
const { sql, parameters, query } = compiledQuery;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { DefaultInsertValueNode } from '../../operation-node/default-insert-value-node.js';
|
|
2
|
+
import { OrActionNode } from '../../operation-node/or-action-node.js';
|
|
2
3
|
import { DefaultQueryCompiler } from '../../query-compiler/default-query-compiler.js';
|
|
3
4
|
export declare class SqliteQueryCompiler extends DefaultQueryCompiler {
|
|
5
|
+
protected visitOrAction(node: OrActionNode): void;
|
|
4
6
|
protected getCurrentParameterPlaceholder(): string;
|
|
5
7
|
protected getLeftExplainOptionsWrapper(): string;
|
|
6
8
|
protected getRightExplainOptionsWrapper(): string;
|
|
@@ -4,6 +4,10 @@ exports.SqliteQueryCompiler = void 0;
|
|
|
4
4
|
const default_query_compiler_js_1 = require("../../query-compiler/default-query-compiler.js");
|
|
5
5
|
const ID_WRAP_REGEX = /"/g;
|
|
6
6
|
class SqliteQueryCompiler extends default_query_compiler_js_1.DefaultQueryCompiler {
|
|
7
|
+
visitOrAction(node) {
|
|
8
|
+
this.append('or ');
|
|
9
|
+
this.append(node.action);
|
|
10
|
+
}
|
|
7
11
|
getCurrentParameterPlaceholder() {
|
|
8
12
|
return '?';
|
|
9
13
|
}
|
|
@@ -9,10 +9,6 @@ export interface DatabaseConnection {
|
|
|
9
9
|
streamQuery<R>(compiledQuery: CompiledQuery, chunkSize?: number): AsyncIterableIterator<QueryResult<R>>;
|
|
10
10
|
}
|
|
11
11
|
export interface QueryResult<O> {
|
|
12
|
-
/**
|
|
13
|
-
* @deprecated use {@link QueryResult.numAffectedRows} instead.
|
|
14
|
-
*/
|
|
15
|
-
readonly numUpdatedOrDeletedRows?: bigint;
|
|
16
12
|
/**
|
|
17
13
|
* This is defined for insert, update, delete and merge queries and contains
|
|
18
14
|
* the number of rows the query inserted/updated/deleted.
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { QueryCompiler } from '../query-compiler/query-compiler.js';
|
|
1
2
|
import { ArrayItemType } from '../util/type-utils.js';
|
|
2
3
|
import { DatabaseConnection } from './database-connection.js';
|
|
3
4
|
/**
|
|
@@ -28,6 +29,18 @@ export interface Driver {
|
|
|
28
29
|
* Rolls back a transaction.
|
|
29
30
|
*/
|
|
30
31
|
rollbackTransaction(connection: DatabaseConnection): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Establishses a new savepoint within a transaction.
|
|
34
|
+
*/
|
|
35
|
+
savepoint?(connection: DatabaseConnection, savepointName: string, compileQuery: QueryCompiler['compileQuery']): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Rolls back to a savepoint within a transaction.
|
|
38
|
+
*/
|
|
39
|
+
rollbackToSavepoint?(connection: DatabaseConnection, savepointName: string, compileQuery: QueryCompiler['compileQuery']): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Releases a savepoint within a transaction.
|
|
42
|
+
*/
|
|
43
|
+
releaseSavepoint?(connection: DatabaseConnection, savepointName: string, compileQuery: QueryCompiler['compileQuery']): Promise<void>;
|
|
31
44
|
/**
|
|
32
45
|
* Releases a connection back to the pool.
|
|
33
46
|
*/
|
|
@@ -38,7 +51,11 @@ export interface Driver {
|
|
|
38
51
|
destroy(): Promise<void>;
|
|
39
52
|
}
|
|
40
53
|
export interface TransactionSettings {
|
|
54
|
+
readonly accessMode?: AccessMode;
|
|
41
55
|
readonly isolationLevel?: IsolationLevel;
|
|
42
56
|
}
|
|
57
|
+
export declare const TRANSACTION_ACCESS_MODES: readonly ["read only", "read write"];
|
|
58
|
+
export type AccessMode = ArrayItemType<typeof TRANSACTION_ACCESS_MODES>;
|
|
43
59
|
export declare const TRANSACTION_ISOLATION_LEVELS: readonly ["read uncommitted", "read committed", "repeatable read", "serializable", "snapshot"];
|
|
44
60
|
export type IsolationLevel = ArrayItemType<typeof TRANSACTION_ISOLATION_LEVELS>;
|
|
61
|
+
export declare function validateTransactionSettings(settings: TransactionSettings): void;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TRANSACTION_ISOLATION_LEVELS = void 0;
|
|
3
|
+
exports.TRANSACTION_ISOLATION_LEVELS = exports.TRANSACTION_ACCESS_MODES = void 0;
|
|
4
|
+
exports.validateTransactionSettings = validateTransactionSettings;
|
|
5
|
+
exports.TRANSACTION_ACCESS_MODES = ['read only', 'read write'];
|
|
4
6
|
exports.TRANSACTION_ISOLATION_LEVELS = [
|
|
5
7
|
'read uncommitted',
|
|
6
8
|
'read committed',
|
|
@@ -8,3 +10,13 @@ exports.TRANSACTION_ISOLATION_LEVELS = [
|
|
|
8
10
|
'serializable',
|
|
9
11
|
'snapshot',
|
|
10
12
|
];
|
|
13
|
+
function validateTransactionSettings(settings) {
|
|
14
|
+
if (settings.accessMode &&
|
|
15
|
+
!exports.TRANSACTION_ACCESS_MODES.includes(settings.accessMode)) {
|
|
16
|
+
throw new Error(`invalid transaction access mode ${settings.accessMode}`);
|
|
17
|
+
}
|
|
18
|
+
if (settings.isolationLevel &&
|
|
19
|
+
!exports.TRANSACTION_ISOLATION_LEVELS.includes(settings.isolationLevel)) {
|
|
20
|
+
throw new Error(`invalid transaction isolation level ${settings.isolationLevel}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -60,6 +60,15 @@ class DummyDriver {
|
|
|
60
60
|
async destroy() {
|
|
61
61
|
// Nothing to do here.
|
|
62
62
|
}
|
|
63
|
+
async releaseSavepoint() {
|
|
64
|
+
// Nothing to do here.
|
|
65
|
+
}
|
|
66
|
+
async rollbackToSavepoint() {
|
|
67
|
+
// Nothing to do here.
|
|
68
|
+
}
|
|
69
|
+
async savepoint() {
|
|
70
|
+
// Nothing to do here.
|
|
71
|
+
}
|
|
63
72
|
}
|
|
64
73
|
exports.DummyDriver = DummyDriver;
|
|
65
74
|
class DummyConnection {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { QueryCompiler } from '../query-compiler/query-compiler.js';
|
|
1
2
|
import { Log } from '../util/log.js';
|
|
2
3
|
import { DatabaseConnection } from './database-connection.js';
|
|
3
4
|
import { Driver, TransactionSettings } from './driver.js';
|
|
@@ -36,6 +37,9 @@ export declare class RuntimeDriver implements Driver {
|
|
|
36
37
|
* Rolls back a transaction.
|
|
37
38
|
*/
|
|
38
39
|
rollbackTransaction(connection: DatabaseConnection): Promise<void>;
|
|
40
|
+
savepoint(connection: DatabaseConnection, savepointName: string, compileQuery: QueryCompiler['compileQuery']): Promise<void>;
|
|
41
|
+
rollbackToSavepoint(connection: DatabaseConnection, savepointName: string, compileQuery: QueryCompiler['compileQuery']): Promise<void>;
|
|
42
|
+
releaseSavepoint(connection: DatabaseConnection, savepointName: string, compileQuery: QueryCompiler['compileQuery']): Promise<void>;
|
|
39
43
|
/**
|
|
40
44
|
* Destroys the driver and releases all resources.
|
|
41
45
|
*/
|
|
@@ -64,6 +64,24 @@ class RuntimeDriver {
|
|
|
64
64
|
rollbackTransaction(connection) {
|
|
65
65
|
return this.#driver.rollbackTransaction(connection);
|
|
66
66
|
}
|
|
67
|
+
savepoint(connection, savepointName, compileQuery) {
|
|
68
|
+
if (this.#driver.savepoint) {
|
|
69
|
+
return this.#driver.savepoint(connection, savepointName, compileQuery);
|
|
70
|
+
}
|
|
71
|
+
throw new Error('The `savepoint` method is not supported by this driver');
|
|
72
|
+
}
|
|
73
|
+
rollbackToSavepoint(connection, savepointName, compileQuery) {
|
|
74
|
+
if (this.#driver.rollbackToSavepoint) {
|
|
75
|
+
return this.#driver.rollbackToSavepoint(connection, savepointName, compileQuery);
|
|
76
|
+
}
|
|
77
|
+
throw new Error('The `rollbackToSavepoint` method is not supported by this driver');
|
|
78
|
+
}
|
|
79
|
+
releaseSavepoint(connection, savepointName, compileQuery) {
|
|
80
|
+
if (this.#driver.releaseSavepoint) {
|
|
81
|
+
return this.#driver.releaseSavepoint(connection, savepointName, compileQuery);
|
|
82
|
+
}
|
|
83
|
+
throw new Error('The `releaseSavepoint` method is not supported by this driver');
|
|
84
|
+
}
|
|
67
85
|
async destroy() {
|
|
68
86
|
if (!this.#initPromise) {
|
|
69
87
|
return;
|
|
@@ -85,6 +103,8 @@ class RuntimeDriver {
|
|
|
85
103
|
// the best option in this case.
|
|
86
104
|
#addLogging(connection) {
|
|
87
105
|
const executeQuery = connection.executeQuery;
|
|
106
|
+
const streamQuery = connection.streamQuery;
|
|
107
|
+
const dis = this;
|
|
88
108
|
connection.executeQuery = async (compiledQuery) => {
|
|
89
109
|
let caughtError;
|
|
90
110
|
const startTime = (0, performance_now_js_1.performanceNow)();
|
|
@@ -93,12 +113,31 @@ class RuntimeDriver {
|
|
|
93
113
|
}
|
|
94
114
|
catch (error) {
|
|
95
115
|
caughtError = error;
|
|
96
|
-
await
|
|
116
|
+
await dis.#logError(error, compiledQuery, startTime);
|
|
117
|
+
throw error;
|
|
118
|
+
}
|
|
119
|
+
finally {
|
|
120
|
+
if (!caughtError) {
|
|
121
|
+
await dis.#logQuery(compiledQuery, startTime);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
connection.streamQuery = async function* (compiledQuery, chunkSize) {
|
|
126
|
+
let caughtError;
|
|
127
|
+
const startTime = (0, performance_now_js_1.performanceNow)();
|
|
128
|
+
try {
|
|
129
|
+
for await (const result of streamQuery.call(connection, compiledQuery, chunkSize)) {
|
|
130
|
+
yield result;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
caughtError = error;
|
|
135
|
+
await dis.#logError(error, compiledQuery, startTime);
|
|
97
136
|
throw error;
|
|
98
137
|
}
|
|
99
138
|
finally {
|
|
100
139
|
if (!caughtError) {
|
|
101
|
-
await
|
|
140
|
+
await dis.#logQuery(compiledQuery, startTime, true);
|
|
102
141
|
}
|
|
103
142
|
}
|
|
104
143
|
};
|
|
@@ -111,9 +150,10 @@ class RuntimeDriver {
|
|
|
111
150
|
queryDurationMillis: this.#calculateDurationMillis(startTime),
|
|
112
151
|
}));
|
|
113
152
|
}
|
|
114
|
-
async #logQuery(compiledQuery, startTime) {
|
|
153
|
+
async #logQuery(compiledQuery, startTime, isStream = false) {
|
|
115
154
|
await this.#log.query(() => ({
|
|
116
155
|
level: 'query',
|
|
156
|
+
isStream,
|
|
117
157
|
query: compiledQuery,
|
|
118
158
|
queryDurationMillis: this.#calculateDurationMillis(startTime),
|
|
119
159
|
}));
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SelectQueryBuilder } from '../query-builder/select-query-builder.js';
|
|
2
|
-
import {
|
|
2
|
+
import { TableExpressionOrList } from '../parser/table-parser.js';
|
|
3
3
|
import { FunctionModule } from '../query-builder/function-module.js';
|
|
4
4
|
import { ExtractTypeFromReferenceExpression, ReferenceExpression, SimpleReferenceExpression, StringReference } from '../parser/reference-parser.js';
|
|
5
5
|
import { QueryExecutor } from '../query-executor/query-executor.js';
|
|
@@ -16,6 +16,7 @@ import { RefTuple2, RefTuple3, RefTuple4, RefTuple5, ValTuple2, ValTuple3, ValTu
|
|
|
16
16
|
import { Selectable } from '../util/column-type.js';
|
|
17
17
|
import { KyselyTypeError } from '../util/type-error.js';
|
|
18
18
|
import { DataTypeExpression } from '../parser/data-type-parser.js';
|
|
19
|
+
import { SelectFrom } from '../parser/select-from-parser.js';
|
|
19
20
|
export interface ExpressionBuilder<DB, TB extends keyof DB> {
|
|
20
21
|
/**
|
|
21
22
|
* Creates a binary expression.
|
|
@@ -116,9 +117,9 @@ export interface ExpressionBuilder<DB, TB extends keyof DB> {
|
|
|
116
117
|
* ```ts
|
|
117
118
|
* const result = await db.selectFrom('person')
|
|
118
119
|
* .where(({ eb, exists, selectFrom }) =>
|
|
119
|
-
* eb('first_name', '=', 'Jennifer').and(
|
|
120
|
-
*
|
|
121
|
-
* )
|
|
120
|
+
* eb('first_name', '=', 'Jennifer').and(exists(
|
|
121
|
+
* selectFrom('pet').whereRef('owner_id', '=', 'person.id').select('pet.id')
|
|
122
|
+
* ))
|
|
122
123
|
* )
|
|
123
124
|
* .selectAll()
|
|
124
125
|
* .execute()
|
|
@@ -209,11 +210,7 @@ export interface ExpressionBuilder<DB, TB extends keyof DB> {
|
|
|
209
210
|
* that case Kysely typings wouldn't allow you to reference `pet.owner_id`
|
|
210
211
|
* because `pet` is not joined to that query.
|
|
211
212
|
*/
|
|
212
|
-
selectFrom<TE extends
|
|
213
|
-
selectFrom<TE extends TableExpression<DB, TB>>(from: TE[]): SelectQueryBuilder<From<DB, TE>, FromTables<DB, TB, TE>, {}>;
|
|
214
|
-
selectFrom<TE extends keyof DB & string>(from: TE): SelectQueryBuilder<DB, TB | ExtractTableAlias<DB, TE>, {}>;
|
|
215
|
-
selectFrom<TE extends AnyAliasedTable<DB>>(from: TE): SelectQueryBuilder<DB & PickTableWithAlias<DB, TE>, TB | ExtractTableAlias<DB & PickTableWithAlias<DB, TE>, TE>, {}>;
|
|
216
|
-
selectFrom<TE extends TableExpression<DB, TB>>(from: TE): SelectQueryBuilder<From<DB, TE>, FromTables<DB, TB, TE>, {}>;
|
|
213
|
+
selectFrom<TE extends TableExpressionOrList<DB, TB>>(from: TE): SelectFrom<DB, TB, TE>;
|
|
217
214
|
/**
|
|
218
215
|
* Creates a `case` statement/operator.
|
|
219
216
|
*
|
|
@@ -920,4 +917,4 @@ export interface ExpressionBuilder<DB, TB extends keyof DB> {
|
|
|
920
917
|
}
|
|
921
918
|
export declare function createExpressionBuilder<DB, TB extends keyof DB>(executor?: QueryExecutor): ExpressionBuilder<DB, TB>;
|
|
922
919
|
export declare function expressionBuilder<DB, TB extends keyof DB>(_: SelectQueryBuilder<DB, TB, any>): ExpressionBuilder<DB, TB>;
|
|
923
|
-
export declare function expressionBuilder<DB, TB extends keyof DB>(): ExpressionBuilder<DB, TB>;
|
|
920
|
+
export declare function expressionBuilder<DB, TB extends keyof DB = never>(): ExpressionBuilder<DB, TB>;
|
|
@@ -149,3 +149,51 @@ export declare function jsonObjectFrom<O>(expr: Expression<O>): RawBuilder<Simpl
|
|
|
149
149
|
export declare function jsonBuildObject<O extends Record<string, Expression<unknown>>>(obj: O): RawBuilder<Simplify<{
|
|
150
150
|
[K in keyof O]: O[K] extends Expression<infer V> ? V : never;
|
|
151
151
|
}>>;
|
|
152
|
+
export type MergeAction = 'INSERT' | 'UPDATE' | 'DELETE';
|
|
153
|
+
/**
|
|
154
|
+
* The PostgreSQL `merge_action` function.
|
|
155
|
+
*
|
|
156
|
+
* This function can be used in a `returning` clause to get the action that was
|
|
157
|
+
* performed in a `mergeInto` query. The function returns one of the following
|
|
158
|
+
* strings: `'INSERT'`, `'UPDATE'`, or `'DELETE'`.
|
|
159
|
+
*
|
|
160
|
+
* ### Examples
|
|
161
|
+
*
|
|
162
|
+
* ```ts
|
|
163
|
+
* import { mergeAction } from 'kysely/helpers/postgres'
|
|
164
|
+
*
|
|
165
|
+
* const result = await db
|
|
166
|
+
* .mergeInto('person as p')
|
|
167
|
+
* .using('person_backup as pb', 'p.id', 'pb.id')
|
|
168
|
+
* .whenMatched()
|
|
169
|
+
* .thenUpdateSet(({ ref }) => ({
|
|
170
|
+
* first_name: ref('pb.first_name'),
|
|
171
|
+
* updated_at: ref('pb.updated_at').$castTo<string | null>(),
|
|
172
|
+
* }))
|
|
173
|
+
* .whenNotMatched()
|
|
174
|
+
* .thenInsertValues(({ ref}) => ({
|
|
175
|
+
* id: ref('pb.id'),
|
|
176
|
+
* first_name: ref('pb.first_name'),
|
|
177
|
+
* created_at: ref('pb.updated_at'),
|
|
178
|
+
* updated_at: ref('pb.updated_at').$castTo<string | null>(),
|
|
179
|
+
* }))
|
|
180
|
+
* .returning([mergeAction().as('action'), 'p.id', 'p.updated_at'])
|
|
181
|
+
* .execute()
|
|
182
|
+
*
|
|
183
|
+
* result[0].action
|
|
184
|
+
* ```
|
|
185
|
+
*
|
|
186
|
+
* The generated SQL (PostgreSQL):
|
|
187
|
+
*
|
|
188
|
+
* ```sql
|
|
189
|
+
* merge into "person" as "p"
|
|
190
|
+
* using "person_backup" as "pb" on "p"."id" = "pb"."id"
|
|
191
|
+
* when matched then update set
|
|
192
|
+
* "first_name" = "pb"."first_name",
|
|
193
|
+
* "updated_at" = "pb"."updated_at"::text
|
|
194
|
+
* when not matched then insert values ("id", "first_name", "created_at", "updated_at")
|
|
195
|
+
* values ("pb"."id", "pb"."first_name", "pb"."updated_at", "pb"."updated_at")
|
|
196
|
+
* returning merge_action() as "action", "p"."id", "p"."updated_at"
|
|
197
|
+
* ```
|
|
198
|
+
*/
|
|
199
|
+
export declare function mergeAction(): RawBuilder<MergeAction>;
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.jsonArrayFrom = jsonArrayFrom;
|
|
4
4
|
exports.jsonObjectFrom = jsonObjectFrom;
|
|
5
5
|
exports.jsonBuildObject = jsonBuildObject;
|
|
6
|
+
exports.mergeAction = mergeAction;
|
|
6
7
|
const sql_js_1 = require("../raw-builder/sql.js");
|
|
7
8
|
/**
|
|
8
9
|
* A postgres helper for aggregating a subquery (or other expression) into a JSONB array.
|
|
@@ -156,3 +157,52 @@ function jsonObjectFrom(expr) {
|
|
|
156
157
|
function jsonBuildObject(obj) {
|
|
157
158
|
return (0, sql_js_1.sql) `json_build_object(${sql_js_1.sql.join(Object.keys(obj).flatMap((k) => [sql_js_1.sql.lit(k), obj[k]]))})`;
|
|
158
159
|
}
|
|
160
|
+
/**
|
|
161
|
+
* The PostgreSQL `merge_action` function.
|
|
162
|
+
*
|
|
163
|
+
* This function can be used in a `returning` clause to get the action that was
|
|
164
|
+
* performed in a `mergeInto` query. The function returns one of the following
|
|
165
|
+
* strings: `'INSERT'`, `'UPDATE'`, or `'DELETE'`.
|
|
166
|
+
*
|
|
167
|
+
* ### Examples
|
|
168
|
+
*
|
|
169
|
+
* ```ts
|
|
170
|
+
* import { mergeAction } from 'kysely/helpers/postgres'
|
|
171
|
+
*
|
|
172
|
+
* const result = await db
|
|
173
|
+
* .mergeInto('person as p')
|
|
174
|
+
* .using('person_backup as pb', 'p.id', 'pb.id')
|
|
175
|
+
* .whenMatched()
|
|
176
|
+
* .thenUpdateSet(({ ref }) => ({
|
|
177
|
+
* first_name: ref('pb.first_name'),
|
|
178
|
+
* updated_at: ref('pb.updated_at').$castTo<string | null>(),
|
|
179
|
+
* }))
|
|
180
|
+
* .whenNotMatched()
|
|
181
|
+
* .thenInsertValues(({ ref}) => ({
|
|
182
|
+
* id: ref('pb.id'),
|
|
183
|
+
* first_name: ref('pb.first_name'),
|
|
184
|
+
* created_at: ref('pb.updated_at'),
|
|
185
|
+
* updated_at: ref('pb.updated_at').$castTo<string | null>(),
|
|
186
|
+
* }))
|
|
187
|
+
* .returning([mergeAction().as('action'), 'p.id', 'p.updated_at'])
|
|
188
|
+
* .execute()
|
|
189
|
+
*
|
|
190
|
+
* result[0].action
|
|
191
|
+
* ```
|
|
192
|
+
*
|
|
193
|
+
* The generated SQL (PostgreSQL):
|
|
194
|
+
*
|
|
195
|
+
* ```sql
|
|
196
|
+
* merge into "person" as "p"
|
|
197
|
+
* using "person_backup" as "pb" on "p"."id" = "pb"."id"
|
|
198
|
+
* when matched then update set
|
|
199
|
+
* "first_name" = "pb"."first_name",
|
|
200
|
+
* "updated_at" = "pb"."updated_at"::text
|
|
201
|
+
* when not matched then insert values ("id", "first_name", "created_at", "updated_at")
|
|
202
|
+
* values ("pb"."id", "pb"."first_name", "pb"."updated_at", "pb"."updated_at")
|
|
203
|
+
* returning merge_action() as "action", "p"."id", "p"."updated_at"
|
|
204
|
+
* ```
|
|
205
|
+
*/
|
|
206
|
+
function mergeAction() {
|
|
207
|
+
return (0, sql_js_1.sql) `merge_action()`;
|
|
208
|
+
}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export * from './query-builder/where-interface.js';
|
|
|
7
7
|
export * from './query-builder/returning-interface.js';
|
|
8
8
|
export * from './query-builder/output-interface.js';
|
|
9
9
|
export * from './query-builder/having-interface.js';
|
|
10
|
+
export * from './query-builder/order-by-interface.js';
|
|
10
11
|
export * from './query-builder/select-query-builder.js';
|
|
11
12
|
export * from './query-builder/insert-query-builder.js';
|
|
12
13
|
export * from './query-builder/update-query-builder.js';
|
|
@@ -23,6 +24,7 @@ export * from './query-builder/case-builder.js';
|
|
|
23
24
|
export * from './query-builder/json-path-builder.js';
|
|
24
25
|
export * from './query-builder/merge-query-builder.js';
|
|
25
26
|
export * from './query-builder/merge-result.js';
|
|
27
|
+
export * from './query-builder/order-by-item-builder.js';
|
|
26
28
|
export * from './raw-builder/raw-builder.js';
|
|
27
29
|
export * from './raw-builder/sql.js';
|
|
28
30
|
export * from './query-executor/query-executor.js';
|
|
@@ -44,6 +46,7 @@ export * from './schema/column-definition-builder.js';
|
|
|
44
46
|
export * from './schema/foreign-key-constraint-builder.js';
|
|
45
47
|
export * from './schema/alter-table-builder.js';
|
|
46
48
|
export * from './schema/create-view-builder.js';
|
|
49
|
+
export * from './schema/refresh-materialized-view-builder.js';
|
|
47
50
|
export * from './schema/drop-view-builder.js';
|
|
48
51
|
export * from './schema/alter-column-builder.js';
|
|
49
52
|
export * from './dynamic/dynamic.js';
|
|
@@ -90,6 +93,8 @@ export * from './plugin/camel-case/camel-case-plugin.js';
|
|
|
90
93
|
export * from './plugin/deduplicate-joins/deduplicate-joins-plugin.js';
|
|
91
94
|
export * from './plugin/with-schema/with-schema-plugin.js';
|
|
92
95
|
export * from './plugin/parse-json-results/parse-json-results-plugin.js';
|
|
96
|
+
export * from './plugin/handle-empty-in-lists/handle-empty-in-lists-plugin.js';
|
|
97
|
+
export * from './plugin/handle-empty-in-lists/handle-empty-in-lists.js';
|
|
93
98
|
export * from './operation-node/add-column-node.js';
|
|
94
99
|
export * from './operation-node/add-constraint-node.js';
|
|
95
100
|
export * from './operation-node/add-index-node.js';
|
|
@@ -102,6 +107,7 @@ export * from './operation-node/binary-operation-node.js';
|
|
|
102
107
|
export * from './operation-node/case-node.js';
|
|
103
108
|
export * from './operation-node/cast-node.js';
|
|
104
109
|
export * from './operation-node/check-constraint-node.js';
|
|
110
|
+
export * from './operation-node/collate-node.js';
|
|
105
111
|
export * from './operation-node/column-definition-node.js';
|
|
106
112
|
export * from './operation-node/column-node.js';
|
|
107
113
|
export * from './operation-node/column-update-node.js';
|
|
@@ -113,6 +119,7 @@ export * from './operation-node/create-schema-node.js';
|
|
|
113
119
|
export * from './operation-node/create-table-node.js';
|
|
114
120
|
export * from './operation-node/create-type-node.js';
|
|
115
121
|
export * from './operation-node/create-view-node.js';
|
|
122
|
+
export * from './operation-node/refresh-materialized-view-node.js';
|
|
116
123
|
export * from './operation-node/data-type-node.js';
|
|
117
124
|
export * from './operation-node/default-insert-value-node.js';
|
|
118
125
|
export * from './operation-node/default-value-node.js';
|
|
@@ -154,6 +161,7 @@ export * from './operation-node/operation-node-transformer.js';
|
|
|
154
161
|
export * from './operation-node/operation-node-visitor.js';
|
|
155
162
|
export * from './operation-node/operation-node.js';
|
|
156
163
|
export * from './operation-node/operator-node.js';
|
|
164
|
+
export * from './operation-node/or-action-node.js';
|
|
157
165
|
export * from './operation-node/or-node.js';
|
|
158
166
|
export * from './operation-node/order-by-item-node.js';
|
|
159
167
|
export * from './operation-node/order-by-node.js';
|
|
@@ -162,13 +170,14 @@ export * from './operation-node/over-node.js';
|
|
|
162
170
|
export * from './operation-node/parens-node.js';
|
|
163
171
|
export * from './operation-node/partition-by-item-node.js';
|
|
164
172
|
export * from './operation-node/partition-by-node.js';
|
|
165
|
-
export * from './operation-node/primary-constraint-node.js';
|
|
173
|
+
export * from './operation-node/primary-key-constraint-node.js';
|
|
166
174
|
export * from './operation-node/primitive-value-list-node.js';
|
|
167
175
|
export * from './operation-node/query-node.js';
|
|
168
176
|
export * from './operation-node/raw-node.js';
|
|
169
177
|
export * from './operation-node/reference-node.js';
|
|
170
178
|
export * from './operation-node/references-node.js';
|
|
171
179
|
export * from './operation-node/rename-column-node.js';
|
|
180
|
+
export * from './operation-node/rename-constraint-node.js';
|
|
172
181
|
export * from './operation-node/returning-node.js';
|
|
173
182
|
export * from './operation-node/schemable-identifier-node.js';
|
|
174
183
|
export * from './operation-node/select-all-node.js';
|
|
@@ -198,6 +207,7 @@ export * from './util/log.js';
|
|
|
198
207
|
export { AnyAliasedColumn, AnyAliasedColumnWithTable, AnyColumn, AnyColumnWithTable, Equals, UnknownRow, Simplify, SqlBool, Nullable, NotNull, } from './util/type-utils.js';
|
|
199
208
|
export * from './util/infer-result.js';
|
|
200
209
|
export { logOnce } from './util/log-once.js';
|
|
210
|
+
export { createQueryId, QueryId } from './util/query-id.js';
|
|
201
211
|
export { SelectExpression, SelectCallback, SelectArg, Selection, CallbackSelection, } from './parser/select-parser.js';
|
|
202
212
|
export { ReferenceExpression, ReferenceExpressionOrList, SimpleReferenceExpression, StringReference, ExtractTypeFromStringReference, ExtractTypeFromReferenceExpression, } from './parser/reference-parser.js';
|
|
203
213
|
export { ValueExpression, ValueExpressionOrList, } from './parser/value-parser.js';
|
|
@@ -205,7 +215,8 @@ export { SimpleTableReference, TableExpression, TableExpressionOrList, } from '.
|
|
|
205
215
|
export { JoinReferenceExpression, JoinCallbackExpression, } from './parser/join-parser.js';
|
|
206
216
|
export { InsertObject } from './parser/insert-values-parser.js';
|
|
207
217
|
export { UpdateObject } from './parser/update-set-parser.js';
|
|
208
|
-
export { OrderByExpression, OrderByDirectionExpression, } from './parser/order-by-parser.js';
|
|
218
|
+
export { OrderByExpression, OrderByDirectionExpression, OrderByModifiers, OrderByDirection, OrderByModifiersCallbackExpression, } from './parser/order-by-parser.js';
|
|
209
219
|
export { ComparisonOperatorExpression, OperandValueExpression, OperandValueExpressionOrList, FilterObject, } from './parser/binary-operation-parser.js';
|
|
210
220
|
export { ExistsExpression } from './parser/unary-operation-parser.js';
|
|
211
221
|
export { OperandExpression, ExpressionOrFactory, } from './parser/expression-parser.js';
|
|
222
|
+
export { Collation } from './parser/collate-parser.js';
|