@spine-event-engine/storage-postgres 2.0.0-snapshot.23 → 2.0.0-snapshot.24
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 +5 -4
- package/REFERENCE.md +27 -5
- package/dist/postgres/agent-execution.d.ts +3 -2
- package/dist/postgres/agent-execution.d.ts.map +1 -1
- package/dist/postgres/agent-execution.js +3 -3
- package/dist/postgres/agent-execution.js.map +1 -1
- package/dist/postgres/entity-commit.d.ts +16 -51
- package/dist/postgres/entity-commit.d.ts.map +1 -1
- package/dist/postgres/entity-commit.js +83 -154
- package/dist/postgres/entity-commit.js.map +1 -1
- package/dist/postgres/entity-history.d.ts.map +1 -1
- package/dist/postgres/entity-history.js +60 -232
- package/dist/postgres/entity-history.js.map +1 -1
- package/dist/postgres/errors.d.ts +1 -1
- package/dist/postgres/errors.d.ts.map +1 -1
- package/dist/postgres/errors.js +5 -3
- package/dist/postgres/errors.js.map +1 -1
- package/dist/postgres/record-storage.d.ts +87 -111
- package/dist/postgres/record-storage.d.ts.map +1 -1
- package/dist/postgres/record-storage.js +159 -186
- package/dist/postgres/record-storage.js.map +1 -1
- package/dist/postgres/storage-factory.d.ts +2 -8
- package/dist/postgres/storage-factory.d.ts.map +1 -1
- package/dist/postgres/storage-factory.js +4 -23
- package/dist/postgres/storage-factory.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/dist/postgres/delivery-cleanup.d.ts +0 -76
- package/dist/postgres/delivery-cleanup.d.ts.map +0 -1
- package/dist/postgres/delivery-cleanup.js +0 -224
- package/dist/postgres/delivery-cleanup.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Message } from "@bufbuild/protobuf";
|
|
2
2
|
import { StringifierRegistry } from "@spine-event-engine/core";
|
|
3
|
-
import { RecordStorage, type NormalizedQueryPlan, type RecordEntry, type
|
|
3
|
+
import { RecordQuery, RecordStorage, type NormalizedQueryPlan, type RecordEntry, type RecordSpec, type StorageContext, type StorageQueryCapabilities } from "@spine-event-engine/storage";
|
|
4
4
|
import type { PoolClient } from "pg";
|
|
5
5
|
import type { PostgresParameter } from "./parameter.js";
|
|
6
6
|
import type { PostgresTableSpec } from "./storage-factory.js";
|
|
@@ -27,9 +27,9 @@ export interface PostgresRecordLifecycle {
|
|
|
27
27
|
* Performs package-local bounded operations for one PostgreSQL record family.
|
|
28
28
|
*
|
|
29
29
|
* This capability deliberately stays outside the package root: Entity history
|
|
30
|
-
* uses it to keep its SQL
|
|
30
|
+
* uses it to keep its SQL on the PostgreSQL provider.
|
|
31
31
|
*
|
|
32
|
-
* @typeParam I
|
|
32
|
+
* @typeParam I Record identifier type.
|
|
33
33
|
* @typeParam R The stored Protobuf record type.
|
|
34
34
|
*/
|
|
35
35
|
export interface PostgresRecordExecutor<I, R extends Message> {
|
|
@@ -39,60 +39,65 @@ export interface PostgresRecordExecutor<I, R extends Message> {
|
|
|
39
39
|
*/
|
|
40
40
|
prepare(): Promise<void>;
|
|
41
41
|
/**
|
|
42
|
-
*
|
|
42
|
+
* Executes Agent record mutations on one rollback-capable transaction client.
|
|
43
43
|
*
|
|
44
|
-
* @typeParam T
|
|
45
|
-
* @param work
|
|
46
|
-
* @returns
|
|
44
|
+
* @typeParam T Result of the transaction work.
|
|
45
|
+
* @param work Operations to run on the transaction client.
|
|
46
|
+
* @returns Result after transaction commit.
|
|
47
47
|
*/
|
|
48
48
|
transaction<T>(work: (client: PoolClient) => Promise<T>): Promise<T>;
|
|
49
49
|
/**
|
|
50
|
-
*
|
|
50
|
+
* Reads a record on the Agent transaction client.
|
|
51
51
|
*
|
|
52
|
-
* @
|
|
53
|
-
* @param
|
|
54
|
-
* @
|
|
55
|
-
|
|
56
|
-
using<T>(work: (client: PoolClient) => Promise<T>): Promise<T>;
|
|
57
|
-
/**
|
|
58
|
-
* Reads one record on a caller-managed client.
|
|
59
|
-
* @param client Provides the transaction client.
|
|
60
|
-
* @param id Identifies the stored record.
|
|
61
|
-
* @param lock Requests a row lock when present.
|
|
62
|
-
* @returns The decoded record, when present.
|
|
52
|
+
* @param client Active transaction client.
|
|
53
|
+
* @param id Typed record ID.
|
|
54
|
+
* @param lock Whether to lock the selected row.
|
|
55
|
+
* @returns Stored record when present.
|
|
63
56
|
*/
|
|
64
57
|
read(client: PoolClient, id: I, lock?: "for-update"): Promise<R | undefined>;
|
|
65
58
|
/**
|
|
66
|
-
* Checks
|
|
67
|
-
*
|
|
68
|
-
* @param
|
|
69
|
-
* @
|
|
59
|
+
* Checks an immutable record on the Agent transaction client.
|
|
60
|
+
*
|
|
61
|
+
* @param client Active transaction client.
|
|
62
|
+
* @param record Proposed immutable record.
|
|
63
|
+
* @returns Completion after collision validation.
|
|
70
64
|
*/
|
|
71
65
|
assertImmutable(client: PoolClient, record: R): Promise<void>;
|
|
72
66
|
/**
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
* @param
|
|
76
|
-
* @
|
|
67
|
+
* Writes an immutable record on the Agent transaction client.
|
|
68
|
+
*
|
|
69
|
+
* @param client Active transaction client.
|
|
70
|
+
* @param record Immutable record to append.
|
|
71
|
+
* @returns Completion after insertion or identical retry.
|
|
77
72
|
*/
|
|
78
73
|
appendImmutable(client: PoolClient, record: R): Promise<void>;
|
|
79
74
|
/**
|
|
80
|
-
* Writes
|
|
81
|
-
*
|
|
82
|
-
* @param
|
|
83
|
-
* @
|
|
75
|
+
* Writes a record on the Agent transaction client.
|
|
76
|
+
*
|
|
77
|
+
* @param client Active transaction client.
|
|
78
|
+
* @param record Record to write.
|
|
79
|
+
* @returns Completion after the write.
|
|
84
80
|
*/
|
|
85
81
|
write(client: PoolClient, record: R): Promise<void>;
|
|
86
82
|
/**
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
* @param
|
|
90
|
-
* @
|
|
83
|
+
* Calculates an Agent transaction lock identity.
|
|
84
|
+
*
|
|
85
|
+
* @param domain Lock namespace within the provider.
|
|
86
|
+
* @param identity Components of the lock identity.
|
|
87
|
+
* @returns Stable advisory lock key.
|
|
88
|
+
*/
|
|
89
|
+
lock(domain: string, ...identity: readonly string[]): bigint;
|
|
90
|
+
/**
|
|
91
|
+
* Returns bounded work on one acquired PostgreSQL client.
|
|
92
|
+
*
|
|
93
|
+
* @typeParam T The value returned by the client work.
|
|
94
|
+
* @param work Performs work with the acquired client.
|
|
95
|
+
* @returns The work result.
|
|
91
96
|
*/
|
|
92
|
-
|
|
97
|
+
using<T>(work: (client: PoolClient) => Promise<T>): Promise<T>;
|
|
93
98
|
/**
|
|
94
99
|
* Decodes records returned by one bounded PostgreSQL statement.
|
|
95
|
-
* @param client Provides the
|
|
100
|
+
* @param client Provides the acquired client.
|
|
96
101
|
* @param sql Supplies bounded provider SQL.
|
|
97
102
|
* @param values Supplies bound SQL values.
|
|
98
103
|
* @returns Decoded records.
|
|
@@ -110,19 +115,6 @@ export interface PostgresRecordExecutor<I, R extends Message> {
|
|
|
110
115
|
* @returns The validated table identifier.
|
|
111
116
|
*/
|
|
112
117
|
table(): string;
|
|
113
|
-
/**
|
|
114
|
-
* Returns a hash for one provider-private advisory-lock identity.
|
|
115
|
-
* @param domain Separates lock kinds.
|
|
116
|
-
* @param identity Identifies the locked resource.
|
|
117
|
-
* @returns A signed PostgreSQL advisory key.
|
|
118
|
-
*/
|
|
119
|
-
lock(domain: string, ...identity: readonly string[]): bigint;
|
|
120
|
-
/**
|
|
121
|
-
* Returns the same record-mutation lock used by compare-and-set.
|
|
122
|
-
* @param id Identifies the guarded record.
|
|
123
|
-
* @returns A signed PostgreSQL advisory key.
|
|
124
|
-
*/
|
|
125
|
-
lockRecord(id: I): bigint;
|
|
126
118
|
}
|
|
127
119
|
/**
|
|
128
120
|
* Stores one record family in one qualified PostgreSQL table.
|
|
@@ -136,7 +128,7 @@ export declare class PostgresRecordStorage<I, R extends Message> extends RecordS
|
|
|
136
128
|
private readonly lifecycle;
|
|
137
129
|
private readonly onClose;
|
|
138
130
|
/**
|
|
139
|
-
* Reports that compare-and-set uses
|
|
131
|
+
* Reports that compare-and-set uses a conditional SQL mutation.
|
|
140
132
|
*/
|
|
141
133
|
readonly atomicCompareAndSet = true;
|
|
142
134
|
/**
|
|
@@ -158,7 +150,7 @@ export declare class PostgresRecordStorage<I, R extends Message> extends RecordS
|
|
|
158
150
|
*/
|
|
159
151
|
get tableName(): string;
|
|
160
152
|
/**
|
|
161
|
-
* Prepares this table before
|
|
153
|
+
* Prepares this table before a record operation.
|
|
162
154
|
*
|
|
163
155
|
* @returns A promise that resolves after compatible initialization.
|
|
164
156
|
*/
|
|
@@ -223,19 +215,19 @@ export declare class PostgresRecordStorage<I, R extends Message> extends RecordS
|
|
|
223
215
|
*/
|
|
224
216
|
protected queryPlanRecordEntries(plan: NormalizedQueryPlan<I>): Promise<readonly RecordEntry<I, R>[]>;
|
|
225
217
|
/**
|
|
226
|
-
* Compares and
|
|
218
|
+
* Compares and conditionally mutates one row with a raw-byte SQL guard.
|
|
227
219
|
*
|
|
228
|
-
* @param id Identifies the record
|
|
220
|
+
* @param id Identifies the record slot.
|
|
229
221
|
* @param expected Specifies the current materialized record required to write.
|
|
230
222
|
* @param next Specifies the replacement record, or absence for deletion.
|
|
231
223
|
* @returns Whether the current stored payload matched the expected payload.
|
|
232
224
|
*/
|
|
233
225
|
protected compareAndSetRecord(id: I, expected: Materialized<I, R> | undefined, next: Materialized<I, R> | undefined): Promise<boolean>;
|
|
234
226
|
/**
|
|
235
|
-
* Writes all supplied materialized records in source order
|
|
227
|
+
* Writes all supplied materialized records independently in source order.
|
|
236
228
|
*
|
|
237
229
|
* @param records Provides the materialized records to write.
|
|
238
|
-
* @returns A promise that resolves after
|
|
230
|
+
* @returns A promise that resolves after all writes complete.
|
|
239
231
|
*/
|
|
240
232
|
protected writeAllRecords(records: readonly Materialized<I, R>[]): Promise<void>;
|
|
241
233
|
/**
|
|
@@ -246,22 +238,33 @@ export declare class PostgresRecordStorage<I, R extends Message> extends RecordS
|
|
|
246
238
|
*/
|
|
247
239
|
protected writeRecord(record: Materialized<I, R>): Promise<void>;
|
|
248
240
|
/**
|
|
249
|
-
* Applies one compare-and-set attempt
|
|
241
|
+
* Applies one compare-and-set attempt using a conditional statement.
|
|
250
242
|
*
|
|
243
|
+
* @param client Provides the operation client.
|
|
251
244
|
* @param id Identifies the guarded record.
|
|
252
245
|
* @param expected Supplies the required current materialization.
|
|
253
246
|
* @param next Supplies the replacement or requests deletion when absent.
|
|
254
|
-
* @returns Whether the current record matched
|
|
247
|
+
* @returns Whether the current record matched, or undefined after a guard miss.
|
|
255
248
|
*/
|
|
256
249
|
private casOnce;
|
|
257
250
|
/**
|
|
258
|
-
*
|
|
259
|
-
*
|
|
260
|
-
* @
|
|
261
|
-
* @
|
|
262
|
-
* @returns The value returned by the work after a successful commit.
|
|
251
|
+
* Reads the exact bytes used as a conditional-mutation guard.
|
|
252
|
+
* @param client Provides the operation client.
|
|
253
|
+
* @param id Identifies the row.
|
|
254
|
+
* @returns Stored bytes, if present.
|
|
263
255
|
*/
|
|
264
|
-
private
|
|
256
|
+
private rawOn;
|
|
257
|
+
/**
|
|
258
|
+
* Decodes one stored record with the provider's data-error boundary.
|
|
259
|
+
* @param raw Supplies exact stored bytes.
|
|
260
|
+
* @returns Decoded Protobuf record.
|
|
261
|
+
*/
|
|
262
|
+
private decode;
|
|
263
|
+
/**
|
|
264
|
+
* Builds a conditional update that changes bytes and materialized columns together.
|
|
265
|
+
* @returns Parameterized update SQL.
|
|
266
|
+
*/
|
|
267
|
+
private casUpdateSql;
|
|
265
268
|
/**
|
|
266
269
|
* Executes work with one prepared and automatically released client.
|
|
267
270
|
*
|
|
@@ -270,12 +273,28 @@ export declare class PostgresRecordStorage<I, R extends Message> extends RecordS
|
|
|
270
273
|
* @returns The value returned by the work.
|
|
271
274
|
*/
|
|
272
275
|
private using;
|
|
276
|
+
/**
|
|
277
|
+
* Executes Agent-scoped record work under one PostgreSQL transaction.
|
|
278
|
+
*
|
|
279
|
+
* @typeParam T Result of the transaction work.
|
|
280
|
+
* @param work Operations to run on the acquired client.
|
|
281
|
+
* @returns Result after commit.
|
|
282
|
+
*/
|
|
283
|
+
private transaction;
|
|
284
|
+
/**
|
|
285
|
+
* Calculates a stable Agent advisory key in this database and schema.
|
|
286
|
+
*
|
|
287
|
+
* @param domain Lock namespace within the provider.
|
|
288
|
+
* @param identity Components of the lock identity.
|
|
289
|
+
* @returns Stable advisory lock key.
|
|
290
|
+
*/
|
|
291
|
+
private historyKey;
|
|
273
292
|
/**
|
|
274
293
|
* Reads and decodes one record on the supplied client.
|
|
275
294
|
*
|
|
276
295
|
* @param client Provides the active client.
|
|
277
296
|
* @param id Identifies the record.
|
|
278
|
-
* @param
|
|
297
|
+
* @param locked Whether to lock the selected row in the Agent transaction.
|
|
279
298
|
* @returns The decoded record, when present.
|
|
280
299
|
*/
|
|
281
300
|
private readOn;
|
|
@@ -287,58 +306,30 @@ export declare class PostgresRecordStorage<I, R extends Message> extends RecordS
|
|
|
287
306
|
* @returns The decoded record entries.
|
|
288
307
|
*/
|
|
289
308
|
private entries;
|
|
290
|
-
/**
|
|
291
|
-
* Acquires the transaction lock for one record slot.
|
|
292
|
-
*
|
|
293
|
-
* @param client Provides the active transaction client.
|
|
294
|
-
* @param id Identifies the record slot.
|
|
295
|
-
* @returns A promise that resolves after lock acquisition.
|
|
296
|
-
*/
|
|
297
|
-
private lockSlot;
|
|
298
|
-
/**
|
|
299
|
-
* Acquires record-slot locks in stable order to avoid deadlocks.
|
|
300
|
-
*
|
|
301
|
-
* @param client Provides the active transaction client.
|
|
302
|
-
* @param ids Identify the record slots.
|
|
303
|
-
* @returns A promise that resolves after every lock is acquired.
|
|
304
|
-
*/
|
|
305
|
-
private lockSlots;
|
|
306
309
|
/**
|
|
307
310
|
* Writes one record on a caller-managed client.
|
|
308
311
|
*
|
|
309
|
-
* @param client Provides the
|
|
312
|
+
* @param client Provides the acquired client.
|
|
310
313
|
* @param record Supplies the record to write.
|
|
311
|
-
* @param id Identifies the record.
|
|
312
|
-
* @param locked Whether the caller already holds the record lock.
|
|
313
314
|
* @returns A promise that resolves after the upsert.
|
|
314
315
|
*/
|
|
315
316
|
private writeOn;
|
|
316
317
|
/**
|
|
317
318
|
* Deletes one record on a caller-managed client.
|
|
318
319
|
*
|
|
319
|
-
* @param client Provides the
|
|
320
|
+
* @param client Provides the acquired client.
|
|
320
321
|
* @param id Identifies the record.
|
|
321
|
-
* @param locked Whether the caller already holds the record lock.
|
|
322
322
|
* @returns Whether PostgreSQL deleted a row.
|
|
323
323
|
*/
|
|
324
324
|
private deleteOn;
|
|
325
325
|
/**
|
|
326
326
|
* Stores an immutable record or confirms an identical existing record.
|
|
327
327
|
*
|
|
328
|
-
* @param client Provides the
|
|
328
|
+
* @param client Provides the acquired client.
|
|
329
329
|
* @param record Supplies the immutable record.
|
|
330
|
-
* @param locked Whether the caller already holds the record lock.
|
|
331
330
|
* @returns A promise that resolves after insertion or identity confirmation.
|
|
332
331
|
*/
|
|
333
332
|
private appendImmutableOn;
|
|
334
|
-
/**
|
|
335
|
-
* Checks that an immutable record is absent or byte-identical.
|
|
336
|
-
*
|
|
337
|
-
* @param client Provides the active client.
|
|
338
|
-
* @param record Supplies the immutable record.
|
|
339
|
-
* @returns A promise that rejects for a conflicting stored payload.
|
|
340
|
-
*/
|
|
341
|
-
private assertImmutableOn;
|
|
342
333
|
/**
|
|
343
334
|
* Executes provider SQL and decodes its record rows.
|
|
344
335
|
*
|
|
@@ -356,14 +347,6 @@ export declare class PostgresRecordStorage<I, R extends Message> extends RecordS
|
|
|
356
347
|
* @returns The PostgreSQL parameter value.
|
|
357
348
|
*/
|
|
358
349
|
private historyColumn;
|
|
359
|
-
/**
|
|
360
|
-
* Calculates a stable advisory-lock key within the selected database and schema.
|
|
361
|
-
*
|
|
362
|
-
* @param domain Separates lock purposes.
|
|
363
|
-
* @param identity Identifies the protected resource.
|
|
364
|
-
* @returns A signed PostgreSQL advisory-lock key.
|
|
365
|
-
*/
|
|
366
|
-
private historyKey;
|
|
367
350
|
/**
|
|
368
351
|
* Encodes one record as ordered table-column values.
|
|
369
352
|
*
|
|
@@ -532,13 +515,6 @@ export declare class PostgresRecordStorage<I, R extends Message> extends RecordS
|
|
|
532
515
|
* @returns The limit and offset clause.
|
|
533
516
|
*/
|
|
534
517
|
private offsetSql;
|
|
535
|
-
/**
|
|
536
|
-
* Calculates the advisory key for one record mutation.
|
|
537
|
-
*
|
|
538
|
-
* @param id Identifies the record.
|
|
539
|
-
* @returns The signed advisory-lock key.
|
|
540
|
-
*/
|
|
541
|
-
private casKey;
|
|
542
518
|
}
|
|
543
519
|
/**
|
|
544
520
|
* Represents one record after its declared columns are materialized.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record-storage.d.ts","sourceRoot":"","sources":["../../src/postgres/record-storage.ts"],"names":[],"mappings":"AAcA,OAAO,EAAoC,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"record-storage.d.ts","sourceRoot":"","sources":["../../src/postgres/record-storage.ts"],"names":[],"mappings":"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"}
|