@agentuity/drizzle 1.0.16 → 1.0.18
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/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/postgres.d.ts +1 -1
- package/dist/postgres.d.ts.map +1 -1
- package/dist/postgres.js +10 -17
- package/dist/postgres.js.map +1 -1
- package/package.json +3 -3
- package/src/index.ts +2 -2
- package/src/postgres.ts +33 -38
package/dist/index.d.ts
CHANGED
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
*
|
|
31
31
|
* @packageDocumentation
|
|
32
32
|
*/
|
|
33
|
-
export { createPostgresDrizzle, drizzle } from './postgres';
|
|
34
|
-
export type { PostgresDrizzleConfig, PostgresDrizzle } from './types';
|
|
33
|
+
export { createPostgresDrizzle, drizzle } from './postgres.ts';
|
|
34
|
+
export type { PostgresDrizzleConfig, PostgresDrizzle } from './types.ts';
|
|
35
35
|
export { postgres, PostgresClient, type CallablePostgresClient, type PostgresConfig, type ReconnectConfig, type ConnectionStats, type TLSConfig, type TransactionOptions, type ReserveOptions, } from '@agentuity/postgres';
|
|
36
36
|
export { sql, eq, and, or, not, desc, asc, gt, gte, lt, lte, ne, isNull, isNotNull, inArray, notInArray, between, like, ilike, relations, } from 'drizzle-orm';
|
|
37
37
|
export type { BunSQLDatabase, BunSQLPreparedQuery, BunSQLSession, BunSQLTransaction, } from 'drizzle-orm/bun-sql';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG/D,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGzE,OAAO,EACN,QAAQ,EACR,cAAc,EACd,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,cAAc,GACnB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACN,GAAG,EACH,EAAE,EACF,GAAG,EACH,EAAE,EACF,GAAG,EACH,IAAI,EACJ,GAAG,EACH,EAAE,EACF,GAAG,EACH,EAAE,EACF,GAAG,EACH,EAAE,EACF,MAAM,EACN,SAAS,EACT,OAAO,EACP,UAAU,EACV,OAAO,EACP,IAAI,EACJ,KAAK,EACL,SAAS,GACT,MAAM,aAAa,CAAC;AAGrB,YAAY,EACX,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,iBAAiB,GACjB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACN,OAAO,EACP,QAAQ,EACR,MAAM,EACN,MAAM,EAEN,MAAM,EACN,SAAS,EACT,OAAO,EACP,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,IAAI,EACJ,eAAe,EACf,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,OAAO,EACP,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,OAAO,EAEP,UAAU,EACV,UAAU,EACV,MAAM,EACN,WAAW,EACX,KAAK,EACL,KAAK,GACL,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
* @packageDocumentation
|
|
32
32
|
*/
|
|
33
33
|
// Main factory function
|
|
34
|
-
export { createPostgresDrizzle, drizzle } from
|
|
34
|
+
export { createPostgresDrizzle, drizzle } from "./postgres.js";
|
|
35
35
|
// Re-export from @agentuity/postgres for convenience
|
|
36
36
|
export { postgres, PostgresClient, } from '@agentuity/postgres';
|
|
37
37
|
// Re-export common Drizzle utilities for convenience
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,wBAAwB;AACxB,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,wBAAwB;AACxB,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAK/D,qDAAqD;AACrD,OAAO,EACN,QAAQ,EACR,cAAc,GAQd,MAAM,qBAAqB,CAAC;AAE7B,qDAAqD;AACrD,OAAO,EACN,GAAG,EACH,EAAE,EACF,GAAG,EACH,EAAE,EACF,GAAG,EACH,IAAI,EACJ,GAAG,EACH,EAAE,EACF,GAAG,EACH,EAAE,EACF,GAAG,EACH,EAAE,EACF,MAAM,EACN,SAAS,EACT,OAAO,EACP,UAAU,EACV,OAAO,EACP,IAAI,EACJ,KAAK,EACL,SAAS,GACT,MAAM,aAAa,CAAC;AAUrB,iDAAiD;AACjD,OAAO,EACN,OAAO,EACP,QAAQ,EACR,MAAM,EACN,MAAM;AACN,eAAe;AACf,MAAM,EACN,SAAS,EACT,OAAO,EACP,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,IAAI,EACJ,eAAe,EACf,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,OAAO,EACP,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,OAAO;AACP,0BAA0B;AAC1B,UAAU,EACV,UAAU,EACV,MAAM,EACN,WAAW,EACX,KAAK,EACL,KAAK,GACL,MAAM,qBAAqB,CAAC;AAE7B,qEAAqE;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC"}
|
package/dist/postgres.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { SQL as BunSQL, type SQL as BunSQLClient, type SQLOptions } from 'bun';
|
|
|
2
2
|
import { type BunSQLDatabase } from 'drizzle-orm/bun-sql';
|
|
3
3
|
import type { DrizzleConfig } from 'drizzle-orm';
|
|
4
4
|
import { type CallablePostgresClient, type PostgresConfig } from '@agentuity/postgres';
|
|
5
|
-
import type { PostgresDrizzleConfig, PostgresDrizzle } from './types';
|
|
5
|
+
import type { PostgresDrizzleConfig, PostgresDrizzle } from './types.ts';
|
|
6
6
|
/**
|
|
7
7
|
* Resolves the PostgreSQL client configuration from Drizzle config options.
|
|
8
8
|
*
|
package/dist/postgres.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../src/postgres.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,MAAM,EAAE,KAAK,GAAG,IAAI,YAAY,EAAE,KAAK,UAAU,EAAE,MAAM,KAAK,CAAC;AAC/E,OAAO,EAA8B,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAIN,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../src/postgres.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,MAAM,EAAE,KAAK,GAAG,IAAI,YAAY,EAAE,KAAK,UAAU,EAAE,MAAM,KAAK,CAAC;AAC/E,OAAO,EAA8B,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAIN,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEzE;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAC1C,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAC9D,MAAM,CAAC,EAAE,qBAAqB,CAAC,OAAO,CAAC,GAAG,cAAc,CAyCzD;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACtC,MAAM,EAAE,sBAAsB,GAC5B,YAAY,CAAC,OAAO,MAAM,CAAC,CA+E7B;AAED,KAAK,uBAAuB,GAAG,MAAM,GAAG,CAAC;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,CAAC,CAAC;AAyHxE,iBAAS,QAAQ,CAChB,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAC/D,OAAO,SAAS,YAAY,GAAG,YAAY,EAE3C,GAAG,MAAM,EACN,CAAC,OAAO,GAAG,MAAM,CAAC,GAClB,CAAC,OAAO,GAAG,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,GAC1C,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC;IAAE,UAAU,EAAE,uBAAuB,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC,GAC3F,cAAc,CAAC,OAAO,CAAC,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAwBhD;kBAhCQ,QAAQ;eAkCA,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,mCAC9C,aAAa,CAAC,OAAO,CAAC,KAC7B,cAAc,CAAC,OAAO,CAAC,GAAG;QAAE,OAAO,EAAE,4CAA4C,CAAA;KAAE;;AAStF,eAAO,MAAM,OAAO,EAAe,OAAO,QAAQ,GAAG;IACpD,IAAI,EAAE,OAAO,QAAQ,CAAC,IAAI,CAAC;CAC3B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,wBAAgB,qBAAqB,CACpC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAC9D,MAAM,CAAC,EAAE,qBAAqB,CAAC,OAAO,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CAoCnE"}
|
package/dist/postgres.js
CHANGED
|
@@ -84,6 +84,12 @@ export function createResilientSQLProxy(client) {
|
|
|
84
84
|
// fails before COMMIT completes, no changes are applied, and
|
|
85
85
|
// the retry starts a fresh transaction on the new connection.
|
|
86
86
|
//
|
|
87
|
+
// We use sql.begin(callback) instead of manual BEGIN/COMMIT
|
|
88
|
+
// because Bun's SQL driver requires it for pool-safe
|
|
89
|
+
// transactions (ERR_POSTGRES_UNSAFE_TRANSACTION when max > 1).
|
|
90
|
+
// sql.begin() reserves a specific connection, auto-COMMITs on
|
|
91
|
+
// success, and auto-ROLLBACKs on error.
|
|
92
|
+
//
|
|
87
93
|
// NOTE: If the connection drops after the server processes
|
|
88
94
|
// COMMIT but before the client receives the response, the
|
|
89
95
|
// changes ARE committed. A retry would then apply them again.
|
|
@@ -95,23 +101,10 @@ export function createResilientSQLProxy(client) {
|
|
|
95
101
|
const makeTransactionalExecutor = (useValues) => client.executeWithRetry(async () => {
|
|
96
102
|
// Re-resolve raw inside retry to get post-reconnect instance
|
|
97
103
|
const currentRaw = client.raw;
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
await currentRaw.unsafe('COMMIT');
|
|
103
|
-
return result;
|
|
104
|
-
}
|
|
105
|
-
catch (error) {
|
|
106
|
-
try {
|
|
107
|
-
await currentRaw.unsafe('ROLLBACK');
|
|
108
|
-
}
|
|
109
|
-
catch {
|
|
110
|
-
// Connection may already be dead; Postgres auto-rolls
|
|
111
|
-
// back uncommitted transactions on connection close.
|
|
112
|
-
}
|
|
113
|
-
throw error;
|
|
114
|
-
}
|
|
104
|
+
return currentRaw.begin(async (tx) => {
|
|
105
|
+
const q = tx.unsafe(query, params);
|
|
106
|
+
return useValues ? await q.values() : await q;
|
|
107
|
+
});
|
|
115
108
|
});
|
|
116
109
|
return createThenable(makeTransactionalExecutor);
|
|
117
110
|
}
|
package/dist/postgres.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres.js","sourceRoot":"","sources":["../src/postgres.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,eAAe,EAAuB,MAAM,qBAAqB,CAAC;AAEtF,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EACN,QAAQ,EACR,mBAAmB,EACnB,cAAc,GAGd,MAAM,qBAAqB,CAAC;AAG7B;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B,CAEzC,MAAuC;IACxC,oEAAoE;IACpE,MAAM,YAAY,GAAmB,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAExF,mCAAmC;IACnC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC;YACjB,YAAY,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QAC/B,CAAC;aAAM,IAAI,MAAM,EAAE,gBAAgB,EAAE,CAAC;YACrC,YAAY,CAAC,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAC5C,CAAC;aAAM,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;YACrC,YAAY,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QAC7C,CAAC;IACF,CAAC;IAED,iCAAiC;IACjC,IAAI,MAAM,EAAE,SAAS,EAAE,CAAC;QACvB,YAAY,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IAC3C,CAAC;IAED,gBAAgB;IAChB,IAAI,MAAM,EAAE,aAAa,EAAE,CAAC;QAC3B,YAAY,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IACnD,CAAC;IAED,yBAAyB;IACzB,IAAI,MAAM,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;QACnC,YAAY,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IACvC,CAAC;IAED,wBAAwB;IACxB,IAAI,MAAM,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;QAClC,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACrC,CAAC;IAED,6BAA6B;IAC7B,IAAI,MAAM,EAAE,WAAW,KAAK,SAAS,EAAE,CAAC;QACvC,YAAY,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IAC/C,CAAC;IAED,OAAO,YAAY,CAAC;AACrB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CACtC,MAA8B;IAE9B,OAAO,IAAI,KAAK,CAAC,EAAiC,EAAE;QACnD,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS;YAC3B,2EAA2E;YAC3E,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;YAEvB,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACtB,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC7B,CAAC;YAED,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvB,wDAAwD;gBACxD,4DAA4D;gBAC5D,wDAAwD;gBACxD,2DAA2D;gBAC3D,4DAA4D;gBAC5D,OAAO,CAAC,KAAa,EAAE,MAAkB,EAAE,EAAE;oBAC5C,+DAA+D;oBAC/D,6DAA6D;oBAC7D,wDAAwD;oBACxD,4DAA4D;oBAC5D,2DAA2D;oBAC3D,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"postgres.js","sourceRoot":"","sources":["../src/postgres.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentuity/drizzle",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.18",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"author": "Agentuity employees and contributors",
|
|
6
6
|
"type": "module",
|
|
@@ -41,12 +41,12 @@
|
|
|
41
41
|
"prepublishOnly": "bun run clean && bun run build"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@agentuity/postgres": "1.0.
|
|
44
|
+
"@agentuity/postgres": "1.0.18",
|
|
45
45
|
"drizzle-orm": "^0.45.0",
|
|
46
46
|
"better-auth": "^1.4.9"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
|
-
"@agentuity/test-utils": "1.0.
|
|
49
|
+
"@agentuity/test-utils": "1.0.18",
|
|
50
50
|
"@types/bun": "latest",
|
|
51
51
|
"bun-types": "latest",
|
|
52
52
|
"typescript": "^5.9.0"
|
package/src/index.ts
CHANGED
|
@@ -32,10 +32,10 @@
|
|
|
32
32
|
*/
|
|
33
33
|
|
|
34
34
|
// Main factory function
|
|
35
|
-
export { createPostgresDrizzle, drizzle } from './postgres';
|
|
35
|
+
export { createPostgresDrizzle, drizzle } from './postgres.ts';
|
|
36
36
|
|
|
37
37
|
// Types
|
|
38
|
-
export type { PostgresDrizzleConfig, PostgresDrizzle } from './types';
|
|
38
|
+
export type { PostgresDrizzleConfig, PostgresDrizzle } from './types.ts';
|
|
39
39
|
|
|
40
40
|
// Re-export from @agentuity/postgres for convenience
|
|
41
41
|
export {
|
package/src/postgres.ts
CHANGED
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
type CallablePostgresClient,
|
|
10
10
|
type PostgresConfig,
|
|
11
11
|
} from '@agentuity/postgres';
|
|
12
|
-
import type { PostgresDrizzleConfig, PostgresDrizzle } from './types';
|
|
12
|
+
import type { PostgresDrizzleConfig, PostgresDrizzle } from './types.ts';
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Resolves the PostgreSQL client configuration from Drizzle config options.
|
|
@@ -99,45 +99,40 @@ export function createResilientSQLProxy(
|
|
|
99
99
|
// double-applied updates, or repeated delete side effects.
|
|
100
100
|
const isMutation = isMutationStatement(query);
|
|
101
101
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
} catch {
|
|
132
|
-
// Connection may already be dead; Postgres auto-rolls
|
|
133
|
-
// back uncommitted transactions on connection close.
|
|
134
|
-
}
|
|
135
|
-
throw error;
|
|
136
|
-
}
|
|
102
|
+
if (isMutation) {
|
|
103
|
+
// Mutation statements are wrapped in a transaction and retried
|
|
104
|
+
// via executeWithRetry. This is safe because PostgreSQL
|
|
105
|
+
// guarantees that uncommitted transactions are automatically
|
|
106
|
+
// rolled back when the connection drops. If the connection
|
|
107
|
+
// fails before COMMIT completes, no changes are applied, and
|
|
108
|
+
// the retry starts a fresh transaction on the new connection.
|
|
109
|
+
//
|
|
110
|
+
// We use sql.begin(callback) instead of manual BEGIN/COMMIT
|
|
111
|
+
// because Bun's SQL driver requires it for pool-safe
|
|
112
|
+
// transactions (ERR_POSTGRES_UNSAFE_TRANSACTION when max > 1).
|
|
113
|
+
// sql.begin() reserves a specific connection, auto-COMMITs on
|
|
114
|
+
// success, and auto-ROLLBACKs on error.
|
|
115
|
+
//
|
|
116
|
+
// NOTE: If the connection drops after the server processes
|
|
117
|
+
// COMMIT but before the client receives the response, the
|
|
118
|
+
// changes ARE committed. A retry would then apply them again.
|
|
119
|
+
// This window is extremely small (< 1ms typically) and is an
|
|
120
|
+
// inherent limitation of any retry-based approach without
|
|
121
|
+
// application-level idempotency (e.g., unique constraints
|
|
122
|
+
// with ON CONFLICT for INSERTs).
|
|
123
|
+
// See: https://github.com/agentuity/sdk/issues/911
|
|
124
|
+
const makeTransactionalExecutor = (useValues: boolean) =>
|
|
125
|
+
client.executeWithRetry(async () => {
|
|
126
|
+
// Re-resolve raw inside retry to get post-reconnect instance
|
|
127
|
+
const currentRaw = client.raw;
|
|
128
|
+
return currentRaw.begin(async (tx) => {
|
|
129
|
+
const q = tx.unsafe(query, params);
|
|
130
|
+
return useValues ? await q.values() : await q;
|
|
137
131
|
});
|
|
132
|
+
});
|
|
138
133
|
|
|
139
|
-
|
|
140
|
-
|
|
134
|
+
return createThenable(makeTransactionalExecutor);
|
|
135
|
+
}
|
|
141
136
|
|
|
142
137
|
const makeExecutor = (useValues: boolean) =>
|
|
143
138
|
client.executeWithRetry(async () => {
|