camusdb 0.5.0 → 0.7.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/README.md +207 -5
- package/dist/client.d.ts +42 -37
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +117 -166
- package/dist/client.js.map +1 -1
- package/dist/config.d.ts +22 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +19 -0
- package/dist/config.js.map +1 -1
- package/dist/endpoint-pool.d.ts +8 -0
- package/dist/endpoint-pool.d.ts.map +1 -1
- package/dist/endpoint-pool.js +25 -0
- package/dist/endpoint-pool.js.map +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/json.d.ts +4 -3
- package/dist/json.d.ts.map +1 -1
- package/dist/json.js +10 -4
- package/dist/json.js.map +1 -1
- package/dist/node-stats.d.ts +113 -0
- package/dist/node-stats.d.ts.map +1 -0
- package/dist/node-stats.js +90 -0
- package/dist/node-stats.js.map +1 -0
- package/dist/options.d.ts +10 -0
- package/dist/options.d.ts.map +1 -1
- package/dist/options.js +1 -0
- package/dist/options.js.map +1 -1
- package/dist/pipeline.d.ts +126 -0
- package/dist/pipeline.d.ts.map +1 -0
- package/dist/pipeline.js +363 -0
- package/dist/pipeline.js.map +1 -0
- package/dist/prepared/auto-prepare.d.ts +51 -0
- package/dist/prepared/auto-prepare.d.ts.map +1 -0
- package/dist/prepared/auto-prepare.js +150 -0
- package/dist/prepared/auto-prepare.js.map +1 -0
- package/dist/prepared/policy.d.ts +7 -0
- package/dist/prepared/policy.d.ts.map +1 -1
- package/dist/prepared/policy.js +16 -0
- package/dist/prepared/policy.js.map +1 -1
- package/dist/query-stream.d.ts +4 -1
- package/dist/query-stream.d.ts.map +1 -1
- package/dist/query-stream.js +13 -2
- package/dist/query-stream.js.map +1 -1
- package/dist/retry.d.ts +8 -0
- package/dist/retry.d.ts.map +1 -1
- package/dist/retry.js +12 -1
- package/dist/retry.js.map +1 -1
- package/dist/statements.d.ts.map +1 -1
- package/dist/statements.js +37 -4
- package/dist/statements.js.map +1 -1
- package/dist/telemetry.d.ts +199 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +422 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/transaction.d.ts +60 -5
- package/dist/transaction.d.ts.map +1 -1
- package/dist/transaction.js +124 -24
- package/dist/transaction.js.map +1 -1
- package/dist/transport/authenticating-transport.d.ts +9 -1
- package/dist/transport/authenticating-transport.d.ts.map +1 -1
- package/dist/transport/authenticating-transport.js +13 -0
- package/dist/transport/authenticating-transport.js.map +1 -1
- package/dist/transport/grpc/batch-frames.d.ts +23 -5
- package/dist/transport/grpc/batch-frames.d.ts.map +1 -1
- package/dist/transport/grpc/batch-frames.js +29 -8
- package/dist/transport/grpc/batch-frames.js.map +1 -1
- package/dist/transport/grpc/batcher.d.ts +69 -5
- package/dist/transport/grpc/batcher.d.ts.map +1 -1
- package/dist/transport/grpc/batcher.js +217 -10
- package/dist/transport/grpc/batcher.js.map +1 -1
- package/dist/transport/grpc/grpc-transport.d.ts +35 -1
- package/dist/transport/grpc/grpc-transport.d.ts.map +1 -1
- package/dist/transport/grpc/grpc-transport.js +193 -7
- package/dist/transport/grpc/grpc-transport.js.map +1 -1
- package/dist/transport/grpc/messages.d.ts +15 -0
- package/dist/transport/grpc/messages.d.ts.map +1 -1
- package/dist/transport/grpc/messages.js +9 -0
- package/dist/transport/grpc/messages.js.map +1 -1
- package/dist/transport/ndjson-row-source.d.ts +2 -0
- package/dist/transport/ndjson-row-source.d.ts.map +1 -1
- package/dist/transport/ndjson-row-source.js +7 -4
- package/dist/transport/ndjson-row-source.js.map +1 -1
- package/dist/transport/rest-decode.d.ts +14 -4
- package/dist/transport/rest-decode.d.ts.map +1 -1
- package/dist/transport/rest-decode.js +56 -17
- package/dist/transport/rest-decode.js.map +1 -1
- package/dist/transport/rest-transport.d.ts +9 -1
- package/dist/transport/rest-transport.d.ts.map +1 -1
- package/dist/transport/rest-transport.js +24 -0
- package/dist/transport/rest-transport.js.map +1 -1
- package/dist/transport/sequential-pipeline.d.ts +21 -0
- package/dist/transport/sequential-pipeline.d.ts.map +1 -0
- package/dist/transport/sequential-pipeline.js +119 -0
- package/dist/transport/sequential-pipeline.js.map +1 -0
- package/dist/transport/transport.d.ts +94 -0
- package/dist/transport/transport.d.ts.map +1 -1
- package/dist/transport/transport.js +10 -0
- package/dist/transport/transport.js.map +1 -1
- package/dist/values/encode.js +13 -5
- package/dist/values/encode.js.map +1 -1
- package/package.json +10 -4
- package/proto/camus_sql.proto +114 -0
|
@@ -16,7 +16,7 @@ import { CamusResultSet } from '../result-set.js';
|
|
|
16
16
|
* row, is what lets a result with no rows still report its column count, names, and types.
|
|
17
17
|
*/
|
|
18
18
|
export function resultSetFromWire(columns, rows) {
|
|
19
|
-
const { names, types } = readSchema(columns);
|
|
19
|
+
const { names, types, elementTypes } = readSchema(columns);
|
|
20
20
|
if (!Array.isArray(rows) || names.length === 0) {
|
|
21
21
|
return new CamusResultSet(names, types, [], 0);
|
|
22
22
|
}
|
|
@@ -30,25 +30,33 @@ export function resultSetFromWire(columns, rows) {
|
|
|
30
30
|
const base = r * columnCount;
|
|
31
31
|
const limit = Math.min(columnCount, row.length);
|
|
32
32
|
for (let c = 0; c < limit; c++) {
|
|
33
|
-
cells[base + c] = decodeCell(row[c], types[c]);
|
|
33
|
+
cells[base + c] = decodeCell(row[c], types[c], elementTypes[c]);
|
|
34
34
|
}
|
|
35
35
|
// Any position the row omitted keeps the null the array was filled with.
|
|
36
36
|
}
|
|
37
37
|
return new CamusResultSet(names, types, cells, rowCount);
|
|
38
38
|
}
|
|
39
|
-
/** The output column names and
|
|
39
|
+
/** The output column names, declared types, and array element types of a `columns` element. */
|
|
40
40
|
export function readSchema(columns) {
|
|
41
41
|
if (!Array.isArray(columns))
|
|
42
|
-
return { names: [], types: [] };
|
|
42
|
+
return { names: [], types: [], elementTypes: [] };
|
|
43
43
|
const names = new Array(columns.length);
|
|
44
44
|
const types = new Array(columns.length);
|
|
45
|
+
const elementTypes = new Array(columns.length);
|
|
45
46
|
for (let i = 0; i < columns.length; i++) {
|
|
46
47
|
const column = columns[i];
|
|
47
48
|
names[i] = typeof column?.name === 'string' ? column.name : '';
|
|
48
49
|
const type = asNumber(column?.type, ColumnType.Null);
|
|
49
50
|
types[i] = isColumnType(type) ? type : ColumnType.Null;
|
|
51
|
+
// An array of arrays is not a column type, so a nested element type is read as unknown rather
|
|
52
|
+
// than trusted.
|
|
53
|
+
const elementType = asNumber(column?.elementType, ColumnType.Null);
|
|
54
|
+
elementTypes[i] =
|
|
55
|
+
types[i] === ColumnType.Array && isColumnType(elementType) && elementType !== ColumnType.Array
|
|
56
|
+
? elementType
|
|
57
|
+
: ColumnType.Null;
|
|
50
58
|
}
|
|
51
|
-
return { names, types };
|
|
59
|
+
return { names, types, elementTypes };
|
|
52
60
|
}
|
|
53
61
|
/**
|
|
54
62
|
* Decodes one positional cell against its declared type.
|
|
@@ -58,8 +66,11 @@ export function readSchema(columns) {
|
|
|
58
66
|
* exact, which it always is for a real column reference. A scalar that arrives as a JSON-native
|
|
59
67
|
* value is read by its token instead, so an over-broad inferred type on an expression column — a
|
|
60
68
|
* numeric projection reported as a string, say — still round-trips.
|
|
69
|
+
*
|
|
70
|
+
* `elementType` is the schema's element type for an `Array` column, and `Null` when the server did
|
|
71
|
+
* not report one.
|
|
61
72
|
*/
|
|
62
|
-
export function decodeCell(cell, declared) {
|
|
73
|
+
export function decodeCell(cell, declared, elementType = ColumnType.Null) {
|
|
63
74
|
if (cell === null || cell === undefined)
|
|
64
75
|
return NULL_VALUE;
|
|
65
76
|
switch (declared) {
|
|
@@ -76,7 +87,7 @@ export function decodeCell(cell, declared) {
|
|
|
76
87
|
case ColumnType.Numeric:
|
|
77
88
|
return decodeNumericCell(cell, declared);
|
|
78
89
|
case ColumnType.Array:
|
|
79
|
-
return decodeArrayCell(cell);
|
|
90
|
+
return decodeArrayCell(cell, elementType);
|
|
80
91
|
default:
|
|
81
92
|
// A defensive recovery for a gap in the server's type inference: a join projection can
|
|
82
93
|
// report a uuid column's type as a string while still sending the two-int64 wire form. A
|
|
@@ -121,23 +132,40 @@ function decodeNumericCell(cell, declared) {
|
|
|
121
132
|
/**
|
|
122
133
|
* Decodes an array cell.
|
|
123
134
|
*
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
*
|
|
135
|
+
* Elements are plain JSON values in the scalar wire forms: a date as ticks, bytes as base64, a uuid
|
|
136
|
+
* as `[high, low]`. With the column's element type from the schema, each element is decoded as a
|
|
137
|
+
* cell of that type, so the array matches what gRPC returns.
|
|
138
|
+
*
|
|
139
|
+
* A server that predates the schema field reports no element type, and the elements are read from
|
|
140
|
+
* their JSON tokens instead. That is exact for every element type JSON has a token for, and two
|
|
141
|
+
* further cases are inferred safely: a `[high, low]` pair can only be a uuid, and a fraction or a
|
|
142
|
+
* negative zero can only come from a float array, so every number in that array is a float. A
|
|
143
|
+
* date, bytes, or a whole-numbered float array is not reconstructed, and reaches the caller as the
|
|
144
|
+
* string or number the token held.
|
|
128
145
|
*/
|
|
129
|
-
function decodeArrayCell(cell) {
|
|
146
|
+
function decodeArrayCell(cell, elementType) {
|
|
130
147
|
if (!Array.isArray(cell))
|
|
131
148
|
return NULL_VALUE;
|
|
132
149
|
const values = new Array(cell.length);
|
|
133
|
-
|
|
150
|
+
if (elementType !== ColumnType.Null) {
|
|
151
|
+
for (let i = 0; i < cell.length; i++)
|
|
152
|
+
values[i] = decodeCell(cell[i], elementType);
|
|
153
|
+
return { type: ColumnType.Array, arrayValues: values, arrayElementType: elementType };
|
|
154
|
+
}
|
|
155
|
+
const numberType = cell.some(isFloatToken) ? ColumnType.Float64 : ColumnType.Null;
|
|
156
|
+
let inferred = ColumnType.Null;
|
|
134
157
|
for (let i = 0; i < cell.length; i++) {
|
|
135
|
-
const
|
|
158
|
+
const item = cell[i];
|
|
159
|
+
const decoded = Array.isArray(item) && item.length === 2 ? decodeUuidCell(item) : decodeScalarByToken(item, numberType);
|
|
136
160
|
if (decoded.type !== ColumnType.Null)
|
|
137
|
-
|
|
161
|
+
inferred = decoded.type;
|
|
138
162
|
values[i] = decoded;
|
|
139
163
|
}
|
|
140
|
-
return { type: ColumnType.Array, arrayValues: values, arrayElementType:
|
|
164
|
+
return { type: ColumnType.Array, arrayValues: values, arrayElementType: inferred };
|
|
165
|
+
}
|
|
166
|
+
/** True for a JSON number an `int64` cannot hold: a fraction, or a negative zero. */
|
|
167
|
+
function isFloatToken(item) {
|
|
168
|
+
return typeof item === 'number' && (!Number.isInteger(item) || Object.is(item, -0));
|
|
141
169
|
}
|
|
142
170
|
function decodeScalarByToken(cell, declared) {
|
|
143
171
|
switch (typeof cell) {
|
|
@@ -146,10 +174,13 @@ function decodeScalarByToken(cell, declared) {
|
|
|
146
174
|
case 'boolean':
|
|
147
175
|
return { type: ColumnType.Bool, boolValue: cell };
|
|
148
176
|
case 'bigint':
|
|
177
|
+
if (declared === ColumnType.Float64 || declared === ColumnType.Float32) {
|
|
178
|
+
return decodeFloat(Number(cell), declared);
|
|
179
|
+
}
|
|
149
180
|
return { type: ColumnType.Integer64, longValue: cell };
|
|
150
181
|
case 'number':
|
|
151
182
|
if (declared === ColumnType.Float64 || declared === ColumnType.Float32) {
|
|
152
|
-
return
|
|
183
|
+
return decodeFloat(cell, declared);
|
|
153
184
|
}
|
|
154
185
|
return Number.isInteger(cell)
|
|
155
186
|
? { type: ColumnType.Integer64, longValue: BigInt(cell) }
|
|
@@ -158,6 +189,14 @@ function decodeScalarByToken(cell, declared) {
|
|
|
158
189
|
return NULL_VALUE;
|
|
159
190
|
}
|
|
160
191
|
}
|
|
192
|
+
/**
|
|
193
|
+
* A float cell. The server writes a `float32` as the shortest text that names it, which read as a
|
|
194
|
+
* double is a nearby double rather than the stored value: `-9.321863E+23` is not a `float32`.
|
|
195
|
+
* Rounding it back to single precision recovers the stored value, which is what gRPC returns.
|
|
196
|
+
*/
|
|
197
|
+
function decodeFloat(value, declared) {
|
|
198
|
+
return { type: declared, floatValue: declared === ColumnType.Float32 ? Math.fround(value) : value };
|
|
199
|
+
}
|
|
161
200
|
/**
|
|
162
201
|
* An `id` cell that did not arrive as a string. The server always sends one as text, so this is a
|
|
163
202
|
* defence against a malformed reply rather than a path a healthy server takes.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rest-decode.js","sourceRoot":"","sources":["../../src/transport/rest-decode.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAgB,EAAE,IAAa;IAC/D,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"rest-decode.js","sourceRoot":"","sources":["../../src/transport/rest-decode.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,10 +6,11 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import type { CamusTokenProvider } from '../auth/token-provider.js';
|
|
8
8
|
import type { CamusEndpointPool } from '../endpoint-pool.js';
|
|
9
|
+
import type { CamusNodeStats } from '../node-stats.js';
|
|
9
10
|
import type { CamusTransactionOptions } from '../options.js';
|
|
10
11
|
import { CamusResultSet } from '../result-set.js';
|
|
11
12
|
import type { CamusRowSource } from '../row-source.js';
|
|
12
|
-
import type { CamusBranchRow, CamusTransport, NonQueryTransportResult, PreparedStatementInfo, QueryTransportResult, StartTransactionResult, TransportInsertRequest, TransportSqlRequest } from './transport.js';
|
|
13
|
+
import type { CamusBranchRow, CamusTransport, NonQueryTransportResult, PipelineTransportResult, PreparedStatementInfo, QueryTransportResult, StartTransactionResult, TransportInsertRequest, TransportPipelineRequest, TransportSqlRequest } from './transport.js';
|
|
13
14
|
/**
|
|
14
15
|
* The REST and JSON transport, and the default.
|
|
15
16
|
*
|
|
@@ -30,10 +31,17 @@ export declare class RestTransport implements CamusTransport {
|
|
|
30
31
|
executeQueryStream(request: TransportSqlRequest): Promise<CamusRowSource>;
|
|
31
32
|
private executeQueryStreamCore;
|
|
32
33
|
executeNonQuery(request: TransportSqlRequest): Promise<NonQueryTransportResult>;
|
|
34
|
+
/** REST has no frame to pack a transaction into, so a pipeline costs one request per step here. */
|
|
35
|
+
executePipeline(request: TransportPipelineRequest): Promise<PipelineTransportResult>;
|
|
33
36
|
private executeNonQueryCore;
|
|
34
37
|
insert(request: TransportInsertRequest): Promise<number>;
|
|
35
38
|
executeDdl(request: TransportSqlRequest): Promise<boolean>;
|
|
36
39
|
ping(endpoint: string, timeoutSeconds: number, signal?: AbortSignal): Promise<boolean>;
|
|
40
|
+
/**
|
|
41
|
+
* Reads `GET /v1/admin/stats`. The server answers with the `{status, code, message}` envelope
|
|
42
|
+
* and the stats fields beside it.
|
|
43
|
+
*/
|
|
44
|
+
getNodeStats(endpoint: string, timeoutSeconds: number, signal?: AbortSignal): Promise<CamusNodeStats>;
|
|
37
45
|
createDatabase(endpoint: string, database: string, ifNotExists: boolean, timeoutSeconds: number, signal?: AbortSignal): Promise<void>;
|
|
38
46
|
/**
|
|
39
47
|
* Creates a copy-on-write branch.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rest-transport.d.ts","sourceRoot":"","sources":["../../src/transport/rest-transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAMpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAK7D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAG7D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAYvD,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"rest-transport.d.ts","sourceRoot":"","sources":["../../src/transport/rest-transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ import { CamusProtocol } from '../config.js';
|
|
|
10
10
|
import { CamusError } from '../errors.js';
|
|
11
11
|
import { CamusErrorCode } from '../error-codes.js';
|
|
12
12
|
import { asBigInt, asNumber, parseLossless } from '../json.js';
|
|
13
|
+
import { nodeStatsFromWire } from '../node-stats.js';
|
|
13
14
|
import { setOwn } from '../own-record.js';
|
|
14
15
|
import { bindPositional } from '../prepared/binder.js';
|
|
15
16
|
import { CamusResultSet } from '../result-set.js';
|
|
@@ -20,6 +21,7 @@ import { NDJSON_CONTENT_TYPE, NdjsonRowSource } from './ndjson-row-source.js';
|
|
|
20
21
|
import { resultSetFromWire } from './rest-decode.js';
|
|
21
22
|
import { RestPreparedStatementCache } from './rest-prepared-cache.js';
|
|
22
23
|
import { hasTransaction } from './transport.js';
|
|
24
|
+
import { runSequentialPipeline } from './sequential-pipeline.js';
|
|
23
25
|
/**
|
|
24
26
|
* The REST and JSON transport, and the default.
|
|
25
27
|
*
|
|
@@ -121,6 +123,10 @@ export class RestTransport {
|
|
|
121
123
|
executeNonQuery(request) {
|
|
122
124
|
return this.withPrepared(request, (binding) => this.executeNonQueryCore(request, binding));
|
|
123
125
|
}
|
|
126
|
+
/** REST has no frame to pack a transaction into, so a pipeline costs one request per step here. */
|
|
127
|
+
executePipeline(request) {
|
|
128
|
+
return runSequentialPipeline(this, request);
|
|
129
|
+
}
|
|
124
130
|
async executeNonQueryCore(request, binding) {
|
|
125
131
|
const body = await this.post(request.endpoint, ['execute-sql-non-query'], buildNonQueryBody(request, binding), request.timeoutSeconds, request.signal);
|
|
126
132
|
// `columns` is present only for a write with RETURNING whose rows were not discarded. The rows
|
|
@@ -172,6 +178,24 @@ export class RestTransport {
|
|
|
172
178
|
});
|
|
173
179
|
return body.status === 'ok';
|
|
174
180
|
}
|
|
181
|
+
/**
|
|
182
|
+
* Reads `GET /v1/admin/stats`. The server answers with the `{status, code, message}` envelope
|
|
183
|
+
* and the stats fields beside it.
|
|
184
|
+
*/
|
|
185
|
+
async getNodeStats(endpoint, timeoutSeconds, signal) {
|
|
186
|
+
const body = await sendJson(this.pool, {
|
|
187
|
+
endpoint,
|
|
188
|
+
path: ['v1', 'admin', 'stats'],
|
|
189
|
+
method: 'GET',
|
|
190
|
+
token: await this.token(signal),
|
|
191
|
+
timeoutSeconds,
|
|
192
|
+
signal,
|
|
193
|
+
});
|
|
194
|
+
if (body.status !== 'ok') {
|
|
195
|
+
throw new CamusError(body.code ?? CamusErrorCode.Generic, body.message ?? 'Node stats failed');
|
|
196
|
+
}
|
|
197
|
+
return nodeStatsFromWire(endpoint, body);
|
|
198
|
+
}
|
|
175
199
|
// ─── Database administration ──────────────────────────────────────────────
|
|
176
200
|
async createDatabase(endpoint, database, ifNotExists, timeoutSeconds, signal) {
|
|
177
201
|
const body = await this.post(endpoint, ['create-db'], { databaseName: database, ifNotExists }, timeoutSeconds, signal);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rest-transport.js","sourceRoot":"","sources":["../../src/transport/rest-transport.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rest-transport.js","sourceRoot":"","sources":["../../src/transport/rest-transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is part of CamusDB
|
|
3
|
+
*
|
|
4
|
+
* For the full copyright and license information, please view the LICENSE.txt
|
|
5
|
+
* file that was distributed with this source code.
|
|
6
|
+
*/
|
|
7
|
+
import type { CamusTransport, PipelineTransportResult, TransportPipelineRequest } from './transport.js';
|
|
8
|
+
/**
|
|
9
|
+
* Runs a `TransportPipelineRequest` one exchange per step over a transport's ordinary calls:
|
|
10
|
+
* `BEGIN`, each statement in order, then the commit.
|
|
11
|
+
*
|
|
12
|
+
* It is the fallback that the pipeline API promises when the transport cannot send the request as
|
|
13
|
+
* one exchange. That is REST always, and gRPC against a server that announced no pipeline contract.
|
|
14
|
+
* The caller gets the same outcome shape either way, and only the exchange count differs.
|
|
15
|
+
*
|
|
16
|
+
* A failed statement ends the transaction on the server, which rolls it back. So the statements
|
|
17
|
+
* after it are not sent. They are reported with that same failure, which is in substance what the
|
|
18
|
+
* server would answer them with. The commit is then not tried, and it reports the failure too.
|
|
19
|
+
*/
|
|
20
|
+
export declare function runSequentialPipeline(transport: CamusTransport, request: TransportPipelineRequest): Promise<PipelineTransportResult>;
|
|
21
|
+
//# sourceMappingURL=sequential-pipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sequential-pipeline.d.ts","sourceRoot":"","sources":["../../src/transport/sequential-pipeline.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,cAAc,EAEd,uBAAuB,EAEvB,wBAAwB,EAEzB,MAAM,gBAAgB,CAAC;AAExB;;;;;;;;;;;GAWG;AACH,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,cAAc,EACzB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,uBAAuB,CAAC,CAkHlC"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is part of CamusDB
|
|
3
|
+
*
|
|
4
|
+
* For the full copyright and license information, please view the LICENSE.txt
|
|
5
|
+
* file that was distributed with this source code.
|
|
6
|
+
*/
|
|
7
|
+
import { CamusError } from '../errors.js';
|
|
8
|
+
import { CamusErrorCode } from '../error-codes.js';
|
|
9
|
+
/**
|
|
10
|
+
* Runs a `TransportPipelineRequest` one exchange per step over a transport's ordinary calls:
|
|
11
|
+
* `BEGIN`, each statement in order, then the commit.
|
|
12
|
+
*
|
|
13
|
+
* It is the fallback that the pipeline API promises when the transport cannot send the request as
|
|
14
|
+
* one exchange. That is REST always, and gRPC against a server that announced no pipeline contract.
|
|
15
|
+
* The caller gets the same outcome shape either way, and only the exchange count differs.
|
|
16
|
+
*
|
|
17
|
+
* A failed statement ends the transaction on the server, which rolls it back. So the statements
|
|
18
|
+
* after it are not sent. They are reported with that same failure, which is in substance what the
|
|
19
|
+
* server would answer them with. The commit is then not tried, and it reports the failure too.
|
|
20
|
+
*/
|
|
21
|
+
export async function runSequentialPipeline(transport, request) {
|
|
22
|
+
let exchanges = 0;
|
|
23
|
+
let started;
|
|
24
|
+
let txnIdPT = request.txnIdPT;
|
|
25
|
+
let txnIdCounter = request.txnIdCounter;
|
|
26
|
+
let streamSlot = request.streamSlot;
|
|
27
|
+
if (request.start !== undefined) {
|
|
28
|
+
try {
|
|
29
|
+
started = await transport.startTransaction(request.endpoint, request.database, request.start, request.timeoutSeconds, request.signal);
|
|
30
|
+
exchanges++;
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
// A rejected credential is thrown and not reported, so the authenticating wrapper can renew
|
|
34
|
+
// it and replay. Nothing ran, so the replay is safe.
|
|
35
|
+
if (isCancelled(request) || isAuthenticationFailure(error))
|
|
36
|
+
throw error;
|
|
37
|
+
const failure = toError(error);
|
|
38
|
+
return {
|
|
39
|
+
startFailure: failure,
|
|
40
|
+
statements: request.statements.map(() => ({ failure })),
|
|
41
|
+
committed: false,
|
|
42
|
+
commitFailure: request.commit ? failure : undefined,
|
|
43
|
+
exchanges,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
txnIdPT = started.txnIdPT;
|
|
47
|
+
txnIdCounter = started.txnIdCounter;
|
|
48
|
+
streamSlot = started.streamSlot;
|
|
49
|
+
}
|
|
50
|
+
const outcomes = [];
|
|
51
|
+
let first;
|
|
52
|
+
for (const statement of request.statements) {
|
|
53
|
+
if (first !== undefined) {
|
|
54
|
+
outcomes.push({ failure: first });
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
const sql = {
|
|
58
|
+
endpoint: request.endpoint,
|
|
59
|
+
database: request.database,
|
|
60
|
+
sql: statement.sql,
|
|
61
|
+
parameters: statement.parameters,
|
|
62
|
+
txnIdPT,
|
|
63
|
+
txnIdCounter,
|
|
64
|
+
streamSlot,
|
|
65
|
+
timeoutSeconds: request.timeoutSeconds,
|
|
66
|
+
prepared: statement.prepared,
|
|
67
|
+
routingAcceptVersion: statement.routingAcceptVersion,
|
|
68
|
+
...(statement.discardReturningRows === true ? { discardReturningRows: true } : {}),
|
|
69
|
+
signal: request.signal,
|
|
70
|
+
};
|
|
71
|
+
try {
|
|
72
|
+
outcomes.push(statement.kind === 'query'
|
|
73
|
+
? { query: await transport.executeQuery(sql) }
|
|
74
|
+
: { nonQuery: await transport.executeNonQuery(sql) });
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
if (isCancelled(request))
|
|
78
|
+
throw error;
|
|
79
|
+
first = toError(error);
|
|
80
|
+
outcomes.push({ failure: first });
|
|
81
|
+
}
|
|
82
|
+
exchanges++;
|
|
83
|
+
}
|
|
84
|
+
if (!request.commit)
|
|
85
|
+
return { started, statements: outcomes, committed: false, exchanges };
|
|
86
|
+
if (first !== undefined) {
|
|
87
|
+
return { started, statements: outcomes, committed: false, commitFailure: first, exchanges };
|
|
88
|
+
}
|
|
89
|
+
if (txnIdPT === undefined || txnIdCounter === undefined) {
|
|
90
|
+
const failure = new CamusError(CamusErrorCode.Generic, 'The pipeline has no transaction to commit.');
|
|
91
|
+
return { started, statements: outcomes, committed: false, commitFailure: failure, exchanges };
|
|
92
|
+
}
|
|
93
|
+
try {
|
|
94
|
+
await transport.finalizeTransaction(true, request.endpoint, request.database, txnIdPT, txnIdCounter, streamSlot, request.timeoutSeconds, request.signal);
|
|
95
|
+
return { started, statements: outcomes, committed: true, exchanges: exchanges + 1 };
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
if (isCancelled(request))
|
|
99
|
+
throw error;
|
|
100
|
+
return {
|
|
101
|
+
started,
|
|
102
|
+
statements: outcomes,
|
|
103
|
+
committed: false,
|
|
104
|
+
commitFailure: toError(error),
|
|
105
|
+
exchanges: exchanges + 1,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/** True when the caller ended the call. That is a failure of the whole call, so it is thrown. */
|
|
110
|
+
function isCancelled(request) {
|
|
111
|
+
return request.signal?.aborted === true;
|
|
112
|
+
}
|
|
113
|
+
function isAuthenticationFailure(error) {
|
|
114
|
+
return CamusError.is(error) && error.code === CamusErrorCode.AuthenticationFailed;
|
|
115
|
+
}
|
|
116
|
+
function toError(error) {
|
|
117
|
+
return error instanceof Error ? error : new Error(String(error));
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=sequential-pipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sequential-pipeline.js","sourceRoot":"","sources":["../../src/transport/sequential-pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* file that was distributed with this source code.
|
|
6
6
|
*/
|
|
7
7
|
import type { CamusCacheMetadata } from '../cache.js';
|
|
8
|
+
import type { CamusNodeStats } from '../node-stats.js';
|
|
8
9
|
import type { ColumnValue } from '../column-value.js';
|
|
9
10
|
import type { CamusProtocol } from '../config.js';
|
|
10
11
|
import type { CamusTransactionOptions } from '../options.js';
|
|
@@ -121,6 +122,87 @@ export interface NonQueryTransportResult {
|
|
|
121
122
|
*/
|
|
122
123
|
readonly returning?: CamusResultSet | undefined;
|
|
123
124
|
}
|
|
125
|
+
/** What one pipelined statement produces: a result set, or an affected-row count. */
|
|
126
|
+
export type PipelineStatementKind = 'query' | 'nonQuery';
|
|
127
|
+
/**
|
|
128
|
+
* One statement of a `TransportPipelineRequest`. It joins the pipeline's transaction, so it carries
|
|
129
|
+
* no handle of its own. Everything else is what a `TransportSqlRequest` carries for a statement
|
|
130
|
+
* inside a transaction.
|
|
131
|
+
*/
|
|
132
|
+
export interface TransportPipelineStatement {
|
|
133
|
+
readonly kind: PipelineStatementKind;
|
|
134
|
+
readonly sql: string;
|
|
135
|
+
readonly parameters?: ReadonlyMap<string, ColumnValue> | undefined;
|
|
136
|
+
/** See `TransportSqlRequest.prepared`. */
|
|
137
|
+
readonly prepared: boolean;
|
|
138
|
+
/** See `TransportSqlRequest.discardReturningRows`. */
|
|
139
|
+
readonly discardReturningRows?: boolean | undefined;
|
|
140
|
+
/** See `TransportSqlRequest.routingAcceptVersion`. */
|
|
141
|
+
readonly routingAcceptVersion: number;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Several statements of one transaction, handed to a transport together and answered together.
|
|
145
|
+
*
|
|
146
|
+
* The steps are: the transaction's `BEGIN` first when `start` is set, then the statements in
|
|
147
|
+
* order, then a commit when `commit` is set. The commit happens only if every statement succeeded.
|
|
148
|
+
* A transport that can send the whole request as one exchange does so. That is gRPC, to a server
|
|
149
|
+
* that reads the pipeline contract. Any other transport runs it one exchange per step with the same
|
|
150
|
+
* outcome shape, so the caller never has to know.
|
|
151
|
+
*/
|
|
152
|
+
export interface TransportPipelineRequest {
|
|
153
|
+
readonly endpoint: string;
|
|
154
|
+
readonly database: string;
|
|
155
|
+
/**
|
|
156
|
+
* The options of the transaction to begin as the first step. It is `undefined` when the
|
|
157
|
+
* transaction that `txnIdPT` and `txnIdCounter` name has already begun.
|
|
158
|
+
*/
|
|
159
|
+
readonly start?: CamusTransactionOptions | undefined;
|
|
160
|
+
/** The transaction every statement joins, when it has already begun. See `start`. */
|
|
161
|
+
readonly txnIdPT?: bigint | undefined;
|
|
162
|
+
readonly txnIdCounter?: number | undefined;
|
|
163
|
+
/** See `TransportSqlRequest.streamSlot`. */
|
|
164
|
+
readonly streamSlot?: number | undefined;
|
|
165
|
+
readonly statements: readonly TransportPipelineStatement[];
|
|
166
|
+
/** Commit the transaction after the statements, but only if every one of them succeeded. */
|
|
167
|
+
readonly commit: boolean;
|
|
168
|
+
readonly timeoutSeconds: number;
|
|
169
|
+
readonly signal?: AbortSignal | undefined;
|
|
170
|
+
}
|
|
171
|
+
/** The outcome of one pipelined statement. Exactly one of the three fields is set. */
|
|
172
|
+
export interface PipelineStatementOutcome {
|
|
173
|
+
readonly query?: QueryTransportResult | undefined;
|
|
174
|
+
readonly nonQuery?: NonQueryTransportResult | undefined;
|
|
175
|
+
readonly failure?: Error | undefined;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* What a `TransportPipelineRequest` came back with, step by step.
|
|
179
|
+
*
|
|
180
|
+
* A failed step is reported here and not thrown. The steps after it were still answered, by the
|
|
181
|
+
* server or by the transport for it, and the caller owns one result per statement. Only a failure
|
|
182
|
+
* of the whole call is thrown: a cancellation, a deadline, or a transport fault before anything was
|
|
183
|
+
* sent.
|
|
184
|
+
*/
|
|
185
|
+
export interface PipelineTransportResult {
|
|
186
|
+
/** The transaction the pipeline began, when `start` was set and the `BEGIN` succeeded. */
|
|
187
|
+
readonly started?: StartTransactionResult | undefined;
|
|
188
|
+
/** Why the `BEGIN` failed. Every statement and the commit then carry the same failure. */
|
|
189
|
+
readonly startFailure?: Error | undefined;
|
|
190
|
+
readonly statements: readonly PipelineStatementOutcome[];
|
|
191
|
+
/** True when the pipeline asked for a commit and the transaction committed. */
|
|
192
|
+
readonly committed: boolean;
|
|
193
|
+
/**
|
|
194
|
+
* Why the commit did not happen: the first failed step, or the commit's own failure. It is
|
|
195
|
+
* `undefined` when no commit was asked for, or when the commit succeeded.
|
|
196
|
+
*/
|
|
197
|
+
readonly commitFailure?: Error | undefined;
|
|
198
|
+
/**
|
|
199
|
+
* The stream messages (gRPC) or HTTP round trips this pipeline cost. It is the number that the
|
|
200
|
+
* pipeline exists to lower.
|
|
201
|
+
*/
|
|
202
|
+
readonly exchanges: number;
|
|
203
|
+
}
|
|
204
|
+
/** The first thing that went wrong in a pipeline, in step order, or `undefined`. */
|
|
205
|
+
export declare function firstPipelineFailure(result: PipelineTransportResult): Error | undefined;
|
|
124
206
|
/** A statement the server registered: the placeholder names it declares, in binding order. */
|
|
125
207
|
export interface PreparedStatementInfo {
|
|
126
208
|
readonly parameterNames: readonly string[];
|
|
@@ -168,6 +250,16 @@ export interface CamusTransport {
|
|
|
168
250
|
* `RETURNING` list unless the request set `discardReturningRows`.
|
|
169
251
|
*/
|
|
170
252
|
executeNonQuery(request: TransportSqlRequest): Promise<NonQueryTransportResult>;
|
|
253
|
+
/**
|
|
254
|
+
* Runs several statements of one transaction and answers them together. The `BEGIN` can come
|
|
255
|
+
* first and a commit can come last.
|
|
256
|
+
*
|
|
257
|
+
* A transport that can send the request as one exchange does so. Any other runs it one exchange
|
|
258
|
+
* per step, with `runSequentialPipeline`. A failed step is reported in the result and not thrown,
|
|
259
|
+
* because every step gets an outcome. Only a failure of the whole call is thrown. By design, this
|
|
260
|
+
* is not "exactly one round trip" like the other methods: the result reports the exchange count.
|
|
261
|
+
*/
|
|
262
|
+
executePipeline(request: TransportPipelineRequest): Promise<PipelineTransportResult>;
|
|
171
263
|
/**
|
|
172
264
|
* Inserts one row through the server's typed row-level surface — the same operation `INSERT INTO`
|
|
173
265
|
* performs, written as a table plus a column-to-value map instead of SQL text.
|
|
@@ -199,6 +291,8 @@ export interface CamusTransport {
|
|
|
199
291
|
closePrepared(endpoint: string, database: string, sql: string, signal?: AbortSignal): Promise<void>;
|
|
200
292
|
/** A liveness check. Reports true when the server answers. */
|
|
201
293
|
ping(endpoint: string, timeoutSeconds: number, signal?: AbortSignal): Promise<boolean>;
|
|
294
|
+
/** The disk, CPU, and memory of the node at `endpoint`. */
|
|
295
|
+
getNodeStats(endpoint: string, timeoutSeconds: number, signal?: AbortSignal): Promise<CamusNodeStats>;
|
|
202
296
|
/** Creates a database. It is a single attempt: the caller owns the transient-retry loop. */
|
|
203
297
|
createDatabase(endpoint: string, database: string, ifNotExists: boolean, timeoutSeconds: number, signal?: AbortSignal): Promise<void>;
|
|
204
298
|
/** Creates a copy-on-write branch database. A single attempt, like `createDatabase`. */
|