kysely 0.19.2 → 0.19.5

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.
Files changed (90) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/dialect/mysql/mysql-driver.d.ts +0 -5
  3. package/dist/cjs/dialect/postgres/postgres-driver.d.ts +0 -5
  4. package/dist/cjs/dialect/sqlite/sqlite-driver.d.ts +0 -5
  5. package/dist/cjs/dialect/sqlite/sqlite-introspector.js +0 -1
  6. package/dist/cjs/driver/driver.d.ts +0 -5
  7. package/dist/cjs/driver/dummy-driver.d.ts +0 -5
  8. package/dist/cjs/driver/runtime-driver.d.ts +0 -5
  9. package/dist/cjs/index.d.ts +0 -1
  10. package/dist/cjs/index.js +0 -1
  11. package/dist/cjs/migration/file-migration-provider.js +3 -2
  12. package/dist/cjs/operation-node/check-constraint-node.d.ts +1 -1
  13. package/dist/cjs/operation-node/common-table-expression-name-node.d.ts +1 -1
  14. package/dist/cjs/operation-node/create-schema-node.d.ts +1 -1
  15. package/dist/cjs/operation-node/delete-query-node.d.ts +1 -1
  16. package/dist/cjs/operation-node/drop-constraint-node.d.ts +4 -0
  17. package/dist/cjs/operation-node/drop-constraint-node.js +6 -0
  18. package/dist/cjs/operation-node/drop-index-node.d.ts +1 -1
  19. package/dist/cjs/operation-node/drop-schema-node.d.ts +1 -1
  20. package/dist/cjs/operation-node/drop-table-node.d.ts +1 -1
  21. package/dist/cjs/operation-node/foreign-key-constraint-node.d.ts +1 -1
  22. package/dist/cjs/operation-node/insert-query-node.d.ts +1 -1
  23. package/dist/cjs/operation-node/join-node.d.ts +1 -1
  24. package/dist/cjs/operation-node/operation-node-transformer.js +2 -0
  25. package/dist/cjs/operation-node/order-by-item-node.d.ts +1 -1
  26. package/dist/cjs/operation-node/primary-constraint-node.d.ts +1 -1
  27. package/dist/cjs/operation-node/select-query-node.d.ts +1 -1
  28. package/dist/cjs/operation-node/unique-constraint-node.d.ts +1 -1
  29. package/dist/cjs/operation-node/update-query-node.d.ts +1 -1
  30. package/dist/cjs/operation-node/with-node.d.ts +1 -1
  31. package/dist/cjs/package.json +1 -1
  32. package/dist/cjs/parser/join-parser.d.ts +4 -4
  33. package/dist/cjs/parser/table-parser.d.ts +5 -14
  34. package/dist/cjs/query-builder/delete-query-builder.d.ts +35 -13
  35. package/dist/cjs/query-builder/expression-builder.d.ts +3 -3
  36. package/dist/cjs/query-builder/select-query-builder.d.ts +44 -13
  37. package/dist/cjs/query-builder/select-query-builder.js +12 -0
  38. package/dist/cjs/query-builder/update-query-builder.d.ts +37 -15
  39. package/dist/cjs/query-compiler/default-query-compiler.js +11 -0
  40. package/dist/cjs/query-creator.d.ts +5 -5
  41. package/dist/cjs/schema/alter-table-builder.d.ts +13 -0
  42. package/dist/cjs/schema/alter-table-builder.js +57 -1
  43. package/dist/cjs/util/type-utils.d.ts +3 -0
  44. package/dist/esm/dialect/mysql/mysql-driver.d.ts +0 -5
  45. package/dist/esm/dialect/postgres/postgres-driver.d.ts +0 -5
  46. package/dist/esm/dialect/sqlite/sqlite-driver.d.ts +0 -5
  47. package/dist/esm/dialect/sqlite/sqlite-introspector.js +0 -1
  48. package/dist/esm/driver/driver.d.ts +0 -5
  49. package/dist/esm/driver/dummy-driver.d.ts +0 -5
  50. package/dist/esm/driver/runtime-driver.d.ts +0 -5
  51. package/dist/esm/index.d.ts +0 -1
  52. package/dist/esm/index.js +0 -1
  53. package/dist/esm/migration/file-migration-provider.js +3 -2
  54. package/dist/esm/operation-node/check-constraint-node.d.ts +1 -1
  55. package/dist/esm/operation-node/common-table-expression-name-node.d.ts +1 -1
  56. package/dist/esm/operation-node/create-schema-node.d.ts +1 -1
  57. package/dist/esm/operation-node/delete-query-node.d.ts +1 -1
  58. package/dist/esm/operation-node/drop-constraint-node.d.ts +4 -0
  59. package/dist/esm/operation-node/drop-constraint-node.js +6 -0
  60. package/dist/esm/operation-node/drop-index-node.d.ts +1 -1
  61. package/dist/esm/operation-node/drop-schema-node.d.ts +1 -1
  62. package/dist/esm/operation-node/drop-table-node.d.ts +1 -1
  63. package/dist/esm/operation-node/foreign-key-constraint-node.d.ts +1 -1
  64. package/dist/esm/operation-node/insert-query-node.d.ts +1 -1
  65. package/dist/esm/operation-node/join-node.d.ts +1 -1
  66. package/dist/esm/operation-node/operation-node-transformer.js +2 -0
  67. package/dist/esm/operation-node/order-by-item-node.d.ts +1 -1
  68. package/dist/esm/operation-node/primary-constraint-node.d.ts +1 -1
  69. package/dist/esm/operation-node/select-query-node.d.ts +1 -1
  70. package/dist/esm/operation-node/unique-constraint-node.d.ts +1 -1
  71. package/dist/esm/operation-node/update-query-node.d.ts +1 -1
  72. package/dist/esm/operation-node/with-node.d.ts +1 -1
  73. package/dist/esm/package.json +1 -1
  74. package/dist/esm/parser/join-parser.d.ts +4 -4
  75. package/dist/esm/parser/table-parser.d.ts +5 -14
  76. package/dist/esm/query-builder/delete-query-builder.d.ts +35 -13
  77. package/dist/esm/query-builder/expression-builder.d.ts +3 -3
  78. package/dist/esm/query-builder/select-query-builder.d.ts +44 -13
  79. package/dist/esm/query-builder/select-query-builder.js +12 -0
  80. package/dist/esm/query-builder/update-query-builder.d.ts +37 -15
  81. package/dist/esm/query-compiler/default-query-compiler.js +11 -0
  82. package/dist/esm/query-creator.d.ts +5 -5
  83. package/dist/esm/schema/alter-table-builder.d.ts +13 -0
  84. package/dist/esm/schema/alter-table-builder.js +55 -0
  85. package/dist/esm/util/type-utils.d.ts +3 -0
  86. package/package.json +10 -10
  87. package/dist/cjs/query-builder/join-interface.d.ts +0 -130
  88. package/dist/cjs/query-builder/join-interface.js +0 -2
  89. package/dist/esm/query-builder/join-interface.d.ts +0 -130
  90. package/dist/esm/query-builder/join-interface.js +0 -2
