@smart-data-engines/sde 0.1.0-dev.0
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/LICENSE +201 -0
- package/NOTICE +13 -0
- package/README.md +153 -0
- package/bin/weather.mjs +32 -0
- package/dist/_usage.d.ts +30 -0
- package/dist/_usage.js +194 -0
- package/dist/_usage.js.map +1 -0
- package/dist/bulk.d.ts +9 -0
- package/dist/bulk.js +83 -0
- package/dist/bulk.js.map +1 -0
- package/dist/canonical.d.ts +46 -0
- package/dist/canonical.js +150 -0
- package/dist/canonical.js.map +1 -0
- package/dist/capabilities.d.ts +48 -0
- package/dist/capabilities.js +62 -0
- package/dist/capabilities.js.map +1 -0
- package/dist/cutover.d.ts +36 -0
- package/dist/cutover.js +219 -0
- package/dist/cutover.js.map +1 -0
- package/dist/demo/model.d.ts +28 -0
- package/dist/demo/model.js +40 -0
- package/dist/demo/model.js.map +1 -0
- package/dist/demo/project.d.ts +19 -0
- package/dist/demo/project.js +128 -0
- package/dist/demo/project.js.map +1 -0
- package/dist/demo/weather.d.ts +73 -0
- package/dist/demo/weather.js +334 -0
- package/dist/demo/weather.js.map +1 -0
- package/dist/engines/_clickhouse-connection.d.ts +17 -0
- package/dist/engines/_clickhouse-connection.js +182 -0
- package/dist/engines/_clickhouse-connection.js.map +1 -0
- package/dist/engines/_tls-peer-identity.d.ts +2 -0
- package/dist/engines/_tls-peer-identity.js +23 -0
- package/dist/engines/_tls-peer-identity.js.map +1 -0
- package/dist/engines/_write-fences.d.ts +51 -0
- package/dist/engines/_write-fences.js +189 -0
- package/dist/engines/_write-fences.js.map +1 -0
- package/dist/engines/clickhouse.d.ts +193 -0
- package/dist/engines/clickhouse.js +899 -0
- package/dist/engines/clickhouse.js.map +1 -0
- package/dist/engines/postgres.d.ts +293 -0
- package/dist/engines/postgres.js +981 -0
- package/dist/engines/postgres.js.map +1 -0
- package/dist/errors.d.ts +89 -0
- package/dist/errors.js +90 -0
- package/dist/errors.js.map +1 -0
- package/dist/frozen-verification.d.ts +26 -0
- package/dist/frozen-verification.js +67 -0
- package/dist/frozen-verification.js.map +1 -0
- package/dist/generation.d.ts +34 -0
- package/dist/generation.js +81 -0
- package/dist/generation.js.map +1 -0
- package/dist/groups.d.ts +17 -0
- package/dist/groups.js +66 -0
- package/dist/groups.js.map +1 -0
- package/dist/hashing.d.ts +68 -0
- package/dist/hashing.js +146 -0
- package/dist/hashing.js.map +1 -0
- package/dist/in-place-index.d.ts +43 -0
- package/dist/in-place-index.js +272 -0
- package/dist/in-place-index.js.map +1 -0
- package/dist/index.d.ts +79 -0
- package/dist/index.js +64 -0
- package/dist/index.js.map +1 -0
- package/dist/inspection.d.ts +19 -0
- package/dist/inspection.js +31 -0
- package/dist/inspection.js.map +1 -0
- package/dist/internal.d.ts +42 -0
- package/dist/internal.js +56 -0
- package/dist/internal.js.map +1 -0
- package/dist/layout.d.ts +36 -0
- package/dist/layout.js +62 -0
- package/dist/layout.js.map +1 -0
- package/dist/migration.d.ts +197 -0
- package/dist/migration.js +592 -0
- package/dist/migration.js.map +1 -0
- package/dist/model.d.ts +93 -0
- package/dist/model.js +313 -0
- package/dist/model.js.map +1 -0
- package/dist/physical.d.ts +128 -0
- package/dist/physical.js +421 -0
- package/dist/physical.js.map +1 -0
- package/dist/placement.d.ts +157 -0
- package/dist/placement.js +651 -0
- package/dist/placement.js.map +1 -0
- package/dist/provisioning.d.ts +6 -0
- package/dist/provisioning.js +45 -0
- package/dist/provisioning.js.map +1 -0
- package/dist/query.d.ts +68 -0
- package/dist/query.js +340 -0
- package/dist/query.js.map +1 -0
- package/dist/routing.d.ts +25 -0
- package/dist/routing.js +35 -0
- package/dist/routing.js.map +1 -0
- package/dist/schema.d.ts +110 -0
- package/dist/schema.js +337 -0
- package/dist/schema.js.map +1 -0
- package/dist/session.d.ts +195 -0
- package/dist/session.js +870 -0
- package/dist/session.js.map +1 -0
- package/dist/shapes.d.ts +30 -0
- package/dist/shapes.js +112 -0
- package/dist/shapes.js.map +1 -0
- package/dist/staging.d.ts +29 -0
- package/dist/staging.js +214 -0
- package/dist/staging.js.map +1 -0
- package/dist/telemetry.d.ts +468 -0
- package/dist/telemetry.js +872 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/testing/loader.d.ts +38 -0
- package/dist/testing/loader.js +86 -0
- package/dist/testing/loader.js.map +1 -0
- package/dist/testing/memory.d.ts +131 -0
- package/dist/testing/memory.js +311 -0
- package/dist/testing/memory.js.map +1 -0
- package/dist/timestamp.d.ts +20 -0
- package/dist/timestamp.js +89 -0
- package/dist/timestamp.js.map +1 -0
- package/dist/types.d.ts +79 -0
- package/dist/types.js +100 -0
- package/dist/types.js.map +1 -0
- package/dist/verification.d.ts +41 -0
- package/dist/verification.js +169 -0
- package/dist/verification.js.map +1 -0
- package/dist/watermark.d.ts +103 -0
- package/dist/watermark.js +170 -0
- package/dist/watermark.js.map +1 -0
- package/dist/write-fence.d.ts +58 -0
- package/dist/write-fence.js +225 -0
- package/dist/write-fence.js.map +1 -0
- package/package.json +86 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clickhouse.js","sourceRoot":"","sources":["../../src/engines/clickhouse.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PostgreSQL adapter.
|
|
3
|
+
*
|
|
4
|
+
* Three rules run through everything here, and all three come from the requirements rather than
|
|
5
|
+
* from taste.
|
|
6
|
+
*
|
|
7
|
+
* **A failed write is reported, never worked around.** No retry into another engine, no swallowing,
|
|
8
|
+
* no "eventually consistent" story invented on the spot. If the source engine for a group will not
|
|
9
|
+
* take the write, the client's code finds out. The library swallows its *own* internal problems -
|
|
10
|
+
* routing, telemetry - because a bug of ours must not take down someone's application, but a write
|
|
11
|
+
* that did not happen is not our internal problem and reporting success for it would be the worst
|
|
12
|
+
* thing this library could do.
|
|
13
|
+
*
|
|
14
|
+
* **Identifiers are quoted, always.** Not for injection - identifiers come from the placement map,
|
|
15
|
+
* not from user input - but because entity names may contain non-ASCII characters, and an unquoted
|
|
16
|
+
* identifier in PostgreSQL is folded to lower case in a way that is lossy for some of them. The
|
|
17
|
+
* quoting function is bound from `schema.ts` rather than written again, so DDL and DML cannot
|
|
18
|
+
* disagree about how an identifier is escaped.
|
|
19
|
+
*
|
|
20
|
+
* **Values are converted per row, from the field types the server sent.** `pg` offers a global type
|
|
21
|
+
* parser registry, and using it would be the shortest path and the wrong one: this library goes
|
|
22
|
+
* into somebody else's application, so registering a parser would change how *their* other queries
|
|
23
|
+
* come back. The reference implementation has no equivalent temptation, which is why the rule is
|
|
24
|
+
* written down here.
|
|
25
|
+
*
|
|
26
|
+
* The driver is `pg`, and it is an **optional peer dependency**. A client who never places a group
|
|
27
|
+
* in PostgreSQL should not have it in their tree, and a client who has it already should keep the
|
|
28
|
+
* version they chose - the core of this library has no runtime dependencies at all, because every
|
|
29
|
+
* one of them would be a dependency they inherit and a version conflict they may have to resolve.
|
|
30
|
+
*/
|
|
31
|
+
import { type ReadColumn, type ReadPlan } from '../query.js';
|
|
32
|
+
import type { PhysicalFinding } from '../physical.js';
|
|
33
|
+
import type { PhysicalLayout } from '../placement.js';
|
|
34
|
+
import type { Row } from '../session.js';
|
|
35
|
+
import { WriteFence } from '../write-fence.js';
|
|
36
|
+
/**
|
|
37
|
+
* Milliseconds. Not a guess about networks: this bounds *opening* a connection, which either
|
|
38
|
+
* completes in milliseconds on a healthy link or is not going to complete.
|
|
39
|
+
*
|
|
40
|
+
* Ten seconds leaves room for a saturated cross-region hop and still fails long before a request
|
|
41
|
+
* timeout a caller sets. It is a **default** rather than a rule - a `connect_timeout` in the DSN
|
|
42
|
+
* wins - and it exists because the alternative, measured against a socket that accepts TCP and says
|
|
43
|
+
* nothing, is a call that never returns. Queries are deliberately not bounded: an analytical query
|
|
44
|
+
* legitimately takes minutes and a library that timed it out would be deciding something about the
|
|
45
|
+
* caller's workload.
|
|
46
|
+
*/
|
|
47
|
+
export declare const CONNECT_TIMEOUT_MS = 10000;
|
|
48
|
+
export interface PostgresOptions {
|
|
49
|
+
/**
|
|
50
|
+
* The `pg` module, for a caller who has it under a different name or wants to hand in a double.
|
|
51
|
+
*
|
|
52
|
+
* Loaded with a dynamic import when absent, which is what keeps it an optional dependency: a
|
|
53
|
+
* client who never places a group in PostgreSQL never resolves it.
|
|
54
|
+
*/
|
|
55
|
+
readonly driver?: unknown;
|
|
56
|
+
}
|
|
57
|
+
export declare class PostgresEngine {
|
|
58
|
+
private readonly dsn;
|
|
59
|
+
private readonly options;
|
|
60
|
+
readonly dialect = "postgres";
|
|
61
|
+
private client;
|
|
62
|
+
private transactions;
|
|
63
|
+
private savepoint;
|
|
64
|
+
private readonly usage;
|
|
65
|
+
private unusable;
|
|
66
|
+
/**
|
|
67
|
+
* The asynchronous failure the driver reported, if any, kept for the next call to explain.
|
|
68
|
+
*
|
|
69
|
+
* **This exists because an unhandled `'error'` event kills the client's process.** `pg.Client` is
|
|
70
|
+
* an `EventEmitter`, and it emits `'error'` when the server terminates the connection between
|
|
71
|
+
* queries - a restart, a failover, an administrator. Node's rule for an `'error'` event with no
|
|
72
|
+
* listener is to throw it, so a library that did not listen would turn a database restart into
|
|
73
|
+
* `Error: Connection terminated unexpectedly` from inside somebody's event loop, with no call of
|
|
74
|
+
* theirs on the stack and nothing to catch it.
|
|
75
|
+
*
|
|
76
|
+
* Found by the test that measures the *message* after a cut connection: the assertion failed and
|
|
77
|
+
* took eight unrelated tests with it, which is a mild version of what a client would have seen.
|
|
78
|
+
* The reference implementation has no equivalent hazard - psycopg raises at the next call and
|
|
79
|
+
* emits nothing - so this is the one place where "same contract, different runtime" means extra
|
|
80
|
+
* code rather than a translation.
|
|
81
|
+
*/
|
|
82
|
+
private lost;
|
|
83
|
+
constructor(dsn: string, options?: PostgresOptions);
|
|
84
|
+
/**
|
|
85
|
+
* Open the connection, with a bound on how long that may take.
|
|
86
|
+
*
|
|
87
|
+
* Measured in the reference implementation before this bound existed: a host that accepts the TCP
|
|
88
|
+
* connection and never answers hung the call **for as long as the test was willing to wait**.
|
|
89
|
+
* That is not an exotic case - it is a firewall that accepts, a load balancer with no healthy
|
|
90
|
+
* backend, a server mid-restart - and without a bound it happens inside the caller's request path
|
|
91
|
+
* with nothing to time out.
|
|
92
|
+
*
|
|
93
|
+
* The default is only applied when the caller has not chosen one. A `connect_timeout` in the DSN
|
|
94
|
+
* is their decision about their own network and this must not override it - see
|
|
95
|
+
* {@link connectBound}, where honouring it costs more work here than it does in the reference.
|
|
96
|
+
*/
|
|
97
|
+
connect(): Promise<void>;
|
|
98
|
+
close(): Promise<void>;
|
|
99
|
+
private get cx();
|
|
100
|
+
/**
|
|
101
|
+
* The driver's message, plus the one sentence it cannot know to add.
|
|
102
|
+
*
|
|
103
|
+
* Measured in the reference: cut the connection under a live session and the first failing call
|
|
104
|
+
* reports what the server said, which is right. **Every call after it reports only that the
|
|
105
|
+
* connection is closed** - true, unhelpful, and the point at which a reader needs to be told that
|
|
106
|
+
* this library holds the connection it was handed and does not reopen it. Reconnecting is one line
|
|
107
|
+
* and it is the caller's, because a library that silently reconnected would also silently retry.
|
|
108
|
+
*/
|
|
109
|
+
private explain;
|
|
110
|
+
private run;
|
|
111
|
+
private rowsOf;
|
|
112
|
+
/** DDL capability; use a dedicated connection separate from application traffic. */
|
|
113
|
+
writeFence(table: string, options: {
|
|
114
|
+
projectId: string;
|
|
115
|
+
}): WriteFence;
|
|
116
|
+
/**
|
|
117
|
+
* Create what is missing, change nothing that exists.
|
|
118
|
+
*
|
|
119
|
+
* Idempotent on purpose: an application restarting must not reapply DDL, and two instances
|
|
120
|
+
* starting at once must not race. Anything beyond creation - altering a column, dropping an
|
|
121
|
+
* index - is a migration, which is the orchestrator's job and carries a safety classification.
|
|
122
|
+
*/
|
|
123
|
+
ensureSchema(layout: PhysicalLayout, options: {
|
|
124
|
+
readonly keys: Readonly<Record<string, readonly string[]>>;
|
|
125
|
+
}): Promise<PhysicalFinding[]>;
|
|
126
|
+
private execute;
|
|
127
|
+
/**
|
|
128
|
+
* Check that what exists is what the map describes, because `IF NOT EXISTS` does not.
|
|
129
|
+
*
|
|
130
|
+
* `CREATE TABLE IF NOT EXISTS` accepts a table of that name whatever shape it is in, so a table
|
|
131
|
+
* left over from something else - an older map, another application, a migration run by hand - is
|
|
132
|
+
* silently kept and the first insert fails with `column "at" does not exist`. That error names a
|
|
133
|
+
* column and not the cause, and it arrives in the client's request path rather than at startup.
|
|
134
|
+
*
|
|
135
|
+
* A **missing** column is refused: writes through this map cannot work. An **extra** column is
|
|
136
|
+
* allowed - a client may have added one outside SDE, the map does not name it, writes are
|
|
137
|
+
* unaffected, and refusing would make this library an obstacle to work it has no opinion about.
|
|
138
|
+
*
|
|
139
|
+
* **Types as well as names, since 7 September 2026.** The earlier version checked names only,
|
|
140
|
+
* on the true observation that `information_schema.data_type` reports `numeric` for a
|
|
141
|
+
* `numeric(8,2)` column - a correct statement about the wrong catalogue.
|
|
142
|
+
* `pg_catalog.format_type(atttypid, atttypmod)` reports the canonical type *with* its modifier,
|
|
143
|
+
* and measured against every type this library renders, eleven of thirteen come back as the
|
|
144
|
+
* exact string we wrote. What that cost while it was names-only, measured: a table whose `at`
|
|
145
|
+
* column is **`text`** where the map says `timestamptz` passed and was called a good schema.
|
|
146
|
+
*/
|
|
147
|
+
/** Check existing physical columns without issuing DDL; report the physical design. */
|
|
148
|
+
validateSchema(layout: PhysicalLayout, options?: {
|
|
149
|
+
readonly keys?: Readonly<Record<string, readonly string[]>>;
|
|
150
|
+
}): Promise<PhysicalFinding[]>;
|
|
151
|
+
/**
|
|
152
|
+
* Primary key order and each declared index's method and columns, from `pg_index`.
|
|
153
|
+
*
|
|
154
|
+
* `CREATE INDEX IF NOT EXISTS ... USING brin` keeps an existing B-tree of that name - measured -
|
|
155
|
+
* so the method is read back rather than assumed from the statement that ran. An index with a
|
|
156
|
+
* predicate, an expression or INCLUDE columns is not the index a layout declares, however its
|
|
157
|
+
* name reads. The catalogues are readable by any login, so this needs no grant.
|
|
158
|
+
*/
|
|
159
|
+
private physicalFindings;
|
|
160
|
+
private verifySchema;
|
|
161
|
+
/**
|
|
162
|
+
* Whether two PostgreSQL type spellings denote the same type. Asked of the server.
|
|
163
|
+
*
|
|
164
|
+
* Literal first, which is the answer for every type this library renders except the two
|
|
165
|
+
* timestamps. When that fails the server is asked: `to_regtype` resolves an alias to the type it
|
|
166
|
+
* names, so `timestamptz` and `timestamp with time zone` come back equal without this file
|
|
167
|
+
* holding an alias table that could fall behind the renderer.
|
|
168
|
+
*
|
|
169
|
+
* **A modifier makes a literal mismatch a real one.** `to_regtype` discards modifiers, so
|
|
170
|
+
* `numeric(12,2)` and `numeric(8,2)` would both resolve to `numeric` and a precision change
|
|
171
|
+
* would read as agreement - which is the one difference this check exists to catch.
|
|
172
|
+
*/
|
|
173
|
+
private sameType;
|
|
174
|
+
insert(table: string, values: Readonly<Row>): Promise<void>;
|
|
175
|
+
/** Ordinary application INSERT. Do not reuse copyIn's conflict suppression. */
|
|
176
|
+
insertMany(table: string, rows: readonly Readonly<Row>[]): Promise<void>;
|
|
177
|
+
get(table: string, key: Readonly<Row>): Promise<Row | null>;
|
|
178
|
+
selectRows(table: string, plan: ReadPlan): Promise<Row[]>;
|
|
179
|
+
countRows(table: string, plan: ReadPlan): Promise<bigint>;
|
|
180
|
+
summarizeRows(table: string, plan: ReadPlan, column: ReadColumn): Promise<Readonly<Row>>;
|
|
181
|
+
/**
|
|
182
|
+
* Each table's bytes and its secondary index bytes, from the catalogue. Numbers only.
|
|
183
|
+
*
|
|
184
|
+
* `pg_total_relation_size` - the table, its TOAST and every index - and the indexes other than
|
|
185
|
+
* the primary key, one statement for every table named. A name the connection does not resolve is
|
|
186
|
+
* absent rather than a zero: a missing table is not an empty one. A login with only SELECT and
|
|
187
|
+
* INSERT on the table reads the same numbers as the administrator (measured on PostgreSQL 15).
|
|
188
|
+
*/
|
|
189
|
+
storageSizes(tables: readonly string[]): Promise<Map<string, readonly [number, number]>>;
|
|
190
|
+
count(table: string): Promise<number>;
|
|
191
|
+
/**
|
|
192
|
+
* The highest map version applied against this engine, creating the table if missing.
|
|
193
|
+
*
|
|
194
|
+
* An existing table needs only read privileges. CREATE IF NOT EXISTS still requires schema
|
|
195
|
+
* CREATE even when the table exists; lazy creation is retained only for an absent table.
|
|
196
|
+
*/
|
|
197
|
+
mapWatermark(): Promise<number | null>;
|
|
198
|
+
/**
|
|
199
|
+
* Append. Never update, so there is nothing to contend over and nothing to lose.
|
|
200
|
+
*
|
|
201
|
+
* The timestamp comes from the engine's own `now()` rather than from this process: an audit column
|
|
202
|
+
* wants the clock of the thing being audited, and this library reading a clock is a thing its
|
|
203
|
+
* tests would then have to work around.
|
|
204
|
+
*/
|
|
205
|
+
recordMapVersion(version: number, options: {
|
|
206
|
+
readonly modelVersion: string;
|
|
207
|
+
}): Promise<void>;
|
|
208
|
+
/**
|
|
209
|
+
* Rows in key order, strictly after one key and up to another inclusive.
|
|
210
|
+
*
|
|
211
|
+
* Row-value comparison - `(a, b) > ($1, $2)` - rather than a hand-rolled disjunction over the
|
|
212
|
+
* key's columns. The disjunction is where composite-key pagination goes wrong, and it goes wrong
|
|
213
|
+
* by skipping rows.
|
|
214
|
+
*
|
|
215
|
+
* The bounds are asymmetric on purpose. `after` is exclusive because it is a resume point: the row
|
|
216
|
+
* it names has been dealt with. `upto` is inclusive because it names the last row of a chunk read
|
|
217
|
+
* from somewhere else, and that row is one this range has to include.
|
|
218
|
+
*/
|
|
219
|
+
keyRange(table: string, order: readonly string[], options?: {
|
|
220
|
+
readonly after?: readonly unknown[];
|
|
221
|
+
readonly upto?: readonly unknown[];
|
|
222
|
+
readonly limit?: number;
|
|
223
|
+
}): Promise<Row[]>;
|
|
224
|
+
/**
|
|
225
|
+
* The key of the `position`-th row in key order, one-based, or null if there is no such row.
|
|
226
|
+
*
|
|
227
|
+
* An `OFFSET` scan, which is the expensive kind of query, and it is here because it is paid **once
|
|
228
|
+
* per resume** rather than once per chunk. See `migration.ts` for why the marker is a row count
|
|
229
|
+
* and not a key.
|
|
230
|
+
*/
|
|
231
|
+
nthKey(table: string, order: readonly string[], options: {
|
|
232
|
+
readonly position: number;
|
|
233
|
+
}): Promise<unknown[] | null>;
|
|
234
|
+
/**
|
|
235
|
+
* Insert rows, skipping any whose key is already there.
|
|
236
|
+
*
|
|
237
|
+
* `ON CONFLICT DO NOTHING` is what makes a backfill chunk **idempotent**, and idempotence is what
|
|
238
|
+
* makes it resumable: the marker is written after the chunk, so a crash in between costs a recopy
|
|
239
|
+
* and never a lost row. Without it the recopy would be a primary-key violation and the safe
|
|
240
|
+
* failure mode would become the loud one.
|
|
241
|
+
*
|
|
242
|
+
* The bare form, with no conflict target, so it covers the primary key and any unique index the
|
|
243
|
+
* layout asked for. Naming the key here would mean deriving it a second time.
|
|
244
|
+
*/
|
|
245
|
+
copyIn(table: string, rows: readonly Row[]): Promise<void>;
|
|
246
|
+
/**
|
|
247
|
+
* How many rows of this entity have been copied into this engine. Zero if none.
|
|
248
|
+
*
|
|
249
|
+
* `max()` over an append-only table, exactly like the map watermark, and for the same reason: no
|
|
250
|
+
* row to update, nothing to contend over, and identical semantics in an engine with no unique
|
|
251
|
+
* constraint. A stale row can never lower the marker.
|
|
252
|
+
*/
|
|
253
|
+
backfillMarker(options: {
|
|
254
|
+
readonly materialization: string;
|
|
255
|
+
readonly entity: string;
|
|
256
|
+
}): Promise<number>;
|
|
257
|
+
/** Append the new marker. Never update, so an interrupted run leaves a readable trail. */
|
|
258
|
+
recordBackfillMarker(options: {
|
|
259
|
+
readonly materialization: string;
|
|
260
|
+
readonly entity: string;
|
|
261
|
+
readonly rows: number;
|
|
262
|
+
}): Promise<void>;
|
|
263
|
+
/**
|
|
264
|
+
* One engine, one transaction, that engine's semantics.
|
|
265
|
+
*
|
|
266
|
+
* There is no distributed transaction here and there will not be one. A client needing two
|
|
267
|
+
* entities to commit together declares that, and the planner puts them in the same group and
|
|
268
|
+
* therefore the same engine - so the requirement turns into a placement constraint instead of a
|
|
269
|
+
* two-phase commit. That is the trade this product makes, and it is why this method is a dozen
|
|
270
|
+
* lines rather than a subsystem.
|
|
271
|
+
*/
|
|
272
|
+
transaction<T>(body: () => Promise<T>): Promise<T>;
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* The bound to open a connection with: the caller's, in milliseconds, or this adapter's default.
|
|
276
|
+
*
|
|
277
|
+
* **`pg` does not read `connect_timeout` from a connection string, and finding that out is the
|
|
278
|
+
* whole reason this function exists.** `pg-connection-string` parses the parameter into a
|
|
279
|
+
* `connect_timeout` property, and `pg` then *overwrites* that property from
|
|
280
|
+
* `connectionTimeoutMillis` - so the value a caller wrote into their DSN reaches the JavaScript
|
|
281
|
+
* client and is discarded. Measured, because it is not the kind of thing a signature admits.
|
|
282
|
+
*
|
|
283
|
+
* The first version of this adapter did what the reference does: apply a default unless the DSN
|
|
284
|
+
* already says `connect_timeout`. In psycopg that is right, because the parameter goes through to
|
|
285
|
+
* libpq and libpq honours it. Here it produced the worst of both - the caller's value ignored by
|
|
286
|
+
* the driver and this adapter's default suppressed by the caller's value - so a DSN that asked for
|
|
287
|
+
* a two-second bound got **no bound at all**, which is the case the bound exists for. Found by the
|
|
288
|
+
* test that asserts the caller's value wins, which failed by hanging until its own deadline fired.
|
|
289
|
+
*
|
|
290
|
+
* So the parameter is translated rather than deferred to. The caller's decision is honoured and a
|
|
291
|
+
* bound always exists, which are the two properties that were meant to hold in the first place.
|
|
292
|
+
*/
|
|
293
|
+
export declare function connectBound(dsn: string): number;
|