kysely 0.23.4 → 0.24.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 +49 -25
- package/dist/cjs/dialect/database-introspector.d.ts +4 -2
- package/dist/cjs/dialect/mysql/mysql-adapter.js +2 -2
- package/dist/cjs/dialect/mysql/mysql-driver.d.ts +1 -1
- package/dist/cjs/dialect/mysql/mysql-driver.js +1 -1
- package/dist/cjs/dialect/mysql/mysql-introspector.d.ts +1 -1
- package/dist/cjs/dialect/mysql/mysql-introspector.js +19 -13
- package/dist/cjs/dialect/postgres/postgres-adapter.js +1 -1
- package/dist/cjs/dialect/postgres/postgres-introspector.d.ts +1 -1
- package/dist/cjs/dialect/postgres/postgres-introspector.js +3 -1
- package/dist/cjs/dialect/sqlite/sqlite-dialect.d.ts +1 -0
- package/dist/cjs/dialect/sqlite/sqlite-dialect.js +1 -0
- package/dist/cjs/dialect/sqlite/sqlite-introspector.d.ts +1 -1
- package/dist/cjs/dialect/sqlite/sqlite-introspector.js +6 -5
- package/dist/cjs/driver/runtime-driver.js +4 -2
- package/dist/cjs/expression/expression-builder.d.ts +386 -0
- package/dist/cjs/expression/expression-builder.js +92 -0
- package/dist/cjs/expression/expression-wrapper.d.ts +92 -0
- package/dist/cjs/expression/expression-wrapper.js +54 -0
- package/dist/cjs/expression/expression.d.ts +1 -1
- package/dist/cjs/helpers/postgres.d.ts +133 -0
- package/dist/cjs/helpers/postgres.js +141 -0
- package/dist/cjs/index.d.ts +4 -3
- package/dist/cjs/index.js +4 -2
- package/dist/cjs/kysely.d.ts +10 -0
- package/dist/cjs/kysely.js +12 -1
- package/dist/cjs/migration/file-migration-provider.d.ts +5 -2
- package/dist/cjs/migration/migrator.d.ts +5 -2
- package/dist/cjs/operation-node/aggregate-function-node.d.ts +3 -2
- package/dist/cjs/operation-node/aggregate-function-node.js +2 -2
- package/dist/cjs/operation-node/create-index-node.d.ts +2 -0
- package/dist/cjs/operation-node/delete-query-node.d.ts +1 -2
- package/dist/cjs/operation-node/delete-query-node.js +2 -8
- package/dist/cjs/operation-node/function-node.d.ts +13 -0
- package/dist/cjs/operation-node/function-node.js +19 -0
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +2 -0
- package/dist/cjs/operation-node/operation-node-transformer.js +11 -2
- package/dist/cjs/operation-node/operation-node-visitor.d.ts +2 -0
- package/dist/cjs/operation-node/operation-node-visitor.js +1 -0
- package/dist/cjs/operation-node/operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/operator-node.d.ts +13 -2
- package/dist/cjs/operation-node/operator-node.js +38 -3
- package/dist/cjs/operation-node/query-node.d.ts +25 -8
- package/dist/cjs/operation-node/query-node.js +9 -2
- package/dist/cjs/operation-node/select-query-node.d.ts +0 -1
- package/dist/cjs/operation-node/select-query-node.js +0 -6
- package/dist/cjs/operation-node/update-query-node.d.ts +0 -1
- package/dist/cjs/operation-node/update-query-node.js +0 -6
- package/dist/cjs/parser/binary-operation-parser.d.ts +9 -10
- package/dist/cjs/parser/binary-operation-parser.js +89 -39
- package/dist/cjs/parser/coalesce-parser.d.ts +0 -2
- package/dist/cjs/parser/coalesce-parser.js +0 -9
- package/dist/cjs/parser/expression-parser.d.ts +7 -3
- package/dist/cjs/parser/expression-parser.js +4 -4
- package/dist/cjs/parser/group-by-parser.d.ts +3 -2
- package/dist/cjs/parser/group-by-parser.js +3 -0
- package/dist/cjs/parser/insert-values-parser.d.ts +4 -1
- package/dist/cjs/parser/insert-values-parser.js +19 -13
- package/dist/cjs/parser/join-parser.js +1 -1
- package/dist/cjs/parser/parse-utils.d.ts +0 -2
- package/dist/cjs/parser/parse-utils.js +1 -8
- package/dist/cjs/parser/returning-parser.d.ts +2 -1
- package/dist/cjs/parser/select-parser.d.ts +5 -13
- package/dist/cjs/parser/select-parser.js +8 -4
- package/dist/cjs/parser/table-parser.d.ts +6 -3
- package/dist/cjs/parser/unary-operation-parser.d.ts +5 -2
- package/dist/cjs/parser/unary-operation-parser.js +9 -8
- package/dist/cjs/parser/update-set-parser.d.ts +4 -1
- package/dist/cjs/parser/update-set-parser.js +9 -4
- package/dist/cjs/parser/value-parser.d.ts +5 -0
- package/dist/cjs/parser/value-parser.js +1 -3
- package/dist/cjs/plugin/camel-case/camel-case-plugin.d.ts +7 -0
- package/dist/cjs/plugin/camel-case/camel-case-plugin.js +10 -4
- package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.d.ts +1 -1
- package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
- package/dist/cjs/query-builder/aggregate-function-builder.d.ts +40 -113
- package/dist/cjs/query-builder/aggregate-function-builder.js +23 -63
- package/dist/cjs/query-builder/delete-query-builder.d.ts +224 -205
- package/dist/cjs/query-builder/delete-query-builder.js +21 -27
- package/dist/cjs/query-builder/delete-result.js +3 -0
- package/dist/cjs/query-builder/deprecated-having-expression-builder.d.ts +62 -0
- package/dist/cjs/query-builder/deprecated-having-expression-builder.js +2 -0
- package/dist/cjs/query-builder/deprecated-on-expression-builder.d.ts +62 -0
- package/dist/cjs/query-builder/deprecated-on-expression-builder.js +2 -0
- package/dist/cjs/query-builder/deprecated-where-expression-builder.d.ts +62 -0
- package/dist/cjs/query-builder/deprecated-where-expression-builder.js +2 -0
- package/dist/cjs/query-builder/function-module.d.ts +304 -42
- package/dist/cjs/query-builder/function-module.js +44 -208
- package/dist/cjs/query-builder/having-interface.d.ts +19 -16
- package/dist/cjs/query-builder/insert-query-builder.d.ts +78 -30
- package/dist/cjs/query-builder/insert-query-builder.js +21 -30
- package/dist/cjs/query-builder/insert-result.js +3 -0
- package/dist/cjs/query-builder/join-builder.d.ts +23 -26
- package/dist/cjs/query-builder/join-builder.js +17 -22
- package/dist/cjs/query-builder/no-result-error.d.ts +1 -0
- package/dist/cjs/query-builder/no-result-error.js +5 -1
- package/dist/cjs/query-builder/on-conflict-builder.d.ts +158 -276
- package/dist/cjs/query-builder/on-conflict-builder.js +52 -36
- package/dist/cjs/query-builder/over-builder.d.ts +5 -0
- package/dist/cjs/query-builder/over-builder.js +7 -0
- package/dist/cjs/query-builder/returning-interface.d.ts +2 -2
- package/dist/cjs/query-builder/select-query-builder.d.ts +155 -243
- package/dist/cjs/query-builder/select-query-builder.js +333 -78
- package/dist/cjs/query-builder/update-query-builder.d.ts +149 -217
- package/dist/cjs/query-builder/update-query-builder.js +21 -115
- package/dist/cjs/query-builder/update-result.js +3 -0
- package/dist/cjs/query-builder/where-interface.d.ts +71 -184
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +3 -0
- package/dist/cjs/query-compiler/default-query-compiler.js +18 -2
- package/dist/cjs/query-creator.d.ts +38 -2
- package/dist/cjs/query-creator.js +3 -45
- package/dist/cjs/query-executor/query-executor.d.ts +3 -3
- package/dist/cjs/raw-builder/raw-builder.d.ts +5 -3
- package/dist/cjs/raw-builder/raw-builder.js +13 -7
- package/dist/cjs/raw-builder/sql.d.ts +17 -9
- package/dist/cjs/raw-builder/sql.js +8 -2
- package/dist/cjs/schema/alter-column-builder.d.ts +5 -0
- package/dist/cjs/schema/alter-column-builder.js +7 -0
- package/dist/cjs/schema/alter-table-add-foreign-key-constraint-builder.d.ts +5 -0
- package/dist/cjs/schema/alter-table-add-foreign-key-constraint-builder.js +7 -0
- package/dist/cjs/schema/alter-table-drop-constraint-builder.d.ts +5 -0
- package/dist/cjs/schema/alter-table-drop-constraint-builder.js +7 -0
- package/dist/cjs/schema/column-definition-builder.d.ts +6 -1
- package/dist/cjs/schema/column-definition-builder.js +8 -1
- package/dist/cjs/schema/create-index-builder.d.ts +51 -9
- package/dist/cjs/schema/create-index-builder.js +17 -0
- package/dist/cjs/schema/create-schema-builder.d.ts +5 -0
- package/dist/cjs/schema/create-schema-builder.js +7 -0
- package/dist/cjs/schema/create-table-builder.d.ts +3 -1
- package/dist/cjs/schema/create-table-builder.js +3 -1
- package/dist/cjs/schema/create-type-builder.d.ts +5 -0
- package/dist/cjs/schema/create-type-builder.js +7 -0
- package/dist/cjs/schema/create-view-builder.d.ts +5 -0
- package/dist/cjs/schema/create-view-builder.js +7 -0
- package/dist/cjs/schema/drop-index-builder.d.ts +5 -0
- package/dist/cjs/schema/drop-index-builder.js +7 -0
- package/dist/cjs/schema/drop-schema-builder.d.ts +5 -0
- package/dist/cjs/schema/drop-schema-builder.js +7 -0
- package/dist/cjs/schema/drop-table-builder.d.ts +5 -0
- package/dist/cjs/schema/drop-table-builder.js +7 -0
- package/dist/cjs/schema/drop-type-builder.d.ts +5 -0
- package/dist/cjs/schema/drop-type-builder.js +7 -0
- package/dist/cjs/schema/drop-view-builder.d.ts +5 -0
- package/dist/cjs/schema/drop-view-builder.js +7 -0
- package/dist/cjs/schema/foreign-key-constraint-builder.d.ts +5 -0
- package/dist/cjs/schema/foreign-key-constraint-builder.js +7 -0
- package/dist/cjs/util/compilable.d.ts +1 -0
- package/dist/cjs/util/compilable.js +6 -0
- package/dist/cjs/util/explainable.d.ts +35 -0
- package/dist/cjs/util/log.d.ts +2 -0
- package/dist/cjs/util/object-utils.js +1 -1
- package/dist/cjs/util/streamable.d.ts +29 -0
- package/dist/cjs/util/streamable.js +2 -0
- package/dist/cjs/util/type-utils.d.ts +6 -4
- package/dist/esm/dialect/database-introspector.d.ts +4 -2
- package/dist/esm/dialect/mysql/mysql-adapter.js +2 -2
- package/dist/esm/dialect/mysql/mysql-driver.d.ts +1 -1
- package/dist/esm/dialect/mysql/mysql-driver.js +1 -1
- package/dist/esm/dialect/mysql/mysql-introspector.d.ts +1 -1
- package/dist/esm/dialect/mysql/mysql-introspector.js +19 -13
- package/dist/esm/dialect/postgres/postgres-adapter.js +1 -1
- package/dist/esm/dialect/postgres/postgres-introspector.d.ts +1 -1
- package/dist/esm/dialect/postgres/postgres-introspector.js +3 -1
- package/dist/esm/dialect/sqlite/sqlite-dialect.d.ts +1 -0
- package/dist/esm/dialect/sqlite/sqlite-dialect.js +1 -0
- package/dist/esm/dialect/sqlite/sqlite-introspector.d.ts +1 -1
- package/dist/esm/dialect/sqlite/sqlite-introspector.js +6 -5
- package/dist/esm/driver/runtime-driver.js +4 -2
- package/dist/esm/expression/expression-builder.d.ts +386 -0
- package/dist/esm/expression/expression-builder.js +88 -0
- package/dist/esm/expression/expression-wrapper.d.ts +92 -0
- package/dist/esm/expression/expression-wrapper.js +50 -0
- package/dist/esm/expression/expression.d.ts +1 -1
- package/dist/esm/helpers/postgres.d.ts +133 -0
- package/dist/esm/helpers/postgres.js +136 -0
- package/dist/esm/index.d.ts +4 -3
- package/dist/esm/index.js +2 -1
- package/dist/esm/kysely.d.ts +10 -0
- package/dist/esm/kysely.js +13 -2
- package/dist/esm/migration/file-migration-provider.d.ts +5 -2
- package/dist/esm/migration/migrator.d.ts +5 -2
- package/dist/esm/operation-node/aggregate-function-node.d.ts +3 -2
- package/dist/esm/operation-node/aggregate-function-node.js +2 -2
- package/dist/esm/operation-node/create-index-node.d.ts +2 -0
- package/dist/esm/operation-node/delete-query-node.d.ts +1 -2
- package/dist/esm/operation-node/delete-query-node.js +2 -8
- package/dist/esm/operation-node/function-node.d.ts +13 -0
- package/dist/esm/operation-node/function-node.js +17 -0
- package/dist/esm/operation-node/operation-node-transformer.d.ts +2 -0
- package/dist/esm/operation-node/operation-node-transformer.js +11 -2
- package/dist/esm/operation-node/operation-node-visitor.d.ts +2 -0
- package/dist/esm/operation-node/operation-node-visitor.js +1 -0
- package/dist/esm/operation-node/operation-node.d.ts +1 -1
- package/dist/esm/operation-node/operator-node.d.ts +13 -2
- package/dist/esm/operation-node/operator-node.js +34 -3
- package/dist/esm/operation-node/query-node.d.ts +25 -8
- package/dist/esm/operation-node/query-node.js +9 -2
- package/dist/esm/operation-node/select-query-node.d.ts +0 -1
- package/dist/esm/operation-node/select-query-node.js +0 -6
- package/dist/esm/operation-node/update-query-node.d.ts +0 -1
- package/dist/esm/operation-node/update-query-node.js +0 -6
- package/dist/esm/parser/binary-operation-parser.d.ts +9 -10
- package/dist/esm/parser/binary-operation-parser.js +85 -37
- package/dist/esm/parser/coalesce-parser.d.ts +0 -2
- package/dist/esm/parser/coalesce-parser.js +1 -7
- package/dist/esm/parser/expression-parser.d.ts +7 -3
- package/dist/esm/parser/expression-parser.js +5 -5
- package/dist/esm/parser/group-by-parser.d.ts +3 -2
- package/dist/esm/parser/group-by-parser.js +3 -0
- package/dist/esm/parser/insert-values-parser.d.ts +4 -1
- package/dist/esm/parser/insert-values-parser.js +18 -12
- package/dist/esm/parser/join-parser.js +2 -2
- package/dist/esm/parser/parse-utils.d.ts +0 -2
- package/dist/esm/parser/parse-utils.js +0 -6
- package/dist/esm/parser/returning-parser.d.ts +2 -1
- package/dist/esm/parser/select-parser.d.ts +5 -13
- package/dist/esm/parser/select-parser.js +7 -3
- package/dist/esm/parser/table-parser.d.ts +6 -3
- package/dist/esm/parser/unary-operation-parser.d.ts +5 -2
- package/dist/esm/parser/unary-operation-parser.js +8 -8
- package/dist/esm/parser/update-set-parser.d.ts +4 -1
- package/dist/esm/parser/update-set-parser.js +7 -2
- package/dist/esm/parser/value-parser.d.ts +5 -0
- package/dist/esm/parser/value-parser.js +1 -3
- package/dist/esm/plugin/camel-case/camel-case-plugin.d.ts +7 -0
- package/dist/esm/plugin/camel-case/camel-case-plugin.js +10 -4
- package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.d.ts +1 -1
- package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
- package/dist/esm/query-builder/aggregate-function-builder.d.ts +40 -113
- package/dist/esm/query-builder/aggregate-function-builder.js +24 -64
- package/dist/esm/query-builder/delete-query-builder.d.ts +224 -205
- package/dist/esm/query-builder/delete-query-builder.js +24 -30
- package/dist/esm/query-builder/delete-result.js +3 -0
- package/dist/esm/query-builder/deprecated-having-expression-builder.d.ts +62 -0
- package/dist/esm/query-builder/deprecated-having-expression-builder.js +2 -0
- package/dist/esm/query-builder/deprecated-on-expression-builder.d.ts +62 -0
- package/dist/esm/query-builder/deprecated-on-expression-builder.js +2 -0
- package/dist/esm/query-builder/deprecated-where-expression-builder.d.ts +62 -0
- package/dist/esm/query-builder/deprecated-where-expression-builder.js +2 -0
- package/dist/esm/query-builder/function-module.d.ts +304 -42
- package/dist/esm/query-builder/function-module.js +43 -207
- package/dist/esm/query-builder/having-interface.d.ts +19 -16
- package/dist/esm/query-builder/insert-query-builder.d.ts +78 -30
- package/dist/esm/query-builder/insert-query-builder.js +25 -34
- package/dist/esm/query-builder/insert-result.js +3 -0
- package/dist/esm/query-builder/join-builder.d.ts +23 -26
- package/dist/esm/query-builder/join-builder.js +18 -23
- package/dist/esm/query-builder/no-result-error.d.ts +1 -0
- package/dist/esm/query-builder/no-result-error.js +3 -0
- package/dist/esm/query-builder/on-conflict-builder.d.ts +158 -276
- package/dist/esm/query-builder/on-conflict-builder.js +54 -38
- package/dist/esm/query-builder/over-builder.d.ts +5 -0
- package/dist/esm/query-builder/over-builder.js +7 -0
- package/dist/esm/query-builder/returning-interface.d.ts +2 -2
- package/dist/esm/query-builder/select-query-builder.d.ts +155 -243
- package/dist/esm/query-builder/select-query-builder.js +337 -82
- package/dist/esm/query-builder/update-query-builder.d.ts +149 -217
- package/dist/esm/query-builder/update-query-builder.js +25 -119
- package/dist/esm/query-builder/update-result.js +3 -0
- package/dist/esm/query-builder/where-interface.d.ts +71 -184
- package/dist/esm/query-compiler/default-query-compiler.d.ts +3 -0
- package/dist/esm/query-compiler/default-query-compiler.js +18 -2
- package/dist/esm/query-creator.d.ts +38 -2
- package/dist/esm/query-creator.js +3 -45
- package/dist/esm/query-executor/query-executor.d.ts +3 -3
- package/dist/esm/raw-builder/raw-builder.d.ts +5 -3
- package/dist/esm/raw-builder/raw-builder.js +13 -7
- package/dist/esm/raw-builder/sql.d.ts +17 -9
- package/dist/esm/raw-builder/sql.js +8 -2
- package/dist/esm/schema/alter-column-builder.d.ts +5 -0
- package/dist/esm/schema/alter-column-builder.js +7 -0
- package/dist/esm/schema/alter-table-add-foreign-key-constraint-builder.d.ts +5 -0
- package/dist/esm/schema/alter-table-add-foreign-key-constraint-builder.js +7 -0
- package/dist/esm/schema/alter-table-drop-constraint-builder.d.ts +5 -0
- package/dist/esm/schema/alter-table-drop-constraint-builder.js +7 -0
- package/dist/esm/schema/column-definition-builder.d.ts +6 -1
- package/dist/esm/schema/column-definition-builder.js +8 -1
- package/dist/esm/schema/create-index-builder.d.ts +51 -9
- package/dist/esm/schema/create-index-builder.js +17 -0
- package/dist/esm/schema/create-schema-builder.d.ts +5 -0
- package/dist/esm/schema/create-schema-builder.js +7 -0
- package/dist/esm/schema/create-table-builder.d.ts +3 -1
- package/dist/esm/schema/create-table-builder.js +3 -1
- package/dist/esm/schema/create-type-builder.d.ts +5 -0
- package/dist/esm/schema/create-type-builder.js +7 -0
- package/dist/esm/schema/create-view-builder.d.ts +5 -0
- package/dist/esm/schema/create-view-builder.js +7 -0
- package/dist/esm/schema/drop-index-builder.d.ts +5 -0
- package/dist/esm/schema/drop-index-builder.js +7 -0
- package/dist/esm/schema/drop-schema-builder.d.ts +5 -0
- package/dist/esm/schema/drop-schema-builder.js +7 -0
- package/dist/esm/schema/drop-table-builder.d.ts +5 -0
- package/dist/esm/schema/drop-table-builder.js +7 -0
- package/dist/esm/schema/drop-type-builder.d.ts +5 -0
- package/dist/esm/schema/drop-type-builder.js +7 -0
- package/dist/esm/schema/drop-view-builder.d.ts +5 -0
- package/dist/esm/schema/drop-view-builder.js +7 -0
- package/dist/esm/schema/foreign-key-constraint-builder.d.ts +5 -0
- package/dist/esm/schema/foreign-key-constraint-builder.js +7 -0
- package/dist/esm/util/compilable.d.ts +1 -0
- package/dist/esm/util/compilable.js +4 -1
- package/dist/esm/util/explainable.d.ts +35 -0
- package/dist/esm/util/log.d.ts +2 -0
- package/dist/esm/util/object-utils.js +1 -1
- package/dist/esm/util/streamable.d.ts +29 -0
- package/dist/esm/util/streamable.js +2 -0
- package/dist/esm/util/type-utils.d.ts +6 -4
- package/helpers/postgres.d.ts +1 -0
- package/helpers/postgres.js +1 -0
- package/package.json +20 -9
- package/dist/cjs/query-builder/expression-builder.d.ts +0 -126
- package/dist/cjs/query-builder/expression-builder.js +0 -107
- package/dist/esm/query-builder/expression-builder.d.ts +0 -126
- package/dist/esm/query-builder/expression-builder.js +0 -104
|
@@ -2,7 +2,7 @@ import { SelectQueryBuilder } from './query-builder/select-query-builder.js';
|
|
|
2
2
|
import { InsertQueryBuilder } from './query-builder/insert-query-builder.js';
|
|
3
3
|
import { DeleteQueryBuilder } from './query-builder/delete-query-builder.js';
|
|
4
4
|
import { UpdateQueryBuilder } from './query-builder/update-query-builder.js';
|
|
5
|
-
import { TableExpression, From, FromTables, TableReference } from './parser/table-parser.js';
|
|
5
|
+
import { TableExpression, From, FromTables, TableReference, ExtractTableAlias, AnyAliasedTable, PickTableWithAlias } from './parser/table-parser.js';
|
|
6
6
|
import { QueryExecutor } from './query-executor/query-executor.js';
|
|
7
7
|
import { CommonTableExpression, QueryCreatorWithCommonTableExpression, RecursiveCommonTableExpression } from './parser/with-parser.js';
|
|
8
8
|
import { WithNode } from './operation-node/with-node.js';
|
|
@@ -120,7 +120,10 @@ export declare class QueryCreator<DB> {
|
|
|
120
120
|
* (select 1 as one) as "q"
|
|
121
121
|
* ```
|
|
122
122
|
*/
|
|
123
|
+
selectFrom<TE extends keyof DB & string>(from: TE[]): SelectQueryBuilder<DB, ExtractTableAlias<DB, TE>, {}>;
|
|
123
124
|
selectFrom<TE extends TableExpression<DB, keyof DB>>(from: TE[]): SelectQueryBuilder<From<DB, TE>, FromTables<DB, never, TE>, {}>;
|
|
125
|
+
selectFrom<TE extends keyof DB & string>(from: TE): SelectQueryBuilder<DB, ExtractTableAlias<DB, TE>, {}>;
|
|
126
|
+
selectFrom<TE extends AnyAliasedTable<DB>>(from: TE): SelectQueryBuilder<DB & PickTableWithAlias<DB, TE>, ExtractTableAlias<DB, TE>, {}>;
|
|
124
127
|
selectFrom<TE extends TableExpression<DB, keyof DB>>(from: TE): SelectQueryBuilder<From<DB, TE>, FromTables<DB, never, TE>, {}>;
|
|
125
128
|
/**
|
|
126
129
|
* Creates an insert query.
|
|
@@ -198,6 +201,8 @@ export declare class QueryCreator<DB> {
|
|
|
198
201
|
*
|
|
199
202
|
* ### Examples
|
|
200
203
|
*
|
|
204
|
+
* Deleting person with id 1:
|
|
205
|
+
*
|
|
201
206
|
* ```ts
|
|
202
207
|
* const result = await db
|
|
203
208
|
* .deleteFrom('person')
|
|
@@ -206,7 +211,36 @@ export declare class QueryCreator<DB> {
|
|
|
206
211
|
*
|
|
207
212
|
* console.log(result.numDeletedRows)
|
|
208
213
|
* ```
|
|
214
|
+
*
|
|
215
|
+
* The generated SQL (PostgreSQL):
|
|
216
|
+
*
|
|
217
|
+
* ```sql
|
|
218
|
+
* delete from "person" where "person"."id" = $1
|
|
219
|
+
* ```
|
|
220
|
+
*
|
|
221
|
+
* Some databases such as MySQL support deleting from multiple tables:
|
|
222
|
+
*
|
|
223
|
+
* ```ts
|
|
224
|
+
* const result = await db
|
|
225
|
+
* .deleteFrom(['person', 'pet'])
|
|
226
|
+
* .using('person')
|
|
227
|
+
* .innerJoin('pet', 'pet.owner_id', '=', 'person.id')
|
|
228
|
+
* .where('person.id', '=', 1)
|
|
229
|
+
* .executeTakeFirst()
|
|
230
|
+
* ```
|
|
231
|
+
*
|
|
232
|
+
* The generated SQL (MySQL):
|
|
233
|
+
*
|
|
234
|
+
* ```sql
|
|
235
|
+
* delete from `person`, `pet`
|
|
236
|
+
* using `person`
|
|
237
|
+
* inner join `pet` on `pet`.`owner_id` = `person`.`id`
|
|
238
|
+
* where `person`.`id` = ?
|
|
239
|
+
* ```
|
|
209
240
|
*/
|
|
241
|
+
deleteFrom<TR extends keyof DB & string>(from: TR[]): DeleteQueryBuilder<DB, ExtractTableAlias<DB, TR>, DeleteResult>;
|
|
242
|
+
deleteFrom<TR extends TableReference<DB>>(tables: TR[]): DeleteQueryBuilder<From<DB, TR>, FromTables<DB, never, TR>, DeleteResult>;
|
|
243
|
+
deleteFrom<TR extends keyof DB & string>(from: TR): DeleteQueryBuilder<DB, ExtractTableAlias<DB, TR>, DeleteResult>;
|
|
210
244
|
deleteFrom<TR extends TableReference<DB>>(table: TR): DeleteQueryBuilder<From<DB, TR>, FromTables<DB, never, TR>, DeleteResult>;
|
|
211
245
|
/**
|
|
212
246
|
* Creates an update query.
|
|
@@ -231,6 +265,8 @@ export declare class QueryCreator<DB> {
|
|
|
231
265
|
* console.log(result.numUpdatedRows)
|
|
232
266
|
* ```
|
|
233
267
|
*/
|
|
268
|
+
updateTable<TR extends keyof DB & string>(table: TR): UpdateQueryBuilder<DB, ExtractTableAlias<DB, TR>, ExtractTableAlias<DB, TR>, UpdateResult>;
|
|
269
|
+
updateTable<TR extends AnyAliasedTable<DB>>(table: TR): UpdateQueryBuilder<DB & PickTableWithAlias<DB, TR>, ExtractTableAlias<DB, TR>, ExtractTableAlias<DB, TR>, UpdateResult>;
|
|
234
270
|
updateTable<TR extends TableReference<DB>>(table: TR): UpdateQueryBuilder<From<DB, TR>, FromTables<DB, never, TR>, FromTables<DB, never, TR>, UpdateResult>;
|
|
235
271
|
/**
|
|
236
272
|
* Creates a `with` query (Common Table Expression).
|
|
@@ -295,7 +331,7 @@ export declare class QueryCreator<DB> {
|
|
|
295
331
|
* This only affects the query created through the builder returned from
|
|
296
332
|
* this method and doesn't modify the `db` instance.
|
|
297
333
|
*
|
|
298
|
-
* See [this recipe](https://github.com/koskimas/kysely/tree/master/recipes/schemas.md)
|
|
334
|
+
* See [this recipe](https://github.com/koskimas/kysely/tree/master/site/docs/recipes/schemas.md)
|
|
299
335
|
* for a more detailed explanation.
|
|
300
336
|
*
|
|
301
337
|
* ### Examples
|
|
@@ -105,55 +105,13 @@ class QueryCreator {
|
|
|
105
105
|
queryNode: insert_query_node_js_1.InsertQueryNode.create((0, table_parser_js_1.parseTable)(table), this.#props.withNode, true),
|
|
106
106
|
});
|
|
107
107
|
}
|
|
108
|
-
|
|
109
|
-
* Creates a delete query.
|
|
110
|
-
*
|
|
111
|
-
* See the {@link DeleteQueryBuilder.where} method for examples on how to specify
|
|
112
|
-
* a where clause for the delete operation.
|
|
113
|
-
*
|
|
114
|
-
* The return value of the query is an instance of {@link DeleteResult}.
|
|
115
|
-
*
|
|
116
|
-
* ### Examples
|
|
117
|
-
*
|
|
118
|
-
* ```ts
|
|
119
|
-
* const result = await db
|
|
120
|
-
* .deleteFrom('person')
|
|
121
|
-
* .where('person.id', '=', 1)
|
|
122
|
-
* .executeTakeFirst()
|
|
123
|
-
*
|
|
124
|
-
* console.log(result.numDeletedRows)
|
|
125
|
-
* ```
|
|
126
|
-
*/
|
|
127
|
-
deleteFrom(table) {
|
|
108
|
+
deleteFrom(tables) {
|
|
128
109
|
return new delete_query_builder_js_1.DeleteQueryBuilder({
|
|
129
110
|
queryId: (0, query_id_js_1.createQueryId)(),
|
|
130
111
|
executor: this.#props.executor,
|
|
131
|
-
queryNode: delete_query_node_js_1.DeleteQueryNode.create((0, table_parser_js_1.
|
|
112
|
+
queryNode: delete_query_node_js_1.DeleteQueryNode.create((0, table_parser_js_1.parseTableExpressionOrList)(tables), this.#props.withNode),
|
|
132
113
|
});
|
|
133
114
|
}
|
|
134
|
-
/**
|
|
135
|
-
* Creates an update query.
|
|
136
|
-
*
|
|
137
|
-
* See the {@link UpdateQueryBuilder.where} method for examples on how to specify
|
|
138
|
-
* a where clause for the update operation.
|
|
139
|
-
*
|
|
140
|
-
* See the {@link UpdateQueryBuilder.set} method for examples on how to
|
|
141
|
-
* specify the updates.
|
|
142
|
-
*
|
|
143
|
-
* The return value of the query is an {@link UpdateResult}.
|
|
144
|
-
*
|
|
145
|
-
* ### Examples
|
|
146
|
-
*
|
|
147
|
-
* ```ts
|
|
148
|
-
* const result = await db
|
|
149
|
-
* .updateTable('person')
|
|
150
|
-
* .set({ first_name: 'Jennifer' })
|
|
151
|
-
* .where('person.id', '=', 1)
|
|
152
|
-
* .executeTakeFirst()
|
|
153
|
-
*
|
|
154
|
-
* console.log(result.numUpdatedRows)
|
|
155
|
-
* ```
|
|
156
|
-
*/
|
|
157
115
|
updateTable(table) {
|
|
158
116
|
return new update_query_builder_js_1.UpdateQueryBuilder({
|
|
159
117
|
queryId: (0, query_id_js_1.createQueryId)(),
|
|
@@ -250,7 +208,7 @@ class QueryCreator {
|
|
|
250
208
|
* This only affects the query created through the builder returned from
|
|
251
209
|
* this method and doesn't modify the `db` instance.
|
|
252
210
|
*
|
|
253
|
-
* See [this recipe](https://github.com/koskimas/kysely/tree/master/recipes/schemas.md)
|
|
211
|
+
* See [this recipe](https://github.com/koskimas/kysely/tree/master/site/docs/recipes/schemas.md)
|
|
254
212
|
* for a more detailed explanation.
|
|
255
213
|
*
|
|
256
214
|
* ### Examples
|
|
@@ -31,18 +31,18 @@ export interface QueryExecutor extends ConnectionProvider {
|
|
|
31
31
|
* the output of {@link transformQuery} into this method but you can
|
|
32
32
|
* compile any query using this method.
|
|
33
33
|
*/
|
|
34
|
-
compileQuery(node: RootOperationNode, queryId: QueryId): CompiledQuery
|
|
34
|
+
compileQuery<R = unknown>(node: RootOperationNode, queryId: QueryId): CompiledQuery<R>;
|
|
35
35
|
/**
|
|
36
36
|
* Executes a compiled query and runs the result through all plugins'
|
|
37
37
|
* `transformResult` method.
|
|
38
38
|
*/
|
|
39
|
-
executeQuery<R>(compiledQuery: CompiledQuery
|
|
39
|
+
executeQuery<R>(compiledQuery: CompiledQuery<R>, queryId: QueryId): Promise<QueryResult<R>>;
|
|
40
40
|
/**
|
|
41
41
|
* Executes a compiled query and runs the result through all plugins'
|
|
42
42
|
* `transformResult` method. Results are streamead instead of loaded
|
|
43
43
|
* at once.
|
|
44
44
|
*/
|
|
45
|
-
stream<R>(compiledQuery: CompiledQuery
|
|
45
|
+
stream<R>(compiledQuery: CompiledQuery<R>,
|
|
46
46
|
/**
|
|
47
47
|
* How many rows should be pulled from the database at once. Supported
|
|
48
48
|
* only by the postgres driver.
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { QueryResult } from '../driver/database-connection.js';
|
|
2
2
|
import { AliasNode } from '../operation-node/alias-node.js';
|
|
3
3
|
import { RawNode } from '../operation-node/raw-node.js';
|
|
4
|
+
import { CompiledQuery } from '../query-compiler/compiled-query.js';
|
|
4
5
|
import { KyselyPlugin } from '../plugin/kysely-plugin.js';
|
|
5
6
|
import { QueryExecutorProvider } from '../query-executor/query-executor-provider.js';
|
|
6
7
|
import { QueryId } from '../util/query-id.js';
|
|
@@ -86,7 +87,7 @@ export declare class RawBuilder<O> implements Expression<O> {
|
|
|
86
87
|
* ```
|
|
87
88
|
*/
|
|
88
89
|
as<A extends string>(alias: A): AliasedRawBuilder<O, A>;
|
|
89
|
-
as<A extends string
|
|
90
|
+
as<A extends string>(alias: Expression<any>): AliasedRawBuilder<O, A>;
|
|
90
91
|
/**
|
|
91
92
|
* Change the output type of the raw expression.
|
|
92
93
|
*
|
|
@@ -117,6 +118,7 @@ export declare class RawBuilder<O> implements Expression<O> {
|
|
|
117
118
|
* ```
|
|
118
119
|
*/
|
|
119
120
|
toOperationNode(): RawNode;
|
|
121
|
+
compile(executorProvider: QueryExecutorProvider): CompiledQuery<O>;
|
|
120
122
|
execute(executorProvider: QueryExecutorProvider): Promise<QueryResult<O>>;
|
|
121
123
|
}
|
|
122
124
|
export declare function isRawBuilder(obj: unknown): obj is RawBuilder<unknown>;
|
|
@@ -125,7 +127,7 @@ export declare function isRawBuilder(obj: unknown): obj is RawBuilder<unknown>;
|
|
|
125
127
|
*/
|
|
126
128
|
export declare class AliasedRawBuilder<O = unknown, A extends string = never> implements AliasedExpression<O, A> {
|
|
127
129
|
#private;
|
|
128
|
-
constructor(rawBuilder: RawBuilder<O>, alias: A | Expression<
|
|
130
|
+
constructor(rawBuilder: RawBuilder<O>, alias: A | Expression<unknown>);
|
|
129
131
|
/** @private */
|
|
130
132
|
/**
|
|
131
133
|
* Returns the aliased expression.
|
|
@@ -135,7 +137,7 @@ export declare class AliasedRawBuilder<O = unknown, A extends string = never> im
|
|
|
135
137
|
/**
|
|
136
138
|
* Returns the alias.
|
|
137
139
|
*/
|
|
138
|
-
get alias(): A
|
|
140
|
+
get alias(): A | Expression<unknown>;
|
|
139
141
|
/**
|
|
140
142
|
* Creates the OperationNode that describes how to compile this expression into SQL.
|
|
141
143
|
*/
|
|
@@ -52,17 +52,23 @@ class RawBuilder {
|
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
54
|
toOperationNode() {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
return this.#
|
|
55
|
+
return this.#toOperationNode(this.#getExecutor());
|
|
56
|
+
}
|
|
57
|
+
compile(executorProvider) {
|
|
58
|
+
return this.#compile(this.#getExecutor(executorProvider));
|
|
59
59
|
}
|
|
60
60
|
async execute(executorProvider) {
|
|
61
|
-
const executor = this.#
|
|
62
|
-
? executorProvider.getExecutor().withPlugins(this.#props.plugins)
|
|
63
|
-
: executorProvider.getExecutor();
|
|
61
|
+
const executor = this.#getExecutor(executorProvider);
|
|
64
62
|
return executor.executeQuery(this.#compile(executor), this.#props.queryId);
|
|
65
63
|
}
|
|
64
|
+
#getExecutor(executorProvider) {
|
|
65
|
+
const executor = executorProvider !== undefined
|
|
66
|
+
? executorProvider.getExecutor()
|
|
67
|
+
: noop_query_executor_js_1.NOOP_QUERY_EXECUTOR;
|
|
68
|
+
return this.#props.plugins !== undefined
|
|
69
|
+
? executor.withPlugins(this.#props.plugins)
|
|
70
|
+
: executor;
|
|
71
|
+
}
|
|
66
72
|
#toOperationNode(executor) {
|
|
67
73
|
return executor.transformQuery(this.#props.rawNode, this.#props.queryId);
|
|
68
74
|
}
|
|
@@ -18,7 +18,7 @@ export interface Sql {
|
|
|
18
18
|
*
|
|
19
19
|
* If you need your substitutions to be interpreted as identifiers, value literals or
|
|
20
20
|
* lists of things, see the {@link Sql.ref}, {@link Sql.table}, {@link Sql.id},
|
|
21
|
-
* {@link Sql.
|
|
21
|
+
* {@link Sql.lit}, {@link Sql.raw} and {@link Sql.join} functions.
|
|
22
22
|
*
|
|
23
23
|
* You can pass sql snippets returned by the `sql` tag pretty much anywhere. Whenever
|
|
24
24
|
* something can't be done using the Kysely API, you should be able to drop down to
|
|
@@ -98,13 +98,17 @@ export interface Sql {
|
|
|
98
98
|
*/
|
|
99
99
|
<T = unknown>(sqlFragments: TemplateStringsArray, ...parameters: unknown[]): RawBuilder<T>;
|
|
100
100
|
/**
|
|
101
|
-
* `sql.
|
|
101
|
+
* `sql.val(value)` is a shortcut for:
|
|
102
102
|
*
|
|
103
103
|
* ```ts
|
|
104
104
|
* sql<ValueType>`${value}`
|
|
105
105
|
* ```
|
|
106
106
|
*/
|
|
107
|
-
|
|
107
|
+
val<V>(value: V): RawBuilder<V>;
|
|
108
|
+
/**
|
|
109
|
+
* @deprecated Use {@link Sql.val} instead.
|
|
110
|
+
*/
|
|
111
|
+
value<V>(value: V): RawBuilder<V>;
|
|
108
112
|
/**
|
|
109
113
|
* This can be used to add runtime column references to SQL snippets.
|
|
110
114
|
*
|
|
@@ -155,7 +159,7 @@ export interface Sql {
|
|
|
155
159
|
* select "public"."person"."first_name" from person
|
|
156
160
|
* ```
|
|
157
161
|
*/
|
|
158
|
-
ref(columnReference: string): RawBuilder<
|
|
162
|
+
ref<R = unknown>(columnReference: string): RawBuilder<R>;
|
|
159
163
|
/**
|
|
160
164
|
* This can be used to add runtime table references to SQL snippets.
|
|
161
165
|
*
|
|
@@ -246,7 +250,7 @@ export interface Sql {
|
|
|
246
250
|
* ```ts
|
|
247
251
|
* const firstName = 'first_name'
|
|
248
252
|
*
|
|
249
|
-
* sql`select * from person where first_name = ${sql.
|
|
253
|
+
* sql`select * from person where first_name = ${sql.lit(firstName)}`
|
|
250
254
|
* ```
|
|
251
255
|
*
|
|
252
256
|
* The generated SQL (PostgreSQL):
|
|
@@ -259,7 +263,11 @@ export interface Sql {
|
|
|
259
263
|
* the SQL string instead of as a parameter. Only use this function when
|
|
260
264
|
* something can't be sent as a parameter.
|
|
261
265
|
*/
|
|
262
|
-
|
|
266
|
+
lit<V>(value: V): RawBuilder<V>;
|
|
267
|
+
/**
|
|
268
|
+
* @deprecated Use {@link lit} instead.
|
|
269
|
+
*/
|
|
270
|
+
literal<V>(value: V): RawBuilder<V>;
|
|
263
271
|
/**
|
|
264
272
|
* This can be used to add arbitrary runtime SQL to SQL snippets.
|
|
265
273
|
*
|
|
@@ -278,11 +286,11 @@ export interface Sql {
|
|
|
278
286
|
* select * from person where first_name = 'first_name'
|
|
279
287
|
* ```
|
|
280
288
|
*
|
|
281
|
-
* Note that the difference to `sql.
|
|
289
|
+
* Note that the difference to `sql.lit` is that this function
|
|
282
290
|
* doesn't assume the inputs are values. The input to this function
|
|
283
291
|
* can be any sql and it's simply glued to the parent string as-is.
|
|
284
292
|
*/
|
|
285
|
-
raw(anySql: string): RawBuilder<
|
|
293
|
+
raw<R = unknown>(anySql: string): RawBuilder<R>;
|
|
286
294
|
/**
|
|
287
295
|
* This can be used to add lists of things to SQL snippets.
|
|
288
296
|
*
|
|
@@ -321,7 +329,7 @@ export interface Sql {
|
|
|
321
329
|
* 123,
|
|
322
330
|
* sql`(1 == 1)`,
|
|
323
331
|
* db.selectFrom('person').selectAll(),
|
|
324
|
-
* sql.
|
|
332
|
+
* sql.lit(false),
|
|
325
333
|
* sql.id('first_name')
|
|
326
334
|
* ]
|
|
327
335
|
*
|
|
@@ -21,12 +21,15 @@ exports.sql = Object.assign((sqlFragments, ...parameters) => {
|
|
|
21
21
|
rawNode: raw_node_js_1.RawNode.createWithChild((0, reference_parser_js_1.parseStringReference)(columnReference)),
|
|
22
22
|
});
|
|
23
23
|
},
|
|
24
|
-
|
|
24
|
+
val(value) {
|
|
25
25
|
return new raw_builder_js_1.RawBuilder({
|
|
26
26
|
queryId: (0, query_id_js_1.createQueryId)(),
|
|
27
27
|
rawNode: raw_node_js_1.RawNode.createWithChild((0, value_parser_js_1.parseValueExpression)(value)),
|
|
28
28
|
});
|
|
29
29
|
},
|
|
30
|
+
value(value) {
|
|
31
|
+
return this.val(value);
|
|
32
|
+
},
|
|
30
33
|
table(tableReference) {
|
|
31
34
|
return new raw_builder_js_1.RawBuilder({
|
|
32
35
|
queryId: (0, query_id_js_1.createQueryId)(),
|
|
@@ -42,12 +45,15 @@ exports.sql = Object.assign((sqlFragments, ...parameters) => {
|
|
|
42
45
|
rawNode: raw_node_js_1.RawNode.create(fragments, ids.map(identifier_node_js_1.IdentifierNode.create)),
|
|
43
46
|
});
|
|
44
47
|
},
|
|
45
|
-
|
|
48
|
+
lit(value) {
|
|
46
49
|
return new raw_builder_js_1.RawBuilder({
|
|
47
50
|
queryId: (0, query_id_js_1.createQueryId)(),
|
|
48
51
|
rawNode: raw_node_js_1.RawNode.createWithChild(value_node_js_1.ValueNode.createImmediate(value)),
|
|
49
52
|
});
|
|
50
53
|
},
|
|
54
|
+
literal(value) {
|
|
55
|
+
return this.lit(value);
|
|
56
|
+
},
|
|
51
57
|
raw(sql) {
|
|
52
58
|
return new raw_builder_js_1.RawBuilder({
|
|
53
59
|
queryId: (0, query_id_js_1.createQueryId)(),
|
|
@@ -10,6 +10,11 @@ export declare class AlterColumnBuilder {
|
|
|
10
10
|
dropDefault(): AlteredColumnBuilder;
|
|
11
11
|
setNotNull(): AlteredColumnBuilder;
|
|
12
12
|
dropNotNull(): AlteredColumnBuilder;
|
|
13
|
+
/**
|
|
14
|
+
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
15
|
+
* what the provided function returns.
|
|
16
|
+
*/
|
|
17
|
+
$call<T>(func: (qb: this) => T): T;
|
|
13
18
|
}
|
|
14
19
|
/**
|
|
15
20
|
* Allows us to force consumers to do something, anything, when altering a column.
|
|
@@ -34,6 +34,13 @@ class AlterColumnBuilder {
|
|
|
34
34
|
dropNotNull: true,
|
|
35
35
|
}));
|
|
36
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
39
|
+
* what the provided function returns.
|
|
40
|
+
*/
|
|
41
|
+
$call(func) {
|
|
42
|
+
return func(this);
|
|
43
|
+
}
|
|
37
44
|
}
|
|
38
45
|
exports.AlterColumnBuilder = AlterColumnBuilder;
|
|
39
46
|
/**
|
|
@@ -11,6 +11,11 @@ export declare class AlterTableAddForeignKeyConstraintBuilder implements Foreign
|
|
|
11
11
|
constructor(props: AlterTableAddForeignKeyConstraintBuilderProps);
|
|
12
12
|
onDelete(onDelete: OnModifyForeignAction): AlterTableAddForeignKeyConstraintBuilder;
|
|
13
13
|
onUpdate(onUpdate: OnModifyForeignAction): AlterTableAddForeignKeyConstraintBuilder;
|
|
14
|
+
/**
|
|
15
|
+
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
16
|
+
* what the provided function returns.
|
|
17
|
+
*/
|
|
18
|
+
$call<T>(func: (qb: this) => T): T;
|
|
14
19
|
toOperationNode(): AlterTableNode;
|
|
15
20
|
compile(): CompiledQuery;
|
|
16
21
|
execute(): Promise<void>;
|
|
@@ -22,6 +22,13 @@ class AlterTableAddForeignKeyConstraintBuilder {
|
|
|
22
22
|
constraintBuilder: this.#props.constraintBuilder.onUpdate(onUpdate),
|
|
23
23
|
});
|
|
24
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
27
|
+
* what the provided function returns.
|
|
28
|
+
*/
|
|
29
|
+
$call(func) {
|
|
30
|
+
return func(this);
|
|
31
|
+
}
|
|
25
32
|
toOperationNode() {
|
|
26
33
|
return this.#props.executor.transformQuery(alter_table_node_js_1.AlterTableNode.cloneWithTableProps(this.#props.node, {
|
|
27
34
|
addConstraint: add_constraint_node_js_1.AddConstraintNode.create(this.#props.constraintBuilder.toOperationNode()),
|
|
@@ -10,6 +10,11 @@ export declare class AlterTableDropConstraintBuilder implements OperationNodeSou
|
|
|
10
10
|
ifExists(): AlterTableDropConstraintBuilder;
|
|
11
11
|
cascade(): AlterTableDropConstraintBuilder;
|
|
12
12
|
restrict(): AlterTableDropConstraintBuilder;
|
|
13
|
+
/**
|
|
14
|
+
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
15
|
+
* what the provided function returns.
|
|
16
|
+
*/
|
|
17
|
+
$call<T>(func: (qb: this) => T): T;
|
|
13
18
|
toOperationNode(): AlterTableNode;
|
|
14
19
|
compile(): CompiledQuery;
|
|
15
20
|
execute(): Promise<void>;
|
|
@@ -40,6 +40,13 @@ class AlterTableDropConstraintBuilder {
|
|
|
40
40
|
}),
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
45
|
+
* what the provided function returns.
|
|
46
|
+
*/
|
|
47
|
+
$call(func) {
|
|
48
|
+
return func(this);
|
|
49
|
+
}
|
|
43
50
|
toOperationNode() {
|
|
44
51
|
return this.#props.executor.transformQuery(this.#props.node, this.#props.queryId);
|
|
45
52
|
}
|
|
@@ -191,7 +191,7 @@ export declare class ColumnDefinitionBuilder implements OperationNodeSource {
|
|
|
191
191
|
* ```ts
|
|
192
192
|
* db.schema.createTable('person')
|
|
193
193
|
* .addColumn('id', 'integer', col => col.primaryKey())
|
|
194
|
-
* .addColumn('age', 'integer', col => col.unsigned().notNull().modifyEnd(sql`comment ${sql.
|
|
194
|
+
* .addColumn('age', 'integer', col => col.unsigned().notNull().modifyEnd(sql`comment ${sql.lit('it is not polite to ask a woman her age')}`))
|
|
195
195
|
* .execute()
|
|
196
196
|
* ```
|
|
197
197
|
*
|
|
@@ -205,6 +205,11 @@ export declare class ColumnDefinitionBuilder implements OperationNodeSource {
|
|
|
205
205
|
* ```
|
|
206
206
|
*/
|
|
207
207
|
modifyEnd(modifier: Expression<any>): ColumnDefinitionBuilder;
|
|
208
|
+
/**
|
|
209
|
+
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
210
|
+
* what the provided function returns.
|
|
211
|
+
*/
|
|
212
|
+
$call<T>(func: (qb: this) => T): T;
|
|
208
213
|
toOperationNode(): ColumnDefinitionNode;
|
|
209
214
|
}
|
|
210
215
|
export declare type ColumnDefinitionBuilderCallback = (builder: ColumnDefinitionBuilder) => ColumnDefinitionBuilder;
|
|
@@ -267,7 +267,7 @@ class ColumnDefinitionBuilder {
|
|
|
267
267
|
* ```ts
|
|
268
268
|
* db.schema.createTable('person')
|
|
269
269
|
* .addColumn('id', 'integer', col => col.primaryKey())
|
|
270
|
-
* .addColumn('age', 'integer', col => col.unsigned().notNull().modifyEnd(sql`comment ${sql.
|
|
270
|
+
* .addColumn('age', 'integer', col => col.unsigned().notNull().modifyEnd(sql`comment ${sql.lit('it is not polite to ask a woman her age')}`))
|
|
271
271
|
* .execute()
|
|
272
272
|
* ```
|
|
273
273
|
*
|
|
@@ -283,6 +283,13 @@ class ColumnDefinitionBuilder {
|
|
|
283
283
|
modifyEnd(modifier) {
|
|
284
284
|
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWithEndModifier(this.#node, modifier.toOperationNode()));
|
|
285
285
|
}
|
|
286
|
+
/**
|
|
287
|
+
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
288
|
+
* what the provided function returns.
|
|
289
|
+
*/
|
|
290
|
+
$call(func) {
|
|
291
|
+
return func(this);
|
|
292
|
+
}
|
|
286
293
|
toOperationNode() {
|
|
287
294
|
return this.#node;
|
|
288
295
|
}
|
|
@@ -5,7 +5,10 @@ import { Compilable } from '../util/compilable.js';
|
|
|
5
5
|
import { QueryExecutor } from '../query-executor/query-executor.js';
|
|
6
6
|
import { QueryId } from '../util/query-id.js';
|
|
7
7
|
import { Expression } from '../expression/expression.js';
|
|
8
|
-
|
|
8
|
+
import { ComparisonOperatorExpression } from '../parser/binary-operation-parser.js';
|
|
9
|
+
import { ExpressionBuilder } from '../expression/expression-builder.js';
|
|
10
|
+
import { SqlBool } from '../util/type-utils.js';
|
|
11
|
+
export declare class CreateIndexBuilder<C = never> implements OperationNodeSource, Compilable {
|
|
9
12
|
#private;
|
|
10
13
|
constructor(props: CreateIndexBuilderProps);
|
|
11
14
|
/**
|
|
@@ -13,27 +16,27 @@ export declare class CreateIndexBuilder implements OperationNodeSource, Compilab
|
|
|
13
16
|
*
|
|
14
17
|
* If the index already exists, no error is thrown if this method has been called.
|
|
15
18
|
*/
|
|
16
|
-
ifNotExists(): CreateIndexBuilder
|
|
19
|
+
ifNotExists(): CreateIndexBuilder<C>;
|
|
17
20
|
/**
|
|
18
21
|
* Makes the index unique.
|
|
19
22
|
*/
|
|
20
|
-
unique(): CreateIndexBuilder
|
|
23
|
+
unique(): CreateIndexBuilder<C>;
|
|
21
24
|
/**
|
|
22
25
|
* Specifies the table for the index.
|
|
23
26
|
*/
|
|
24
|
-
on(table: string): CreateIndexBuilder
|
|
27
|
+
on(table: string): CreateIndexBuilder<C>;
|
|
25
28
|
/**
|
|
26
29
|
* Specifies the column for the index.
|
|
27
30
|
*
|
|
28
31
|
* Also see the `expression` for specifying an arbitrary expression.
|
|
29
32
|
*/
|
|
30
|
-
column(column:
|
|
33
|
+
column<CL extends string>(column: CL): CreateIndexBuilder<C | CL>;
|
|
31
34
|
/**
|
|
32
35
|
* Specifies a list of columns for the index.
|
|
33
36
|
*
|
|
34
37
|
* Also see the `expression` for specifying an arbitrary expression.
|
|
35
38
|
*/
|
|
36
|
-
columns(columns:
|
|
39
|
+
columns<CL extends string>(columns: CL[]): CreateIndexBuilder<C | CL>;
|
|
37
40
|
/**
|
|
38
41
|
* Specifies an arbitrary expression for the index.
|
|
39
42
|
*
|
|
@@ -49,12 +52,51 @@ export declare class CreateIndexBuilder implements OperationNodeSource, Compilab
|
|
|
49
52
|
* .execute()
|
|
50
53
|
* ```
|
|
51
54
|
*/
|
|
52
|
-
expression(expression: Expression<any>): CreateIndexBuilder
|
|
55
|
+
expression(expression: Expression<any>): CreateIndexBuilder<C>;
|
|
53
56
|
/**
|
|
54
57
|
* Specifies the index type.
|
|
55
58
|
*/
|
|
56
|
-
using(indexType: IndexType): CreateIndexBuilder
|
|
57
|
-
using(indexType: string): CreateIndexBuilder
|
|
59
|
+
using(indexType: IndexType): CreateIndexBuilder<C>;
|
|
60
|
+
using(indexType: string): CreateIndexBuilder<C>;
|
|
61
|
+
/**
|
|
62
|
+
* Adds a where clause to the query. This Effectively turns the index partial.
|
|
63
|
+
*
|
|
64
|
+
* ### Examples
|
|
65
|
+
*
|
|
66
|
+
* ```ts
|
|
67
|
+
* import { sql } from 'kysely'
|
|
68
|
+
*
|
|
69
|
+
* await db.schema
|
|
70
|
+
* .createIndex('orders_unbilled_index')
|
|
71
|
+
* .on('orders')
|
|
72
|
+
* .column('order_nr')
|
|
73
|
+
* .where(sql.ref('billed'), 'is not', true)
|
|
74
|
+
* .where('order_nr', 'like', '123%')
|
|
75
|
+
* ```
|
|
76
|
+
*
|
|
77
|
+
* The generated SQL (PostgreSQL):
|
|
78
|
+
*
|
|
79
|
+
* ```sql
|
|
80
|
+
* create index "orders_unbilled_index" on "orders" ("order_nr") where "billed" is not true and "order_nr" like '123%'
|
|
81
|
+
* ```
|
|
82
|
+
*
|
|
83
|
+
* Column names specified in {@link column} or {@link columns} are known at compile-time
|
|
84
|
+
* and can be referred to in the current query and context.
|
|
85
|
+
*
|
|
86
|
+
* Sometimes you may want to refer to columns that exist in the table but are not
|
|
87
|
+
* part of the current index. In that case you can refer to them using {@link sql}
|
|
88
|
+
* expressions.
|
|
89
|
+
*
|
|
90
|
+
* Parameters are always sent as literals due to database restrictions.
|
|
91
|
+
*/
|
|
92
|
+
where(lhs: C | Expression<any>, op: ComparisonOperatorExpression, rhs: unknown): CreateIndexBuilder<C>;
|
|
93
|
+
where(factory: (qb: ExpressionBuilder<Record<string, Record<C & string, any>>, string>) => Expression<SqlBool>): CreateIndexBuilder<C>;
|
|
94
|
+
where(expression: Expression<any>): CreateIndexBuilder<C>;
|
|
95
|
+
/**
|
|
96
|
+
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
97
|
+
* what the provided function returns.
|
|
98
|
+
*/
|
|
99
|
+
$call<T>(func: (qb: this) => T): T;
|
|
58
100
|
toOperationNode(): CreateIndexNode;
|
|
59
101
|
compile(): CompiledQuery;
|
|
60
102
|
execute(): Promise<void>;
|
|
@@ -8,6 +8,9 @@ const reference_parser_js_1 = require("../parser/reference-parser.js");
|
|
|
8
8
|
const table_parser_js_1 = require("../parser/table-parser.js");
|
|
9
9
|
const prevent_await_js_1 = require("../util/prevent-await.js");
|
|
10
10
|
const object_utils_js_1 = require("../util/object-utils.js");
|
|
11
|
+
const binary_operation_parser_js_1 = require("../parser/binary-operation-parser.js");
|
|
12
|
+
const query_node_js_1 = require("../operation-node/query-node.js");
|
|
13
|
+
const immediate_value_transformer_js_1 = require("../plugin/immediate-value/immediate-value-transformer.js");
|
|
11
14
|
class CreateIndexBuilder {
|
|
12
15
|
#props;
|
|
13
16
|
constructor(props) {
|
|
@@ -105,6 +108,20 @@ class CreateIndexBuilder {
|
|
|
105
108
|
}),
|
|
106
109
|
});
|
|
107
110
|
}
|
|
111
|
+
where(...args) {
|
|
112
|
+
const transformer = new immediate_value_transformer_js_1.ImmediateValueTransformer();
|
|
113
|
+
return new CreateIndexBuilder({
|
|
114
|
+
...this.#props,
|
|
115
|
+
node: query_node_js_1.QueryNode.cloneWithWhere(this.#props.node, transformer.transformNode((0, binary_operation_parser_js_1.parseWhere)(args))),
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
120
|
+
* what the provided function returns.
|
|
121
|
+
*/
|
|
122
|
+
$call(func) {
|
|
123
|
+
return func(this);
|
|
124
|
+
}
|
|
108
125
|
toOperationNode() {
|
|
109
126
|
return this.#props.executor.transformQuery(this.#props.node, this.#props.queryId);
|
|
110
127
|
}
|
|
@@ -8,6 +8,11 @@ export declare class CreateSchemaBuilder implements OperationNodeSource, Compila
|
|
|
8
8
|
#private;
|
|
9
9
|
constructor(props: CreateSchemaBuilderProps);
|
|
10
10
|
ifNotExists(): CreateSchemaBuilder;
|
|
11
|
+
/**
|
|
12
|
+
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
13
|
+
* what the provided function returns.
|
|
14
|
+
*/
|
|
15
|
+
$call<T>(func: (qb: this) => T): T;
|
|
11
16
|
toOperationNode(): CreateSchemaNode;
|
|
12
17
|
compile(): CompiledQuery;
|
|
13
18
|
execute(): Promise<void>;
|
|
@@ -15,6 +15,13 @@ class CreateSchemaBuilder {
|
|
|
15
15
|
node: create_schema_node_js_1.CreateSchemaNode.cloneWith(this.#props.node, { ifNotExists: true }),
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
20
|
+
* what the provided function returns.
|
|
21
|
+
*/
|
|
22
|
+
$call(func) {
|
|
23
|
+
return func(this);
|
|
24
|
+
}
|
|
18
25
|
toOperationNode() {
|
|
19
26
|
return this.#props.executor.transformQuery(this.#props.node, this.#props.queryId);
|
|
20
27
|
}
|