@@ -49,6 +49,7 @@ export declare class AlterTableBuilder {
49
49
  * is because you can only add one column per `ALTER TABLE` query.
50
50
  */
51
51
  addForeignKeyConstraint(constraintName: string, columns: string[], targetTable: string, targetColumns: string[]): AlterTableAddForeignKeyConstraintBuilder;
52
+ dropConstraint(constraintName: string): AlterTableDropConstraintBuilder;
52
53
  }
53
54
  export interface AlterTableBuilderProps {
54
55
  readonly queryId: QueryId;
@@ -419,3 +420,15 @@ export declare class AlterTableAddForeignKeyConstraintBuilder implements Foreign
419
420
  export interface AlterTableAddForeignKeyConstraintBuilderProps extends AlterTableBuilderProps {
420
421
  readonly constraintBuilder: ForeignKeyConstraintBuilder;
421
422
  }
423
+ export declare class AlterTableDropConstraintBuilder implements OperationNodeSource, Compilable {
424
+ #private;
425
+ constructor(props: AlterTableDropConstraintBuilderProps);
426
+ ifExists(): AlterTableDropConstraintBuilder;
427
+ cascade(): AlterTableDropConstraintBuilder;
428
+ restrict(): AlterTableDropConstraintBuilder;
429
+ toOperationNode(): AlterTableNode;
430
+ compile(): CompiledQuery;
431
+ execute(): Promise<void>;
432
+ }
433
+ export interface AlterTableDropConstraintBuilderProps extends AlterTableBuilderProps {
434
+ }
@@ -20,6 +20,7 @@ import { ForeignKeyConstraintNode } from '../operation-node/foreign-key-constrai
20
20
  import { ColumnNode } from '../operation-node/column-node.js';
21
21
  import { parseDefaultValueExpression, } from '../parser/default-value-parser.js';
22
22
  import { parseTable } from '../parser/table-parser.js';
23
+ import { DropConstraintNode } from '../operation-node/drop-constraint-node.js';
23
24
  /**
24
25
  * This builder can be used to create a `alter table` query.
25
26
  */
@@ -121,6 +122,14 @@ export class AlterTableBuilder {
121
122
  constraintBuilder: new ForeignKeyConstraintBuilder(ForeignKeyConstraintNode.create(columns.map(ColumnNode.create), parseTable(targetTable), targetColumns.map(ColumnNode.create), constraintName)),
122
123
  });
