kysely 0.27.4 → 0.27.6
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/.renovaterc.json +3 -0
- package/CODE_OF_CONDUCT.md +183 -0
- package/CONTRIBUTING.md +121 -23
- package/FUNDING.md +25 -0
- package/README.md +13 -2
- package/deno.check.d.ts +86 -0
- package/deno.check.json +21 -0
- package/dist/cjs/dialect/dialect-adapter-base.d.ts +11 -2
- package/dist/cjs/dialect/dialect-adapter.d.ts +11 -2
- package/dist/cjs/dialect/mssql/mssql-adapter.d.ts +11 -2
- package/dist/cjs/dialect/mssql/mssql-dialect-config.d.ts +37 -29
- package/dist/cjs/dialect/mssql/mssql-driver.js +20 -13
- package/dist/cjs/dialect/mysql/mysql-adapter.d.ts +11 -2
- package/dist/cjs/dialect/mysql/mysql-dialect-config.d.ts +4 -0
- package/dist/cjs/dialect/mysql/mysql-driver.js +3 -0
- package/dist/cjs/dialect/postgres/postgres-adapter.d.ts +11 -2
- package/dist/cjs/dialect/postgres/postgres-dialect-config.d.ts +10 -3
- package/dist/cjs/dialect/postgres/postgres-driver.js +3 -0
- package/dist/cjs/dialect/postgres/postgres-introspector.js +5 -1
- package/dist/cjs/dialect/sqlite/sqlite-adapter.d.ts +11 -2
- package/dist/cjs/dialect/sqlite/sqlite-introspector.js +66 -44
- package/dist/cjs/driver/dummy-driver.d.ts +13 -12
- package/dist/cjs/driver/dummy-driver.js +13 -12
- package/dist/cjs/dynamic/dynamic.d.ts +6 -6
- package/dist/cjs/dynamic/dynamic.js +6 -6
- package/dist/cjs/expression/expression-builder.d.ts +154 -61
- package/dist/cjs/expression/expression-wrapper.d.ts +92 -23
- package/dist/cjs/expression/expression.d.ts +40 -5
- package/dist/cjs/helpers/mssql.d.ts +74 -14
- package/dist/cjs/helpers/mssql.js +74 -14
- package/dist/cjs/helpers/mysql.d.ts +14 -10
- package/dist/cjs/helpers/mysql.js +14 -10
- package/dist/cjs/helpers/postgres.d.ts +7 -4
- package/dist/cjs/helpers/postgres.js +7 -4
- package/dist/cjs/helpers/sqlite.d.ts +41 -16
- package/dist/cjs/helpers/sqlite.js +41 -16
- package/dist/cjs/kysely.d.ts +99 -41
- package/dist/cjs/kysely.js +60 -36
- package/dist/cjs/migration/file-migration-provider.d.ts +2 -2
- package/dist/cjs/migration/file-migration-provider.js +2 -2
- package/dist/cjs/migration/migrator.d.ts +90 -15
- package/dist/cjs/migration/migrator.js +95 -17
- package/dist/cjs/operation-node/aggregate-function-node.d.ts +4 -0
- package/dist/cjs/operation-node/aggregate-function-node.js +9 -0
- package/dist/cjs/operation-node/data-type-node.d.ts +1 -1
- package/dist/cjs/operation-node/data-type-node.js +12 -0
- package/dist/cjs/operation-node/delete-query-node.d.ts +1 -0
- package/dist/cjs/operation-node/insert-query-node.d.ts +1 -0
- package/dist/cjs/operation-node/merge-query-node.d.ts +1 -0
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +9 -3
- package/dist/cjs/operation-node/operation-node-transformer.js +14 -3
- package/dist/cjs/operation-node/query-node.d.ts +4 -0
- package/dist/cjs/operation-node/query-node.js +8 -0
- package/dist/cjs/operation-node/select-query-node.d.ts +0 -1
- package/dist/cjs/operation-node/select-query-node.js +0 -8
- package/dist/cjs/operation-node/update-query-node.d.ts +1 -0
- package/dist/cjs/parser/insert-values-parser.js +3 -1
- package/dist/cjs/plugin/camel-case/camel-case-plugin.d.ts +52 -25
- package/dist/cjs/plugin/camel-case/camel-case-plugin.js +24 -19
- package/dist/cjs/plugin/camel-case/camel-case.js +4 -1
- package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.d.ts +29 -7
- package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
- package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-transformer.js +2 -2
- package/dist/cjs/plugin/immediate-value/immediate-value-plugin.d.ts +28 -6
- package/dist/cjs/plugin/kysely-plugin.d.ts +28 -6
- package/dist/cjs/plugin/noop-plugin.d.ts +28 -6
- package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.d.ts +62 -9
- package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.js +34 -3
- package/dist/cjs/plugin/with-schema/with-schema-plugin.d.ts +28 -6
- package/dist/cjs/plugin/with-schema/with-schema-transformer.d.ts +4 -0
- package/dist/cjs/plugin/with-schema/with-schema-transformer.js +26 -0
- package/dist/cjs/query-builder/aggregate-function-builder.d.ts +43 -1
- package/dist/cjs/query-builder/aggregate-function-builder.js +30 -0
- package/dist/cjs/query-builder/delete-query-builder.d.ts +137 -45
- package/dist/cjs/query-builder/delete-query-builder.js +76 -26
- package/dist/cjs/query-builder/function-module.d.ts +35 -88
- package/dist/cjs/query-builder/insert-query-builder.d.ts +239 -65
- package/dist/cjs/query-builder/insert-query-builder.js +188 -52
- package/dist/cjs/query-builder/insert-result.d.ts +10 -5
- package/dist/cjs/query-builder/insert-result.js +10 -5
- package/dist/cjs/query-builder/json-path-builder.d.ts +33 -9
- package/dist/cjs/query-builder/json-path-builder.js +8 -5
- package/dist/cjs/query-builder/merge-query-builder.d.ts +159 -21
- package/dist/cjs/query-builder/merge-query-builder.js +68 -6
- package/dist/cjs/query-builder/on-conflict-builder.d.ts +51 -18
- package/dist/cjs/query-builder/on-conflict-builder.js +41 -16
- package/dist/cjs/query-builder/output-interface.d.ts +50 -7
- package/dist/cjs/query-builder/returning-interface.d.ts +5 -5
- package/dist/cjs/query-builder/select-query-builder-expression.d.ts +8 -0
- package/dist/cjs/query-builder/select-query-builder.d.ts +295 -63
- package/dist/cjs/query-builder/select-query-builder.js +7 -7
- package/dist/cjs/query-builder/update-query-builder.d.ts +138 -29
- package/dist/cjs/query-builder/update-query-builder.js +75 -10
- package/dist/cjs/query-builder/update-result.d.ts +2 -2
- package/dist/cjs/query-builder/update-result.js +2 -2
- package/dist/cjs/query-builder/where-interface.d.ts +5 -1
- package/dist/cjs/query-compiler/default-query-compiler.js +20 -0
- package/dist/cjs/query-creator.d.ts +66 -18
- package/dist/cjs/query-creator.js +2 -2
- package/dist/cjs/raw-builder/raw-builder.d.ts +29 -7
- package/dist/cjs/raw-builder/sql.d.ts +27 -8
- package/dist/cjs/schema/alter-column-builder.d.ts +17 -3
- package/dist/cjs/schema/alter-column-builder.js +17 -3
- package/dist/cjs/schema/alter-table-add-index-builder.d.ts +43 -9
- package/dist/cjs/schema/alter-table-add-index-builder.js +26 -9
- package/dist/cjs/schema/column-definition-builder.d.ts +283 -26
- package/dist/cjs/schema/column-definition-builder.js +283 -26
- package/dist/cjs/schema/create-table-builder.d.ts +86 -33
- package/dist/cjs/schema/create-table-builder.js +86 -33
- package/dist/cjs/util/column-type.d.ts +5 -9
- package/dist/cjs/util/require-all-props.d.ts +4 -2
- package/dist/cjs/util/require-all-props.js +4 -2
- package/dist/cjs/util/streamable.d.ts +1 -1
- package/dist/cjs/util/type-utils.d.ts +4 -2
- package/dist/esm/dialect/dialect-adapter-base.d.ts +11 -2
- package/dist/esm/dialect/dialect-adapter.d.ts +11 -2
- package/dist/esm/dialect/mssql/mssql-adapter.d.ts +11 -2
- package/dist/esm/dialect/mssql/mssql-dialect-config.d.ts +37 -29
- package/dist/esm/dialect/mssql/mssql-driver.js +20 -13
- package/dist/esm/dialect/mysql/mysql-adapter.d.ts +11 -2
- package/dist/esm/dialect/mysql/mysql-dialect-config.d.ts +4 -0
- package/dist/esm/dialect/mysql/mysql-driver.js +3 -0
- package/dist/esm/dialect/postgres/postgres-adapter.d.ts +11 -2
- package/dist/esm/dialect/postgres/postgres-dialect-config.d.ts +10 -3
- package/dist/esm/dialect/postgres/postgres-driver.js +3 -0
- package/dist/esm/dialect/postgres/postgres-introspector.js +5 -1
- package/dist/esm/dialect/sqlite/sqlite-adapter.d.ts +11 -2
- package/dist/esm/dialect/sqlite/sqlite-introspector.js +66 -44
- package/dist/esm/driver/dummy-driver.d.ts +13 -12
- package/dist/esm/driver/dummy-driver.js +13 -12
- package/dist/esm/dynamic/dynamic.d.ts +6 -6
- package/dist/esm/dynamic/dynamic.js +6 -6
- package/dist/esm/expression/expression-builder.d.ts +154 -61
- package/dist/esm/expression/expression-wrapper.d.ts +92 -23
- package/dist/esm/expression/expression.d.ts +40 -5
- package/dist/esm/helpers/mssql.d.ts +74 -14
- package/dist/esm/helpers/mssql.js +74 -14
- package/dist/esm/helpers/mysql.d.ts +14 -10
- package/dist/esm/helpers/mysql.js +14 -10
- package/dist/esm/helpers/postgres.d.ts +7 -4
- package/dist/esm/helpers/postgres.js +7 -4
- package/dist/esm/helpers/sqlite.d.ts +41 -16
- package/dist/esm/helpers/sqlite.js +41 -16
- package/dist/esm/kysely.d.ts +99 -41
- package/dist/esm/kysely.js +60 -36
- package/dist/esm/migration/file-migration-provider.d.ts +2 -2
- package/dist/esm/migration/file-migration-provider.js +2 -2
- package/dist/esm/migration/migrator.d.ts +90 -15
- package/dist/esm/migration/migrator.js +95 -17
- package/dist/esm/operation-node/aggregate-function-node.d.ts +4 -0
- package/dist/esm/operation-node/aggregate-function-node.js +9 -0
- package/dist/esm/operation-node/data-type-node.d.ts +1 -1
- package/dist/esm/operation-node/data-type-node.js +12 -0
- package/dist/esm/operation-node/delete-query-node.d.ts +1 -0
- package/dist/esm/operation-node/insert-query-node.d.ts +1 -0
- package/dist/esm/operation-node/merge-query-node.d.ts +1 -0
- package/dist/esm/operation-node/operation-node-transformer.d.ts +9 -3
- package/dist/esm/operation-node/operation-node-transformer.js +14 -3
- package/dist/esm/operation-node/query-node.d.ts +4 -0
- package/dist/esm/operation-node/query-node.js +8 -0
- package/dist/esm/operation-node/select-query-node.d.ts +0 -1
- package/dist/esm/operation-node/select-query-node.js +0 -8
- package/dist/esm/operation-node/update-query-node.d.ts +1 -0
- package/dist/esm/parser/insert-values-parser.js +3 -1
- package/dist/esm/plugin/camel-case/camel-case-plugin.d.ts +52 -25
- package/dist/esm/plugin/camel-case/camel-case-plugin.js +24 -19
- package/dist/esm/plugin/camel-case/camel-case.js +4 -1
- package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.d.ts +29 -7
- package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
- package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-transformer.js +2 -2
- package/dist/esm/plugin/immediate-value/immediate-value-plugin.d.ts +28 -6
- package/dist/esm/plugin/kysely-plugin.d.ts +28 -6
- package/dist/esm/plugin/noop-plugin.d.ts +28 -6
- package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.d.ts +62 -9
- package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.js +34 -3
- package/dist/esm/plugin/with-schema/with-schema-plugin.d.ts +28 -6
- package/dist/esm/plugin/with-schema/with-schema-transformer.d.ts +4 -0
- package/dist/esm/plugin/with-schema/with-schema-transformer.js +26 -0
- package/dist/esm/query-builder/aggregate-function-builder.d.ts +43 -1
- package/dist/esm/query-builder/aggregate-function-builder.js +30 -0
- package/dist/esm/query-builder/delete-query-builder.d.ts +137 -45
- package/dist/esm/query-builder/delete-query-builder.js +76 -26
- package/dist/esm/query-builder/function-module.d.ts +35 -88
- package/dist/esm/query-builder/insert-query-builder.d.ts +239 -65
- package/dist/esm/query-builder/insert-query-builder.js +188 -52
- package/dist/esm/query-builder/insert-result.d.ts +10 -5
- package/dist/esm/query-builder/insert-result.js +10 -5
- package/dist/esm/query-builder/json-path-builder.d.ts +33 -9
- package/dist/esm/query-builder/json-path-builder.js +8 -5
- package/dist/esm/query-builder/merge-query-builder.d.ts +159 -21
- package/dist/esm/query-builder/merge-query-builder.js +68 -6
- package/dist/esm/query-builder/on-conflict-builder.d.ts +51 -18
- package/dist/esm/query-builder/on-conflict-builder.js +41 -16
- package/dist/esm/query-builder/output-interface.d.ts +50 -7
- package/dist/esm/query-builder/returning-interface.d.ts +5 -5
- package/dist/esm/query-builder/select-query-builder-expression.d.ts +8 -0
- package/dist/esm/query-builder/select-query-builder.d.ts +295 -63
- package/dist/esm/query-builder/select-query-builder.js +7 -7
- package/dist/esm/query-builder/update-query-builder.d.ts +138 -29
- package/dist/esm/query-builder/update-query-builder.js +75 -10
- package/dist/esm/query-builder/update-result.d.ts +2 -2
- package/dist/esm/query-builder/update-result.js +2 -2
- package/dist/esm/query-builder/where-interface.d.ts +5 -1
- package/dist/esm/query-compiler/default-query-compiler.js +20 -0
- package/dist/esm/query-creator.d.ts +66 -18
- package/dist/esm/query-creator.js +2 -2
- package/dist/esm/raw-builder/raw-builder.d.ts +29 -7
- package/dist/esm/raw-builder/sql.d.ts +27 -8
- package/dist/esm/schema/alter-column-builder.d.ts +17 -3
- package/dist/esm/schema/alter-column-builder.js +17 -3
- package/dist/esm/schema/alter-table-add-index-builder.d.ts +43 -9
- package/dist/esm/schema/alter-table-add-index-builder.js +26 -9
- package/dist/esm/schema/column-definition-builder.d.ts +283 -26
- package/dist/esm/schema/column-definition-builder.js +283 -26
- package/dist/esm/schema/create-table-builder.d.ts +86 -33
- package/dist/esm/schema/create-table-builder.js +86 -33
- package/dist/esm/util/column-type.d.ts +5 -9
- package/dist/esm/util/require-all-props.d.ts +4 -2
- package/dist/esm/util/require-all-props.js +4 -2
- package/dist/esm/util/streamable.d.ts +1 -1
- package/dist/esm/util/type-utils.d.ts +4 -2
- package/package.json +28 -23
|
@@ -88,9 +88,10 @@ export interface FunctionModule<DB, TB extends keyof DB> {
|
|
|
88
88
|
* ### Examples
|
|
89
89
|
*
|
|
90
90
|
* ```ts
|
|
91
|
-
* db.selectFrom('person')
|
|
91
|
+
* await db.selectFrom('person')
|
|
92
92
|
* .selectAll('person')
|
|
93
93
|
* .where(db.fn('upper', ['first_name']), '=', 'JENNIFER')
|
|
94
|
+
* .execute()
|
|
94
95
|
* ```
|
|
95
96
|
*
|
|
96
97
|
* The generated SQL (PostgreSQL):
|
|
@@ -104,9 +105,12 @@ export interface FunctionModule<DB, TB extends keyof DB> {
|
|
|
104
105
|
* If you prefer readability over type-safety, you can always use raw `sql`:
|
|
105
106
|
*
|
|
106
107
|
* ```ts
|
|
107
|
-
*
|
|
108
|
+
* import { sql } from 'kysely'
|
|
109
|
+
*
|
|
110
|
+
* await db.selectFrom('person')
|
|
108
111
|
* .selectAll('person')
|
|
109
112
|
* .where(sql<string>`upper(first_name)`, '=', 'JENNIFER')
|
|
113
|
+
* .execute()
|
|
110
114
|
* ```
|
|
111
115
|
*/
|
|
112
116
|
<O, RE extends ReferenceExpression<DB, TB> = ReferenceExpression<DB, TB>>(name: string, args?: ReadonlyArray<RE>): ExpressionWrapper<DB, TB, O>;
|
|
@@ -123,11 +127,12 @@ export interface FunctionModule<DB, TB extends keyof DB> {
|
|
|
123
127
|
* ### Examples
|
|
124
128
|
*
|
|
125
129
|
* ```ts
|
|
126
|
-
* db.selectFrom('person')
|
|
130
|
+
* await db.selectFrom('person')
|
|
127
131
|
* .select(({ fn }) => [
|
|
128
132
|
* fn.agg<number>('rank').over().as('rank'),
|
|
129
133
|
* fn.agg<string>('group_concat', ['first_name']).distinct().as('first_names')
|
|
130
134
|
* ])
|
|
135
|
+
* .execute()
|
|
131
136
|
* ```
|
|
132
137
|
*
|
|
133
138
|
* The generated SQL (MySQL):
|
|
@@ -151,7 +156,7 @@ export interface FunctionModule<DB, TB extends keyof DB> {
|
|
|
151
156
|
* ### Examples
|
|
152
157
|
*
|
|
153
158
|
* ```ts
|
|
154
|
-
* db.selectFrom('toy')
|
|
159
|
+
* await db.selectFrom('toy')
|
|
155
160
|
* .select((eb) => eb.fn.avg('price').as('avg_price'))
|
|
156
161
|
* .execute()
|
|
157
162
|
* ```
|
|
@@ -162,14 +167,6 @@ export interface FunctionModule<DB, TB extends keyof DB> {
|
|
|
162
167
|
* select avg("price") as "avg_price" from "toy"
|
|
163
168
|
* ```
|
|
164
169
|
*
|
|
165
|
-
* You can limit column range to only columns participating in current query:
|
|
166
|
-
*
|
|
167
|
-
* ```ts
|
|
168
|
-
* db.selectFrom('toy')
|
|
169
|
-
* .select((eb) => eb.fn.avg('price').as('avg_price'))
|
|
170
|
-
* .execute()
|
|
171
|
-
* ```
|
|
172
|
-
*
|
|
173
170
|
* If this function is used in a `select` statement, the type of the selected
|
|
174
171
|
* expression will be `number | string` by default. This is because Kysely can't know the
|
|
175
172
|
* type the db driver outputs. Sometimes the output can be larger than the largest
|
|
@@ -181,7 +178,7 @@ export interface FunctionModule<DB, TB extends keyof DB> {
|
|
|
181
178
|
* the first type argument:
|
|
182
179
|
*
|
|
183
180
|
* ```ts
|
|
184
|
-
* db.selectFrom('toy')
|
|
181
|
+
* await db.selectFrom('toy')
|
|
185
182
|
* .select((eb) => eb.fn.avg<number>('price').as('avg_price'))
|
|
186
183
|
* .execute()
|
|
187
184
|
* ```
|
|
@@ -192,7 +189,7 @@ export interface FunctionModule<DB, TB extends keyof DB> {
|
|
|
192
189
|
* function.
|
|
193
190
|
*
|
|
194
191
|
* ```ts
|
|
195
|
-
* db.selectFrom('toy')
|
|
192
|
+
* await db.selectFrom('toy')
|
|
196
193
|
* .select((eb) => eb.fn.avg<number | null>('price').as('avg_price'))
|
|
197
194
|
* .execute()
|
|
198
195
|
* ```
|
|
@@ -219,35 +216,25 @@ export interface FunctionModule<DB, TB extends keyof DB> {
|
|
|
219
216
|
* ### Examples
|
|
220
217
|
*
|
|
221
218
|
* ```ts
|
|
222
|
-
*
|
|
223
|
-
*
|
|
224
|
-
*
|
|
219
|
+
* import { sql } from 'kysely'
|
|
220
|
+
*
|
|
221
|
+
* await db.selectFrom('person')
|
|
222
|
+
* .select((eb) => eb.fn.coalesce('nullable_column', sql.lit('<unknown>')).as('column'))
|
|
223
|
+
* .where('first_name', '=', 'Jessie')
|
|
225
224
|
* .execute()
|
|
226
225
|
* ```
|
|
227
226
|
*
|
|
228
227
|
* The generated SQL (PostgreSQL):
|
|
229
228
|
*
|
|
230
229
|
* ```sql
|
|
231
|
-
* select coalesce("
|
|
232
|
-
* from "participant" where "room_id" = $1
|
|
233
|
-
* ```
|
|
234
|
-
*
|
|
235
|
-
* You can limit column range to only columns participating in current query:
|
|
236
|
-
*
|
|
237
|
-
* ```ts
|
|
238
|
-
* db.selectFrom('participant')
|
|
239
|
-
* .select((eb) =>
|
|
240
|
-
* eb.fn.coalesce('nickname', sql<string>`'<anonymous>'`).as('nickname')
|
|
241
|
-
* )
|
|
242
|
-
* .where('room_id', '=', roomId)
|
|
243
|
-
* .execute()
|
|
230
|
+
* select coalesce("nullable_column", '<unknown>') as "column" from "person" where "first_name" = $1
|
|
244
231
|
* ```
|
|
245
232
|
*
|
|
246
233
|
* You can combine this function with other helpers in this module:
|
|
247
234
|
*
|
|
248
235
|
* ```ts
|
|
249
|
-
* db.selectFrom('person')
|
|
250
|
-
* .select((eb) => eb.fn.coalesce(eb.fn.avg<number | null>('age'),
|
|
236
|
+
* await db.selectFrom('person')
|
|
237
|
+
* .select((eb) => eb.fn.coalesce(eb.fn.avg<number | null>('age'), eb.lit(0)).as('avg_age'))
|
|
251
238
|
* .where('first_name', '=', 'Jennifer')
|
|
252
239
|
* .execute()
|
|
253
240
|
* ```
|
|
@@ -278,7 +265,7 @@ export interface FunctionModule<DB, TB extends keyof DB> {
|
|
|
278
265
|
* ### Examples
|
|
279
266
|
*
|
|
280
267
|
* ```ts
|
|
281
|
-
* db.selectFrom('toy')
|
|
268
|
+
* await db.selectFrom('toy')
|
|
282
269
|
* .select((eb) => eb.fn.count('id').as('num_toys'))
|
|
283
270
|
* .execute()
|
|
284
271
|
* ```
|
|
@@ -300,18 +287,10 @@ export interface FunctionModule<DB, TB extends keyof DB> {
|
|
|
300
287
|
* the type as the first type argument:
|
|
301
288
|
*
|
|
302
289
|
* ```ts
|
|
303
|
-
* db.selectFrom('toy')
|
|
290
|
+
* await db.selectFrom('toy')
|
|
304
291
|
* .select((eb) => eb.fn.count<number>('id').as('num_toys'))
|
|
305
292
|
* .execute()
|
|
306
293
|
* ```
|
|
307
|
-
*
|
|
308
|
-
* You can limit column range to only columns participating in current query:
|
|
309
|
-
*
|
|
310
|
-
* ```ts
|
|
311
|
-
* db.selectFrom('toy')
|
|
312
|
-
* .select((eb) => eb.fn.count('id').as('num_toys'))
|
|
313
|
-
* .execute()
|
|
314
|
-
* ```
|
|
315
294
|
*/
|
|
316
295
|
count<O extends number | string | bigint, RE extends ReferenceExpression<DB, TB> = ReferenceExpression<DB, TB>>(expr: RE): AggregateFunctionBuilder<DB, TB, O>;
|
|
317
296
|
/**
|
|
@@ -330,7 +309,7 @@ export interface FunctionModule<DB, TB extends keyof DB> {
|
|
|
330
309
|
* ### Examples
|
|
331
310
|
*
|
|
332
311
|
* ```ts
|
|
333
|
-
* db.selectFrom('toy')
|
|
312
|
+
* await db.selectFrom('toy')
|
|
334
313
|
* .select((eb) => eb.fn.countAll().as('num_toys'))
|
|
335
314
|
* .execute()
|
|
336
315
|
* ```
|
|
@@ -352,7 +331,7 @@ export interface FunctionModule<DB, TB extends keyof DB> {
|
|
|
352
331
|
* the type as the first type argument:
|
|
353
332
|
*
|
|
354
333
|
* ```ts
|
|
355
|
-
* db.selectFrom('toy')
|
|
334
|
+
* await db.selectFrom('toy')
|
|
356
335
|
* .select((eb) => eb.fn.countAll<number>().as('num_toys'))
|
|
357
336
|
* .execute()
|
|
358
337
|
* ```
|
|
@@ -361,7 +340,7 @@ export interface FunctionModule<DB, TB extends keyof DB> {
|
|
|
361
340
|
* table:
|
|
362
341
|
*
|
|
363
342
|
* ```ts
|
|
364
|
-
* db.selectFrom('toy')
|
|
343
|
+
* await db.selectFrom('toy')
|
|
365
344
|
* .innerJoin('pet', 'pet.id', 'toy.pet_id')
|
|
366
345
|
* .select((eb) => eb.fn.countAll('toy').as('num_toys'))
|
|
367
346
|
* .execute()
|
|
@@ -373,15 +352,6 @@ export interface FunctionModule<DB, TB extends keyof DB> {
|
|
|
373
352
|
* select count("toy".*) as "num_toys"
|
|
374
353
|
* from "toy" inner join "pet" on "pet"."id" = "toy"."pet_id"
|
|
375
354
|
* ```
|
|
376
|
-
*
|
|
377
|
-
* You can limit table range to only tables participating in current query:
|
|
378
|
-
*
|
|
379
|
-
* ```ts
|
|
380
|
-
* db.selectFrom('toy')
|
|
381
|
-
* .innerJoin('pet', 'pet.id', 'toy.pet_id')
|
|
382
|
-
* .select((eb) => eb.fn.countAll('toy').as('num_toys'))
|
|
383
|
-
* .execute()
|
|
384
|
-
* ```
|
|
385
355
|
*/
|
|
386
356
|
countAll<O extends number | string | bigint, T extends TB = TB>(table: T): AggregateFunctionBuilder<DB, TB, O>;
|
|
387
357
|
countAll<O extends number | string | bigint>(): AggregateFunctionBuilder<DB, TB, O>;
|
|
@@ -401,7 +371,7 @@ export interface FunctionModule<DB, TB extends keyof DB> {
|
|
|
401
371
|
* ### Examples
|
|
402
372
|
*
|
|
403
373
|
* ```ts
|
|
404
|
-
* db.selectFrom('toy')
|
|
374
|
+
* await db.selectFrom('toy')
|
|
405
375
|
* .select((eb) => eb.fn.max('price').as('max_price'))
|
|
406
376
|
* .execute()
|
|
407
377
|
* ```
|
|
@@ -412,21 +382,13 @@ export interface FunctionModule<DB, TB extends keyof DB> {
|
|
|
412
382
|
* select max("price") as "max_price" from "toy"
|
|
413
383
|
* ```
|
|
414
384
|
*
|
|
415
|
-
* You can limit column range to only columns participating in current query:
|
|
416
|
-
*
|
|
417
|
-
* ```ts
|
|
418
|
-
* db.selectFrom('toy')
|
|
419
|
-
* .select((eb) => eb.fn.max('price').as('max_price'))
|
|
420
|
-
* .execute()
|
|
421
|
-
* ```
|
|
422
|
-
*
|
|
423
385
|
* Sometimes a null is returned, e.g. when row count is 0, and no `group by`
|
|
424
386
|
* was used. It is highly recommended to include null in the output type union
|
|
425
387
|
* and handle null values in post-execute code, or wrap the function with a {@link coalesce}
|
|
426
388
|
* function.
|
|
427
389
|
*
|
|
428
390
|
* ```ts
|
|
429
|
-
* db.selectFrom('toy')
|
|
391
|
+
* await db.selectFrom('toy')
|
|
430
392
|
* .select((eb) => eb.fn.max<number | null>('price').as('max_price'))
|
|
431
393
|
* .execute()
|
|
432
394
|
* ```
|
|
@@ -448,7 +410,7 @@ export interface FunctionModule<DB, TB extends keyof DB> {
|
|
|
448
410
|
* ### Examples
|
|
449
411
|
*
|
|
450
412
|
* ```ts
|
|
451
|
-
* db.selectFrom('toy')
|
|
413
|
+
* await db.selectFrom('toy')
|
|
452
414
|
* .select((eb) => eb.fn.min('price').as('min_price'))
|
|
453
415
|
* .execute()
|
|
454
416
|
* ```
|
|
@@ -459,21 +421,13 @@ export interface FunctionModule<DB, TB extends keyof DB> {
|
|
|
459
421
|
* select min("price") as "min_price" from "toy"
|
|
460
422
|
* ```
|
|
461
423
|
*
|
|
462
|
-
* You can limit column range to only columns participating in current query:
|
|
463
|
-
*
|
|
464
|
-
* ```ts
|
|
465
|
-
* db.selectFrom('toy')
|
|
466
|
-
* .select((eb) => eb.fn.min('price').as('min_price'))
|
|
467
|
-
* .execute()
|
|
468
|
-
* ```
|
|
469
|
-
*
|
|
470
424
|
* Sometimes a null is returned, e.g. when row count is 0, and no `group by`
|
|
471
425
|
* was used. It is highly recommended to include null in the output type union
|
|
472
426
|
* and handle null values in post-execute code, or wrap the function with a {@link coalesce}
|
|
473
427
|
* function.
|
|
474
428
|
*
|
|
475
429
|
* ```ts
|
|
476
|
-
* db.selectFrom('toy')
|
|
430
|
+
* await db.selectFrom('toy')
|
|
477
431
|
* .select((eb) => eb.fn.min<number | null>('price').as('min_price'))
|
|
478
432
|
* .execute()
|
|
479
433
|
* ```
|
|
@@ -491,7 +445,7 @@ export interface FunctionModule<DB, TB extends keyof DB> {
|
|
|
491
445
|
* ### Examples
|
|
492
446
|
*
|
|
493
447
|
* ```ts
|
|
494
|
-
* db.selectFrom('toy')
|
|
448
|
+
* await db.selectFrom('toy')
|
|
495
449
|
* .select((eb) => eb.fn.sum('price').as('total_price'))
|
|
496
450
|
* .execute()
|
|
497
451
|
* ```
|
|
@@ -502,14 +456,6 @@ export interface FunctionModule<DB, TB extends keyof DB> {
|
|
|
502
456
|
* select sum("price") as "total_price" from "toy"
|
|
503
457
|
* ```
|
|
504
458
|
*
|
|
505
|
-
* You can limit column range to only columns participating in current query:
|
|
506
|
-
*
|
|
507
|
-
* ```ts
|
|
508
|
-
* db.selectFrom('toy')
|
|
509
|
-
* .select((eb) => eb.fn.sum('price').as('total_price'))
|
|
510
|
-
* .execute()
|
|
511
|
-
* ```
|
|
512
|
-
*
|
|
513
459
|
* If this function is used in a `select` statement, the type of the selected
|
|
514
460
|
* expression will be `number | string` by default. This is because Kysely can't know the
|
|
515
461
|
* type the db driver outputs. Sometimes the output can be larger than the largest
|
|
@@ -521,7 +467,7 @@ export interface FunctionModule<DB, TB extends keyof DB> {
|
|
|
521
467
|
* the first type argument:
|
|
522
468
|
*
|
|
523
469
|
* ```ts
|
|
524
|
-
* db.selectFrom('toy')
|
|
470
|
+
* await db.selectFrom('toy')
|
|
525
471
|
* .select((eb) => eb.fn.sum<number>('price').as('total_price'))
|
|
526
472
|
* .execute()
|
|
527
473
|
* ```
|
|
@@ -532,7 +478,7 @@ export interface FunctionModule<DB, TB extends keyof DB> {
|
|
|
532
478
|
* function.
|
|
533
479
|
*
|
|
534
480
|
* ```ts
|
|
535
|
-
* db.selectFrom('toy')
|
|
481
|
+
* await db.selectFrom('toy')
|
|
536
482
|
* .select((eb) => eb.fn.sum<number | null>('price').as('total_price'))
|
|
537
483
|
* .execute()
|
|
538
484
|
* ```
|
|
@@ -548,11 +494,12 @@ export interface FunctionModule<DB, TB extends keyof DB> {
|
|
|
548
494
|
* In the following example, `nicknames` is assumed to be a column of type `string[]`:
|
|
549
495
|
*
|
|
550
496
|
* ```ts
|
|
551
|
-
* db.selectFrom('person')
|
|
497
|
+
* await db.selectFrom('person')
|
|
552
498
|
* .selectAll('person')
|
|
553
499
|
* .where((eb) => eb(
|
|
554
500
|
* eb.val('Jen'), '=', eb.fn.any('person.nicknames')
|
|
555
501
|
* ))
|
|
502
|
+
* .execute()
|
|
556
503
|
* ```
|
|
557
504
|
*
|
|
558
505
|
*
|
|
@@ -576,7 +523,7 @@ export interface FunctionModule<DB, TB extends keyof DB> {
|
|
|
576
523
|
* This function is only available on PostgreSQL.
|
|
577
524
|
*
|
|
578
525
|
* ```ts
|
|
579
|
-
* db.selectFrom('person')
|
|
526
|
+
* await db.selectFrom('person')
|
|
580
527
|
* .innerJoin('pet', 'pet.owner_id', 'person.id')
|
|
581
528
|
* .select((eb) => ['first_name', eb.fn.jsonAgg('pet').as('pets')])
|
|
582
529
|
* .groupBy('person.first_name')
|
|
@@ -599,7 +546,7 @@ export interface FunctionModule<DB, TB extends keyof DB> {
|
|
|
599
546
|
* This function is only available on PostgreSQL.
|
|
600
547
|
*
|
|
601
548
|
* ```ts
|
|
602
|
-
* db.selectFrom('person')
|
|
549
|
+
* await db.selectFrom('person')
|
|
603
550
|
* .innerJoin('pet', 'pet.owner_id', 'person.id')
|
|
604
551
|
* .select((eb) => ['first_name', eb.fn.toJson('pet').as('pet')])
|
|
605
552
|
* .execute()
|