kysely 0.23.5 → 0.24.1
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 +46 -24
- 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/postgres/postgres-adapter.js +1 -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/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/mysql.d.ts +140 -0
- package/dist/cjs/helpers/mysql.js +170 -0
- 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 -3
- package/dist/cjs/operation-node/create-index-node.d.ts +2 -0
- package/dist/cjs/operation-node/delete-query-node.d.ts +0 -1
- package/dist/cjs/operation-node/delete-query-node.js +0 -6
- 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 +9 -0
- 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 +3 -3
- 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 +5 -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/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 +220 -201
- 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 +40 -12
- package/dist/cjs/query-builder/function-module.js +43 -329
- package/dist/cjs/query-builder/having-interface.d.ts +19 -16
- package/dist/cjs/query-builder/insert-query-builder.d.ts +75 -26
- package/dist/cjs/query-builder/insert-query-builder.js +21 -29
- 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 +148 -237
- package/dist/cjs/query-builder/select-query-builder.js +333 -78
- package/dist/cjs/query-builder/update-query-builder.d.ts +145 -213
- 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 +17 -1
- package/dist/cjs/query-creator.d.ts +9 -2
- package/dist/cjs/query-creator.js +1 -24
- 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 +1 -0
- 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/postgres/postgres-adapter.js +1 -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/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/mysql.d.ts +140 -0
- package/dist/esm/helpers/mysql.js +165 -0
- 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 -3
- package/dist/esm/operation-node/create-index-node.d.ts +2 -0
- package/dist/esm/operation-node/delete-query-node.d.ts +0 -1
- package/dist/esm/operation-node/delete-query-node.js +0 -6
- 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 +9 -0
- 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 +3 -3
- 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 +5 -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/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 +220 -201
- 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 +40 -12
- package/dist/esm/query-builder/function-module.js +42 -328
- package/dist/esm/query-builder/having-interface.d.ts +19 -16
- package/dist/esm/query-builder/insert-query-builder.d.ts +75 -26
- package/dist/esm/query-builder/insert-query-builder.js +25 -33
- 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 +148 -237
- package/dist/esm/query-builder/select-query-builder.js +337 -82
- package/dist/esm/query-builder/update-query-builder.d.ts +145 -213
- 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 +17 -1
- package/dist/esm/query-creator.d.ts +9 -2
- package/dist/esm/query-creator.js +1 -24
- 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 +1 -0
- package/helpers/mysql.d.ts +1 -0
- package/helpers/mysql.js +1 -0
- package/helpers/postgres.d.ts +1 -0
- package/helpers/postgres.js +1 -0
- package/package.json +26 -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.
|
|
@@ -235,7 +238,9 @@ export declare class QueryCreator<DB> {
|
|
|
235
238
|
* where `person`.`id` = ?
|
|
236
239
|
* ```
|
|
237
240
|
*/
|
|
241
|
+
deleteFrom<TR extends keyof DB & string>(from: TR[]): DeleteQueryBuilder<DB, ExtractTableAlias<DB, TR>, DeleteResult>;
|
|
238
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>;
|
|
239
244
|
deleteFrom<TR extends TableReference<DB>>(table: TR): DeleteQueryBuilder<From<DB, TR>, FromTables<DB, never, TR>, DeleteResult>;
|
|
240
245
|
/**
|
|
241
246
|
* Creates an update query.
|
|
@@ -260,6 +265,8 @@ export declare class QueryCreator<DB> {
|
|
|
260
265
|
* console.log(result.numUpdatedRows)
|
|
261
266
|
* ```
|
|
262
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>;
|
|
263
270
|
updateTable<TR extends TableReference<DB>>(table: TR): UpdateQueryBuilder<From<DB, TR>, FromTables<DB, never, TR>, FromTables<DB, never, TR>, UpdateResult>;
|
|
264
271
|
/**
|
|
265
272
|
* Creates a `with` query (Common Table Expression).
|
|
@@ -324,7 +331,7 @@ export declare class QueryCreator<DB> {
|
|
|
324
331
|
* This only affects the query created through the builder returned from
|
|
325
332
|
* this method and doesn't modify the `db` instance.
|
|
326
333
|
*
|
|
327
|
-
* 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)
|
|
328
335
|
* for a more detailed explanation.
|
|
329
336
|
*
|
|
330
337
|
* ### Examples
|
|
@@ -110,29 +110,6 @@ export class QueryCreator {
|
|
|
110
110
|
queryNode: DeleteQueryNode.create(parseTableExpressionOrList(tables), this.#props.withNode),
|
|
111
111
|
});
|
|
112
112
|
}
|
|
113
|
-
/**
|
|
114
|
-
* Creates an update query.
|
|
115
|
-
*
|
|
116
|
-
* See the {@link UpdateQueryBuilder.where} method for examples on how to specify
|
|
117
|
-
* a where clause for the update operation.
|
|
118
|
-
*
|
|
119
|
-
* See the {@link UpdateQueryBuilder.set} method for examples on how to
|
|
120
|
-
* specify the updates.
|
|
121
|
-
*
|
|
122
|
-
* The return value of the query is an {@link UpdateResult}.
|
|
123
|
-
*
|
|
124
|
-
* ### Examples
|
|
125
|
-
*
|
|
126
|
-
* ```ts
|
|
127
|
-
* const result = await db
|
|
128
|
-
* .updateTable('person')
|
|
129
|
-
* .set({ first_name: 'Jennifer' })
|
|
130
|
-
* .where('person.id', '=', 1)
|
|
131
|
-
* .executeTakeFirst()
|
|
132
|
-
*
|
|
133
|
-
* console.log(result.numUpdatedRows)
|
|
134
|
-
* ```
|
|
135
|
-
*/
|
|
136
113
|
updateTable(table) {
|
|
137
114
|
return new UpdateQueryBuilder({
|
|
138
115
|
queryId: createQueryId(),
|
|
@@ -229,7 +206,7 @@ export class QueryCreator {
|
|
|
229
206
|
* This only affects the query created through the builder returned from
|
|
230
207
|
* this method and doesn't modify the `db` instance.
|
|
231
208
|
*
|
|
232
|
-
* See [this recipe](https://github.com/koskimas/kysely/tree/master/recipes/schemas.md)
|
|
209
|
+
* See [this recipe](https://github.com/koskimas/kysely/tree/master/site/docs/recipes/schemas.md)
|
|
233
210
|
* for a more detailed explanation.
|
|
234
211
|
*
|
|
235
212
|
* ### 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
|
*/
|
|
@@ -50,17 +50,23 @@ export class RawBuilder {
|
|
|
50
50
|
});
|
|
51
51
|
}
|
|
52
52
|
toOperationNode() {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
return this.#
|
|
53
|
+
return this.#toOperationNode(this.#getExecutor());
|
|
54
|
+
}
|
|
55
|
+
compile(executorProvider) {
|
|
56
|
+
return this.#compile(this.#getExecutor(executorProvider));
|
|
57
57
|
}
|
|
58
58
|
async execute(executorProvider) {
|
|
59
|
-
const executor = this.#
|
|
60
|
-
? executorProvider.getExecutor().withPlugins(this.#props.plugins)
|
|
61
|
-
: executorProvider.getExecutor();
|
|
59
|
+
const executor = this.#getExecutor(executorProvider);
|
|
62
60
|
return executor.executeQuery(this.#compile(executor), this.#props.queryId);
|
|
63
61
|
}
|
|
62
|
+
#getExecutor(executorProvider) {
|
|
63
|
+
const executor = executorProvider !== undefined
|
|
64
|
+
? executorProvider.getExecutor()
|
|
65
|
+
: NOOP_QUERY_EXECUTOR;
|
|
66
|
+
return this.#props.plugins !== undefined
|
|
67
|
+
? executor.withPlugins(this.#props.plugins)
|
|
68
|
+
: executor;
|
|
69
|
+
}
|
|
64
70
|
#toOperationNode(executor) {
|
|
65
71
|
return executor.transformQuery(this.#props.rawNode, this.#props.queryId);
|
|
66
72
|
}
|
|
@@ -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
|
*
|
|
@@ -19,12 +19,15 @@ export const sql = Object.assign((sqlFragments, ...parameters) => {
|
|
|
19
19
|
rawNode: RawNode.createWithChild(parseStringReference(columnReference)),
|
|
20
20
|
});
|
|
21
21
|
},
|
|
22
|
-
|
|
22
|
+
val(value) {
|
|
23
23
|
return new RawBuilder({
|
|
24
24
|
queryId: createQueryId(),
|
|
25
25
|
rawNode: RawNode.createWithChild(parseValueExpression(value)),
|
|
26
26
|
});
|
|
27
27
|
},
|
|
28
|
+
value(value) {
|
|
29
|
+
return this.val(value);
|
|
30
|
+
},
|
|
28
31
|
table(tableReference) {
|
|
29
32
|
return new RawBuilder({
|
|
30
33
|
queryId: createQueryId(),
|
|
@@ -40,12 +43,15 @@ export const sql = Object.assign((sqlFragments, ...parameters) => {
|
|
|
40
43
|
rawNode: RawNode.create(fragments, ids.map(IdentifierNode.create)),
|
|
41
44
|
});
|
|
42
45
|
},
|
|
43
|
-
|
|
46
|
+
lit(value) {
|
|
44
47
|
return new RawBuilder({
|
|
45
48
|
queryId: createQueryId(),
|
|
46
49
|
rawNode: RawNode.createWithChild(ValueNode.createImmediate(value)),
|
|
47
50
|
});
|
|
48
51
|
},
|
|
52
|
+
literal(value) {
|
|
53
|
+
return this.lit(value);
|
|
54
|
+
},
|
|
49
55
|
raw(sql) {
|
|
50
56
|
return new RawBuilder({
|
|
51
57
|
queryId: 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.
|
|
@@ -32,6 +32,13 @@ export class AlterColumnBuilder {
|
|
|
32
32
|
dropNotNull: true,
|
|
33
33
|
}));
|
|
34
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
37
|
+
* what the provided function returns.
|
|
38
|
+
*/
|
|
39
|
+
$call(func) {
|
|
40
|
+
return func(this);
|
|
41
|
+
}
|
|
35
42
|
}
|
|
36
43
|
/**
|
|
37
44
|
* Allows us to force consumers to do something, anything, when altering a column.
|
|
@@ -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>;
|
|
@@ -20,6 +20,13 @@ export class AlterTableAddForeignKeyConstraintBuilder {
|
|
|
20
20
|
constraintBuilder: this.#props.constraintBuilder.onUpdate(onUpdate),
|
|
21
21
|
});
|
|
22
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
25
|
+
* what the provided function returns.
|
|
26
|
+
*/
|
|
27
|
+
$call(func) {
|
|
28
|
+
return func(this);
|
|
29
|
+
}
|
|
23
30
|
toOperationNode() {
|
|
24
31
|
return this.#props.executor.transformQuery(AlterTableNode.cloneWithTableProps(this.#props.node, {
|
|
25
32
|
addConstraint: 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>;
|
|
@@ -38,6 +38,13 @@ export class AlterTableDropConstraintBuilder {
|
|
|
38
38
|
}),
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
43
|
+
* what the provided function returns.
|
|
44
|
+
*/
|
|
45
|
+
$call(func) {
|
|
46
|
+
return func(this);
|
|
47
|
+
}
|
|
41
48
|
toOperationNode() {
|
|
42
49
|
return this.#props.executor.transformQuery(this.#props.node, this.#props.queryId);
|
|
43
50
|
}
|
|
@@ -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;
|
|
@@ -265,7 +265,7 @@ export class ColumnDefinitionBuilder {
|
|
|
265
265
|
* ```ts
|
|
266
266
|
* db.schema.createTable('person')
|
|
267
267
|
* .addColumn('id', 'integer', col => col.primaryKey())
|
|
268
|
-
* .addColumn('age', 'integer', col => col.unsigned().notNull().modifyEnd(sql`comment ${sql.
|
|
268
|
+
* .addColumn('age', 'integer', col => col.unsigned().notNull().modifyEnd(sql`comment ${sql.lit('it is not polite to ask a woman her age')}`))
|
|
269
269
|
* .execute()
|
|
270
270
|
* ```
|
|
271
271
|
*
|
|
@@ -281,6 +281,13 @@ export class ColumnDefinitionBuilder {
|
|
|
281
281
|
modifyEnd(modifier) {
|
|
282
282
|
return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWithEndModifier(this.#node, modifier.toOperationNode()));
|
|
283
283
|
}
|
|
284
|
+
/**
|
|
285
|
+
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
286
|
+
* what the provided function returns.
|
|
287
|
+
*/
|
|
288
|
+
$call(func) {
|
|
289
|
+
return func(this);
|
|
290
|
+
}
|
|
284
291
|
toOperationNode() {
|
|
285
292
|
return this.#node;
|
|
286
293
|
}
|
|
@@ -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>;
|
|
@@ -6,6 +6,9 @@ import { parseColumnName } from '../parser/reference-parser.js';
|
|
|
6
6
|
import { parseTable } from '../parser/table-parser.js';
|
|
7
7
|
import { preventAwait } from '../util/prevent-await.js';
|
|
8
8
|
import { freeze } from '../util/object-utils.js';
|
|
9
|
+
import { parseWhere, } from '../parser/binary-operation-parser.js';
|
|
10
|
+
import { QueryNode } from '../operation-node/query-node.js';
|
|
11
|
+
import { ImmediateValueTransformer } from '../plugin/immediate-value/immediate-value-transformer.js';
|
|
9
12
|
export class CreateIndexBuilder {
|
|
10
13
|
#props;
|
|
11
14
|
constructor(props) {
|
|
@@ -103,6 +106,20 @@ export class CreateIndexBuilder {
|
|
|
103
106
|
}),
|
|
104
107
|
});
|
|
105
108
|
}
|
|
109
|
+
where(...args) {
|
|
110
|
+
const transformer = new ImmediateValueTransformer();
|
|
111
|
+
return new CreateIndexBuilder({
|
|
112
|
+
...this.#props,
|
|
113
|
+
node: QueryNode.cloneWithWhere(this.#props.node, transformer.transformNode(parseWhere(args))),
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
118
|
+
* what the provided function returns.
|
|
119
|
+
*/
|
|
120
|
+
$call(func) {
|
|
121
|
+
return func(this);
|
|
122
|
+
}
|
|
106
123
|
toOperationNode() {
|
|
107
124
|
return this.#props.executor.transformQuery(this.#props.node, this.#props.queryId);
|
|
108
125
|
}
|
|
@@ -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>;
|
|
@@ -13,6 +13,13 @@ export class CreateSchemaBuilder {
|
|
|
13
13
|
node: CreateSchemaNode.cloneWith(this.#props.node, { ifNotExists: true }),
|
|
14
14
|
});
|
|
15
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
18
|
+
* what the provided function returns.
|
|
19
|
+
*/
|
|
20
|
+
$call(func) {
|
|
21
|
+
return func(this);
|
|
22
|
+
}
|
|
16
23
|
toOperationNode() {
|
|
17
24
|
return this.#props.executor.transformQuery(this.#props.node, this.#props.queryId);
|
|
18
25
|
}
|
|
@@ -47,7 +47,9 @@ export declare class CreateTableBuilder<TB extends string, C extends string = ne
|
|
|
47
47
|
* .addColumn('first_name', 'varchar(50)', (col) => col.notNull())
|
|
48
48
|
* .addColumn('last_name', 'varchar(255)')
|
|
49
49
|
* .addColumn('bank_balance', 'numeric(8, 2)')
|
|
50
|
-
*
|
|
50
|
+
* // You can specify any data type using the `sql` tag if the types
|
|
51
|
+
* // don't include it.
|
|
52
|
+
* .addColumn('data', sql`any_type_here`)
|
|
51
53
|
* .addColumn('parent_id', 'integer', (col) =>
|
|
52
54
|
* col.references('person.id').onDelete('cascade'))
|
|
53
55
|
* )
|
|
@@ -75,7 +75,9 @@ export class CreateTableBuilder {
|
|
|
75
75
|
* .addColumn('first_name', 'varchar(50)', (col) => col.notNull())
|
|
76
76
|
* .addColumn('last_name', 'varchar(255)')
|
|
77
77
|
* .addColumn('bank_balance', 'numeric(8, 2)')
|
|
78
|
-
*
|
|
78
|
+
* // You can specify any data type using the `sql` tag if the types
|
|
79
|
+
* // don't include it.
|
|
80
|
+
* .addColumn('data', sql`any_type_here`)
|
|
79
81
|
* .addColumn('parent_id', 'integer', (col) =>
|
|
80
82
|
* col.references('person.id').onDelete('cascade'))
|
|
81
83
|
* )
|
|
@@ -18,6 +18,11 @@ export declare class CreateTypeBuilder implements OperationNodeSource, Compilabl
|
|
|
18
18
|
* ```
|
|
19
19
|
*/
|
|
20
20
|
asEnum(values: string[]): CreateTypeBuilder;
|
|
21
|
+
/**
|
|
22
|
+
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
23
|
+
* what the provided function returns.
|
|
24
|
+
*/
|
|
25
|
+
$call<T>(func: (qb: this) => T): T;
|
|
21
26
|
compile(): CompiledQuery;
|
|
22
27
|
execute(): Promise<void>;
|
|
23
28
|
}
|
|
@@ -25,6 +25,13 @@ export class CreateTypeBuilder {
|
|
|
25
25
|
node: CreateTypeNode.cloneWithEnum(this.#props.node, values),
|
|
26
26
|
});
|
|
27
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
30
|
+
* what the provided function returns.
|
|
31
|
+
*/
|
|
32
|
+
$call(func) {
|
|
33
|
+
return func(this);
|
|
34
|
+
}
|
|
28
35
|
compile() {
|
|
29
36
|
return this.#props.executor.compileQuery(this.toOperationNode(), this.#props.queryId);
|
|
30
37
|
}
|
|
@@ -32,6 +32,11 @@ export declare class CreateViewBuilder implements OperationNodeSource, Compilabl
|
|
|
32
32
|
* into the query or raw expression passed to this method!
|
|
33
33
|
*/
|
|
34
34
|
as(query: AnySelectQueryBuilder | RawBuilder<any>): CreateViewBuilder;
|
|
35
|
+
/**
|
|
36
|
+
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
37
|
+
* what the provided function returns.
|
|
38
|
+
*/
|
|
39
|
+
$call<T>(func: (qb: this) => T): T;
|
|
35
40
|
toOperationNode(): CreateViewNode;
|
|
36
41
|
compile(): CompiledQuery;
|
|
37
42
|
execute(): Promise<void>;
|