kysely 0.23.5 → 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 +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/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/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/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
|
@@ -3,8 +3,9 @@ import { AliasNode } from '../operation-node/alias-node.js';
|
|
|
3
3
|
import { OverBuilder } from './over-builder.js';
|
|
4
4
|
import { AliasedExpression, Expression } from '../expression/expression.js';
|
|
5
5
|
import { ReferenceExpression } from '../parser/reference-parser.js';
|
|
6
|
-
import { ComparisonOperatorExpression, OperandValueExpressionOrList
|
|
6
|
+
import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js';
|
|
7
7
|
import { ExistsExpression } from '../parser/unary-operation-parser.js';
|
|
8
|
+
import { WhereExpressionFactory } from './where-interface.js';
|
|
8
9
|
export declare class AggregateFunctionBuilder<DB, TB extends keyof DB, O = unknown> implements Expression<O> {
|
|
9
10
|
#private;
|
|
10
11
|
constructor(props: AggregateFunctionBuilderProps);
|
|
@@ -88,22 +89,19 @@ export declare class AggregateFunctionBuilder<DB, TB extends keyof DB, O = unkno
|
|
|
88
89
|
* ```ts
|
|
89
90
|
* const result = await db
|
|
90
91
|
* .selectFrom('person')
|
|
91
|
-
* .select([
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
* .count<number>('id')
|
|
105
|
-
* .filterWhere('gender', '=', 'other')
|
|
106
|
-
* .as('other_count'),
|
|
92
|
+
* .select((eb) => [
|
|
93
|
+
* eb.fn
|
|
94
|
+
* .count<number>('id')
|
|
95
|
+
* .filterWhere('gender', '=', 'female')
|
|
96
|
+
* .as('female_count'),
|
|
97
|
+
* eb.fn
|
|
98
|
+
* .count<number>('id')
|
|
99
|
+
* .filterWhere('gender', '=', 'male')
|
|
100
|
+
* .as('male_count'),
|
|
101
|
+
* eb.fn
|
|
102
|
+
* .count<number>('id')
|
|
103
|
+
* .filterWhere('gender', '=', 'other')
|
|
104
|
+
* .as('other_count'),
|
|
107
105
|
* ])
|
|
108
106
|
* .executeTakeFirstOrThrow()
|
|
109
107
|
* ```
|
|
@@ -119,52 +117,14 @@ export declare class AggregateFunctionBuilder<DB, TB extends keyof DB, O = unkno
|
|
|
119
117
|
* ```
|
|
120
118
|
*/
|
|
121
119
|
filterWhere<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): AggregateFunctionBuilder<DB, TB, O>;
|
|
122
|
-
filterWhere(
|
|
120
|
+
filterWhere(factory: WhereExpressionFactory<DB, TB>): AggregateFunctionBuilder<DB, TB, O>;
|
|
123
121
|
filterWhere(expression: Expression<any>): AggregateFunctionBuilder<DB, TB, O>;
|
|
124
122
|
/**
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
* Similar to {@link WhereInterface}'s `whereExists` method.
|
|
128
|
-
*
|
|
129
|
-
* ### Examples
|
|
130
|
-
*
|
|
131
|
-
* Count pet owners versus general public:
|
|
132
|
-
*
|
|
133
|
-
* ```ts
|
|
134
|
-
* const result = await db
|
|
135
|
-
* .selectFrom('person')
|
|
136
|
-
* .select([
|
|
137
|
-
* (eb) =>
|
|
138
|
-
* eb.fn
|
|
139
|
-
* .count<number>('person.id')
|
|
140
|
-
* .filterWhereExists((qb) =>
|
|
141
|
-
* qb
|
|
142
|
-
* .selectFrom('pet')
|
|
143
|
-
* .select('pet.id')
|
|
144
|
-
* .whereRef('pet.owner_id', '=', 'person.id')
|
|
145
|
-
* )
|
|
146
|
-
* .as('pet_owner_count'),
|
|
147
|
-
* (eb) => eb.fn.count<number>('person.id').as('total_count'),
|
|
148
|
-
* ])
|
|
149
|
-
* .executeTakeFirstOrThrow()
|
|
150
|
-
* ```
|
|
151
|
-
*
|
|
152
|
-
* The generated SQL (PostgreSQL):
|
|
153
|
-
*
|
|
154
|
-
* ```sql
|
|
155
|
-
* select count("person"."id") filter(where exists (
|
|
156
|
-
* select "pet"."id"
|
|
157
|
-
* from "pet"
|
|
158
|
-
* where "pet"."owner_id" = "person"."id"
|
|
159
|
-
* )) as "pet_ower_count",
|
|
160
|
-
* count("person"."id") as "total_count"
|
|
161
|
-
* from "person"
|
|
162
|
-
* ```
|
|
123
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
163
124
|
*/
|
|
164
125
|
filterWhereExists(arg: ExistsExpression<DB, TB>): AggregateFunctionBuilder<DB, TB, O>;
|
|
165
126
|
/**
|
|
166
|
-
*
|
|
167
|
-
* the `filter` clause.
|
|
127
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
168
128
|
*/
|
|
169
129
|
filterWhereNotExists(arg: ExistsExpression<DB, TB>): AggregateFunctionBuilder<DB, TB, O>;
|
|
170
130
|
/**
|
|
@@ -180,13 +140,12 @@ export declare class AggregateFunctionBuilder<DB, TB extends keyof DB, O = unkno
|
|
|
180
140
|
* ```ts
|
|
181
141
|
* const result = await db
|
|
182
142
|
* .selectFrom('person')
|
|
183
|
-
* .select([
|
|
184
|
-
*
|
|
185
|
-
*
|
|
186
|
-
*
|
|
187
|
-
*
|
|
188
|
-
*
|
|
189
|
-
* (eb) => eb.fn.count<number>('id').as('total_count'),
|
|
143
|
+
* .select((eb) => [
|
|
144
|
+
* eb.fn
|
|
145
|
+
* .count<number>('id')
|
|
146
|
+
* .filterWhereRef('first_name', '=', 'last_name')
|
|
147
|
+
* .as('repeat_name_count'),
|
|
148
|
+
* eb.fn.count<number>('id').as('total_count'),
|
|
190
149
|
* ])
|
|
191
150
|
* .executeTakeFirstOrThrow()
|
|
192
151
|
* ```
|
|
@@ -202,64 +161,27 @@ export declare class AggregateFunctionBuilder<DB, TB extends keyof DB, O = unkno
|
|
|
202
161
|
*/
|
|
203
162
|
filterWhereRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): AggregateFunctionBuilder<DB, TB, O>;
|
|
204
163
|
/**
|
|
205
|
-
*
|
|
206
|
-
* Otherwise works just like {@link filterWhere}.
|
|
207
|
-
*
|
|
208
|
-
* Similar to {@link WhereInterface}'s `orWhere` method.
|
|
209
|
-
*
|
|
210
|
-
* ### Examples
|
|
211
|
-
*
|
|
212
|
-
* For some reason you're tasked with counting adults (18+) or people called
|
|
213
|
-
* "Bob" versus general public:
|
|
214
|
-
*
|
|
215
|
-
* ```ts
|
|
216
|
-
* const result = await db
|
|
217
|
-
* .selectFrom('person')
|
|
218
|
-
* .select([
|
|
219
|
-
* (eb) =>
|
|
220
|
-
* eb.fn
|
|
221
|
-
* .count<number>('id')
|
|
222
|
-
* .filterWhere('age', '>=', '18')
|
|
223
|
-
* .orFilterWhere('first_name', '=', 'Bob')
|
|
224
|
-
* .as('adult_or_bob_count'),
|
|
225
|
-
* (eb) => eb.fn.count<number>('id').as('total_count'),
|
|
226
|
-
* ])
|
|
227
|
-
* .executeTakeFirstOrThrow()
|
|
228
|
-
* ```
|
|
229
|
-
*
|
|
230
|
-
* The generated SQL (PostgreSQL):
|
|
231
|
-
*
|
|
232
|
-
* ```sql
|
|
233
|
-
* select
|
|
234
|
-
* count("id") filter(where "age" >= $1 or "first_name" = $2) as "adult_or_bob_count",
|
|
235
|
-
* count("id") as "total_count"
|
|
236
|
-
* from "person"
|
|
237
|
-
* ```
|
|
164
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
238
165
|
*/
|
|
239
166
|
orFilterWhere<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): AggregateFunctionBuilder<DB, TB, O>;
|
|
240
|
-
|
|
167
|
+
/**
|
|
168
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
169
|
+
*/
|
|
170
|
+
orFilterWhere(factory: WhereExpressionFactory<DB, TB>): AggregateFunctionBuilder<DB, TB, O>;
|
|
171
|
+
/**
|
|
172
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
173
|
+
*/
|
|
241
174
|
orFilterWhere(expression: Expression<any>): AggregateFunctionBuilder<DB, TB, O>;
|
|
242
175
|
/**
|
|
243
|
-
*
|
|
244
|
-
* the `filter` clause.
|
|
245
|
-
*
|
|
246
|
-
* Similar to {@link WhereInterface}'s `orWhereExists` method.
|
|
176
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
247
177
|
*/
|
|
248
178
|
orFilterWhereExists(arg: ExistsExpression<DB, TB>): AggregateFunctionBuilder<DB, TB, O>;
|
|
249
179
|
/**
|
|
250
|
-
*
|
|
251
|
-
* the `filter` clause.
|
|
252
|
-
*
|
|
253
|
-
* Similar to {@link WhereInterface}'s `orWhereNotExists` method.
|
|
180
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
254
181
|
*/
|
|
255
182
|
orFilterWhereNotExists(arg: ExistsExpression<DB, TB>): AggregateFunctionBuilder<DB, TB, O>;
|
|
256
183
|
/**
|
|
257
|
-
*
|
|
258
|
-
* like {@link filterWhereRef}.
|
|
259
|
-
*
|
|
260
|
-
* Also see {@link orFilterWhere} and {@link filterWhere}.
|
|
261
|
-
*
|
|
262
|
-
* Similar to {@link WhereInterface}'s `orWhereRef` method.
|
|
184
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
263
185
|
*/
|
|
264
186
|
orFilterWhereRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): AggregateFunctionBuilder<DB, TB, O>;
|
|
265
187
|
/**
|
|
@@ -305,6 +227,11 @@ export declare class AggregateFunctionBuilder<DB, TB extends keyof DB, O = unkno
|
|
|
305
227
|
* ```
|
|
306
228
|
*/
|
|
307
229
|
over(over?: OverBuilderCallback<DB, TB>): AggregateFunctionBuilder<DB, TB, O>;
|
|
230
|
+
/**
|
|
231
|
+
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
232
|
+
* what the provided function returns.
|
|
233
|
+
*/
|
|
234
|
+
$call<T>(func: (qb: this) => T): T;
|
|
308
235
|
/**
|
|
309
236
|
* Creates the OperationNode that describes how to compile this expression into SQL.
|
|
310
237
|
*
|
|
@@ -80,44 +80,7 @@ class AggregateFunctionBuilder {
|
|
|
80
80
|
});
|
|
81
81
|
}
|
|
82
82
|
/**
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
* Similar to {@link WhereInterface}'s `whereExists` method.
|
|
86
|
-
*
|
|
87
|
-
* ### Examples
|
|
88
|
-
*
|
|
89
|
-
* Count pet owners versus general public:
|
|
90
|
-
*
|
|
91
|
-
* ```ts
|
|
92
|
-
* const result = await db
|
|
93
|
-
* .selectFrom('person')
|
|
94
|
-
* .select([
|
|
95
|
-
* (eb) =>
|
|
96
|
-
* eb.fn
|
|
97
|
-
* .count<number>('person.id')
|
|
98
|
-
* .filterWhereExists((qb) =>
|
|
99
|
-
* qb
|
|
100
|
-
* .selectFrom('pet')
|
|
101
|
-
* .select('pet.id')
|
|
102
|
-
* .whereRef('pet.owner_id', '=', 'person.id')
|
|
103
|
-
* )
|
|
104
|
-
* .as('pet_owner_count'),
|
|
105
|
-
* (eb) => eb.fn.count<number>('person.id').as('total_count'),
|
|
106
|
-
* ])
|
|
107
|
-
* .executeTakeFirstOrThrow()
|
|
108
|
-
* ```
|
|
109
|
-
*
|
|
110
|
-
* The generated SQL (PostgreSQL):
|
|
111
|
-
*
|
|
112
|
-
* ```sql
|
|
113
|
-
* select count("person"."id") filter(where exists (
|
|
114
|
-
* select "pet"."id"
|
|
115
|
-
* from "pet"
|
|
116
|
-
* where "pet"."owner_id" = "person"."id"
|
|
117
|
-
* )) as "pet_ower_count",
|
|
118
|
-
* count("person"."id") as "total_count"
|
|
119
|
-
* from "person"
|
|
120
|
-
* ```
|
|
83
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
121
84
|
*/
|
|
122
85
|
filterWhereExists(arg) {
|
|
123
86
|
return new AggregateFunctionBuilder({
|
|
@@ -126,8 +89,7 @@ class AggregateFunctionBuilder {
|
|
|
126
89
|
});
|
|
127
90
|
}
|
|
128
91
|
/**
|
|
129
|
-
*
|
|
130
|
-
* the `filter` clause.
|
|
92
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
131
93
|
*/
|
|
132
94
|
filterWhereNotExists(arg) {
|
|
133
95
|
return new AggregateFunctionBuilder({
|
|
@@ -148,13 +110,12 @@ class AggregateFunctionBuilder {
|
|
|
148
110
|
* ```ts
|
|
149
111
|
* const result = await db
|
|
150
112
|
* .selectFrom('person')
|
|
151
|
-
* .select([
|
|
152
|
-
*
|
|
153
|
-
*
|
|
154
|
-
*
|
|
155
|
-
*
|
|
156
|
-
*
|
|
157
|
-
* (eb) => eb.fn.count<number>('id').as('total_count'),
|
|
113
|
+
* .select((eb) => [
|
|
114
|
+
* eb.fn
|
|
115
|
+
* .count<number>('id')
|
|
116
|
+
* .filterWhereRef('first_name', '=', 'last_name')
|
|
117
|
+
* .as('repeat_name_count'),
|
|
118
|
+
* eb.fn.count<number>('id').as('total_count'),
|
|
158
119
|
* ])
|
|
159
120
|
* .executeTakeFirstOrThrow()
|
|
160
121
|
* ```
|
|
@@ -171,9 +132,12 @@ class AggregateFunctionBuilder {
|
|
|
171
132
|
filterWhereRef(lhs, op, rhs) {
|
|
172
133
|
return new AggregateFunctionBuilder({
|
|
173
134
|
...this.#props,
|
|
174
|
-
aggregateFunctionNode: aggregate_function_node_js_1.AggregateFunctionNode.cloneWithFilter(this.#props.aggregateFunctionNode, (0, binary_operation_parser_js_1.
|
|
135
|
+
aggregateFunctionNode: aggregate_function_node_js_1.AggregateFunctionNode.cloneWithFilter(this.#props.aggregateFunctionNode, (0, binary_operation_parser_js_1.parseReferentialComparison)(lhs, op, rhs)),
|
|
175
136
|
});
|
|
176
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
140
|
+
*/
|
|
177
141
|
orFilterWhere(...args) {
|
|
178
142
|
return new AggregateFunctionBuilder({
|
|
179
143
|
...this.#props,
|
|
@@ -181,10 +145,7 @@ class AggregateFunctionBuilder {
|
|
|
181
145
|
});
|
|
182
146
|
}
|
|
183
147
|
/**
|
|
184
|
-
*
|
|
185
|
-
* the `filter` clause.
|
|
186
|
-
*
|
|
187
|
-
* Similar to {@link WhereInterface}'s `orWhereExists` method.
|
|
148
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
188
149
|
*/
|
|
189
150
|
orFilterWhereExists(arg) {
|
|
190
151
|
return new AggregateFunctionBuilder({
|
|
@@ -193,10 +154,7 @@ class AggregateFunctionBuilder {
|
|
|
193
154
|
});
|
|
194
155
|
}
|
|
195
156
|
/**
|
|
196
|
-
*
|
|
197
|
-
* the `filter` clause.
|
|
198
|
-
*
|
|
199
|
-
* Similar to {@link WhereInterface}'s `orWhereNotExists` method.
|
|
157
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
200
158
|
*/
|
|
201
159
|
orFilterWhereNotExists(arg) {
|
|
202
160
|
return new AggregateFunctionBuilder({
|
|
@@ -205,17 +163,12 @@ class AggregateFunctionBuilder {
|
|
|
205
163
|
});
|
|
206
164
|
}
|
|
207
165
|
/**
|
|
208
|
-
*
|
|
209
|
-
* like {@link filterWhereRef}.
|
|
210
|
-
*
|
|
211
|
-
* Also see {@link orFilterWhere} and {@link filterWhere}.
|
|
212
|
-
*
|
|
213
|
-
* Similar to {@link WhereInterface}'s `orWhereRef` method.
|
|
166
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
214
167
|
*/
|
|
215
168
|
orFilterWhereRef(lhs, op, rhs) {
|
|
216
169
|
return new AggregateFunctionBuilder({
|
|
217
170
|
...this.#props,
|
|
218
|
-
aggregateFunctionNode: aggregate_function_node_js_1.AggregateFunctionNode.cloneWithOrFilter(this.#props.aggregateFunctionNode, (0, binary_operation_parser_js_1.
|
|
171
|
+
aggregateFunctionNode: aggregate_function_node_js_1.AggregateFunctionNode.cloneWithOrFilter(this.#props.aggregateFunctionNode, (0, binary_operation_parser_js_1.parseReferentialComparison)(lhs, op, rhs)),
|
|
219
172
|
});
|
|
220
173
|
}
|
|
221
174
|
/**
|
|
@@ -267,6 +220,13 @@ class AggregateFunctionBuilder {
|
|
|
267
220
|
aggregateFunctionNode: aggregate_function_node_js_1.AggregateFunctionNode.cloneWithOver(this.#props.aggregateFunctionNode, (over ? over(builder) : builder).toOperationNode()),
|
|
268
221
|
});
|
|
269
222
|
}
|
|
223
|
+
/**
|
|
224
|
+
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
225
|
+
* what the provided function returns.
|
|
226
|
+
*/
|
|
227
|
+
$call(func) {
|
|
228
|
+
return func(this);
|
|
229
|
+
}
|
|
270
230
|
toOperationNode() {
|
|
271
231
|
return this.#props.aggregateFunctionNode;
|
|
272
232
|
}
|