drizzle-kit 0.28.0 → 0.28.1-442f74d
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 +7 -7
- package/api.js +1016 -714
- package/api.mjs +1016 -714
- package/bin.cjs +8 -8
- package/package.json +1 -1
package/api.js
CHANGED
@@ -21121,7 +21121,7 @@ var version;
|
|
21121
21121
|
var init_version = __esm({
|
21122
21122
|
"../drizzle-orm/dist/version.js"() {
|
21123
21123
|
"use strict";
|
21124
|
-
version = "0.36.
|
21124
|
+
version = "0.36.3";
|
21125
21125
|
}
|
21126
21126
|
});
|
21127
21127
|
|
@@ -21407,7 +21407,11 @@ var init_sql = __esm({
|
|
21407
21407
|
if (_config.invokeSource === "indexes") {
|
21408
21408
|
return { sql: escapeName(columnName), params: [] };
|
21409
21409
|
}
|
21410
|
-
|
21410
|
+
const schemaName = chunk.table[Table2.Symbol.Schema];
|
21411
|
+
return {
|
21412
|
+
sql: chunk.table[IsAlias] || schemaName === void 0 ? escapeName(chunk.table[Table2.Symbol.Name]) + "." + escapeName(columnName) : escapeName(schemaName) + "." + escapeName(chunk.table[Table2.Symbol.Name]) + "." + escapeName(columnName),
|
21413
|
+
params: []
|
21414
|
+
};
|
21411
21415
|
}
|
21412
21416
|
if (is(chunk, View3)) {
|
21413
21417
|
const schemaName = chunk[ViewBaseConfig].schema;
|
@@ -22140,7 +22144,7 @@ function haveSameKeys(left, right) {
|
|
22140
22144
|
}
|
22141
22145
|
function mapUpdateSet(table4, values) {
|
22142
22146
|
const entries = Object.entries(values).filter(([, value]) => value !== void 0).map(([key, value]) => {
|
22143
|
-
if (is(value, SQL)) {
|
22147
|
+
if (is(value, SQL) || is(value, Column2)) {
|
22144
22148
|
return [key, value];
|
22145
22149
|
} else {
|
22146
22150
|
return [key, new Param(value, table4[Table2.Symbol.Columns][key])];
|
@@ -24579,9 +24583,10 @@ var init_delete = __esm({
|
|
24579
24583
|
constructor(table4, session, dialect4, withList) {
|
24580
24584
|
super();
|
24581
24585
|
__publicField(this, "config");
|
24586
|
+
__publicField(this, "authToken");
|
24582
24587
|
__publicField(this, "execute", (placeholderValues) => {
|
24583
24588
|
return tracer.startActiveSpan("drizzle.operation", () => {
|
24584
|
-
return this._prepare().execute(placeholderValues);
|
24589
|
+
return this._prepare().execute(placeholderValues, this.authToken);
|
24585
24590
|
});
|
24586
24591
|
});
|
24587
24592
|
this.session = session;
|
@@ -24642,167 +24647,16 @@ var init_delete = __esm({
|
|
24642
24647
|
prepare(name2) {
|
24643
24648
|
return this._prepare(name2);
|
24644
24649
|
}
|
24645
|
-
$dynamic() {
|
24646
|
-
return this;
|
24647
|
-
}
|
24648
|
-
};
|
24649
|
-
__publicField(PgDeleteBase, _a124, "PgDelete");
|
24650
|
-
}
|
24651
|
-
});
|
24652
|
-
|
24653
|
-
// ../drizzle-orm/dist/pg-core/query-builders/insert.js
|
24654
|
-
var _a125, PgInsertBuilder, _a126, _b98, PgInsertBase;
|
24655
|
-
var init_insert = __esm({
|
24656
|
-
"../drizzle-orm/dist/pg-core/query-builders/insert.js"() {
|
24657
|
-
"use strict";
|
24658
|
-
init_entity();
|
24659
|
-
init_query_promise();
|
24660
|
-
init_sql();
|
24661
|
-
init_table();
|
24662
|
-
init_tracing();
|
24663
|
-
init_utils2();
|
24664
|
-
_a125 = entityKind;
|
24665
|
-
PgInsertBuilder = class {
|
24666
|
-
constructor(table4, session, dialect4, withList) {
|
24667
|
-
this.table = table4;
|
24668
|
-
this.session = session;
|
24669
|
-
this.dialect = dialect4;
|
24670
|
-
this.withList = withList;
|
24671
|
-
}
|
24672
|
-
values(values) {
|
24673
|
-
values = Array.isArray(values) ? values : [values];
|
24674
|
-
if (values.length === 0) {
|
24675
|
-
throw new Error("values() must be called with at least one value");
|
24676
|
-
}
|
24677
|
-
const mappedValues = values.map((entry) => {
|
24678
|
-
const result = {};
|
24679
|
-
const cols = this.table[Table2.Symbol.Columns];
|
24680
|
-
for (const colKey of Object.keys(entry)) {
|
24681
|
-
const colValue = entry[colKey];
|
24682
|
-
result[colKey] = is(colValue, SQL) ? colValue : new Param(colValue, cols[colKey]);
|
24683
|
-
}
|
24684
|
-
return result;
|
24685
|
-
});
|
24686
|
-
return new PgInsertBase(this.table, mappedValues, this.session, this.dialect, this.withList);
|
24687
|
-
}
|
24688
|
-
};
|
24689
|
-
__publicField(PgInsertBuilder, _a125, "PgInsertBuilder");
|
24690
|
-
PgInsertBase = class extends (_b98 = QueryPromise, _a126 = entityKind, _b98) {
|
24691
|
-
constructor(table4, values, session, dialect4, withList) {
|
24692
|
-
super();
|
24693
|
-
__publicField(this, "config");
|
24694
|
-
__publicField(this, "execute", (placeholderValues) => {
|
24695
|
-
return tracer.startActiveSpan("drizzle.operation", () => {
|
24696
|
-
return this._prepare().execute(placeholderValues);
|
24697
|
-
});
|
24698
|
-
});
|
24699
|
-
this.session = session;
|
24700
|
-
this.dialect = dialect4;
|
24701
|
-
this.config = { table: table4, values, withList };
|
24702
|
-
}
|
24703
|
-
returning(fields = this.config.table[Table2.Symbol.Columns]) {
|
24704
|
-
this.config.returning = orderSelectedFields(fields);
|
24705
|
-
return this;
|
24706
|
-
}
|
24707
|
-
/**
|
24708
|
-
* Adds an `on conflict do nothing` clause to the query.
|
24709
|
-
*
|
24710
|
-
* Calling this method simply avoids inserting a row as its alternative action.
|
24711
|
-
*
|
24712
|
-
* See docs: {@link https://orm.drizzle.team/docs/insert#on-conflict-do-nothing}
|
24713
|
-
*
|
24714
|
-
* @param config The `target` and `where` clauses.
|
24715
|
-
*
|
24716
|
-
* @example
|
24717
|
-
* ```ts
|
24718
|
-
* // Insert one row and cancel the insert if there's a conflict
|
24719
|
-
* await db.insert(cars)
|
24720
|
-
* .values({ id: 1, brand: 'BMW' })
|
24721
|
-
* .onConflictDoNothing();
|
24722
|
-
*
|
24723
|
-
* // Explicitly specify conflict target
|
24724
|
-
* await db.insert(cars)
|
24725
|
-
* .values({ id: 1, brand: 'BMW' })
|
24726
|
-
* .onConflictDoNothing({ target: cars.id });
|
24727
|
-
* ```
|
24728
|
-
*/
|
24729
|
-
onConflictDoNothing(config = {}) {
|
24730
|
-
if (config.target === void 0) {
|
24731
|
-
this.config.onConflict = sql`do nothing`;
|
24732
|
-
} else {
|
24733
|
-
let targetColumn = "";
|
24734
|
-
targetColumn = Array.isArray(config.target) ? config.target.map((it) => this.dialect.escapeName(this.dialect.casing.getColumnCasing(it))).join(",") : this.dialect.escapeName(this.dialect.casing.getColumnCasing(config.target));
|
24735
|
-
const whereSql = config.where ? sql` where ${config.where}` : void 0;
|
24736
|
-
this.config.onConflict = sql`(${sql.raw(targetColumn)})${whereSql} do nothing`;
|
24737
|
-
}
|
24738
|
-
return this;
|
24739
|
-
}
|
24740
|
-
/**
|
24741
|
-
* Adds an `on conflict do update` clause to the query.
|
24742
|
-
*
|
24743
|
-
* Calling this method will update the existing row that conflicts with the row proposed for insertion as its alternative action.
|
24744
|
-
*
|
24745
|
-
* See docs: {@link https://orm.drizzle.team/docs/insert#upserts-and-conflicts}
|
24746
|
-
*
|
24747
|
-
* @param config The `target`, `set` and `where` clauses.
|
24748
|
-
*
|
24749
|
-
* @example
|
24750
|
-
* ```ts
|
24751
|
-
* // Update the row if there's a conflict
|
24752
|
-
* await db.insert(cars)
|
24753
|
-
* .values({ id: 1, brand: 'BMW' })
|
24754
|
-
* .onConflictDoUpdate({
|
24755
|
-
* target: cars.id,
|
24756
|
-
* set: { brand: 'Porsche' }
|
24757
|
-
* });
|
24758
|
-
*
|
24759
|
-
* // Upsert with 'where' clause
|
24760
|
-
* await db.insert(cars)
|
24761
|
-
* .values({ id: 1, brand: 'BMW' })
|
24762
|
-
* .onConflictDoUpdate({
|
24763
|
-
* target: cars.id,
|
24764
|
-
* set: { brand: 'newBMW' },
|
24765
|
-
* targetWhere: sql`${cars.createdAt} > '2023-01-01'::date`,
|
24766
|
-
* });
|
24767
|
-
* ```
|
24768
|
-
*/
|
24769
|
-
onConflictDoUpdate(config) {
|
24770
|
-
if (config.where && (config.targetWhere || config.setWhere)) {
|
24771
|
-
throw new Error(
|
24772
|
-
'You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.'
|
24773
|
-
);
|
24774
|
-
}
|
24775
|
-
const whereSql = config.where ? sql` where ${config.where}` : void 0;
|
24776
|
-
const targetWhereSql = config.targetWhere ? sql` where ${config.targetWhere}` : void 0;
|
24777
|
-
const setWhereSql = config.setWhere ? sql` where ${config.setWhere}` : void 0;
|
24778
|
-
const setSql = this.dialect.buildUpdateSet(this.config.table, mapUpdateSet(this.config.table, config.set));
|
24779
|
-
let targetColumn = "";
|
24780
|
-
targetColumn = Array.isArray(config.target) ? config.target.map((it) => this.dialect.escapeName(this.dialect.casing.getColumnCasing(it))).join(",") : this.dialect.escapeName(this.dialect.casing.getColumnCasing(config.target));
|
24781
|
-
this.config.onConflict = sql`(${sql.raw(targetColumn)})${targetWhereSql} do update set ${setSql}${whereSql}${setWhereSql}`;
|
24782
|
-
return this;
|
24783
|
-
}
|
24784
|
-
/** @internal */
|
24785
|
-
getSQL() {
|
24786
|
-
return this.dialect.buildInsertQuery(this.config);
|
24787
|
-
}
|
24788
|
-
toSQL() {
|
24789
|
-
const { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());
|
24790
|
-
return rest;
|
24791
|
-
}
|
24792
24650
|
/** @internal */
|
24793
|
-
|
24794
|
-
|
24795
|
-
|
24796
|
-
});
|
24797
|
-
}
|
24798
|
-
prepare(name2) {
|
24799
|
-
return this._prepare(name2);
|
24651
|
+
setToken(token) {
|
24652
|
+
this.authToken = token;
|
24653
|
+
return this;
|
24800
24654
|
}
|
24801
24655
|
$dynamic() {
|
24802
24656
|
return this;
|
24803
24657
|
}
|
24804
24658
|
};
|
24805
|
-
__publicField(
|
24659
|
+
__publicField(PgDeleteBase, _a124, "PgDelete");
|
24806
24660
|
}
|
24807
24661
|
});
|
24808
24662
|
|
@@ -24821,13 +24675,13 @@ function toCamelCase(input) {
|
|
24821
24675
|
function noopCase(input) {
|
24822
24676
|
return input;
|
24823
24677
|
}
|
24824
|
-
var
|
24678
|
+
var _a125, CasingCache;
|
24825
24679
|
var init_casing = __esm({
|
24826
24680
|
"../drizzle-orm/dist/casing.js"() {
|
24827
24681
|
"use strict";
|
24828
24682
|
init_entity();
|
24829
24683
|
init_table();
|
24830
|
-
|
24684
|
+
_a125 = entityKind;
|
24831
24685
|
CasingCache = class {
|
24832
24686
|
constructor(casing2) {
|
24833
24687
|
/** @internal */
|
@@ -24864,25 +24718,25 @@ var init_casing = __esm({
|
|
24864
24718
|
this.cachedTables = {};
|
24865
24719
|
}
|
24866
24720
|
};
|
24867
|
-
__publicField(CasingCache,
|
24721
|
+
__publicField(CasingCache, _a125, "CasingCache");
|
24868
24722
|
}
|
24869
24723
|
});
|
24870
24724
|
|
24871
24725
|
// ../drizzle-orm/dist/pg-core/view-base.js
|
24872
|
-
var
|
24726
|
+
var _a126, _b98, PgViewBase;
|
24873
24727
|
var init_view_base = __esm({
|
24874
24728
|
"../drizzle-orm/dist/pg-core/view-base.js"() {
|
24875
24729
|
"use strict";
|
24876
24730
|
init_entity();
|
24877
24731
|
init_sql();
|
24878
|
-
PgViewBase = class extends (
|
24732
|
+
PgViewBase = class extends (_b98 = View3, _a126 = entityKind, _b98) {
|
24879
24733
|
};
|
24880
|
-
__publicField(PgViewBase,
|
24734
|
+
__publicField(PgViewBase, _a126, "PgViewBase");
|
24881
24735
|
}
|
24882
24736
|
});
|
24883
24737
|
|
24884
24738
|
// ../drizzle-orm/dist/pg-core/dialect.js
|
24885
|
-
var
|
24739
|
+
var _a127, PgDialect;
|
24886
24740
|
var init_dialect = __esm({
|
24887
24741
|
"../drizzle-orm/dist/pg-core/dialect.js"() {
|
24888
24742
|
"use strict";
|
@@ -24901,7 +24755,7 @@ var init_dialect = __esm({
|
|
24901
24755
|
init_utils2();
|
24902
24756
|
init_view_common();
|
24903
24757
|
init_view_base();
|
24904
|
-
|
24758
|
+
_a127 = entityKind;
|
24905
24759
|
PgDialect = class {
|
24906
24760
|
constructor(config) {
|
24907
24761
|
/** @internal */
|
@@ -24981,12 +24835,19 @@ var init_dialect = __esm({
|
|
24981
24835
|
return [res];
|
24982
24836
|
}));
|
24983
24837
|
}
|
24984
|
-
buildUpdateQuery({ table: table4, set, where, returning, withList }) {
|
24838
|
+
buildUpdateQuery({ table: table4, set, where, returning, withList, from, joins }) {
|
24985
24839
|
const withSql = this.buildWithCTE(withList);
|
24840
|
+
const tableName = table4[PgTable.Symbol.Name];
|
24841
|
+
const tableSchema = table4[PgTable.Symbol.Schema];
|
24842
|
+
const origTableName = table4[PgTable.Symbol.OriginalName];
|
24843
|
+
const alias = tableName === origTableName ? void 0 : tableName;
|
24844
|
+
const tableSql = sql`${tableSchema ? sql`${sql.identifier(tableSchema)}.` : void 0}${sql.identifier(origTableName)}${alias && sql` ${sql.identifier(alias)}`}`;
|
24986
24845
|
const setSql = this.buildUpdateSet(table4, set);
|
24987
|
-
const
|
24846
|
+
const fromSql = from && sql.join([sql.raw(" from "), this.buildFromTable(from)]);
|
24847
|
+
const joinsSql = this.buildJoins(joins);
|
24848
|
+
const returningSql = returning ? sql` returning ${this.buildSelection(returning, { isSingleTable: !from })}` : void 0;
|
24988
24849
|
const whereSql = where ? sql` where ${where}` : void 0;
|
24989
|
-
return sql`${withSql}update ${
|
24850
|
+
return sql`${withSql}update ${tableSql} set ${setSql}${fromSql}${joinsSql}${whereSql}${returningSql}`;
|
24990
24851
|
}
|
24991
24852
|
/**
|
24992
24853
|
* Builds selection SQL with provided fields/expressions
|
@@ -25038,6 +24899,54 @@ var init_dialect = __esm({
|
|
25038
24899
|
});
|
25039
24900
|
return sql.join(chunks);
|
25040
24901
|
}
|
24902
|
+
buildJoins(joins) {
|
24903
|
+
if (!joins || joins.length === 0) {
|
24904
|
+
return void 0;
|
24905
|
+
}
|
24906
|
+
const joinsArray = [];
|
24907
|
+
for (const [index4, joinMeta] of joins.entries()) {
|
24908
|
+
if (index4 === 0) {
|
24909
|
+
joinsArray.push(sql` `);
|
24910
|
+
}
|
24911
|
+
const table4 = joinMeta.table;
|
24912
|
+
const lateralSql = joinMeta.lateral ? sql` lateral` : void 0;
|
24913
|
+
if (is(table4, PgTable)) {
|
24914
|
+
const tableName = table4[PgTable.Symbol.Name];
|
24915
|
+
const tableSchema = table4[PgTable.Symbol.Schema];
|
24916
|
+
const origTableName = table4[PgTable.Symbol.OriginalName];
|
24917
|
+
const alias = tableName === origTableName ? void 0 : joinMeta.alias;
|
24918
|
+
joinsArray.push(
|
24919
|
+
sql`${sql.raw(joinMeta.joinType)} join${lateralSql} ${tableSchema ? sql`${sql.identifier(tableSchema)}.` : void 0}${sql.identifier(origTableName)}${alias && sql` ${sql.identifier(alias)}`} on ${joinMeta.on}`
|
24920
|
+
);
|
24921
|
+
} else if (is(table4, View3)) {
|
24922
|
+
const viewName = table4[ViewBaseConfig].name;
|
24923
|
+
const viewSchema = table4[ViewBaseConfig].schema;
|
24924
|
+
const origViewName = table4[ViewBaseConfig].originalName;
|
24925
|
+
const alias = viewName === origViewName ? void 0 : joinMeta.alias;
|
24926
|
+
joinsArray.push(
|
24927
|
+
sql`${sql.raw(joinMeta.joinType)} join${lateralSql} ${viewSchema ? sql`${sql.identifier(viewSchema)}.` : void 0}${sql.identifier(origViewName)}${alias && sql` ${sql.identifier(alias)}`} on ${joinMeta.on}`
|
24928
|
+
);
|
24929
|
+
} else {
|
24930
|
+
joinsArray.push(
|
24931
|
+
sql`${sql.raw(joinMeta.joinType)} join${lateralSql} ${table4} on ${joinMeta.on}`
|
24932
|
+
);
|
24933
|
+
}
|
24934
|
+
if (index4 < joins.length - 1) {
|
24935
|
+
joinsArray.push(sql` `);
|
24936
|
+
}
|
24937
|
+
}
|
24938
|
+
return sql.join(joinsArray);
|
24939
|
+
}
|
24940
|
+
buildFromTable(table4) {
|
24941
|
+
if (is(table4, Table2) && table4[Table2.Symbol.OriginalName] !== table4[Table2.Symbol.Name]) {
|
24942
|
+
let fullName = sql`${sql.identifier(table4[Table2.Symbol.OriginalName])}`;
|
24943
|
+
if (table4[Table2.Symbol.Schema]) {
|
24944
|
+
fullName = sql`${sql.identifier(table4[Table2.Symbol.Schema])}.${fullName}`;
|
24945
|
+
}
|
24946
|
+
return sql`${fullName} ${sql.identifier(table4[Table2.Symbol.Name])}`;
|
24947
|
+
}
|
24948
|
+
return table4;
|
24949
|
+
}
|
25041
24950
|
buildSelectQuery({
|
25042
24951
|
withList,
|
25043
24952
|
fields,
|
@@ -25072,51 +24981,8 @@ var init_dialect = __esm({
|
|
25072
24981
|
distinctSql = distinct === true ? sql` distinct` : sql` distinct on (${sql.join(distinct.on, sql`, `)})`;
|
25073
24982
|
}
|
25074
24983
|
const selection = this.buildSelection(fieldsList, { isSingleTable });
|
25075
|
-
const tableSql = (
|
25076
|
-
|
25077
|
-
let fullName = sql`${sql.identifier(table4[Table2.Symbol.OriginalName])}`;
|
25078
|
-
if (table4[Table2.Symbol.Schema]) {
|
25079
|
-
fullName = sql`${sql.identifier(table4[Table2.Symbol.Schema])}.${fullName}`;
|
25080
|
-
}
|
25081
|
-
return sql`${fullName} ${sql.identifier(table4[Table2.Symbol.Name])}`;
|
25082
|
-
}
|
25083
|
-
return table4;
|
25084
|
-
})();
|
25085
|
-
const joinsArray = [];
|
25086
|
-
if (joins) {
|
25087
|
-
for (const [index4, joinMeta] of joins.entries()) {
|
25088
|
-
if (index4 === 0) {
|
25089
|
-
joinsArray.push(sql` `);
|
25090
|
-
}
|
25091
|
-
const table22 = joinMeta.table;
|
25092
|
-
const lateralSql = joinMeta.lateral ? sql` lateral` : void 0;
|
25093
|
-
if (is(table22, PgTable)) {
|
25094
|
-
const tableName = table22[PgTable.Symbol.Name];
|
25095
|
-
const tableSchema = table22[PgTable.Symbol.Schema];
|
25096
|
-
const origTableName = table22[PgTable.Symbol.OriginalName];
|
25097
|
-
const alias = tableName === origTableName ? void 0 : joinMeta.alias;
|
25098
|
-
joinsArray.push(
|
25099
|
-
sql`${sql.raw(joinMeta.joinType)} join${lateralSql} ${tableSchema ? sql`${sql.identifier(tableSchema)}.` : void 0}${sql.identifier(origTableName)}${alias && sql` ${sql.identifier(alias)}`} on ${joinMeta.on}`
|
25100
|
-
);
|
25101
|
-
} else if (is(table22, View3)) {
|
25102
|
-
const viewName = table22[ViewBaseConfig].name;
|
25103
|
-
const viewSchema = table22[ViewBaseConfig].schema;
|
25104
|
-
const origViewName = table22[ViewBaseConfig].originalName;
|
25105
|
-
const alias = viewName === origViewName ? void 0 : joinMeta.alias;
|
25106
|
-
joinsArray.push(
|
25107
|
-
sql`${sql.raw(joinMeta.joinType)} join${lateralSql} ${viewSchema ? sql`${sql.identifier(viewSchema)}.` : void 0}${sql.identifier(origViewName)}${alias && sql` ${sql.identifier(alias)}`} on ${joinMeta.on}`
|
25108
|
-
);
|
25109
|
-
} else {
|
25110
|
-
joinsArray.push(
|
25111
|
-
sql`${sql.raw(joinMeta.joinType)} join${lateralSql} ${table22} on ${joinMeta.on}`
|
25112
|
-
);
|
25113
|
-
}
|
25114
|
-
if (index4 < joins.length - 1) {
|
25115
|
-
joinsArray.push(sql` `);
|
25116
|
-
}
|
25117
|
-
}
|
25118
|
-
}
|
25119
|
-
const joinsSql = sql.join(joinsArray);
|
24984
|
+
const tableSql = this.buildFromTable(table4);
|
24985
|
+
const joinsSql = this.buildJoins(joins);
|
25120
24986
|
const whereSql = where ? sql` where ${where}` : void 0;
|
25121
24987
|
const havingSql = having ? sql` having ${having}` : void 0;
|
25122
24988
|
let orderBySql;
|
@@ -25197,43 +25063,54 @@ var init_dialect = __esm({
|
|
25197
25063
|
const offsetSql = offset ? sql` offset ${offset}` : void 0;
|
25198
25064
|
return sql`${leftChunk}${operatorChunk}${rightChunk}${orderBySql}${limitSql}${offsetSql}`;
|
25199
25065
|
}
|
25200
|
-
buildInsertQuery({ table: table4, values, onConflict, returning, withList }) {
|
25066
|
+
buildInsertQuery({ table: table4, values: valuesOrSelect, onConflict, returning, withList, select }) {
|
25201
25067
|
const valuesSqlList = [];
|
25202
25068
|
const columns = table4[Table2.Symbol.Columns];
|
25203
25069
|
const colEntries = Object.entries(columns).filter(([_2, col]) => !col.shouldDisableInsert());
|
25204
25070
|
const insertOrder = colEntries.map(
|
25205
25071
|
([, column4]) => sql.identifier(this.casing.getColumnCasing(column4))
|
25206
25072
|
);
|
25207
|
-
|
25208
|
-
const
|
25209
|
-
|
25210
|
-
|
25211
|
-
|
25212
|
-
|
25213
|
-
|
25214
|
-
|
25215
|
-
|
25216
|
-
|
25217
|
-
|
25218
|
-
|
25219
|
-
|
25073
|
+
if (select) {
|
25074
|
+
const select2 = valuesOrSelect;
|
25075
|
+
if (is(select2, SQL)) {
|
25076
|
+
valuesSqlList.push(select2);
|
25077
|
+
} else {
|
25078
|
+
valuesSqlList.push(select2.getSQL());
|
25079
|
+
}
|
25080
|
+
} else {
|
25081
|
+
const values = valuesOrSelect;
|
25082
|
+
valuesSqlList.push(sql.raw("values "));
|
25083
|
+
for (const [valueIndex, value] of values.entries()) {
|
25084
|
+
const valueList = [];
|
25085
|
+
for (const [fieldName, col] of colEntries) {
|
25086
|
+
const colValue = value[fieldName];
|
25087
|
+
if (colValue === void 0 || is(colValue, Param) && colValue.value === void 0) {
|
25088
|
+
if (col.defaultFn !== void 0) {
|
25089
|
+
const defaultFnResult = col.defaultFn();
|
25090
|
+
const defaultValue = is(defaultFnResult, SQL) ? defaultFnResult : sql.param(defaultFnResult, col);
|
25091
|
+
valueList.push(defaultValue);
|
25092
|
+
} else if (!col.default && col.onUpdateFn !== void 0) {
|
25093
|
+
const onUpdateFnResult = col.onUpdateFn();
|
25094
|
+
const newValue = is(onUpdateFnResult, SQL) ? onUpdateFnResult : sql.param(onUpdateFnResult, col);
|
25095
|
+
valueList.push(newValue);
|
25096
|
+
} else {
|
25097
|
+
valueList.push(sql`default`);
|
25098
|
+
}
|
25220
25099
|
} else {
|
25221
|
-
valueList.push(
|
25100
|
+
valueList.push(colValue);
|
25222
25101
|
}
|
25223
|
-
} else {
|
25224
|
-
valueList.push(colValue);
|
25225
25102
|
}
|
25226
|
-
|
25227
|
-
|
25228
|
-
|
25229
|
-
|
25103
|
+
valuesSqlList.push(valueList);
|
25104
|
+
if (valueIndex < values.length - 1) {
|
25105
|
+
valuesSqlList.push(sql`, `);
|
25106
|
+
}
|
25230
25107
|
}
|
25231
25108
|
}
|
25232
25109
|
const withSql = this.buildWithCTE(withList);
|
25233
25110
|
const valuesSql = sql.join(valuesSqlList);
|
25234
25111
|
const returningSql = returning ? sql` returning ${this.buildSelection(returning, { isSingleTable: true })}` : void 0;
|
25235
25112
|
const onConflictSql = onConflict ? sql` on conflict ${onConflict}` : void 0;
|
25236
|
-
return sql`${withSql}insert into ${table4} ${insertOrder}
|
25113
|
+
return sql`${withSql}insert into ${table4} ${insertOrder} ${valuesSql}${onConflictSql}${returningSql}`;
|
25237
25114
|
}
|
25238
25115
|
buildRefreshMaterializedViewQuery({ view: view4, concurrently, withNoData }) {
|
25239
25116
|
const concurrentlySql = concurrently ? sql` concurrently` : void 0;
|
@@ -25969,12 +25846,12 @@ var init_dialect = __esm({
|
|
25969
25846
|
};
|
25970
25847
|
}
|
25971
25848
|
};
|
25972
|
-
__publicField(PgDialect,
|
25849
|
+
__publicField(PgDialect, _a127, "PgDialect");
|
25973
25850
|
}
|
25974
25851
|
});
|
25975
25852
|
|
25976
25853
|
// ../drizzle-orm/dist/selection-proxy.js
|
25977
|
-
var
|
25854
|
+
var _a128, _SelectionProxyHandler, SelectionProxyHandler;
|
25978
25855
|
var init_selection_proxy = __esm({
|
25979
25856
|
"../drizzle-orm/dist/selection-proxy.js"() {
|
25980
25857
|
"use strict";
|
@@ -25984,7 +25861,7 @@ var init_selection_proxy = __esm({
|
|
25984
25861
|
init_sql();
|
25985
25862
|
init_subquery();
|
25986
25863
|
init_view_common();
|
25987
|
-
|
25864
|
+
_a128 = entityKind;
|
25988
25865
|
_SelectionProxyHandler = class _SelectionProxyHandler {
|
25989
25866
|
constructor(config) {
|
25990
25867
|
__publicField(this, "config");
|
@@ -26050,25 +25927,25 @@ var init_selection_proxy = __esm({
|
|
26050
25927
|
return new Proxy(value, new _SelectionProxyHandler(this.config));
|
26051
25928
|
}
|
26052
25929
|
};
|
26053
|
-
__publicField(_SelectionProxyHandler,
|
25930
|
+
__publicField(_SelectionProxyHandler, _a128, "SelectionProxyHandler");
|
26054
25931
|
SelectionProxyHandler = _SelectionProxyHandler;
|
26055
25932
|
}
|
26056
25933
|
});
|
26057
25934
|
|
26058
25935
|
// ../drizzle-orm/dist/query-builders/query-builder.js
|
26059
|
-
var
|
25936
|
+
var _a129, TypedQueryBuilder;
|
26060
25937
|
var init_query_builder = __esm({
|
26061
25938
|
"../drizzle-orm/dist/query-builders/query-builder.js"() {
|
26062
25939
|
"use strict";
|
26063
25940
|
init_entity();
|
26064
|
-
|
25941
|
+
_a129 = entityKind;
|
26065
25942
|
TypedQueryBuilder = class {
|
26066
25943
|
/** @internal */
|
26067
25944
|
getSelectedFields() {
|
26068
25945
|
return this._.selectedFields;
|
26069
25946
|
}
|
26070
25947
|
};
|
26071
|
-
__publicField(TypedQueryBuilder,
|
25948
|
+
__publicField(TypedQueryBuilder, _a129, "TypedQueryBuilder");
|
26072
25949
|
}
|
26073
25950
|
});
|
26074
25951
|
|
@@ -26090,7 +25967,7 @@ function createSetOperator(type, isAll) {
|
|
26090
25967
|
return leftSelect.addSetOperators(setOperators);
|
26091
25968
|
};
|
26092
25969
|
}
|
26093
|
-
var
|
25970
|
+
var _a130, PgSelectBuilder, _a131, _b99, PgSelectQueryBuilderBase, _a132, _b100, PgSelectBase, getPgSetOperators, union, unionAll, intersect, intersectAll, except, exceptAll;
|
26094
25971
|
var init_select2 = __esm({
|
26095
25972
|
"../drizzle-orm/dist/pg-core/query-builders/select.js"() {
|
26096
25973
|
"use strict";
|
@@ -26106,7 +25983,7 @@ var init_select2 = __esm({
|
|
26106
25983
|
init_utils2();
|
26107
25984
|
init_utils2();
|
26108
25985
|
init_view_common();
|
26109
|
-
|
25986
|
+
_a130 = entityKind;
|
26110
25987
|
PgSelectBuilder = class {
|
26111
25988
|
constructor(config) {
|
26112
25989
|
__publicField(this, "fields");
|
@@ -26114,6 +25991,7 @@ var init_select2 = __esm({
|
|
26114
25991
|
__publicField(this, "dialect");
|
26115
25992
|
__publicField(this, "withList", []);
|
26116
25993
|
__publicField(this, "distinct");
|
25994
|
+
__publicField(this, "authToken");
|
26117
25995
|
this.fields = config.fields;
|
26118
25996
|
this.session = config.session;
|
26119
25997
|
this.dialect = config.dialect;
|
@@ -26122,6 +26000,11 @@ var init_select2 = __esm({
|
|
26122
26000
|
}
|
26123
26001
|
this.distinct = config.distinct;
|
26124
26002
|
}
|
26003
|
+
/** @internal */
|
26004
|
+
setToken(token) {
|
26005
|
+
this.authToken = token;
|
26006
|
+
return this;
|
26007
|
+
}
|
26125
26008
|
/**
|
26126
26009
|
* Specify the table, subquery, or other target that you're
|
26127
26010
|
* building a select query against.
|
@@ -26144,7 +26027,7 @@ var init_select2 = __esm({
|
|
26144
26027
|
} else {
|
26145
26028
|
fields = getTableColumns(source);
|
26146
26029
|
}
|
26147
|
-
return new PgSelectBase({
|
26030
|
+
return this.authToken === void 0 ? new PgSelectBase({
|
26148
26031
|
table: source,
|
26149
26032
|
fields,
|
26150
26033
|
isPartialSelect,
|
@@ -26152,11 +26035,19 @@ var init_select2 = __esm({
|
|
26152
26035
|
dialect: this.dialect,
|
26153
26036
|
withList: this.withList,
|
26154
26037
|
distinct: this.distinct
|
26155
|
-
})
|
26038
|
+
}) : new PgSelectBase({
|
26039
|
+
table: source,
|
26040
|
+
fields,
|
26041
|
+
isPartialSelect,
|
26042
|
+
session: this.session,
|
26043
|
+
dialect: this.dialect,
|
26044
|
+
withList: this.withList,
|
26045
|
+
distinct: this.distinct
|
26046
|
+
}).setToken(this.authToken);
|
26156
26047
|
}
|
26157
26048
|
};
|
26158
|
-
__publicField(PgSelectBuilder,
|
26159
|
-
PgSelectQueryBuilderBase = class extends (
|
26049
|
+
__publicField(PgSelectBuilder, _a130, "PgSelectBuilder");
|
26050
|
+
PgSelectQueryBuilderBase = class extends (_b99 = TypedQueryBuilder, _a131 = entityKind, _b99) {
|
26160
26051
|
constructor({ table: table4, fields, isPartialSelect, session, dialect: dialect4, withList, distinct }) {
|
26161
26052
|
super();
|
26162
26053
|
__publicField(this, "_");
|
@@ -26756,19 +26647,20 @@ var init_select2 = __esm({
|
|
26756
26647
|
return this;
|
26757
26648
|
}
|
26758
26649
|
};
|
26759
|
-
__publicField(PgSelectQueryBuilderBase,
|
26760
|
-
PgSelectBase = class extends (
|
26650
|
+
__publicField(PgSelectQueryBuilderBase, _a131, "PgSelectQueryBuilder");
|
26651
|
+
PgSelectBase = class extends (_b100 = PgSelectQueryBuilderBase, _a132 = entityKind, _b100) {
|
26761
26652
|
constructor() {
|
26762
26653
|
super(...arguments);
|
26654
|
+
__publicField(this, "authToken");
|
26763
26655
|
__publicField(this, "execute", (placeholderValues) => {
|
26764
26656
|
return tracer.startActiveSpan("drizzle.operation", () => {
|
26765
|
-
return this._prepare().execute(placeholderValues);
|
26657
|
+
return this._prepare().execute(placeholderValues, this.authToken);
|
26766
26658
|
});
|
26767
26659
|
});
|
26768
26660
|
}
|
26769
26661
|
/** @internal */
|
26770
26662
|
_prepare(name2) {
|
26771
|
-
const { session, config, dialect: dialect4, joinsNotNullableMap } = this;
|
26663
|
+
const { session, config, dialect: dialect4, joinsNotNullableMap, authToken } = this;
|
26772
26664
|
if (!session) {
|
26773
26665
|
throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");
|
26774
26666
|
}
|
@@ -26776,7 +26668,7 @@ var init_select2 = __esm({
|
|
26776
26668
|
const fieldsList = orderSelectedFields(config.fields);
|
26777
26669
|
const query = session.prepareQuery(dialect4.sqlToQuery(this.getSQL()), fieldsList, name2, true);
|
26778
26670
|
query.joinsNotNullableMap = joinsNotNullableMap;
|
26779
|
-
return query;
|
26671
|
+
return authToken === void 0 ? query : query.setToken(authToken);
|
26780
26672
|
});
|
26781
26673
|
}
|
26782
26674
|
/**
|
@@ -26789,8 +26681,13 @@ var init_select2 = __esm({
|
|
26789
26681
|
prepare(name2) {
|
26790
26682
|
return this._prepare(name2);
|
26791
26683
|
}
|
26684
|
+
/** @internal */
|
26685
|
+
setToken(token) {
|
26686
|
+
this.authToken = token;
|
26687
|
+
return this;
|
26688
|
+
}
|
26792
26689
|
};
|
26793
|
-
__publicField(PgSelectBase,
|
26690
|
+
__publicField(PgSelectBase, _a132, "PgSelect");
|
26794
26691
|
applyMixins(PgSelectBase, [QueryPromise]);
|
26795
26692
|
getPgSetOperators = () => ({
|
26796
26693
|
union,
|
@@ -26810,7 +26707,7 @@ var init_select2 = __esm({
|
|
26810
26707
|
});
|
26811
26708
|
|
26812
26709
|
// ../drizzle-orm/dist/pg-core/query-builders/query-builder.js
|
26813
|
-
var
|
26710
|
+
var _a133, QueryBuilder;
|
26814
26711
|
var init_query_builder2 = __esm({
|
26815
26712
|
"../drizzle-orm/dist/pg-core/query-builders/query-builder.js"() {
|
26816
26713
|
"use strict";
|
@@ -26819,7 +26716,7 @@ var init_query_builder2 = __esm({
|
|
26819
26716
|
init_selection_proxy();
|
26820
26717
|
init_subquery();
|
26821
26718
|
init_select2();
|
26822
|
-
|
26719
|
+
_a133 = entityKind;
|
26823
26720
|
QueryBuilder = class {
|
26824
26721
|
constructor(dialect4) {
|
26825
26722
|
__publicField(this, "dialect");
|
@@ -26900,31 +26797,212 @@ var init_query_builder2 = __esm({
|
|
26900
26797
|
return this.dialect;
|
26901
26798
|
}
|
26902
26799
|
};
|
26903
|
-
__publicField(QueryBuilder,
|
26800
|
+
__publicField(QueryBuilder, _a133, "PgQueryBuilder");
|
26904
26801
|
}
|
26905
26802
|
});
|
26906
26803
|
|
26907
|
-
// ../drizzle-orm/dist/pg-core/query-builders/
|
26908
|
-
var
|
26909
|
-
var
|
26910
|
-
"../drizzle-orm/dist/pg-core/query-builders/
|
26804
|
+
// ../drizzle-orm/dist/pg-core/query-builders/insert.js
|
26805
|
+
var _a134, PgInsertBuilder, _a135, _b101, PgInsertBase;
|
26806
|
+
var init_insert = __esm({
|
26807
|
+
"../drizzle-orm/dist/pg-core/query-builders/insert.js"() {
|
26911
26808
|
"use strict";
|
26912
26809
|
init_entity();
|
26913
26810
|
init_query_promise();
|
26811
|
+
init_sql();
|
26812
|
+
init_table();
|
26914
26813
|
init_tracing();
|
26915
|
-
|
26916
|
-
|
26917
|
-
|
26918
|
-
|
26919
|
-
|
26920
|
-
|
26921
|
-
|
26922
|
-
|
26923
|
-
|
26924
|
-
this.
|
26925
|
-
|
26926
|
-
|
26927
|
-
|
26814
|
+
init_utils2();
|
26815
|
+
init_query_builder2();
|
26816
|
+
_a134 = entityKind;
|
26817
|
+
PgInsertBuilder = class {
|
26818
|
+
constructor(table4, session, dialect4, withList) {
|
26819
|
+
__publicField(this, "authToken");
|
26820
|
+
this.table = table4;
|
26821
|
+
this.session = session;
|
26822
|
+
this.dialect = dialect4;
|
26823
|
+
this.withList = withList;
|
26824
|
+
}
|
26825
|
+
/** @internal */
|
26826
|
+
setToken(token) {
|
26827
|
+
this.authToken = token;
|
26828
|
+
return this;
|
26829
|
+
}
|
26830
|
+
values(values) {
|
26831
|
+
values = Array.isArray(values) ? values : [values];
|
26832
|
+
if (values.length === 0) {
|
26833
|
+
throw new Error("values() must be called with at least one value");
|
26834
|
+
}
|
26835
|
+
const mappedValues = values.map((entry) => {
|
26836
|
+
const result = {};
|
26837
|
+
const cols = this.table[Table2.Symbol.Columns];
|
26838
|
+
for (const colKey of Object.keys(entry)) {
|
26839
|
+
const colValue = entry[colKey];
|
26840
|
+
result[colKey] = is(colValue, SQL) ? colValue : new Param(colValue, cols[colKey]);
|
26841
|
+
}
|
26842
|
+
return result;
|
26843
|
+
});
|
26844
|
+
return this.authToken === void 0 ? new PgInsertBase(this.table, mappedValues, this.session, this.dialect, this.withList) : new PgInsertBase(this.table, mappedValues, this.session, this.dialect, this.withList).setToken(
|
26845
|
+
this.authToken
|
26846
|
+
);
|
26847
|
+
}
|
26848
|
+
select(selectQuery) {
|
26849
|
+
const select = typeof selectQuery === "function" ? selectQuery(new QueryBuilder()) : selectQuery;
|
26850
|
+
if (!is(select, SQL) && !haveSameKeys(this.table[Columns], select._.selectedFields)) {
|
26851
|
+
throw new Error(
|
26852
|
+
"Insert select error: selected fields are not the same or are in a different order compared to the table definition"
|
26853
|
+
);
|
26854
|
+
}
|
26855
|
+
return new PgInsertBase(this.table, select, this.session, this.dialect, this.withList, true);
|
26856
|
+
}
|
26857
|
+
};
|
26858
|
+
__publicField(PgInsertBuilder, _a134, "PgInsertBuilder");
|
26859
|
+
PgInsertBase = class extends (_b101 = QueryPromise, _a135 = entityKind, _b101) {
|
26860
|
+
constructor(table4, values, session, dialect4, withList, select) {
|
26861
|
+
super();
|
26862
|
+
__publicField(this, "config");
|
26863
|
+
__publicField(this, "authToken");
|
26864
|
+
__publicField(this, "execute", (placeholderValues) => {
|
26865
|
+
return tracer.startActiveSpan("drizzle.operation", () => {
|
26866
|
+
return this._prepare().execute(placeholderValues, this.authToken);
|
26867
|
+
});
|
26868
|
+
});
|
26869
|
+
this.session = session;
|
26870
|
+
this.dialect = dialect4;
|
26871
|
+
this.config = { table: table4, values, withList, select };
|
26872
|
+
}
|
26873
|
+
returning(fields = this.config.table[Table2.Symbol.Columns]) {
|
26874
|
+
this.config.returning = orderSelectedFields(fields);
|
26875
|
+
return this;
|
26876
|
+
}
|
26877
|
+
/**
|
26878
|
+
* Adds an `on conflict do nothing` clause to the query.
|
26879
|
+
*
|
26880
|
+
* Calling this method simply avoids inserting a row as its alternative action.
|
26881
|
+
*
|
26882
|
+
* See docs: {@link https://orm.drizzle.team/docs/insert#on-conflict-do-nothing}
|
26883
|
+
*
|
26884
|
+
* @param config The `target` and `where` clauses.
|
26885
|
+
*
|
26886
|
+
* @example
|
26887
|
+
* ```ts
|
26888
|
+
* // Insert one row and cancel the insert if there's a conflict
|
26889
|
+
* await db.insert(cars)
|
26890
|
+
* .values({ id: 1, brand: 'BMW' })
|
26891
|
+
* .onConflictDoNothing();
|
26892
|
+
*
|
26893
|
+
* // Explicitly specify conflict target
|
26894
|
+
* await db.insert(cars)
|
26895
|
+
* .values({ id: 1, brand: 'BMW' })
|
26896
|
+
* .onConflictDoNothing({ target: cars.id });
|
26897
|
+
* ```
|
26898
|
+
*/
|
26899
|
+
onConflictDoNothing(config = {}) {
|
26900
|
+
if (config.target === void 0) {
|
26901
|
+
this.config.onConflict = sql`do nothing`;
|
26902
|
+
} else {
|
26903
|
+
let targetColumn = "";
|
26904
|
+
targetColumn = Array.isArray(config.target) ? config.target.map((it) => this.dialect.escapeName(this.dialect.casing.getColumnCasing(it))).join(",") : this.dialect.escapeName(this.dialect.casing.getColumnCasing(config.target));
|
26905
|
+
const whereSql = config.where ? sql` where ${config.where}` : void 0;
|
26906
|
+
this.config.onConflict = sql`(${sql.raw(targetColumn)})${whereSql} do nothing`;
|
26907
|
+
}
|
26908
|
+
return this;
|
26909
|
+
}
|
26910
|
+
/**
|
26911
|
+
* Adds an `on conflict do update` clause to the query.
|
26912
|
+
*
|
26913
|
+
* Calling this method will update the existing row that conflicts with the row proposed for insertion as its alternative action.
|
26914
|
+
*
|
26915
|
+
* See docs: {@link https://orm.drizzle.team/docs/insert#upserts-and-conflicts}
|
26916
|
+
*
|
26917
|
+
* @param config The `target`, `set` and `where` clauses.
|
26918
|
+
*
|
26919
|
+
* @example
|
26920
|
+
* ```ts
|
26921
|
+
* // Update the row if there's a conflict
|
26922
|
+
* await db.insert(cars)
|
26923
|
+
* .values({ id: 1, brand: 'BMW' })
|
26924
|
+
* .onConflictDoUpdate({
|
26925
|
+
* target: cars.id,
|
26926
|
+
* set: { brand: 'Porsche' }
|
26927
|
+
* });
|
26928
|
+
*
|
26929
|
+
* // Upsert with 'where' clause
|
26930
|
+
* await db.insert(cars)
|
26931
|
+
* .values({ id: 1, brand: 'BMW' })
|
26932
|
+
* .onConflictDoUpdate({
|
26933
|
+
* target: cars.id,
|
26934
|
+
* set: { brand: 'newBMW' },
|
26935
|
+
* targetWhere: sql`${cars.createdAt} > '2023-01-01'::date`,
|
26936
|
+
* });
|
26937
|
+
* ```
|
26938
|
+
*/
|
26939
|
+
onConflictDoUpdate(config) {
|
26940
|
+
if (config.where && (config.targetWhere || config.setWhere)) {
|
26941
|
+
throw new Error(
|
26942
|
+
'You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.'
|
26943
|
+
);
|
26944
|
+
}
|
26945
|
+
const whereSql = config.where ? sql` where ${config.where}` : void 0;
|
26946
|
+
const targetWhereSql = config.targetWhere ? sql` where ${config.targetWhere}` : void 0;
|
26947
|
+
const setWhereSql = config.setWhere ? sql` where ${config.setWhere}` : void 0;
|
26948
|
+
const setSql = this.dialect.buildUpdateSet(this.config.table, mapUpdateSet(this.config.table, config.set));
|
26949
|
+
let targetColumn = "";
|
26950
|
+
targetColumn = Array.isArray(config.target) ? config.target.map((it) => this.dialect.escapeName(this.dialect.casing.getColumnCasing(it))).join(",") : this.dialect.escapeName(this.dialect.casing.getColumnCasing(config.target));
|
26951
|
+
this.config.onConflict = sql`(${sql.raw(targetColumn)})${targetWhereSql} do update set ${setSql}${whereSql}${setWhereSql}`;
|
26952
|
+
return this;
|
26953
|
+
}
|
26954
|
+
/** @internal */
|
26955
|
+
getSQL() {
|
26956
|
+
return this.dialect.buildInsertQuery(this.config);
|
26957
|
+
}
|
26958
|
+
toSQL() {
|
26959
|
+
const { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());
|
26960
|
+
return rest;
|
26961
|
+
}
|
26962
|
+
/** @internal */
|
26963
|
+
_prepare(name2) {
|
26964
|
+
return tracer.startActiveSpan("drizzle.prepareQuery", () => {
|
26965
|
+
return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()), this.config.returning, name2, true);
|
26966
|
+
});
|
26967
|
+
}
|
26968
|
+
prepare(name2) {
|
26969
|
+
return this._prepare(name2);
|
26970
|
+
}
|
26971
|
+
/** @internal */
|
26972
|
+
setToken(token) {
|
26973
|
+
this.authToken = token;
|
26974
|
+
return this;
|
26975
|
+
}
|
26976
|
+
$dynamic() {
|
26977
|
+
return this;
|
26978
|
+
}
|
26979
|
+
};
|
26980
|
+
__publicField(PgInsertBase, _a135, "PgInsert");
|
26981
|
+
}
|
26982
|
+
});
|
26983
|
+
|
26984
|
+
// ../drizzle-orm/dist/pg-core/query-builders/refresh-materialized-view.js
|
26985
|
+
var _a136, _b102, PgRefreshMaterializedView;
|
26986
|
+
var init_refresh_materialized_view = __esm({
|
26987
|
+
"../drizzle-orm/dist/pg-core/query-builders/refresh-materialized-view.js"() {
|
26988
|
+
"use strict";
|
26989
|
+
init_entity();
|
26990
|
+
init_query_promise();
|
26991
|
+
init_tracing();
|
26992
|
+
PgRefreshMaterializedView = class extends (_b102 = QueryPromise, _a136 = entityKind, _b102) {
|
26993
|
+
constructor(view4, session, dialect4) {
|
26994
|
+
super();
|
26995
|
+
__publicField(this, "config");
|
26996
|
+
__publicField(this, "authToken");
|
26997
|
+
__publicField(this, "execute", (placeholderValues) => {
|
26998
|
+
return tracer.startActiveSpan("drizzle.operation", () => {
|
26999
|
+
return this._prepare().execute(placeholderValues, this.authToken);
|
27000
|
+
});
|
27001
|
+
});
|
27002
|
+
this.session = session;
|
27003
|
+
this.dialect = dialect4;
|
27004
|
+
this.config = { view: view4 };
|
27005
|
+
}
|
26928
27006
|
concurrently() {
|
26929
27007
|
if (this.config.withNoData !== void 0) {
|
26930
27008
|
throw new Error("Cannot use concurrently and withNoData together");
|
@@ -26956,6 +27034,11 @@ var init_refresh_materialized_view = __esm({
|
|
26956
27034
|
prepare(name2) {
|
26957
27035
|
return this._prepare(name2);
|
26958
27036
|
}
|
27037
|
+
/** @internal */
|
27038
|
+
setToken(token) {
|
27039
|
+
this.authToken = token;
|
27040
|
+
return this;
|
27041
|
+
}
|
26959
27042
|
};
|
26960
27043
|
__publicField(PgRefreshMaterializedView, _a136, "PgRefreshMaterializedView");
|
26961
27044
|
}
|
@@ -26974,25 +27057,41 @@ var init_update = __esm({
|
|
26974
27057
|
"../drizzle-orm/dist/pg-core/query-builders/update.js"() {
|
26975
27058
|
"use strict";
|
26976
27059
|
init_entity();
|
27060
|
+
init_table2();
|
26977
27061
|
init_query_promise();
|
27062
|
+
init_selection_proxy();
|
27063
|
+
init_sql();
|
27064
|
+
init_subquery();
|
26978
27065
|
init_table();
|
26979
27066
|
init_utils2();
|
27067
|
+
init_view_common();
|
26980
27068
|
_a137 = entityKind;
|
26981
27069
|
PgUpdateBuilder = class {
|
26982
27070
|
constructor(table4, session, dialect4, withList) {
|
27071
|
+
__publicField(this, "authToken");
|
26983
27072
|
this.table = table4;
|
26984
27073
|
this.session = session;
|
26985
27074
|
this.dialect = dialect4;
|
26986
27075
|
this.withList = withList;
|
26987
27076
|
}
|
27077
|
+
setToken(token) {
|
27078
|
+
this.authToken = token;
|
27079
|
+
return this;
|
27080
|
+
}
|
26988
27081
|
set(values) {
|
26989
|
-
return new PgUpdateBase(
|
27082
|
+
return this.authToken === void 0 ? new PgUpdateBase(
|
26990
27083
|
this.table,
|
26991
27084
|
mapUpdateSet(this.table, values),
|
26992
27085
|
this.session,
|
26993
27086
|
this.dialect,
|
26994
27087
|
this.withList
|
26995
|
-
)
|
27088
|
+
) : new PgUpdateBase(
|
27089
|
+
this.table,
|
27090
|
+
mapUpdateSet(this.table, values),
|
27091
|
+
this.session,
|
27092
|
+
this.dialect,
|
27093
|
+
this.withList
|
27094
|
+
).setToken(this.authToken);
|
26996
27095
|
}
|
26997
27096
|
};
|
26998
27097
|
__publicField(PgUpdateBuilder, _a137, "PgUpdateBuilder");
|
@@ -27000,12 +27099,86 @@ var init_update = __esm({
|
|
27000
27099
|
constructor(table4, set, session, dialect4, withList) {
|
27001
27100
|
super();
|
27002
27101
|
__publicField(this, "config");
|
27102
|
+
__publicField(this, "tableName");
|
27103
|
+
__publicField(this, "joinsNotNullableMap");
|
27104
|
+
__publicField(this, "leftJoin", this.createJoin("left"));
|
27105
|
+
__publicField(this, "rightJoin", this.createJoin("right"));
|
27106
|
+
__publicField(this, "innerJoin", this.createJoin("inner"));
|
27107
|
+
__publicField(this, "fullJoin", this.createJoin("full"));
|
27108
|
+
__publicField(this, "authToken");
|
27003
27109
|
__publicField(this, "execute", (placeholderValues) => {
|
27004
|
-
return this._prepare().execute(placeholderValues);
|
27110
|
+
return this._prepare().execute(placeholderValues, this.authToken);
|
27005
27111
|
});
|
27006
27112
|
this.session = session;
|
27007
27113
|
this.dialect = dialect4;
|
27008
|
-
this.config = { set, table: table4, withList };
|
27114
|
+
this.config = { set, table: table4, withList, joins: [] };
|
27115
|
+
this.tableName = getTableLikeName(table4);
|
27116
|
+
this.joinsNotNullableMap = typeof this.tableName === "string" ? { [this.tableName]: true } : {};
|
27117
|
+
}
|
27118
|
+
from(source) {
|
27119
|
+
const tableName = getTableLikeName(source);
|
27120
|
+
if (typeof tableName === "string") {
|
27121
|
+
this.joinsNotNullableMap[tableName] = true;
|
27122
|
+
}
|
27123
|
+
this.config.from = source;
|
27124
|
+
return this;
|
27125
|
+
}
|
27126
|
+
getTableLikeFields(table4) {
|
27127
|
+
if (is(table4, PgTable)) {
|
27128
|
+
return table4[Table2.Symbol.Columns];
|
27129
|
+
} else if (is(table4, Subquery)) {
|
27130
|
+
return table4._.selectedFields;
|
27131
|
+
}
|
27132
|
+
return table4[ViewBaseConfig].selectedFields;
|
27133
|
+
}
|
27134
|
+
createJoin(joinType) {
|
27135
|
+
return (table4, on) => {
|
27136
|
+
const tableName = getTableLikeName(table4);
|
27137
|
+
if (typeof tableName === "string" && this.config.joins.some((join) => join.alias === tableName)) {
|
27138
|
+
throw new Error(`Alias "${tableName}" is already used in this query`);
|
27139
|
+
}
|
27140
|
+
if (typeof on === "function") {
|
27141
|
+
const from = this.config.from && !is(this.config.from, SQL) ? this.getTableLikeFields(this.config.from) : void 0;
|
27142
|
+
on = on(
|
27143
|
+
new Proxy(
|
27144
|
+
this.config.table[Table2.Symbol.Columns],
|
27145
|
+
new SelectionProxyHandler({ sqlAliasedBehavior: "sql", sqlBehavior: "sql" })
|
27146
|
+
),
|
27147
|
+
from && new Proxy(
|
27148
|
+
from,
|
27149
|
+
new SelectionProxyHandler({ sqlAliasedBehavior: "sql", sqlBehavior: "sql" })
|
27150
|
+
)
|
27151
|
+
);
|
27152
|
+
}
|
27153
|
+
this.config.joins.push({ on, table: table4, joinType, alias: tableName });
|
27154
|
+
if (typeof tableName === "string") {
|
27155
|
+
switch (joinType) {
|
27156
|
+
case "left": {
|
27157
|
+
this.joinsNotNullableMap[tableName] = false;
|
27158
|
+
break;
|
27159
|
+
}
|
27160
|
+
case "right": {
|
27161
|
+
this.joinsNotNullableMap = Object.fromEntries(
|
27162
|
+
Object.entries(this.joinsNotNullableMap).map(([key]) => [key, false])
|
27163
|
+
);
|
27164
|
+
this.joinsNotNullableMap[tableName] = true;
|
27165
|
+
break;
|
27166
|
+
}
|
27167
|
+
case "inner": {
|
27168
|
+
this.joinsNotNullableMap[tableName] = true;
|
27169
|
+
break;
|
27170
|
+
}
|
27171
|
+
case "full": {
|
27172
|
+
this.joinsNotNullableMap = Object.fromEntries(
|
27173
|
+
Object.entries(this.joinsNotNullableMap).map(([key]) => [key, false])
|
27174
|
+
);
|
27175
|
+
this.joinsNotNullableMap[tableName] = false;
|
27176
|
+
break;
|
27177
|
+
}
|
27178
|
+
}
|
27179
|
+
}
|
27180
|
+
return this;
|
27181
|
+
};
|
27009
27182
|
}
|
27010
27183
|
/**
|
27011
27184
|
* Adds a 'where' clause to the query.
|
@@ -27044,7 +27217,24 @@ var init_update = __esm({
|
|
27044
27217
|
this.config.where = where;
|
27045
27218
|
return this;
|
27046
27219
|
}
|
27047
|
-
returning(fields
|
27220
|
+
returning(fields) {
|
27221
|
+
if (!fields) {
|
27222
|
+
fields = Object.assign({}, this.config.table[Table2.Symbol.Columns]);
|
27223
|
+
if (this.config.from) {
|
27224
|
+
const tableName = getTableLikeName(this.config.from);
|
27225
|
+
if (typeof tableName === "string" && this.config.from && !is(this.config.from, SQL)) {
|
27226
|
+
const fromFields = this.getTableLikeFields(this.config.from);
|
27227
|
+
fields[tableName] = fromFields;
|
27228
|
+
}
|
27229
|
+
for (const join of this.config.joins) {
|
27230
|
+
const tableName2 = getTableLikeName(join.table);
|
27231
|
+
if (typeof tableName2 === "string" && !is(join.table, SQL)) {
|
27232
|
+
const fromFields = this.getTableLikeFields(join.table);
|
27233
|
+
fields[tableName2] = fromFields;
|
27234
|
+
}
|
27235
|
+
}
|
27236
|
+
}
|
27237
|
+
}
|
27048
27238
|
this.config.returning = orderSelectedFields(fields);
|
27049
27239
|
return this;
|
27050
27240
|
}
|
@@ -27058,11 +27248,18 @@ var init_update = __esm({
|
|
27058
27248
|
}
|
27059
27249
|
/** @internal */
|
27060
27250
|
_prepare(name2) {
|
27061
|
-
|
27251
|
+
const query = this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()), this.config.returning, name2, true);
|
27252
|
+
query.joinsNotNullableMap = this.joinsNotNullableMap;
|
27253
|
+
return query;
|
27062
27254
|
}
|
27063
27255
|
prepare(name2) {
|
27064
27256
|
return this._prepare(name2);
|
27065
27257
|
}
|
27258
|
+
/** @internal */
|
27259
|
+
setToken(token) {
|
27260
|
+
this.authToken = token;
|
27261
|
+
return this;
|
27262
|
+
}
|
27066
27263
|
$dynamic() {
|
27067
27264
|
return this;
|
27068
27265
|
}
|
@@ -27096,6 +27293,7 @@ var init_count = __esm({
|
|
27096
27293
|
constructor(params) {
|
27097
27294
|
super(_PgCountBuilder.buildEmbeddedCount(params.source, params.filters).queryChunks);
|
27098
27295
|
__publicField(this, "sql");
|
27296
|
+
__publicField(this, "token");
|
27099
27297
|
__publicField(this, _a139, "PgCountBuilder");
|
27100
27298
|
__publicField(this, "session");
|
27101
27299
|
this.params = params;
|
@@ -27112,8 +27310,12 @@ var init_count = __esm({
|
|
27112
27310
|
static buildCount(source, filters) {
|
27113
27311
|
return sql`select count(*) as count from ${source}${sql.raw(" where ").if(filters)}${filters};`;
|
27114
27312
|
}
|
27313
|
+
/** @intrnal */
|
27314
|
+
setToken(token) {
|
27315
|
+
this.token = token;
|
27316
|
+
}
|
27115
27317
|
then(onfulfilled, onrejected) {
|
27116
|
-
return Promise.resolve(this.session.count(this.sql)).then(
|
27318
|
+
return Promise.resolve(this.session.count(this.sql, this.token)).then(
|
27117
27319
|
onfulfilled,
|
27118
27320
|
onrejected
|
27119
27321
|
);
|
@@ -27190,6 +27392,7 @@ var init_query = __esm({
|
|
27190
27392
|
PgRelationalQuery = class extends (_b105 = QueryPromise, _a141 = entityKind, _b105) {
|
27191
27393
|
constructor(fullSchema, schema4, tableNamesMap, table4, tableConfig, dialect4, session, config, mode) {
|
27192
27394
|
super();
|
27395
|
+
__publicField(this, "authToken");
|
27193
27396
|
this.fullSchema = fullSchema;
|
27194
27397
|
this.schema = schema4;
|
27195
27398
|
this.tableNamesMap = tableNamesMap;
|
@@ -27247,9 +27450,14 @@ var init_query = __esm({
|
|
27247
27450
|
toSQL() {
|
27248
27451
|
return this._toSQL().builtQuery;
|
27249
27452
|
}
|
27453
|
+
/** @internal */
|
27454
|
+
setToken(token) {
|
27455
|
+
this.authToken = token;
|
27456
|
+
return this;
|
27457
|
+
}
|
27250
27458
|
execute() {
|
27251
27459
|
return tracer.startActiveSpan("drizzle.operation", () => {
|
27252
|
-
return this._prepare().execute();
|
27460
|
+
return this._prepare().execute(void 0, this.authToken);
|
27253
27461
|
});
|
27254
27462
|
}
|
27255
27463
|
};
|
@@ -27312,6 +27520,7 @@ var init_db = __esm({
|
|
27312
27520
|
PgDatabase = class {
|
27313
27521
|
constructor(dialect4, session, schema4) {
|
27314
27522
|
__publicField(this, "query");
|
27523
|
+
__publicField(this, "authToken");
|
27315
27524
|
this.dialect = dialect4;
|
27316
27525
|
this.session = session;
|
27317
27526
|
this._ = schema4 ? {
|
@@ -27567,7 +27776,7 @@ var init_db = __esm({
|
|
27567
27776
|
false
|
27568
27777
|
);
|
27569
27778
|
return new PgRaw(
|
27570
|
-
() => prepared.execute(),
|
27779
|
+
() => prepared.execute(void 0, this.authToken),
|
27571
27780
|
sequel,
|
27572
27781
|
builtQuery,
|
27573
27782
|
(result) => prepared.mapResult(result, true)
|
@@ -28112,6 +28321,7 @@ var init_session = __esm({
|
|
28112
28321
|
_a159 = entityKind;
|
28113
28322
|
PgPreparedQuery = class {
|
28114
28323
|
constructor(query) {
|
28324
|
+
__publicField(this, "authToken");
|
28115
28325
|
/** @internal */
|
28116
28326
|
__publicField(this, "joinsNotNullableMap");
|
28117
28327
|
this.query = query;
|
@@ -28122,6 +28332,11 @@ var init_session = __esm({
|
|
28122
28332
|
mapResult(response, _isFromBatch) {
|
28123
28333
|
return response;
|
28124
28334
|
}
|
28335
|
+
/** @internal */
|
28336
|
+
setToken(token) {
|
28337
|
+
this.authToken = token;
|
28338
|
+
return this;
|
28339
|
+
}
|
28125
28340
|
};
|
28126
28341
|
__publicField(PgPreparedQuery, _a159, "PgPreparedQuery");
|
28127
28342
|
_a160 = entityKind;
|
@@ -28129,7 +28344,8 @@ var init_session = __esm({
|
|
28129
28344
|
constructor(dialect4) {
|
28130
28345
|
this.dialect = dialect4;
|
28131
28346
|
}
|
28132
|
-
|
28347
|
+
/** @internal */
|
28348
|
+
execute(query, token) {
|
28133
28349
|
return tracer.startActiveSpan("drizzle.operation", () => {
|
28134
28350
|
const prepared = tracer.startActiveSpan("drizzle.prepareQuery", () => {
|
28135
28351
|
return this.prepareQuery(
|
@@ -28139,7 +28355,7 @@ var init_session = __esm({
|
|
28139
28355
|
false
|
28140
28356
|
);
|
28141
28357
|
});
|
28142
|
-
return prepared.execute();
|
28358
|
+
return prepared.setToken(token).execute(void 0, token);
|
28143
28359
|
});
|
28144
28360
|
}
|
28145
28361
|
all(query) {
|
@@ -28150,8 +28366,9 @@ var init_session = __esm({
|
|
28150
28366
|
false
|
28151
28367
|
).all();
|
28152
28368
|
}
|
28153
|
-
|
28154
|
-
|
28369
|
+
/** @internal */
|
28370
|
+
async count(sql2, token) {
|
28371
|
+
const res = await this.execute(sql2, token);
|
28155
28372
|
return Number(
|
28156
28373
|
res[0]["count"]
|
28157
28374
|
);
|
@@ -30785,180 +31002,12 @@ var init_delete2 = __esm({
|
|
30785
31002
|
return this;
|
30786
31003
|
}
|
30787
31004
|
returning(fields = this.table[SQLiteTable.Symbol.Columns]) {
|
30788
|
-
this.config.returning = orderSelectedFields(fields);
|
30789
|
-
return this;
|
30790
|
-
}
|
30791
|
-
/** @internal */
|
30792
|
-
getSQL() {
|
30793
|
-
return this.dialect.buildDeleteQuery(this.config);
|
30794
|
-
}
|
30795
|
-
toSQL() {
|
30796
|
-
const { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());
|
30797
|
-
return rest;
|
30798
|
-
}
|
30799
|
-
/** @internal */
|
30800
|
-
_prepare(isOneTimeQuery = true) {
|
30801
|
-
return this.session[isOneTimeQuery ? "prepareOneTimeQuery" : "prepareQuery"](
|
30802
|
-
this.dialect.sqlToQuery(this.getSQL()),
|
30803
|
-
this.config.returning,
|
30804
|
-
this.config.returning ? "all" : "run",
|
30805
|
-
true
|
30806
|
-
);
|
30807
|
-
}
|
30808
|
-
prepare() {
|
30809
|
-
return this._prepare(false);
|
30810
|
-
}
|
30811
|
-
async execute(placeholderValues) {
|
30812
|
-
return this._prepare().execute(placeholderValues);
|
30813
|
-
}
|
30814
|
-
$dynamic() {
|
30815
|
-
return this;
|
30816
|
-
}
|
30817
|
-
};
|
30818
|
-
__publicField(SQLiteDeleteBase, _a196, "SQLiteDelete");
|
30819
|
-
}
|
30820
|
-
});
|
30821
|
-
|
30822
|
-
// ../drizzle-orm/dist/sqlite-core/query-builders/insert.js
|
30823
|
-
var _a197, SQLiteInsertBuilder, _a198, _b142, SQLiteInsertBase;
|
30824
|
-
var init_insert2 = __esm({
|
30825
|
-
"../drizzle-orm/dist/sqlite-core/query-builders/insert.js"() {
|
30826
|
-
"use strict";
|
30827
|
-
init_entity();
|
30828
|
-
init_query_promise();
|
30829
|
-
init_sql();
|
30830
|
-
init_table3();
|
30831
|
-
init_table();
|
30832
|
-
init_utils2();
|
30833
|
-
_a197 = entityKind;
|
30834
|
-
SQLiteInsertBuilder = class {
|
30835
|
-
constructor(table4, session, dialect4, withList) {
|
30836
|
-
this.table = table4;
|
30837
|
-
this.session = session;
|
30838
|
-
this.dialect = dialect4;
|
30839
|
-
this.withList = withList;
|
30840
|
-
}
|
30841
|
-
values(values) {
|
30842
|
-
values = Array.isArray(values) ? values : [values];
|
30843
|
-
if (values.length === 0) {
|
30844
|
-
throw new Error("values() must be called with at least one value");
|
30845
|
-
}
|
30846
|
-
const mappedValues = values.map((entry) => {
|
30847
|
-
const result = {};
|
30848
|
-
const cols = this.table[Table2.Symbol.Columns];
|
30849
|
-
for (const colKey of Object.keys(entry)) {
|
30850
|
-
const colValue = entry[colKey];
|
30851
|
-
result[colKey] = is(colValue, SQL) ? colValue : new Param(colValue, cols[colKey]);
|
30852
|
-
}
|
30853
|
-
return result;
|
30854
|
-
});
|
30855
|
-
return new SQLiteInsertBase(this.table, mappedValues, this.session, this.dialect, this.withList);
|
30856
|
-
}
|
30857
|
-
};
|
30858
|
-
__publicField(SQLiteInsertBuilder, _a197, "SQLiteInsertBuilder");
|
30859
|
-
SQLiteInsertBase = class extends (_b142 = QueryPromise, _a198 = entityKind, _b142) {
|
30860
|
-
constructor(table4, values, session, dialect4, withList) {
|
30861
|
-
super();
|
30862
|
-
/** @internal */
|
30863
|
-
__publicField(this, "config");
|
30864
|
-
__publicField(this, "run", (placeholderValues) => {
|
30865
|
-
return this._prepare().run(placeholderValues);
|
30866
|
-
});
|
30867
|
-
__publicField(this, "all", (placeholderValues) => {
|
30868
|
-
return this._prepare().all(placeholderValues);
|
30869
|
-
});
|
30870
|
-
__publicField(this, "get", (placeholderValues) => {
|
30871
|
-
return this._prepare().get(placeholderValues);
|
30872
|
-
});
|
30873
|
-
__publicField(this, "values", (placeholderValues) => {
|
30874
|
-
return this._prepare().values(placeholderValues);
|
30875
|
-
});
|
30876
|
-
this.session = session;
|
30877
|
-
this.dialect = dialect4;
|
30878
|
-
this.config = { table: table4, values, withList };
|
30879
|
-
}
|
30880
|
-
returning(fields = this.config.table[SQLiteTable.Symbol.Columns]) {
|
30881
|
-
this.config.returning = orderSelectedFields(fields);
|
30882
|
-
return this;
|
30883
|
-
}
|
30884
|
-
/**
|
30885
|
-
* Adds an `on conflict do nothing` clause to the query.
|
30886
|
-
*
|
30887
|
-
* Calling this method simply avoids inserting a row as its alternative action.
|
30888
|
-
*
|
30889
|
-
* See docs: {@link https://orm.drizzle.team/docs/insert#on-conflict-do-nothing}
|
30890
|
-
*
|
30891
|
-
* @param config The `target` and `where` clauses.
|
30892
|
-
*
|
30893
|
-
* @example
|
30894
|
-
* ```ts
|
30895
|
-
* // Insert one row and cancel the insert if there's a conflict
|
30896
|
-
* await db.insert(cars)
|
30897
|
-
* .values({ id: 1, brand: 'BMW' })
|
30898
|
-
* .onConflictDoNothing();
|
30899
|
-
*
|
30900
|
-
* // Explicitly specify conflict target
|
30901
|
-
* await db.insert(cars)
|
30902
|
-
* .values({ id: 1, brand: 'BMW' })
|
30903
|
-
* .onConflictDoNothing({ target: cars.id });
|
30904
|
-
* ```
|
30905
|
-
*/
|
30906
|
-
onConflictDoNothing(config = {}) {
|
30907
|
-
if (config.target === void 0) {
|
30908
|
-
this.config.onConflict = sql`do nothing`;
|
30909
|
-
} else {
|
30910
|
-
const targetSql = Array.isArray(config.target) ? sql`${config.target}` : sql`${[config.target]}`;
|
30911
|
-
const whereSql = config.where ? sql` where ${config.where}` : sql``;
|
30912
|
-
this.config.onConflict = sql`${targetSql} do nothing${whereSql}`;
|
30913
|
-
}
|
30914
|
-
return this;
|
30915
|
-
}
|
30916
|
-
/**
|
30917
|
-
* Adds an `on conflict do update` clause to the query.
|
30918
|
-
*
|
30919
|
-
* Calling this method will update the existing row that conflicts with the row proposed for insertion as its alternative action.
|
30920
|
-
*
|
30921
|
-
* See docs: {@link https://orm.drizzle.team/docs/insert#upserts-and-conflicts}
|
30922
|
-
*
|
30923
|
-
* @param config The `target`, `set` and `where` clauses.
|
30924
|
-
*
|
30925
|
-
* @example
|
30926
|
-
* ```ts
|
30927
|
-
* // Update the row if there's a conflict
|
30928
|
-
* await db.insert(cars)
|
30929
|
-
* .values({ id: 1, brand: 'BMW' })
|
30930
|
-
* .onConflictDoUpdate({
|
30931
|
-
* target: cars.id,
|
30932
|
-
* set: { brand: 'Porsche' }
|
30933
|
-
* });
|
30934
|
-
*
|
30935
|
-
* // Upsert with 'where' clause
|
30936
|
-
* await db.insert(cars)
|
30937
|
-
* .values({ id: 1, brand: 'BMW' })
|
30938
|
-
* .onConflictDoUpdate({
|
30939
|
-
* target: cars.id,
|
30940
|
-
* set: { brand: 'newBMW' },
|
30941
|
-
* where: sql`${cars.createdAt} > '2023-01-01'::date`,
|
30942
|
-
* });
|
30943
|
-
* ```
|
30944
|
-
*/
|
30945
|
-
onConflictDoUpdate(config) {
|
30946
|
-
if (config.where && (config.targetWhere || config.setWhere)) {
|
30947
|
-
throw new Error(
|
30948
|
-
'You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.'
|
30949
|
-
);
|
30950
|
-
}
|
30951
|
-
const whereSql = config.where ? sql` where ${config.where}` : void 0;
|
30952
|
-
const targetWhereSql = config.targetWhere ? sql` where ${config.targetWhere}` : void 0;
|
30953
|
-
const setWhereSql = config.setWhere ? sql` where ${config.setWhere}` : void 0;
|
30954
|
-
const targetSql = Array.isArray(config.target) ? sql`${config.target}` : sql`${[config.target]}`;
|
30955
|
-
const setSql = this.dialect.buildUpdateSet(this.config.table, mapUpdateSet(this.config.table, config.set));
|
30956
|
-
this.config.onConflict = sql`${targetSql}${targetWhereSql} do update set ${setSql}${whereSql}${setWhereSql}`;
|
31005
|
+
this.config.returning = orderSelectedFields(fields);
|
30957
31006
|
return this;
|
30958
31007
|
}
|
30959
31008
|
/** @internal */
|
30960
31009
|
getSQL() {
|
30961
|
-
return this.dialect.
|
31010
|
+
return this.dialect.buildDeleteQuery(this.config);
|
30962
31011
|
}
|
30963
31012
|
toSQL() {
|
30964
31013
|
const { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());
|
@@ -30976,32 +31025,32 @@ var init_insert2 = __esm({
|
|
30976
31025
|
prepare() {
|
30977
31026
|
return this._prepare(false);
|
30978
31027
|
}
|
30979
|
-
async execute() {
|
30980
|
-
return this.
|
31028
|
+
async execute(placeholderValues) {
|
31029
|
+
return this._prepare().execute(placeholderValues);
|
30981
31030
|
}
|
30982
31031
|
$dynamic() {
|
30983
31032
|
return this;
|
30984
31033
|
}
|
30985
31034
|
};
|
30986
|
-
__publicField(
|
31035
|
+
__publicField(SQLiteDeleteBase, _a196, "SQLiteDelete");
|
30987
31036
|
}
|
30988
31037
|
});
|
30989
31038
|
|
30990
31039
|
// ../drizzle-orm/dist/sqlite-core/view-base.js
|
30991
|
-
var
|
31040
|
+
var _a197, _b142, SQLiteViewBase;
|
30992
31041
|
var init_view_base2 = __esm({
|
30993
31042
|
"../drizzle-orm/dist/sqlite-core/view-base.js"() {
|
30994
31043
|
"use strict";
|
30995
31044
|
init_entity();
|
30996
31045
|
init_sql();
|
30997
|
-
SQLiteViewBase = class extends (
|
31046
|
+
SQLiteViewBase = class extends (_b142 = View3, _a197 = entityKind, _b142) {
|
30998
31047
|
};
|
30999
|
-
__publicField(SQLiteViewBase,
|
31048
|
+
__publicField(SQLiteViewBase, _a197, "SQLiteViewBase");
|
31000
31049
|
}
|
31001
31050
|
});
|
31002
31051
|
|
31003
31052
|
// ../drizzle-orm/dist/sqlite-core/dialect.js
|
31004
|
-
var
|
31053
|
+
var _a198, SQLiteDialect, _a199, _b143, SQLiteSyncDialect, _a200, _b144, SQLiteAsyncDialect;
|
31005
31054
|
var init_dialect2 = __esm({
|
31006
31055
|
"../drizzle-orm/dist/sqlite-core/dialect.js"() {
|
31007
31056
|
"use strict";
|
@@ -31020,7 +31069,7 @@ var init_dialect2 = __esm({
|
|
31020
31069
|
init_utils2();
|
31021
31070
|
init_view_common();
|
31022
31071
|
init_view_base2();
|
31023
|
-
|
31072
|
+
_a198 = entityKind;
|
31024
31073
|
SQLiteDialect = class {
|
31025
31074
|
constructor(config) {
|
31026
31075
|
/** @internal */
|
@@ -31073,14 +31122,16 @@ var init_dialect2 = __esm({
|
|
31073
31122
|
return [res];
|
31074
31123
|
}));
|
31075
31124
|
}
|
31076
|
-
buildUpdateQuery({ table: table4, set, where, returning, withList, limit, orderBy }) {
|
31125
|
+
buildUpdateQuery({ table: table4, set, where, returning, withList, joins, from, limit, orderBy }) {
|
31077
31126
|
const withSql = this.buildWithCTE(withList);
|
31078
31127
|
const setSql = this.buildUpdateSet(table4, set);
|
31128
|
+
const fromSql = from && sql.join([sql.raw(" from "), this.buildFromTable(from)]);
|
31129
|
+
const joinsSql = this.buildJoins(joins);
|
31079
31130
|
const returningSql = returning ? sql` returning ${this.buildSelection(returning, { isSingleTable: true })}` : void 0;
|
31080
31131
|
const whereSql = where ? sql` where ${where}` : void 0;
|
31081
31132
|
const orderBySql = this.buildOrderBy(orderBy);
|
31082
31133
|
const limitSql = this.buildLimit(limit);
|
31083
|
-
return sql`${withSql}update ${table4} set ${setSql}${whereSql}${returningSql}${orderBySql}${limitSql}`;
|
31134
|
+
return sql`${withSql}update ${table4} set ${setSql}${fromSql}${joinsSql}${whereSql}${returningSql}${orderBySql}${limitSql}`;
|
31084
31135
|
}
|
31085
31136
|
/**
|
31086
31137
|
* Builds selection SQL with provided fields/expressions
|
@@ -31133,6 +31184,37 @@ var init_dialect2 = __esm({
|
|
31133
31184
|
});
|
31134
31185
|
return sql.join(chunks);
|
31135
31186
|
}
|
31187
|
+
buildJoins(joins) {
|
31188
|
+
if (!joins || joins.length === 0) {
|
31189
|
+
return void 0;
|
31190
|
+
}
|
31191
|
+
const joinsArray = [];
|
31192
|
+
if (joins) {
|
31193
|
+
for (const [index4, joinMeta] of joins.entries()) {
|
31194
|
+
if (index4 === 0) {
|
31195
|
+
joinsArray.push(sql` `);
|
31196
|
+
}
|
31197
|
+
const table4 = joinMeta.table;
|
31198
|
+
if (is(table4, SQLiteTable)) {
|
31199
|
+
const tableName = table4[SQLiteTable.Symbol.Name];
|
31200
|
+
const tableSchema = table4[SQLiteTable.Symbol.Schema];
|
31201
|
+
const origTableName = table4[SQLiteTable.Symbol.OriginalName];
|
31202
|
+
const alias = tableName === origTableName ? void 0 : joinMeta.alias;
|
31203
|
+
joinsArray.push(
|
31204
|
+
sql`${sql.raw(joinMeta.joinType)} join ${tableSchema ? sql`${sql.identifier(tableSchema)}.` : void 0}${sql.identifier(origTableName)}${alias && sql` ${sql.identifier(alias)}`} on ${joinMeta.on}`
|
31205
|
+
);
|
31206
|
+
} else {
|
31207
|
+
joinsArray.push(
|
31208
|
+
sql`${sql.raw(joinMeta.joinType)} join ${table4} on ${joinMeta.on}`
|
31209
|
+
);
|
31210
|
+
}
|
31211
|
+
if (index4 < joins.length - 1) {
|
31212
|
+
joinsArray.push(sql` `);
|
31213
|
+
}
|
31214
|
+
}
|
31215
|
+
}
|
31216
|
+
return sql.join(joinsArray);
|
31217
|
+
}
|
31136
31218
|
buildLimit(limit) {
|
31137
31219
|
return typeof limit === "object" || typeof limit === "number" && limit >= 0 ? sql` limit ${limit}` : void 0;
|
31138
31220
|
}
|
@@ -31148,6 +31230,12 @@ var init_dialect2 = __esm({
|
|
31148
31230
|
}
|
31149
31231
|
return orderByList.length > 0 ? sql` order by ${sql.join(orderByList)}` : void 0;
|
31150
31232
|
}
|
31233
|
+
buildFromTable(table4) {
|
31234
|
+
if (is(table4, Table2) && table4[Table2.Symbol.OriginalName] !== table4[Table2.Symbol.Name]) {
|
31235
|
+
return sql`${sql.identifier(table4[Table2.Symbol.OriginalName])} ${sql.identifier(table4[Table2.Symbol.Name])}`;
|
31236
|
+
}
|
31237
|
+
return table4;
|
31238
|
+
}
|
31151
31239
|
buildSelectQuery({
|
31152
31240
|
withList,
|
31153
31241
|
fields,
|
@@ -31178,38 +31266,8 @@ var init_dialect2 = __esm({
|
|
31178
31266
|
const withSql = this.buildWithCTE(withList);
|
31179
31267
|
const distinctSql = distinct ? sql` distinct` : void 0;
|
31180
31268
|
const selection = this.buildSelection(fieldsList, { isSingleTable });
|
31181
|
-
const tableSql = (
|
31182
|
-
|
31183
|
-
return sql`${sql.identifier(table4[Table2.Symbol.OriginalName])} ${sql.identifier(table4[Table2.Symbol.Name])}`;
|
31184
|
-
}
|
31185
|
-
return table4;
|
31186
|
-
})();
|
31187
|
-
const joinsArray = [];
|
31188
|
-
if (joins) {
|
31189
|
-
for (const [index4, joinMeta] of joins.entries()) {
|
31190
|
-
if (index4 === 0) {
|
31191
|
-
joinsArray.push(sql` `);
|
31192
|
-
}
|
31193
|
-
const table22 = joinMeta.table;
|
31194
|
-
if (is(table22, SQLiteTable)) {
|
31195
|
-
const tableName = table22[SQLiteTable.Symbol.Name];
|
31196
|
-
const tableSchema = table22[SQLiteTable.Symbol.Schema];
|
31197
|
-
const origTableName = table22[SQLiteTable.Symbol.OriginalName];
|
31198
|
-
const alias = tableName === origTableName ? void 0 : joinMeta.alias;
|
31199
|
-
joinsArray.push(
|
31200
|
-
sql`${sql.raw(joinMeta.joinType)} join ${tableSchema ? sql`${sql.identifier(tableSchema)}.` : void 0}${sql.identifier(origTableName)}${alias && sql` ${sql.identifier(alias)}`} on ${joinMeta.on}`
|
31201
|
-
);
|
31202
|
-
} else {
|
31203
|
-
joinsArray.push(
|
31204
|
-
sql`${sql.raw(joinMeta.joinType)} join ${table22} on ${joinMeta.on}`
|
31205
|
-
);
|
31206
|
-
}
|
31207
|
-
if (index4 < joins.length - 1) {
|
31208
|
-
joinsArray.push(sql` `);
|
31209
|
-
}
|
31210
|
-
}
|
31211
|
-
}
|
31212
|
-
const joinsSql = sql.join(joinsArray);
|
31269
|
+
const tableSql = this.buildFromTable(table4);
|
31270
|
+
const joinsSql = this.buildJoins(joins);
|
31213
31271
|
const whereSql = where ? sql` where ${where}` : void 0;
|
31214
31272
|
const havingSql = having ? sql` having ${having}` : void 0;
|
31215
31273
|
const groupByList = [];
|
@@ -31275,45 +31333,56 @@ var init_dialect2 = __esm({
|
|
31275
31333
|
const offsetSql = offset ? sql` offset ${offset}` : void 0;
|
31276
31334
|
return sql`${leftChunk}${operatorChunk}${rightChunk}${orderBySql}${limitSql}${offsetSql}`;
|
31277
31335
|
}
|
31278
|
-
buildInsertQuery({ table: table4, values, onConflict, returning, withList }) {
|
31336
|
+
buildInsertQuery({ table: table4, values: valuesOrSelect, onConflict, returning, withList, select }) {
|
31279
31337
|
const valuesSqlList = [];
|
31280
31338
|
const columns = table4[Table2.Symbol.Columns];
|
31281
31339
|
const colEntries = Object.entries(columns).filter(
|
31282
31340
|
([_2, col]) => !col.shouldDisableInsert()
|
31283
31341
|
);
|
31284
31342
|
const insertOrder = colEntries.map(([, column4]) => sql.identifier(this.casing.getColumnCasing(column4)));
|
31285
|
-
|
31286
|
-
const
|
31287
|
-
|
31288
|
-
|
31289
|
-
|
31290
|
-
|
31291
|
-
|
31292
|
-
|
31293
|
-
|
31294
|
-
|
31295
|
-
|
31296
|
-
|
31297
|
-
|
31298
|
-
|
31343
|
+
if (select) {
|
31344
|
+
const select2 = valuesOrSelect;
|
31345
|
+
if (is(select2, SQL)) {
|
31346
|
+
valuesSqlList.push(select2);
|
31347
|
+
} else {
|
31348
|
+
valuesSqlList.push(select2.getSQL());
|
31349
|
+
}
|
31350
|
+
} else {
|
31351
|
+
const values = valuesOrSelect;
|
31352
|
+
valuesSqlList.push(sql.raw("values "));
|
31353
|
+
for (const [valueIndex, value] of values.entries()) {
|
31354
|
+
const valueList = [];
|
31355
|
+
for (const [fieldName, col] of colEntries) {
|
31356
|
+
const colValue = value[fieldName];
|
31357
|
+
if (colValue === void 0 || is(colValue, Param) && colValue.value === void 0) {
|
31358
|
+
let defaultValue;
|
31359
|
+
if (col.default !== null && col.default !== void 0) {
|
31360
|
+
defaultValue = is(col.default, SQL) ? col.default : sql.param(col.default, col);
|
31361
|
+
} else if (col.defaultFn !== void 0) {
|
31362
|
+
const defaultFnResult = col.defaultFn();
|
31363
|
+
defaultValue = is(defaultFnResult, SQL) ? defaultFnResult : sql.param(defaultFnResult, col);
|
31364
|
+
} else if (!col.default && col.onUpdateFn !== void 0) {
|
31365
|
+
const onUpdateFnResult = col.onUpdateFn();
|
31366
|
+
defaultValue = is(onUpdateFnResult, SQL) ? onUpdateFnResult : sql.param(onUpdateFnResult, col);
|
31367
|
+
} else {
|
31368
|
+
defaultValue = sql`null`;
|
31369
|
+
}
|
31370
|
+
valueList.push(defaultValue);
|
31299
31371
|
} else {
|
31300
|
-
|
31372
|
+
valueList.push(colValue);
|
31301
31373
|
}
|
31302
|
-
valueList.push(defaultValue);
|
31303
|
-
} else {
|
31304
|
-
valueList.push(colValue);
|
31305
31374
|
}
|
31306
|
-
|
31307
|
-
|
31308
|
-
|
31309
|
-
|
31375
|
+
valuesSqlList.push(valueList);
|
31376
|
+
if (valueIndex < values.length - 1) {
|
31377
|
+
valuesSqlList.push(sql`, `);
|
31378
|
+
}
|
31310
31379
|
}
|
31311
31380
|
}
|
31312
31381
|
const withSql = this.buildWithCTE(withList);
|
31313
31382
|
const valuesSql = sql.join(valuesSqlList);
|
31314
31383
|
const returningSql = returning ? sql` returning ${this.buildSelection(returning, { isSingleTable: true })}` : void 0;
|
31315
31384
|
const onConflictSql = onConflict ? sql` on conflict ${onConflict}` : void 0;
|
31316
|
-
return sql`${withSql}insert into ${table4} ${insertOrder}
|
31385
|
+
return sql`${withSql}insert into ${table4} ${insertOrder} ${valuesSql}${onConflictSql}${returningSql}`;
|
31317
31386
|
}
|
31318
31387
|
sqlToQuery(sql2, invokeSource) {
|
31319
31388
|
return sql2.toQuery({
|
@@ -31542,8 +31611,8 @@ var init_dialect2 = __esm({
|
|
31542
31611
|
};
|
31543
31612
|
}
|
31544
31613
|
};
|
31545
|
-
__publicField(SQLiteDialect,
|
31546
|
-
SQLiteSyncDialect = class extends (
|
31614
|
+
__publicField(SQLiteDialect, _a198, "SQLiteDialect");
|
31615
|
+
SQLiteSyncDialect = class extends (_b143 = SQLiteDialect, _a199 = entityKind, _b143) {
|
31547
31616
|
migrate(migrations, session, config) {
|
31548
31617
|
const migrationsTable = config === void 0 ? "__drizzle_migrations" : typeof config === "string" ? "__drizzle_migrations" : config.migrationsTable ?? "__drizzle_migrations";
|
31549
31618
|
const migrationTableCreate = sql`
|
@@ -31577,8 +31646,8 @@ var init_dialect2 = __esm({
|
|
31577
31646
|
}
|
31578
31647
|
}
|
31579
31648
|
};
|
31580
|
-
__publicField(SQLiteSyncDialect,
|
31581
|
-
SQLiteAsyncDialect = class extends (
|
31649
|
+
__publicField(SQLiteSyncDialect, _a199, "SQLiteSyncDialect");
|
31650
|
+
SQLiteAsyncDialect = class extends (_b144 = SQLiteDialect, _a200 = entityKind, _b144) {
|
31582
31651
|
async migrate(migrations, session, config) {
|
31583
31652
|
const migrationsTable = config === void 0 ? "__drizzle_migrations" : typeof config === "string" ? "__drizzle_migrations" : config.migrationsTable ?? "__drizzle_migrations";
|
31584
31653
|
const migrationTableCreate = sql`
|
@@ -31607,7 +31676,7 @@ var init_dialect2 = __esm({
|
|
31607
31676
|
});
|
31608
31677
|
}
|
31609
31678
|
};
|
31610
|
-
__publicField(SQLiteAsyncDialect,
|
31679
|
+
__publicField(SQLiteAsyncDialect, _a200, "SQLiteAsyncDialect");
|
31611
31680
|
}
|
31612
31681
|
});
|
31613
31682
|
|
@@ -31629,7 +31698,7 @@ function createSetOperator2(type, isAll) {
|
|
31629
31698
|
return leftSelect.addSetOperators(setOperators);
|
31630
31699
|
};
|
31631
31700
|
}
|
31632
|
-
var
|
31701
|
+
var _a201, SQLiteSelectBuilder, _a202, _b145, SQLiteSelectQueryBuilderBase, _a203, _b146, SQLiteSelectBase, getSQLiteSetOperators, union2, unionAll2, intersect2, except2;
|
31633
31702
|
var init_select3 = __esm({
|
31634
31703
|
"../drizzle-orm/dist/sqlite-core/query-builders/select.js"() {
|
31635
31704
|
"use strict";
|
@@ -31643,7 +31712,7 @@ var init_select3 = __esm({
|
|
31643
31712
|
init_utils2();
|
31644
31713
|
init_view_common();
|
31645
31714
|
init_view_base2();
|
31646
|
-
|
31715
|
+
_a201 = entityKind;
|
31647
31716
|
SQLiteSelectBuilder = class {
|
31648
31717
|
constructor(config) {
|
31649
31718
|
__publicField(this, "fields");
|
@@ -31684,8 +31753,8 @@ var init_select3 = __esm({
|
|
31684
31753
|
});
|
31685
31754
|
}
|
31686
31755
|
};
|
31687
|
-
__publicField(SQLiteSelectBuilder,
|
31688
|
-
SQLiteSelectQueryBuilderBase = class extends (
|
31756
|
+
__publicField(SQLiteSelectBuilder, _a201, "SQLiteSelectBuilder");
|
31757
|
+
SQLiteSelectQueryBuilderBase = class extends (_b145 = TypedQueryBuilder, _a202 = entityKind, _b145) {
|
31689
31758
|
constructor({ table: table4, fields, isPartialSelect, session, dialect: dialect4, withList, distinct }) {
|
31690
31759
|
super();
|
31691
31760
|
__publicField(this, "_");
|
@@ -32190,8 +32259,8 @@ var init_select3 = __esm({
|
|
32190
32259
|
return this;
|
32191
32260
|
}
|
32192
32261
|
};
|
32193
|
-
__publicField(SQLiteSelectQueryBuilderBase,
|
32194
|
-
SQLiteSelectBase = class extends (
|
32262
|
+
__publicField(SQLiteSelectQueryBuilderBase, _a202, "SQLiteSelectQueryBuilder");
|
32263
|
+
SQLiteSelectBase = class extends (_b146 = SQLiteSelectQueryBuilderBase, _a203 = entityKind, _b146) {
|
32195
32264
|
constructor() {
|
32196
32265
|
super(...arguments);
|
32197
32266
|
__publicField(this, "run", (placeholderValues) => {
|
@@ -32229,7 +32298,7 @@ var init_select3 = __esm({
|
|
32229
32298
|
return this.all();
|
32230
32299
|
}
|
32231
32300
|
};
|
32232
|
-
__publicField(SQLiteSelectBase,
|
32301
|
+
__publicField(SQLiteSelectBase, _a203, "SQLiteSelect");
|
32233
32302
|
applyMixins(SQLiteSelectBase, [QueryPromise]);
|
32234
32303
|
getSQLiteSetOperators = () => ({
|
32235
32304
|
union: union2,
|
@@ -32245,7 +32314,7 @@ var init_select3 = __esm({
|
|
32245
32314
|
});
|
32246
32315
|
|
32247
32316
|
// ../drizzle-orm/dist/sqlite-core/query-builders/query-builder.js
|
32248
|
-
var
|
32317
|
+
var _a204, QueryBuilder2;
|
32249
32318
|
var init_query_builder3 = __esm({
|
32250
32319
|
"../drizzle-orm/dist/sqlite-core/query-builders/query-builder.js"() {
|
32251
32320
|
"use strict";
|
@@ -32254,7 +32323,7 @@ var init_query_builder3 = __esm({
|
|
32254
32323
|
init_dialect2();
|
32255
32324
|
init_subquery();
|
32256
32325
|
init_select3();
|
32257
|
-
|
32326
|
+
_a204 = entityKind;
|
32258
32327
|
QueryBuilder2 = class {
|
32259
32328
|
constructor(dialect4) {
|
32260
32329
|
__publicField(this, "dialect");
|
@@ -32316,7 +32385,185 @@ var init_query_builder3 = __esm({
|
|
32316
32385
|
return this.dialect;
|
32317
32386
|
}
|
32318
32387
|
};
|
32319
|
-
__publicField(QueryBuilder2,
|
32388
|
+
__publicField(QueryBuilder2, _a204, "SQLiteQueryBuilder");
|
32389
|
+
}
|
32390
|
+
});
|
32391
|
+
|
32392
|
+
// ../drizzle-orm/dist/sqlite-core/query-builders/insert.js
|
32393
|
+
var _a205, SQLiteInsertBuilder, _a206, _b147, SQLiteInsertBase;
|
32394
|
+
var init_insert2 = __esm({
|
32395
|
+
"../drizzle-orm/dist/sqlite-core/query-builders/insert.js"() {
|
32396
|
+
"use strict";
|
32397
|
+
init_entity();
|
32398
|
+
init_query_promise();
|
32399
|
+
init_sql();
|
32400
|
+
init_table3();
|
32401
|
+
init_table();
|
32402
|
+
init_utils2();
|
32403
|
+
init_query_builder3();
|
32404
|
+
_a205 = entityKind;
|
32405
|
+
SQLiteInsertBuilder = class {
|
32406
|
+
constructor(table4, session, dialect4, withList) {
|
32407
|
+
this.table = table4;
|
32408
|
+
this.session = session;
|
32409
|
+
this.dialect = dialect4;
|
32410
|
+
this.withList = withList;
|
32411
|
+
}
|
32412
|
+
values(values) {
|
32413
|
+
values = Array.isArray(values) ? values : [values];
|
32414
|
+
if (values.length === 0) {
|
32415
|
+
throw new Error("values() must be called with at least one value");
|
32416
|
+
}
|
32417
|
+
const mappedValues = values.map((entry) => {
|
32418
|
+
const result = {};
|
32419
|
+
const cols = this.table[Table2.Symbol.Columns];
|
32420
|
+
for (const colKey of Object.keys(entry)) {
|
32421
|
+
const colValue = entry[colKey];
|
32422
|
+
result[colKey] = is(colValue, SQL) ? colValue : new Param(colValue, cols[colKey]);
|
32423
|
+
}
|
32424
|
+
return result;
|
32425
|
+
});
|
32426
|
+
return new SQLiteInsertBase(this.table, mappedValues, this.session, this.dialect, this.withList);
|
32427
|
+
}
|
32428
|
+
select(selectQuery) {
|
32429
|
+
const select = typeof selectQuery === "function" ? selectQuery(new QueryBuilder2()) : selectQuery;
|
32430
|
+
if (!is(select, SQL) && !haveSameKeys(this.table[Columns], select._.selectedFields)) {
|
32431
|
+
throw new Error(
|
32432
|
+
"Insert select error: selected fields are not the same or are in a different order compared to the table definition"
|
32433
|
+
);
|
32434
|
+
}
|
32435
|
+
return new SQLiteInsertBase(this.table, select, this.session, this.dialect, this.withList, true);
|
32436
|
+
}
|
32437
|
+
};
|
32438
|
+
__publicField(SQLiteInsertBuilder, _a205, "SQLiteInsertBuilder");
|
32439
|
+
SQLiteInsertBase = class extends (_b147 = QueryPromise, _a206 = entityKind, _b147) {
|
32440
|
+
constructor(table4, values, session, dialect4, withList, select) {
|
32441
|
+
super();
|
32442
|
+
/** @internal */
|
32443
|
+
__publicField(this, "config");
|
32444
|
+
__publicField(this, "run", (placeholderValues) => {
|
32445
|
+
return this._prepare().run(placeholderValues);
|
32446
|
+
});
|
32447
|
+
__publicField(this, "all", (placeholderValues) => {
|
32448
|
+
return this._prepare().all(placeholderValues);
|
32449
|
+
});
|
32450
|
+
__publicField(this, "get", (placeholderValues) => {
|
32451
|
+
return this._prepare().get(placeholderValues);
|
32452
|
+
});
|
32453
|
+
__publicField(this, "values", (placeholderValues) => {
|
32454
|
+
return this._prepare().values(placeholderValues);
|
32455
|
+
});
|
32456
|
+
this.session = session;
|
32457
|
+
this.dialect = dialect4;
|
32458
|
+
this.config = { table: table4, values, withList, select };
|
32459
|
+
}
|
32460
|
+
returning(fields = this.config.table[SQLiteTable.Symbol.Columns]) {
|
32461
|
+
this.config.returning = orderSelectedFields(fields);
|
32462
|
+
return this;
|
32463
|
+
}
|
32464
|
+
/**
|
32465
|
+
* Adds an `on conflict do nothing` clause to the query.
|
32466
|
+
*
|
32467
|
+
* Calling this method simply avoids inserting a row as its alternative action.
|
32468
|
+
*
|
32469
|
+
* See docs: {@link https://orm.drizzle.team/docs/insert#on-conflict-do-nothing}
|
32470
|
+
*
|
32471
|
+
* @param config The `target` and `where` clauses.
|
32472
|
+
*
|
32473
|
+
* @example
|
32474
|
+
* ```ts
|
32475
|
+
* // Insert one row and cancel the insert if there's a conflict
|
32476
|
+
* await db.insert(cars)
|
32477
|
+
* .values({ id: 1, brand: 'BMW' })
|
32478
|
+
* .onConflictDoNothing();
|
32479
|
+
*
|
32480
|
+
* // Explicitly specify conflict target
|
32481
|
+
* await db.insert(cars)
|
32482
|
+
* .values({ id: 1, brand: 'BMW' })
|
32483
|
+
* .onConflictDoNothing({ target: cars.id });
|
32484
|
+
* ```
|
32485
|
+
*/
|
32486
|
+
onConflictDoNothing(config = {}) {
|
32487
|
+
if (config.target === void 0) {
|
32488
|
+
this.config.onConflict = sql`do nothing`;
|
32489
|
+
} else {
|
32490
|
+
const targetSql = Array.isArray(config.target) ? sql`${config.target}` : sql`${[config.target]}`;
|
32491
|
+
const whereSql = config.where ? sql` where ${config.where}` : sql``;
|
32492
|
+
this.config.onConflict = sql`${targetSql} do nothing${whereSql}`;
|
32493
|
+
}
|
32494
|
+
return this;
|
32495
|
+
}
|
32496
|
+
/**
|
32497
|
+
* Adds an `on conflict do update` clause to the query.
|
32498
|
+
*
|
32499
|
+
* Calling this method will update the existing row that conflicts with the row proposed for insertion as its alternative action.
|
32500
|
+
*
|
32501
|
+
* See docs: {@link https://orm.drizzle.team/docs/insert#upserts-and-conflicts}
|
32502
|
+
*
|
32503
|
+
* @param config The `target`, `set` and `where` clauses.
|
32504
|
+
*
|
32505
|
+
* @example
|
32506
|
+
* ```ts
|
32507
|
+
* // Update the row if there's a conflict
|
32508
|
+
* await db.insert(cars)
|
32509
|
+
* .values({ id: 1, brand: 'BMW' })
|
32510
|
+
* .onConflictDoUpdate({
|
32511
|
+
* target: cars.id,
|
32512
|
+
* set: { brand: 'Porsche' }
|
32513
|
+
* });
|
32514
|
+
*
|
32515
|
+
* // Upsert with 'where' clause
|
32516
|
+
* await db.insert(cars)
|
32517
|
+
* .values({ id: 1, brand: 'BMW' })
|
32518
|
+
* .onConflictDoUpdate({
|
32519
|
+
* target: cars.id,
|
32520
|
+
* set: { brand: 'newBMW' },
|
32521
|
+
* where: sql`${cars.createdAt} > '2023-01-01'::date`,
|
32522
|
+
* });
|
32523
|
+
* ```
|
32524
|
+
*/
|
32525
|
+
onConflictDoUpdate(config) {
|
32526
|
+
if (config.where && (config.targetWhere || config.setWhere)) {
|
32527
|
+
throw new Error(
|
32528
|
+
'You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.'
|
32529
|
+
);
|
32530
|
+
}
|
32531
|
+
const whereSql = config.where ? sql` where ${config.where}` : void 0;
|
32532
|
+
const targetWhereSql = config.targetWhere ? sql` where ${config.targetWhere}` : void 0;
|
32533
|
+
const setWhereSql = config.setWhere ? sql` where ${config.setWhere}` : void 0;
|
32534
|
+
const targetSql = Array.isArray(config.target) ? sql`${config.target}` : sql`${[config.target]}`;
|
32535
|
+
const setSql = this.dialect.buildUpdateSet(this.config.table, mapUpdateSet(this.config.table, config.set));
|
32536
|
+
this.config.onConflict = sql`${targetSql}${targetWhereSql} do update set ${setSql}${whereSql}${setWhereSql}`;
|
32537
|
+
return this;
|
32538
|
+
}
|
32539
|
+
/** @internal */
|
32540
|
+
getSQL() {
|
32541
|
+
return this.dialect.buildInsertQuery(this.config);
|
32542
|
+
}
|
32543
|
+
toSQL() {
|
32544
|
+
const { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());
|
32545
|
+
return rest;
|
32546
|
+
}
|
32547
|
+
/** @internal */
|
32548
|
+
_prepare(isOneTimeQuery = true) {
|
32549
|
+
return this.session[isOneTimeQuery ? "prepareOneTimeQuery" : "prepareQuery"](
|
32550
|
+
this.dialect.sqlToQuery(this.getSQL()),
|
32551
|
+
this.config.returning,
|
32552
|
+
this.config.returning ? "all" : "run",
|
32553
|
+
true
|
32554
|
+
);
|
32555
|
+
}
|
32556
|
+
prepare() {
|
32557
|
+
return this._prepare(false);
|
32558
|
+
}
|
32559
|
+
async execute() {
|
32560
|
+
return this.config.returning ? this.all() : this.run();
|
32561
|
+
}
|
32562
|
+
$dynamic() {
|
32563
|
+
return this;
|
32564
|
+
}
|
32565
|
+
};
|
32566
|
+
__publicField(SQLiteInsertBase, _a206, "SQLiteInsert");
|
32320
32567
|
}
|
32321
32568
|
});
|
32322
32569
|
|
@@ -32336,8 +32583,11 @@ var init_update2 = __esm({
|
|
32336
32583
|
init_query_promise();
|
32337
32584
|
init_selection_proxy();
|
32338
32585
|
init_table3();
|
32586
|
+
init_subquery();
|
32339
32587
|
init_table();
|
32340
32588
|
init_utils2();
|
32589
|
+
init_view_common();
|
32590
|
+
init_view_base2();
|
32341
32591
|
_a207 = entityKind;
|
32342
32592
|
SQLiteUpdateBuilder = class {
|
32343
32593
|
constructor(table4, session, dialect4, withList) {
|
@@ -32362,6 +32612,10 @@ var init_update2 = __esm({
|
|
32362
32612
|
super();
|
32363
32613
|
/** @internal */
|
32364
32614
|
__publicField(this, "config");
|
32615
|
+
__publicField(this, "leftJoin", this.createJoin("left"));
|
32616
|
+
__publicField(this, "rightJoin", this.createJoin("right"));
|
32617
|
+
__publicField(this, "innerJoin", this.createJoin("inner"));
|
32618
|
+
__publicField(this, "fullJoin", this.createJoin("full"));
|
32365
32619
|
__publicField(this, "run", (placeholderValues) => {
|
32366
32620
|
return this._prepare().run(placeholderValues);
|
32367
32621
|
});
|
@@ -32376,7 +32630,34 @@ var init_update2 = __esm({
|
|
32376
32630
|
});
|
32377
32631
|
this.session = session;
|
32378
32632
|
this.dialect = dialect4;
|
32379
|
-
this.config = { set, table: table4, withList };
|
32633
|
+
this.config = { set, table: table4, withList, joins: [] };
|
32634
|
+
}
|
32635
|
+
from(source) {
|
32636
|
+
this.config.from = source;
|
32637
|
+
return this;
|
32638
|
+
}
|
32639
|
+
createJoin(joinType) {
|
32640
|
+
return (table4, on) => {
|
32641
|
+
const tableName = getTableLikeName(table4);
|
32642
|
+
if (typeof tableName === "string" && this.config.joins.some((join) => join.alias === tableName)) {
|
32643
|
+
throw new Error(`Alias "${tableName}" is already used in this query`);
|
32644
|
+
}
|
32645
|
+
if (typeof on === "function") {
|
32646
|
+
const from = this.config.from ? is(table4, SQLiteTable) ? table4[Table2.Symbol.Columns] : is(table4, Subquery) ? table4._.selectedFields : is(table4, SQLiteViewBase) ? table4[ViewBaseConfig].selectedFields : void 0 : void 0;
|
32647
|
+
on = on(
|
32648
|
+
new Proxy(
|
32649
|
+
this.config.table[Table2.Symbol.Columns],
|
32650
|
+
new SelectionProxyHandler({ sqlAliasedBehavior: "sql", sqlBehavior: "sql" })
|
32651
|
+
),
|
32652
|
+
from && new Proxy(
|
32653
|
+
from,
|
32654
|
+
new SelectionProxyHandler({ sqlAliasedBehavior: "sql", sqlBehavior: "sql" })
|
32655
|
+
)
|
32656
|
+
);
|
32657
|
+
}
|
32658
|
+
this.config.joins.push({ on, table: table4, joinType, alias: tableName });
|
32659
|
+
return this;
|
32660
|
+
};
|
32380
32661
|
}
|
32381
32662
|
/**
|
32382
32663
|
* Adds a 'where' clause to the query.
|
@@ -35674,131 +35955,6 @@ var init_delete3 = __esm({
|
|
35674
35955
|
}
|
35675
35956
|
});
|
35676
35957
|
|
35677
|
-
// ../drizzle-orm/dist/mysql-core/query-builders/insert.js
|
35678
|
-
var _a299, MySqlInsertBuilder, _a300, _b222, MySqlInsertBase;
|
35679
|
-
var init_insert3 = __esm({
|
35680
|
-
"../drizzle-orm/dist/mysql-core/query-builders/insert.js"() {
|
35681
|
-
"use strict";
|
35682
|
-
init_entity();
|
35683
|
-
init_query_promise();
|
35684
|
-
init_sql();
|
35685
|
-
init_table();
|
35686
|
-
init_utils2();
|
35687
|
-
_a299 = entityKind;
|
35688
|
-
MySqlInsertBuilder = class {
|
35689
|
-
constructor(table4, session, dialect4) {
|
35690
|
-
__publicField(this, "shouldIgnore", false);
|
35691
|
-
this.table = table4;
|
35692
|
-
this.session = session;
|
35693
|
-
this.dialect = dialect4;
|
35694
|
-
}
|
35695
|
-
ignore() {
|
35696
|
-
this.shouldIgnore = true;
|
35697
|
-
return this;
|
35698
|
-
}
|
35699
|
-
values(values) {
|
35700
|
-
values = Array.isArray(values) ? values : [values];
|
35701
|
-
if (values.length === 0) {
|
35702
|
-
throw new Error("values() must be called with at least one value");
|
35703
|
-
}
|
35704
|
-
const mappedValues = values.map((entry) => {
|
35705
|
-
const result = {};
|
35706
|
-
const cols = this.table[Table2.Symbol.Columns];
|
35707
|
-
for (const colKey of Object.keys(entry)) {
|
35708
|
-
const colValue = entry[colKey];
|
35709
|
-
result[colKey] = is(colValue, SQL) ? colValue : new Param(colValue, cols[colKey]);
|
35710
|
-
}
|
35711
|
-
return result;
|
35712
|
-
});
|
35713
|
-
return new MySqlInsertBase(this.table, mappedValues, this.shouldIgnore, this.session, this.dialect);
|
35714
|
-
}
|
35715
|
-
};
|
35716
|
-
__publicField(MySqlInsertBuilder, _a299, "MySqlInsertBuilder");
|
35717
|
-
MySqlInsertBase = class extends (_b222 = QueryPromise, _a300 = entityKind, _b222) {
|
35718
|
-
constructor(table4, values, ignore, session, dialect4) {
|
35719
|
-
super();
|
35720
|
-
__publicField(this, "config");
|
35721
|
-
__publicField(this, "execute", (placeholderValues) => {
|
35722
|
-
return this.prepare().execute(placeholderValues);
|
35723
|
-
});
|
35724
|
-
__publicField(this, "createIterator", () => {
|
35725
|
-
const self2 = this;
|
35726
|
-
return async function* (placeholderValues) {
|
35727
|
-
yield* self2.prepare().iterator(placeholderValues);
|
35728
|
-
};
|
35729
|
-
});
|
35730
|
-
__publicField(this, "iterator", this.createIterator());
|
35731
|
-
this.session = session;
|
35732
|
-
this.dialect = dialect4;
|
35733
|
-
this.config = { table: table4, values, ignore };
|
35734
|
-
}
|
35735
|
-
/**
|
35736
|
-
* Adds an `on duplicate key update` clause to the query.
|
35737
|
-
*
|
35738
|
-
* Calling this method will update update the row if any unique index conflicts. MySQL will automatically determine the conflict target based on the primary key and unique indexes.
|
35739
|
-
*
|
35740
|
-
* See docs: {@link https://orm.drizzle.team/docs/insert#on-duplicate-key-update}
|
35741
|
-
*
|
35742
|
-
* @param config The `set` clause
|
35743
|
-
*
|
35744
|
-
* @example
|
35745
|
-
* ```ts
|
35746
|
-
* await db.insert(cars)
|
35747
|
-
* .values({ id: 1, brand: 'BMW'})
|
35748
|
-
* .onDuplicateKeyUpdate({ set: { brand: 'Porsche' }});
|
35749
|
-
* ```
|
35750
|
-
*
|
35751
|
-
* While MySQL does not directly support doing nothing on conflict, you can perform a no-op by setting any column's value to itself and achieve the same effect:
|
35752
|
-
*
|
35753
|
-
* ```ts
|
35754
|
-
* import { sql } from 'drizzle-orm';
|
35755
|
-
*
|
35756
|
-
* await db.insert(cars)
|
35757
|
-
* .values({ id: 1, brand: 'BMW' })
|
35758
|
-
* .onDuplicateKeyUpdate({ set: { id: sql`id` } });
|
35759
|
-
* ```
|
35760
|
-
*/
|
35761
|
-
onDuplicateKeyUpdate(config) {
|
35762
|
-
const setSql = this.dialect.buildUpdateSet(this.config.table, mapUpdateSet(this.config.table, config.set));
|
35763
|
-
this.config.onConflict = sql`update ${setSql}`;
|
35764
|
-
return this;
|
35765
|
-
}
|
35766
|
-
$returningId() {
|
35767
|
-
const returning = [];
|
35768
|
-
for (const [key, value] of Object.entries(this.config.table[Table2.Symbol.Columns])) {
|
35769
|
-
if (value.primary) {
|
35770
|
-
returning.push({ field: value, path: [key] });
|
35771
|
-
}
|
35772
|
-
}
|
35773
|
-
this.config.returning = orderSelectedFields(this.config.table[Table2.Symbol.Columns]);
|
35774
|
-
return this;
|
35775
|
-
}
|
35776
|
-
/** @internal */
|
35777
|
-
getSQL() {
|
35778
|
-
return this.dialect.buildInsertQuery(this.config).sql;
|
35779
|
-
}
|
35780
|
-
toSQL() {
|
35781
|
-
const { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());
|
35782
|
-
return rest;
|
35783
|
-
}
|
35784
|
-
prepare() {
|
35785
|
-
const { sql: sql2, generatedIds } = this.dialect.buildInsertQuery(this.config);
|
35786
|
-
return this.session.prepareQuery(
|
35787
|
-
this.dialect.sqlToQuery(sql2),
|
35788
|
-
void 0,
|
35789
|
-
void 0,
|
35790
|
-
generatedIds,
|
35791
|
-
this.config.returning
|
35792
|
-
);
|
35793
|
-
}
|
35794
|
-
$dynamic() {
|
35795
|
-
return this;
|
35796
|
-
}
|
35797
|
-
};
|
35798
|
-
__publicField(MySqlInsertBase, _a300, "MySqlInsert");
|
35799
|
-
}
|
35800
|
-
});
|
35801
|
-
|
35802
35958
|
// ../drizzle-orm/dist/mysql-core/columns/all.js
|
35803
35959
|
function getMySqlColumnBuilders() {
|
35804
35960
|
return {
|
@@ -35879,7 +36035,7 @@ function mysqlTableWithSchema(name2, columns, extraConfig, schema4, baseName = n
|
|
35879
36035
|
}
|
35880
36036
|
return table4;
|
35881
36037
|
}
|
35882
|
-
var InlineForeignKeys3,
|
36038
|
+
var InlineForeignKeys3, _a299, _b222, _c9, _d4, _e4, MySqlTable, mysqlTable;
|
35883
36039
|
var init_table4 = __esm({
|
35884
36040
|
"../drizzle-orm/dist/mysql-core/table.js"() {
|
35885
36041
|
"use strict";
|
@@ -35887,15 +36043,15 @@ var init_table4 = __esm({
|
|
35887
36043
|
init_table();
|
35888
36044
|
init_all3();
|
35889
36045
|
InlineForeignKeys3 = Symbol.for("drizzle:MySqlInlineForeignKeys");
|
35890
|
-
MySqlTable = class extends (_e4 = Table2, _d4 = entityKind, _c9 = Table2.Symbol.Columns,
|
36046
|
+
MySqlTable = class extends (_e4 = Table2, _d4 = entityKind, _c9 = Table2.Symbol.Columns, _b222 = InlineForeignKeys3, _a299 = Table2.Symbol.ExtraConfigBuilder, _e4) {
|
35891
36047
|
constructor() {
|
35892
36048
|
super(...arguments);
|
35893
36049
|
/** @internal */
|
35894
36050
|
__publicField(this, _c9);
|
35895
36051
|
/** @internal */
|
35896
|
-
__publicField(this,
|
36052
|
+
__publicField(this, _b222, []);
|
35897
36053
|
/** @internal */
|
35898
|
-
__publicField(this,
|
36054
|
+
__publicField(this, _a299);
|
35899
36055
|
}
|
35900
36056
|
};
|
35901
36057
|
__publicField(MySqlTable, _d4, "MySqlTable");
|
@@ -35910,20 +36066,20 @@ var init_table4 = __esm({
|
|
35910
36066
|
});
|
35911
36067
|
|
35912
36068
|
// ../drizzle-orm/dist/mysql-core/view-base.js
|
35913
|
-
var
|
36069
|
+
var _a300, _b223, MySqlViewBase;
|
35914
36070
|
var init_view_base3 = __esm({
|
35915
36071
|
"../drizzle-orm/dist/mysql-core/view-base.js"() {
|
35916
36072
|
"use strict";
|
35917
36073
|
init_entity();
|
35918
36074
|
init_sql();
|
35919
|
-
MySqlViewBase = class extends (
|
36075
|
+
MySqlViewBase = class extends (_b223 = View3, _a300 = entityKind, _b223) {
|
35920
36076
|
};
|
35921
|
-
__publicField(MySqlViewBase,
|
36077
|
+
__publicField(MySqlViewBase, _a300, "MySqlViewBase");
|
35922
36078
|
}
|
35923
36079
|
});
|
35924
36080
|
|
35925
36081
|
// ../drizzle-orm/dist/mysql-core/dialect.js
|
35926
|
-
var
|
36082
|
+
var _a301, MySqlDialect;
|
35927
36083
|
var init_dialect3 = __esm({
|
35928
36084
|
"../drizzle-orm/dist/mysql-core/dialect.js"() {
|
35929
36085
|
"use strict";
|
@@ -35942,7 +36098,7 @@ var init_dialect3 = __esm({
|
|
35942
36098
|
init_common4();
|
35943
36099
|
init_table4();
|
35944
36100
|
init_view_base3();
|
35945
|
-
|
36101
|
+
_a301 = entityKind;
|
35946
36102
|
MySqlDialect = class {
|
35947
36103
|
constructor(config) {
|
35948
36104
|
/** @internal */
|
@@ -36225,7 +36381,7 @@ var init_dialect3 = __esm({
|
|
36225
36381
|
const offsetSql = offset ? sql` offset ${offset}` : void 0;
|
36226
36382
|
return sql`${leftChunk}${operatorChunk}${rightChunk}${orderBySql}${limitSql}${offsetSql}`;
|
36227
36383
|
}
|
36228
|
-
buildInsertQuery({ table: table4, values, ignore, onConflict }) {
|
36384
|
+
buildInsertQuery({ table: table4, values: valuesOrSelect, ignore, onConflict, select }) {
|
36229
36385
|
const valuesSqlList = [];
|
36230
36386
|
const columns = table4[Table2.Symbol.Columns];
|
36231
36387
|
const colEntries = Object.entries(columns).filter(
|
@@ -36233,42 +36389,53 @@ var init_dialect3 = __esm({
|
|
36233
36389
|
);
|
36234
36390
|
const insertOrder = colEntries.map(([, column4]) => sql.identifier(this.casing.getColumnCasing(column4)));
|
36235
36391
|
const generatedIdsResponse = [];
|
36236
|
-
|
36237
|
-
const
|
36238
|
-
|
36239
|
-
|
36240
|
-
|
36241
|
-
|
36242
|
-
|
36243
|
-
|
36244
|
-
|
36245
|
-
|
36246
|
-
|
36247
|
-
|
36248
|
-
|
36249
|
-
|
36250
|
-
|
36392
|
+
if (select) {
|
36393
|
+
const select2 = valuesOrSelect;
|
36394
|
+
if (is(select2, SQL)) {
|
36395
|
+
valuesSqlList.push(select2);
|
36396
|
+
} else {
|
36397
|
+
valuesSqlList.push(select2.getSQL());
|
36398
|
+
}
|
36399
|
+
} else {
|
36400
|
+
const values = valuesOrSelect;
|
36401
|
+
valuesSqlList.push(sql.raw("values "));
|
36402
|
+
for (const [valueIndex, value] of values.entries()) {
|
36403
|
+
const generatedIds = {};
|
36404
|
+
const valueList = [];
|
36405
|
+
for (const [fieldName, col] of colEntries) {
|
36406
|
+
const colValue = value[fieldName];
|
36407
|
+
if (colValue === void 0 || is(colValue, Param) && colValue.value === void 0) {
|
36408
|
+
if (col.defaultFn !== void 0) {
|
36409
|
+
const defaultFnResult = col.defaultFn();
|
36410
|
+
generatedIds[fieldName] = defaultFnResult;
|
36411
|
+
const defaultValue = is(defaultFnResult, SQL) ? defaultFnResult : sql.param(defaultFnResult, col);
|
36412
|
+
valueList.push(defaultValue);
|
36413
|
+
} else if (!col.default && col.onUpdateFn !== void 0) {
|
36414
|
+
const onUpdateFnResult = col.onUpdateFn();
|
36415
|
+
const newValue = is(onUpdateFnResult, SQL) ? onUpdateFnResult : sql.param(onUpdateFnResult, col);
|
36416
|
+
valueList.push(newValue);
|
36417
|
+
} else {
|
36418
|
+
valueList.push(sql`default`);
|
36419
|
+
}
|
36251
36420
|
} else {
|
36252
|
-
|
36253
|
-
|
36254
|
-
|
36255
|
-
|
36256
|
-
generatedIds[fieldName] = colValue.value;
|
36421
|
+
if (col.defaultFn && is(colValue, Param)) {
|
36422
|
+
generatedIds[fieldName] = colValue.value;
|
36423
|
+
}
|
36424
|
+
valueList.push(colValue);
|
36257
36425
|
}
|
36258
|
-
valueList.push(colValue);
|
36259
36426
|
}
|
36260
|
-
|
36261
|
-
|
36262
|
-
|
36263
|
-
|
36264
|
-
|
36427
|
+
generatedIdsResponse.push(generatedIds);
|
36428
|
+
valuesSqlList.push(valueList);
|
36429
|
+
if (valueIndex < values.length - 1) {
|
36430
|
+
valuesSqlList.push(sql`, `);
|
36431
|
+
}
|
36265
36432
|
}
|
36266
36433
|
}
|
36267
36434
|
const valuesSql = sql.join(valuesSqlList);
|
36268
36435
|
const ignoreSql = ignore ? sql` ignore` : void 0;
|
36269
36436
|
const onConflictSql = onConflict ? sql` on duplicate key ${onConflict}` : void 0;
|
36270
36437
|
return {
|
36271
|
-
sql: sql`insert${ignoreSql} into ${table4} ${insertOrder}
|
36438
|
+
sql: sql`insert${ignoreSql} into ${table4} ${insertOrder} ${valuesSql}${onConflictSql}`,
|
36272
36439
|
generatedIds: generatedIdsResponse
|
36273
36440
|
};
|
36274
36441
|
}
|
@@ -36728,7 +36895,7 @@ var init_dialect3 = __esm({
|
|
36728
36895
|
};
|
36729
36896
|
}
|
36730
36897
|
};
|
36731
|
-
__publicField(MySqlDialect,
|
36898
|
+
__publicField(MySqlDialect, _a301, "MySqlDialect");
|
36732
36899
|
}
|
36733
36900
|
});
|
36734
36901
|
|
@@ -36750,7 +36917,7 @@ function createSetOperator3(type, isAll) {
|
|
36750
36917
|
return leftSelect.addSetOperators(setOperators);
|
36751
36918
|
};
|
36752
36919
|
}
|
36753
|
-
var
|
36920
|
+
var _a302, MySqlSelectBuilder, _a303, _b224, MySqlSelectQueryBuilderBase, _a304, _b225, MySqlSelectBase, getMySqlSetOperators, union3, unionAll3, intersect3, intersectAll2, except3, exceptAll2;
|
36754
36921
|
var init_select4 = __esm({
|
36755
36922
|
"../drizzle-orm/dist/mysql-core/query-builders/select.js"() {
|
36756
36923
|
"use strict";
|
@@ -36765,7 +36932,7 @@ var init_select4 = __esm({
|
|
36765
36932
|
init_utils2();
|
36766
36933
|
init_view_common();
|
36767
36934
|
init_view_base3();
|
36768
|
-
|
36935
|
+
_a302 = entityKind;
|
36769
36936
|
MySqlSelectBuilder = class {
|
36770
36937
|
constructor(config) {
|
36771
36938
|
__publicField(this, "fields");
|
@@ -36810,8 +36977,8 @@ var init_select4 = __esm({
|
|
36810
36977
|
);
|
36811
36978
|
}
|
36812
36979
|
};
|
36813
|
-
__publicField(MySqlSelectBuilder,
|
36814
|
-
MySqlSelectQueryBuilderBase = class extends (
|
36980
|
+
__publicField(MySqlSelectBuilder, _a302, "MySqlSelectBuilder");
|
36981
|
+
MySqlSelectQueryBuilderBase = class extends (_b224 = TypedQueryBuilder, _a303 = entityKind, _b224) {
|
36815
36982
|
constructor({ table: table4, fields, isPartialSelect, session, dialect: dialect4, withList, distinct }) {
|
36816
36983
|
super();
|
36817
36984
|
__publicField(this, "_");
|
@@ -37412,8 +37579,8 @@ var init_select4 = __esm({
|
|
37412
37579
|
return this;
|
37413
37580
|
}
|
37414
37581
|
};
|
37415
|
-
__publicField(MySqlSelectQueryBuilderBase,
|
37416
|
-
MySqlSelectBase = class extends (
|
37582
|
+
__publicField(MySqlSelectQueryBuilderBase, _a303, "MySqlSelectQueryBuilder");
|
37583
|
+
MySqlSelectBase = class extends (_b225 = MySqlSelectQueryBuilderBase, _a304 = entityKind, _b225) {
|
37417
37584
|
constructor() {
|
37418
37585
|
super(...arguments);
|
37419
37586
|
__publicField(this, "execute", (placeholderValues) => {
|
@@ -37437,7 +37604,7 @@ var init_select4 = __esm({
|
|
37437
37604
|
return query;
|
37438
37605
|
}
|
37439
37606
|
};
|
37440
|
-
__publicField(MySqlSelectBase,
|
37607
|
+
__publicField(MySqlSelectBase, _a304, "MySqlSelect");
|
37441
37608
|
applyMixins(MySqlSelectBase, [QueryPromise]);
|
37442
37609
|
getMySqlSetOperators = () => ({
|
37443
37610
|
union: union3,
|
@@ -37457,7 +37624,7 @@ var init_select4 = __esm({
|
|
37457
37624
|
});
|
37458
37625
|
|
37459
37626
|
// ../drizzle-orm/dist/mysql-core/query-builders/query-builder.js
|
37460
|
-
var
|
37627
|
+
var _a305, QueryBuilder3;
|
37461
37628
|
var init_query_builder4 = __esm({
|
37462
37629
|
"../drizzle-orm/dist/mysql-core/query-builders/query-builder.js"() {
|
37463
37630
|
"use strict";
|
@@ -37466,7 +37633,7 @@ var init_query_builder4 = __esm({
|
|
37466
37633
|
init_selection_proxy();
|
37467
37634
|
init_subquery();
|
37468
37635
|
init_select4();
|
37469
|
-
|
37636
|
+
_a305 = entityKind;
|
37470
37637
|
QueryBuilder3 = class {
|
37471
37638
|
constructor(dialect4) {
|
37472
37639
|
__publicField(this, "dialect");
|
@@ -37528,7 +37695,142 @@ var init_query_builder4 = __esm({
|
|
37528
37695
|
return this.dialect;
|
37529
37696
|
}
|
37530
37697
|
};
|
37531
|
-
__publicField(QueryBuilder3,
|
37698
|
+
__publicField(QueryBuilder3, _a305, "MySqlQueryBuilder");
|
37699
|
+
}
|
37700
|
+
});
|
37701
|
+
|
37702
|
+
// ../drizzle-orm/dist/mysql-core/query-builders/insert.js
|
37703
|
+
var _a306, MySqlInsertBuilder, _a307, _b226, MySqlInsertBase;
|
37704
|
+
var init_insert3 = __esm({
|
37705
|
+
"../drizzle-orm/dist/mysql-core/query-builders/insert.js"() {
|
37706
|
+
"use strict";
|
37707
|
+
init_entity();
|
37708
|
+
init_query_promise();
|
37709
|
+
init_sql();
|
37710
|
+
init_table();
|
37711
|
+
init_utils2();
|
37712
|
+
init_query_builder4();
|
37713
|
+
_a306 = entityKind;
|
37714
|
+
MySqlInsertBuilder = class {
|
37715
|
+
constructor(table4, session, dialect4) {
|
37716
|
+
__publicField(this, "shouldIgnore", false);
|
37717
|
+
this.table = table4;
|
37718
|
+
this.session = session;
|
37719
|
+
this.dialect = dialect4;
|
37720
|
+
}
|
37721
|
+
ignore() {
|
37722
|
+
this.shouldIgnore = true;
|
37723
|
+
return this;
|
37724
|
+
}
|
37725
|
+
values(values) {
|
37726
|
+
values = Array.isArray(values) ? values : [values];
|
37727
|
+
if (values.length === 0) {
|
37728
|
+
throw new Error("values() must be called with at least one value");
|
37729
|
+
}
|
37730
|
+
const mappedValues = values.map((entry) => {
|
37731
|
+
const result = {};
|
37732
|
+
const cols = this.table[Table2.Symbol.Columns];
|
37733
|
+
for (const colKey of Object.keys(entry)) {
|
37734
|
+
const colValue = entry[colKey];
|
37735
|
+
result[colKey] = is(colValue, SQL) ? colValue : new Param(colValue, cols[colKey]);
|
37736
|
+
}
|
37737
|
+
return result;
|
37738
|
+
});
|
37739
|
+
return new MySqlInsertBase(this.table, mappedValues, this.shouldIgnore, this.session, this.dialect);
|
37740
|
+
}
|
37741
|
+
select(selectQuery) {
|
37742
|
+
const select = typeof selectQuery === "function" ? selectQuery(new QueryBuilder3()) : selectQuery;
|
37743
|
+
if (!is(select, SQL) && !haveSameKeys(this.table[Columns], select._.selectedFields)) {
|
37744
|
+
throw new Error(
|
37745
|
+
"Insert select error: selected fields are not the same or are in a different order compared to the table definition"
|
37746
|
+
);
|
37747
|
+
}
|
37748
|
+
return new MySqlInsertBase(this.table, select, this.shouldIgnore, this.session, this.dialect, true);
|
37749
|
+
}
|
37750
|
+
};
|
37751
|
+
__publicField(MySqlInsertBuilder, _a306, "MySqlInsertBuilder");
|
37752
|
+
MySqlInsertBase = class extends (_b226 = QueryPromise, _a307 = entityKind, _b226) {
|
37753
|
+
constructor(table4, values, ignore, session, dialect4, select) {
|
37754
|
+
super();
|
37755
|
+
__publicField(this, "config");
|
37756
|
+
__publicField(this, "execute", (placeholderValues) => {
|
37757
|
+
return this.prepare().execute(placeholderValues);
|
37758
|
+
});
|
37759
|
+
__publicField(this, "createIterator", () => {
|
37760
|
+
const self2 = this;
|
37761
|
+
return async function* (placeholderValues) {
|
37762
|
+
yield* self2.prepare().iterator(placeholderValues);
|
37763
|
+
};
|
37764
|
+
});
|
37765
|
+
__publicField(this, "iterator", this.createIterator());
|
37766
|
+
this.session = session;
|
37767
|
+
this.dialect = dialect4;
|
37768
|
+
this.config = { table: table4, values, select, ignore };
|
37769
|
+
}
|
37770
|
+
/**
|
37771
|
+
* Adds an `on duplicate key update` clause to the query.
|
37772
|
+
*
|
37773
|
+
* Calling this method will update the row if any unique index conflicts. MySQL will automatically determine the conflict target based on the primary key and unique indexes.
|
37774
|
+
*
|
37775
|
+
* See docs: {@link https://orm.drizzle.team/docs/insert#on-duplicate-key-update}
|
37776
|
+
*
|
37777
|
+
* @param config The `set` clause
|
37778
|
+
*
|
37779
|
+
* @example
|
37780
|
+
* ```ts
|
37781
|
+
* await db.insert(cars)
|
37782
|
+
* .values({ id: 1, brand: 'BMW'})
|
37783
|
+
* .onDuplicateKeyUpdate({ set: { brand: 'Porsche' }});
|
37784
|
+
* ```
|
37785
|
+
*
|
37786
|
+
* While MySQL does not directly support doing nothing on conflict, you can perform a no-op by setting any column's value to itself and achieve the same effect:
|
37787
|
+
*
|
37788
|
+
* ```ts
|
37789
|
+
* import { sql } from 'drizzle-orm';
|
37790
|
+
*
|
37791
|
+
* await db.insert(cars)
|
37792
|
+
* .values({ id: 1, brand: 'BMW' })
|
37793
|
+
* .onDuplicateKeyUpdate({ set: { id: sql`id` } });
|
37794
|
+
* ```
|
37795
|
+
*/
|
37796
|
+
onDuplicateKeyUpdate(config) {
|
37797
|
+
const setSql = this.dialect.buildUpdateSet(this.config.table, mapUpdateSet(this.config.table, config.set));
|
37798
|
+
this.config.onConflict = sql`update ${setSql}`;
|
37799
|
+
return this;
|
37800
|
+
}
|
37801
|
+
$returningId() {
|
37802
|
+
const returning = [];
|
37803
|
+
for (const [key, value] of Object.entries(this.config.table[Table2.Symbol.Columns])) {
|
37804
|
+
if (value.primary) {
|
37805
|
+
returning.push({ field: value, path: [key] });
|
37806
|
+
}
|
37807
|
+
}
|
37808
|
+
this.config.returning = returning;
|
37809
|
+
return this;
|
37810
|
+
}
|
37811
|
+
/** @internal */
|
37812
|
+
getSQL() {
|
37813
|
+
return this.dialect.buildInsertQuery(this.config).sql;
|
37814
|
+
}
|
37815
|
+
toSQL() {
|
37816
|
+
const { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());
|
37817
|
+
return rest;
|
37818
|
+
}
|
37819
|
+
prepare() {
|
37820
|
+
const { sql: sql2, generatedIds } = this.dialect.buildInsertQuery(this.config);
|
37821
|
+
return this.session.prepareQuery(
|
37822
|
+
this.dialect.sqlToQuery(sql2),
|
37823
|
+
void 0,
|
37824
|
+
void 0,
|
37825
|
+
generatedIds,
|
37826
|
+
this.config.returning
|
37827
|
+
);
|
37828
|
+
}
|
37829
|
+
$dynamic() {
|
37830
|
+
return this;
|
37831
|
+
}
|
37832
|
+
};
|
37833
|
+
__publicField(MySqlInsertBase, _a307, "MySqlInsert");
|
37532
37834
|
}
|
37533
37835
|
});
|
37534
37836
|
|