123
124
  }
125
+ dropConstraint(constraintName) {
126
+ return new AlterTableDropConstraintBuilder({
127
+ ...this.#props,
128
+ alterTableNode: AlterTableNode.cloneWith(this.#props.alterTableNode, {
129
+ dropConstraint: DropConstraintNode.create(constraintName),
130
+ }),
131
+ });
132
+ }
124
133
  }
125
134
  export class AlterColumnBuilder {
126
135
  #props;
@@ -424,9 +433,55 @@ export class AlterTableAddForeignKeyConstraintBuilder {
424
433
  await this.#props.executor.executeQuery(this.compile(), this.#props.queryId);
425
434
  }
426
435
  }
436
+ export class AlterTableDropConstraintBuilder {
437
+ #props;
438
+ constructor(props) {
439
+ this.#props = freeze(props);
440
+ }
441
+ ifExists() {
442
+ return new AlterTableDropConstraintBuilder({
443
+ ...this.#props,
444
+ alterTableNode: AlterTableNode.cloneWith(this.#props.alterTableNode, {
445
+ dropConstraint: DropConstraintNode.cloneWith(this.#props.alterTableNode.dropConstraint, {
446
+ ifExists: true,
447
+ }),
448
+ }),
449
+ });
450
+ }
451
+ cascade() {
452
+ return new AlterTableDropConstraintBuilder({
453
+ ...this.#props,
454
+ alterTableNode: AlterTableNode.cloneWith(this.#props.alterTableNode, {
455
+ dropConstraint: DropConstraintNode.cloneWith(this.#props.alterTableNode.dropConstraint, {
456
+ modifier: 'cascade',
457
+ }),
458
+ }),
459
+ });
460
+ }
461
+ restrict() {
462
+ return new AlterTableDropConstraintBuilder({
463
+ ...this.#props,
464
+ alterTableNode: AlterTableNode.cloneWith(this.#props.alterTableNode, {
465
+ dropConstraint: DropConstraintNode.cloneWith(this.#props.alterTableNode.dropConstraint, {
466
+ modifier: 'restrict',
467
+ }),
468
+ }),
469
+ });
470
+ }
471
+ toOperationNode() {
472
+ return this.#props.executor.transformQuery(this.#props.alterTableNode, this.#props.queryId);
473
+ }
474
+ compile() {
475
+ return this.#props.executor.compileQuery(this.toOperationNode(), this.#props.queryId);
476
+ }
477
+ async execute() {
478
+ await this.#props.executor.executeQuery(this.compile(), this.#props.queryId);
479
+ }
480
+ }
427
481
  preventAwait(AlterTableBuilder, "don't await AlterTableBuilder instances");
428
482
  preventAwait(AlterColumnBuilder, "don't await AlterColumnBuilder instances");
429
483
  preventAwait(AlterTableExecutor, "don't await AlterTableExecutor instances directly. To execute the query you need to call `execute`");
430
484
  preventAwait(AlterTableAddColumnBuilder, "don't await AlterTableAddColumnBuilder instances directly. To execute the query you need to call `execute`");
431
485
  preventAwait(AlterTableModifyColumnBuilder, "don't await AlterTableModifyColumnBuilder instances directly. To execute the query you need to call `execute`");
432
486
  preventAwait(AlterTableAddForeignKeyConstraintBuilder, "don't await AlterTableAddForeignKeyConstraintBuilder instances directly. To execute the query you need to call `execute`");
487
+ preventAwait(AlterTableDropConstraintBuilder, "don't await AlterTableDropConstraintBuilder instances directly. To execute the query you need to call `execute`");
@@ -111,6 +111,9 @@ export declare type UnknownRow = Record<string, unknown>;
111
111
  export declare type Nullable<T> = {
112
112
  [P in keyof T]: T[P] | null;
113
113
  };
114
+ export declare type NullableValues<T> = {
115
+ [P in keyof T]: Nullable<T[P]>;
116
+ };
114
117
  /**
115
118
  * Takes all properties from T1 and merges all properties from T2
116
119
  * that don't exist in T1 as optional properties.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kysely",
3
- "version": "0.19.2",
3
+ "version": "0.19.5",
4
4
  "description": "Type safe SQL query builder",
5
5
  "repository": {
6
6
  "type": "git",
@@ -45,19 +45,19 @@
45
45
  "@types/better-sqlite3": "^7.5.0",
46
46
  "@types/chai": "^4.3.1",
47
47
  "@types/chai-subset": "^1.3.3",
48
- "@types/mocha": "^9.1.0",
48
+ "@types/mocha": "^9.1.1",
49
49
  "@types/pg": "^8.6.5",
50
- "better-sqlite3": "^7.5.1",
50
+ "better-sqlite3": "^7.5.3",
51
51
  "chai": "^4.3.6",
52
52
  "chai-subset": "^1.6.0",
53
- "esbuild": "^0.14.36",
54
- "mocha": "^9.2.2",
53
+ "esbuild": "^0.14.47",
54
+ "mocha": "^10.0.0",
55
55
  "mysql2": "^2.3.3",
56
56
  "pg": "^8.7.3",
57
- "playwright": "^1.21.0",
58
- "prettier": "^2.6.2",
59
- "tsd": "^0.20.0",
60
- "typedoc": "^0.22.15",
61
- "typescript": "4.6.3"
57
+ "playwright": "^1.22.2",
58
+ "prettier": "^2.7.1",
59
+ "tsd": "^0.21.0",
60
+ "typedoc": "^0.22.18",
61
+ "typescript": "4.7.4"
62
62
  }
63
63
  }
@@ -1,130 +0,0 @@
1
- import { JoinCallbackExpression, JoinReferenceExpression } from '../parser/join-parser.js';
2
- import { FullJoinTableExpressionDatabase, LeftJoinTableExpressionDatabase, RightJoinTableExpressionDatabase, TableExpression, TableExpressionDatabase, TableExpressionTables } from '../parser/table-parser.js';
3
- export interface JoinInterface<DB, TB extends keyof DB> {
4
- /**
5
- * Joins another table to the query using an inner join.
6
- *
7
- * ### Examples
8
- *
9
- * Simple usage by providing a table name and two columns to join:
10
- *
11
- * ```ts
12
- * const result = await db
13
- * .selectFrom('person')
14
- * .innerJoin('pet', 'pet.owner_id', 'person.id')
15
- * // `select` needs to come after the call to `innerJoin` so
16
- * // that you can select from the joined table.
17
- * .select('person.id', 'pet.name')
18
- * .execute()
19
- *
20
- * result[0].id
21
- * result[0].name
22
- * ```
23
- *
24
- * The generated SQL (PostgreSQL):
25
- *
26
- * ```sql
27
- * select "person"."id", "pet"."name"
28
- * from "person"
29
- * inner join "pet"
30
- * on "pet"."owner_id" = "person"."id"
31
- * ```
32
- *
33
- * You can give an alias for the joined table like this:
34
- *
35
- * ```ts
36
- * await db.selectFrom('person')
37
- * .innerJoin('pet as p', 'p.owner_id', 'person.id')
38
- * .where('p.name', '=', 'Doggo')
39
- * .selectAll()
40
- * .execute()
41
- * ```
42
- *
43
- * The generated SQL (PostgreSQL):
44
- *
45
- * ```sql
46
- * select *
47
- * from "person"
48
- * inner join "pet" as "p"
49
- * on "p"."owner_id" = "person"."id"
50
- * where "p".name" = $1
51
- * ```
52
- *
53
- * You can provide a function as the second argument to get a join
54
- * builder for creating more complex joins. The join builder has a
55
- * bunch of `on*` methods for building the `on` clause of the join.
56
- * There's basically an equivalent for every `where` method
57
- * (`on`, `onRef`, `onExists` etc.). You can do all the same things
58
- * with the `on` method that you can with the corresponding `where`
59
- * method. See the `where` method documentation for more examples.
60
- *
61
- * ```ts
62
- * await db.selectFrom('person')
63
- * .innerJoin(
64
- * 'pet',
65
- * (join) => join
66
- * .onRef('pet.owner_id', '=', 'person.id')
67
- * .on('pet.name', '=', 'Doggo')
68
- * )
69
- * .selectAll()
70
- * .execute()
71
- * ```
72
- *
73
- * The generated SQL (PostgreSQL):
74
- *
75
- * ```sql
76
- * select *
77
- * from "person"
78
- * inner join "pet"
79
- * on "pet"."owner_id" = "person"."id"
80
- * and "pet"."name" = $1
81
- * ```
82
- *
83
- * You can join a subquery by providing a select query (or a callback)
84
- * as the first argument:
85
- *
86
- * ```ts
87
- * await db.selectFrom('person')
88
- * .innerJoin(
89
- * qb.selectFrom('pet')
90
- * .select(['owner_id', 'name'])
91
- * .where('name', '=', 'Doggo')
92
- * .as('doggos'),
93
- * 'doggos.owner_id',
94
- * 'person.id',
95
- * )
96
- * .selectAll()
97
- * .execute()
98
- * ```
99
- *
100
- * The generated SQL (PostgreSQL):
101
- *
102
- * ```sql
103
- * select *
104
- * from "person"
105
- * inner join (
106
- * select "owner_id", "name"
107
- * from "pet"
108
- * where "name" = $1
109
- * ) as "doggos"
110
- * on "doggos"."owner_id" = "person"."id"
111
- * ```
112
- */
113
- innerJoin<TE extends TableExpression<DB, TB>, K1 extends JoinReferenceExpression<DB, TB, TE>, K2 extends JoinReferenceExpression<DB, TB, TE>>(table: TE, k1: K1, k2: K2): JoinInterface<TableExpressionDatabase<DB, TE>, TableExpressionTables<DB, TB, TE>>;
114
- innerJoin<TE extends TableExpression<DB, TB>, FN extends JoinCallbackExpression<DB, TB, TE>>(table: TE, callback: FN): JoinInterface<TableExpressionDatabase<DB, TE>, TableExpressionTables<DB, TB, TE>>;
115
- /**
116
- * Just like {@link innerJoin} but adds a left join nstead of an inner join.
117
- */
118
- leftJoin<TE extends TableExpression<DB, TB>, K1 extends JoinReferenceExpression<DB, TB, TE>, K2 extends JoinReferenceExpression<DB, TB, TE>>(table: TE, k1: K1, k2: K2): JoinInterface<LeftJoinTableExpressionDatabase<DB, TE>, TableExpressionTables<DB, TB, TE>>;
119
- leftJoin<TE extends TableExpression<DB, TB>, FN extends JoinCallbackExpression<DB, TB, TE>>(table: TE, callback: FN): JoinInterface<LeftJoinTableExpressionDatabase<DB, TE>, TableExpressionTables<DB, TB, TE>>;
120
- /**
121
- * Just like {@link innerJoin} but adds a right join instead of an inner join.
122
- */
123
- rightJoin<TE extends TableExpression<DB, TB>, K1 extends JoinReferenceExpression<DB, TB, TE>, K2 extends JoinReferenceExpression<DB, TB, TE>>(table: TE, k1: K1, k2: K2): JoinInterface<RightJoinTableExpressionDatabase<DB, TB, TE>, TableExpressionTables<DB, TB, TE>>;
124
- rightJoin<TE extends TableExpression<DB, TB>, FN extends JoinCallbackExpression<DB, TB, TE>>(table: TE, callback: FN): JoinInterface<RightJoinTableExpressionDatabase<DB, TB, TE>, TableExpressionTables<DB, TB, TE>>;
125
- /**
126
- * Just like {@link innerJoin} but adds a full join instead of an inner join.
127
- */
128
- fullJoin<TE extends TableExpression<DB, TB>, K1 extends JoinReferenceExpression<DB, TB, TE>, K2 extends JoinReferenceExpression<DB, TB, TE>>(table: TE, k1: K1, k2: K2): JoinInterface<FullJoinTableExpressionDatabase<DB, TB, TE>, TableExpressionTables<DB, TB, TE>>;
129
- fullJoin<TE extends TableExpression<DB, TB>, FN extends JoinCallbackExpression<DB, TB, TE>>(table: TE, callback: FN): JoinInterface<FullJoinTableExpressionDatabase<DB, TB, TE>, TableExpressionTables<DB, TB, TE>>;
130
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,130 +0,0 @@
1
- import { JoinCallbackExpression, JoinReferenceExpression } from '../parser/join-parser.js';
2
- import { FullJoinTableExpressionDatabase, LeftJoinTableExpressionDatabase, RightJoinTableExpressionDatabase, TableExpression, TableExpressionDatabase, TableExpressionTables } from '../parser/table-parser.js';
3
- export interface JoinInterface<DB, TB extends keyof DB> {
4
- /**
5
- * Joins another table to the query using an inner join.
6
- *
7
- * ### Examples
8
- *
9
- * Simple usage by providing a table name and two columns to join:
10
- *
11
- * ```ts
12
- * const result = await db
13
- * .selectFrom('person')
14
- * .innerJoin('pet', 'pet.owner_id', 'person.id')
15
- * // `select` needs to come after the call to `innerJoin` so
16
- * // that you can select from the joined table.
17
- * .select('person.id', 'pet.name')
18
- * .execute()
19
- *
20
- * result[0].id
21
- * result[0].name
22
- * ```
23
- *
24
- * The generated SQL (PostgreSQL):
25
- *
26
- * ```sql
27
- * select "person"."id", "pet"."name"
28
- * from "person"
29
- * inner join "pet"
30
- * on "pet"."owner_id" = "person"."id"
31
- * ```
32
- *
33
- * You can give an alias for the joined table like this:
34
- *
35
- * ```ts
36
- * await db.selectFrom('person')
37
- * .innerJoin('pet as p', 'p.owner_id', 'person.id')
38
- * .where('p.name', '=', 'Doggo')
39
- * .selectAll()
40
- * .execute()
41
- * ```
42
- *
43
- * The generated SQL (PostgreSQL):
44
- *
45
- * ```sql
46
- * select *
47
- * from "person"
48
- * inner join "pet" as "p"
49
- * on "p"."owner_id" = "person"."id"
50
- * where "p".name" = $1
51
- * ```
52
- *
53
- * You can provide a function as the second argument to get a join
54
- * builder for creating more complex joins. The join builder has a
55
- * bunch of `on*` methods for building the `on` clause of the join.
56
- * There's basically an equivalent for every `where` method
57
- * (`on`, `onRef`, `onExists` etc.). You can do all the same things
58
- * with the `on` method that you can with the corresponding `where`
59
- * method. See the `where` method documentation for more examples.
60
- *
61
- * ```ts
62
- * await db.selectFrom('person')
63
- * .innerJoin(
64
- * 'pet',
65
- * (join) => join
66
- * .onRef('pet.owner_id', '=', 'person.id')
67
- * .on('pet.name', '=', 'Doggo')
68
- * )
69
- * .selectAll()
70
- * .execute()
71
- * ```
72
- *
73
- * The generated SQL (PostgreSQL):
74
- *
75
- * ```sql
76
- * select *
77
- * from "person"
78
- * inner join "pet"
79
- * on "pet"."owner_id" = "person"."id"
80
- * and "pet"."name" = $1
81
- * ```
82
- *
83
- * You can join a subquery by providing a select query (or a callback)
84
- * as the first argument:
85
- *
86
- * ```ts
87
- * await db.selectFrom('person')
88
- * .innerJoin(
89
- * qb.selectFrom('pet')
90
- * .select(['owner_id', 'name'])
91
- * .where('name', '=', 'Doggo')
92
- * .as('doggos'),
93
- * 'doggos.owner_id',
94
- * 'person.id',
95
- * )
96
- * .selectAll()
97
- * .execute()
98
- * ```
99
- *
100
- * The generated SQL (PostgreSQL):
101
- *
102
- * ```sql
103
- * select *
104
- * from "person"
105
- * inner join (
106
- * select "owner_id", "name"
107
- * from "pet"
108
- * where "name" = $1
109
- * ) as "doggos"
110
- * on "doggos"."owner_id" = "person"."id"
111
- * ```
112
- */
113
- innerJoin<TE extends TableExpression<DB, TB>, K1 extends JoinReferenceExpression<DB, TB, TE>, K2 extends JoinReferenceExpression<DB, TB, TE>>(table: TE, k1: K1, k2: K2): JoinInterface<TableExpressionDatabase<DB, TE>, TableExpressionTables<DB, TB, TE>>;
114
- innerJoin<TE extends TableExpression<DB, TB>, FN extends JoinCallbackExpression<DB, TB, TE>>(table: TE, callback: FN): JoinInterface<TableExpressionDatabase<DB, TE>, TableExpressionTables<DB, TB, TE>>;
115
- /**
116
- * Just like {@link innerJoin} but adds a left join nstead of an inner join.
117
- */
118
- leftJoin<TE extends TableExpression<DB, TB>, K1 extends JoinReferenceExpression<DB, TB, TE>, K2 extends JoinReferenceExpression<DB, TB, TE>>(table: TE, k1: K1, k2: K2): JoinInterface<LeftJoinTableExpressionDatabase<DB, TE>, TableExpressionTables<DB, TB, TE>>;
119
- leftJoin<TE extends TableExpression<DB, TB>, FN extends JoinCallbackExpression<DB, TB, TE>>(table: TE, callback: FN): JoinInterface<LeftJoinTableExpressionDatabase<DB, TE>, TableExpressionTables<DB, TB, TE>>;
120
- /**
121
- * Just like {@link innerJoin} but adds a right join instead of an inner join.
122
- */
123
- rightJoin<TE extends TableExpression<DB, TB>, K1 extends JoinReferenceExpression<DB, TB, TE>, K2 extends JoinReferenceExpression<DB, TB, TE>>(table: TE, k1: K1, k2: K2): JoinInterface<RightJoinTableExpressionDatabase<DB, TB, TE>, TableExpressionTables<DB, TB, TE>>;
124
- rightJoin<TE extends TableExpression<DB, TB>, FN extends JoinCallbackExpression<DB, TB, TE>>(table: TE, callback: FN): JoinInterface<RightJoinTableExpressionDatabase<DB, TB, TE>, TableExpressionTables<DB, TB, TE>>;
125
- /**
126
- * Just like {@link innerJoin} but adds a full join instead of an inner join.
127
- */
128
- fullJoin<TE extends TableExpression<DB, TB>, K1 extends JoinReferenceExpression<DB, TB, TE>, K2 extends JoinReferenceExpression<DB, TB, TE>>(table: TE, k1: K1, k2: K2): JoinInterface<FullJoinTableExpressionDatabase<DB, TB, TE>, TableExpressionTables<DB, TB, TE>>;
129
- fullJoin<TE extends TableExpression<DB, TB>, FN extends JoinCallbackExpression<DB, TB, TE>>(table: TE, callback: FN): JoinInterface<FullJoinTableExpressionDatabase<DB, TB, TE>, TableExpressionTables<DB, TB, TE>>;
130
- }
@@ -1,2 +0,0 @@
1
- /// <reference types="./join-interface.d.ts" />
2
- export {};