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.
Files changed (104) hide show
  1. package/README.md +207 -5
  2. package/dist/client.d.ts +42 -37
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +117 -166
  5. package/dist/client.js.map +1 -1
  6. package/dist/config.d.ts +22 -0
  7. package/dist/config.d.ts.map +1 -1
  8. package/dist/config.js +19 -0
  9. package/dist/config.js.map +1 -1
  10. package/dist/endpoint-pool.d.ts +8 -0
  11. package/dist/endpoint-pool.d.ts.map +1 -1
  12. package/dist/endpoint-pool.js +25 -0
  13. package/dist/endpoint-pool.js.map +1 -1
  14. package/dist/index.d.ts +6 -1
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +4 -0
  17. package/dist/index.js.map +1 -1
  18. package/dist/json.d.ts +4 -3
  19. package/dist/json.d.ts.map +1 -1
  20. package/dist/json.js +10 -4
  21. package/dist/json.js.map +1 -1
  22. package/dist/node-stats.d.ts +113 -0
  23. package/dist/node-stats.d.ts.map +1 -0
  24. package/dist/node-stats.js +90 -0
  25. package/dist/node-stats.js.map +1 -0
  26. package/dist/options.d.ts +10 -0
  27. package/dist/options.d.ts.map +1 -1
  28. package/dist/options.js +1 -0
  29. package/dist/options.js.map +1 -1
  30. package/dist/pipeline.d.ts +126 -0
  31. package/dist/pipeline.d.ts.map +1 -0
  32. package/dist/pipeline.js +363 -0
  33. package/dist/pipeline.js.map +1 -0
  34. package/dist/prepared/auto-prepare.d.ts +51 -0
  35. package/dist/prepared/auto-prepare.d.ts.map +1 -0
  36. package/dist/prepared/auto-prepare.js +150 -0
  37. package/dist/prepared/auto-prepare.js.map +1 -0
  38. package/dist/prepared/policy.d.ts +7 -0
  39. package/dist/prepared/policy.d.ts.map +1 -1
  40. package/dist/prepared/policy.js +16 -0
  41. package/dist/prepared/policy.js.map +1 -1
  42. package/dist/query-stream.d.ts +4 -1
  43. package/dist/query-stream.d.ts.map +1 -1
  44. package/dist/query-stream.js +13 -2
  45. package/dist/query-stream.js.map +1 -1
  46. package/dist/retry.d.ts +8 -0
  47. package/dist/retry.d.ts.map +1 -1
  48. package/dist/retry.js +12 -1
  49. package/dist/retry.js.map +1 -1
  50. package/dist/statements.d.ts.map +1 -1
  51. package/dist/statements.js +37 -4
  52. package/dist/statements.js.map +1 -1
  53. package/dist/telemetry.d.ts +199 -0
  54. package/dist/telemetry.d.ts.map +1 -0
  55. package/dist/telemetry.js +422 -0
  56. package/dist/telemetry.js.map +1 -0
  57. package/dist/transaction.d.ts +60 -5
  58. package/dist/transaction.d.ts.map +1 -1
  59. package/dist/transaction.js +124 -24
  60. package/dist/transaction.js.map +1 -1
  61. package/dist/transport/authenticating-transport.d.ts +9 -1
  62. package/dist/transport/authenticating-transport.d.ts.map +1 -1
  63. package/dist/transport/authenticating-transport.js +13 -0
  64. package/dist/transport/authenticating-transport.js.map +1 -1
  65. package/dist/transport/grpc/batch-frames.d.ts +23 -5
  66. package/dist/transport/grpc/batch-frames.d.ts.map +1 -1
  67. package/dist/transport/grpc/batch-frames.js +29 -8
  68. package/dist/transport/grpc/batch-frames.js.map +1 -1
  69. package/dist/transport/grpc/batcher.d.ts +69 -5
  70. package/dist/transport/grpc/batcher.d.ts.map +1 -1
  71. package/dist/transport/grpc/batcher.js +217 -10
  72. package/dist/transport/grpc/batcher.js.map +1 -1
  73. package/dist/transport/grpc/grpc-transport.d.ts +35 -1
  74. package/dist/transport/grpc/grpc-transport.d.ts.map +1 -1
  75. package/dist/transport/grpc/grpc-transport.js +193 -7
  76. package/dist/transport/grpc/grpc-transport.js.map +1 -1
  77. package/dist/transport/grpc/messages.d.ts +15 -0
  78. package/dist/transport/grpc/messages.d.ts.map +1 -1
  79. package/dist/transport/grpc/messages.js +9 -0
  80. package/dist/transport/grpc/messages.js.map +1 -1
  81. package/dist/transport/ndjson-row-source.d.ts +2 -0
  82. package/dist/transport/ndjson-row-source.d.ts.map +1 -1
  83. package/dist/transport/ndjson-row-source.js +7 -4
  84. package/dist/transport/ndjson-row-source.js.map +1 -1
  85. package/dist/transport/rest-decode.d.ts +14 -4
  86. package/dist/transport/rest-decode.d.ts.map +1 -1
  87. package/dist/transport/rest-decode.js +56 -17
  88. package/dist/transport/rest-decode.js.map +1 -1
  89. package/dist/transport/rest-transport.d.ts +9 -1
  90. package/dist/transport/rest-transport.d.ts.map +1 -1
  91. package/dist/transport/rest-transport.js +24 -0
  92. package/dist/transport/rest-transport.js.map +1 -1
  93. package/dist/transport/sequential-pipeline.d.ts +21 -0
  94. package/dist/transport/sequential-pipeline.d.ts.map +1 -0
  95. package/dist/transport/sequential-pipeline.js +119 -0
  96. package/dist/transport/sequential-pipeline.js.map +1 -0
  97. package/dist/transport/transport.d.ts +94 -0
  98. package/dist/transport/transport.d.ts.map +1 -1
  99. package/dist/transport/transport.js +10 -0
  100. package/dist/transport/transport.js.map +1 -1
  101. package/dist/values/encode.js +13 -5
  102. package/dist/values/encode.js.map +1 -1
  103. package/package.json +10 -4
  104. package/proto/camus_sql.proto +114 -0
package/dist/client.js CHANGED
@@ -11,16 +11,18 @@ import { describeConfig, resolveConnectionString, resolveOptions } from './confi
11
11
  import { CamusError } from './errors.js';
12
12
  import { CamusErrorCode } from './error-codes.js';
13
13
  import { withDefaults } from './options.js';
14
+ import { registerStatement, releaseEvicted, shouldPrepare } from './prepared/auto-prepare.js';
14
15
  import { PrepareDecision } from './prepared/policy.js';
15
16
  import { CamusQueryStream } from './query-stream.js';
16
17
  import { CamusResultSet, RowMapper } from './result-set.js';
17
- import { delay, isRetryable, withRetry } from './retry.js';
18
+ import { delay, isRetryable, retryLoop } from './retry.js';
18
19
  import { selectNextValueStatement } from './sequence.js';
19
20
  import { isValidDatabaseName } from './sql-syntax.js';
20
21
  import { ClientRuntime } from './runtime.js';
21
22
  import { ROUTING_ACCEPT_VERSION } from './routing/advice.js';
22
23
  import { CamusRouteOpKind } from './routing/route-cache.js';
23
24
  import { isDdlStatement, isWriteReturning, isPreparableStatement, runsInOwnTransaction, } from './statements.js';
25
+ import { CamusRetryKind, operationName, recordRetry, startOperation, traced } from './telemetry.js';
24
26
  import { CamusTransaction } from './transaction.js';
25
27
  import { encodeParameters } from './values/encode.js';
26
28
  /**
@@ -153,12 +155,16 @@ export class CamusClient {
153
155
  * 4 MiB with `CADB0550`, before the commit, so the statement stores nothing. Use `queryStream` for
154
156
  * a large result, such as an `INSERT … SELECT … RETURNING` or an `UPDATE` of many rows.
155
157
  */
156
- async query(sql, parameters, options = {}) {
158
+ query(sql, parameters, options = {}) {
159
+ return traced(this.runtime, { operationName: operationName(sql), queryText: sql }, (operation) => this.runQuery(sql, parameters, options, operation));
160
+ }
161
+ async runQuery(sql, parameters, options, operation) {
157
162
  if (isWriteReturning(sql))
158
- return this.queryWriteReturning(sql, parameters, options);
163
+ return this.queryWriteReturning(sql, parameters, options, operation);
159
164
  const encoded = encodeParameters(parameters);
160
165
  const transaction = options.transaction;
161
166
  const route = await this.route(sql, CamusRouteOpKind.Query, transaction, options.signal);
167
+ operation?.setEndpoint(route.endpoint);
162
168
  const request = await this.buildRequest(sql, encoded, route, transaction, options, {
163
169
  negotiateRouting: route.router !== undefined,
164
170
  });
@@ -232,6 +238,18 @@ export class CamusClient {
232
238
  * for it. The stream reports no written-row count, so count the rows as you read them.
233
239
  */
234
240
  async queryStream(sql, parameters, options = {}) {
241
+ // The span ends with the stream: at the last row, at a failed read, or at `close`.
242
+ const operation = startOperation(this.runtime, { operationName: operationName(sql), queryText: sql });
243
+ try {
244
+ const open = () => this.openQueryStream(sql, parameters, options, operation);
245
+ return await (operation === undefined ? open() : operation.run(open));
246
+ }
247
+ catch (error) {
248
+ operation?.fail(error);
249
+ throw error;
250
+ }
251
+ }
252
+ async openQueryStream(sql, parameters, options, operation) {
235
253
  const encoded = encodeParameters(parameters);
236
254
  const transaction = options.transaction;
237
255
  const writeReturning = isWriteReturning(sql);
@@ -239,6 +257,7 @@ export class CamusClient {
239
257
  // trailer carries no routing metadata, so nothing is negotiated or learned. A write with
240
258
  // RETURNING reuses the route learned for the write, which is where the rows live.
241
259
  const route = await this.route(sql, writeReturning ? CamusRouteOpKind.NonQuery : CamusRouteOpKind.Query, transaction, options.signal);
260
+ operation?.setEndpoint(route.endpoint);
242
261
  const request = await this.buildRequest(sql, encoded, route, transaction, options, {
243
262
  negotiateRouting: false,
244
263
  // A read runs in a read-only snapshot with no locking mode, but an autocommit write on the
@@ -248,7 +267,7 @@ export class CamusClient {
248
267
  : undefined,
249
268
  });
250
269
  const source = await this.runtime.transport.executeQueryStream(request);
251
- return new CamusQueryStream(source, this.decodeOptions(options));
270
+ return new CamusQueryStream(source, this.decodeOptions(options), operation);
252
271
  }
253
272
  /**
254
273
  * Runs an `INSERT`, `UPDATE`, or `DELETE` and reports how many rows it changed.
@@ -281,7 +300,10 @@ export class CamusClient {
281
300
  * a rollback cannot undo, so the server refuses it rather than promise a rollback it cannot
282
301
  * deliver, and the driver refuses it before the round trip.
283
302
  */
284
- async executeDdl(sql, options = {}) {
303
+ executeDdl(sql, options = {}) {
304
+ return traced(this.runtime, { operationName: operationName(sql), queryText: sql }, (operation) => this.runDdl(sql, options, operation));
305
+ }
306
+ async runDdl(sql, options, operation) {
285
307
  const transaction = options.transaction;
286
308
  if (transaction !== undefined && runsInOwnTransaction(sql)) {
287
309
  throw new CamusError(CamusErrorCode.StatementNotAllowedInTransaction, 'TRUNCATE runs in its own internal transaction and is refused inside an explicit one. It ' +
@@ -291,6 +313,7 @@ export class CamusClient {
291
313
  const endpoint = transaction !== undefined
292
314
  ? await transaction.ensureStarted(undefined, options.signal)
293
315
  : this.runtime.nextEndpoint();
316
+ operation?.setEndpoint(endpoint);
294
317
  return this.runtime.transport.executeDdl({
295
318
  endpoint,
296
319
  database: this.runtime.database,
@@ -319,27 +342,66 @@ export class CamusClient {
319
342
  * It performs exactly what `INSERT INTO` performs, and takes the same authorization, endpoint
320
343
  * health, and error translation. Use it to avoid building statement text for a hot write path.
321
344
  */
322
- async insert(table, values, options = {}) {
323
- const transaction = options.transaction;
324
- const endpoint = transaction !== undefined
325
- ? await transaction.ensureStarted(undefined, options.signal)
326
- : this.runtime.nextEndpoint();
327
- return this.runtime.transport.insert({
328
- endpoint,
329
- database: this.runtime.database,
330
- table,
331
- values: encodeUnprefixed(values),
332
- timeoutSeconds: options.timeoutSeconds ?? this.runtime.timeoutSeconds,
333
- ...(transaction === undefined
334
- ? {}
335
- : {
336
- txnIdPT: transaction.txnIdPT,
337
- txnIdCounter: transaction.txnIdCounter,
338
- streamSlot: transaction.streamSlot,
339
- }),
340
- signal: options.signal,
345
+ insert(table, values, options = {}) {
346
+ return traced(this.runtime, { operationName: 'INSERT', collection: table }, async (operation) => {
347
+ const transaction = options.transaction;
348
+ const endpoint = transaction !== undefined
349
+ ? await transaction.ensureStarted(undefined, options.signal)
350
+ : this.runtime.nextEndpoint();
351
+ operation?.setEndpoint(endpoint);
352
+ return this.runtime.transport.insert({
353
+ endpoint,
354
+ database: this.runtime.database,
355
+ table,
356
+ values: encodeUnprefixed(values),
357
+ timeoutSeconds: options.timeoutSeconds ?? this.runtime.timeoutSeconds,
358
+ ...(transaction === undefined
359
+ ? {}
360
+ : {
361
+ txnIdPT: transaction.txnIdPT,
362
+ txnIdCounter: transaction.txnIdCounter,
363
+ streamSlot: transaction.streamSlot,
364
+ }),
365
+ signal: options.signal,
366
+ });
341
367
  });
342
368
  }
369
+ /** The endpoints that this client is configured with, in configuration order. */
370
+ get endpoints() {
371
+ return this.runtime.pool.members;
372
+ }
373
+ /**
374
+ * The disk, CPU, and memory of one node. See `CamusNodeStats` for every field.
375
+ *
376
+ * ```ts
377
+ * const stats = await client.nodeStats();
378
+ * const data = stats.dataVolume!;
379
+ *
380
+ * console.log(`${data.availableBytes} bytes free of ${data.totalBytes}`);
381
+ *
382
+ * for (const endpoint of client.endpoints) {
383
+ * const node = await client.nodeStats(endpoint);
384
+ * console.log(`${node.address}: ${node.cpu.processCpuPercent}% CPU`);
385
+ * }
386
+ * ```
387
+ *
388
+ * Without `endpoint`, it asks the next node in the rotation. Each node answers only for itself.
389
+ * An `endpoint` must be one of `endpoints`, so the client's credentials go only to the addresses
390
+ * it was configured with.
391
+ *
392
+ * It is server-level, not scoped to this client's database, and it works over REST
393
+ * (`GET /v1/admin/stats`) and gRPC (`GetNodeStats`). With authentication on, the account needs
394
+ * the superuser attribute or the `MONITOR` privilege (`GRANT MONITOR ON *.* TO <user>`). Any
395
+ * other account gets `CADB0517`.
396
+ *
397
+ * @throws {TypeError} when `endpoint` is not one of `endpoints`.
398
+ */
399
+ nodeStats(endpoint, options = {}) {
400
+ if (endpoint !== undefined && !this.runtime.pool.members.includes(endpoint)) {
401
+ throw new TypeError(`'${endpoint}' is not one of this client's endpoints.`);
402
+ }
403
+ return this.runtime.transport.getNodeStats(endpoint ?? this.runtime.nextEndpoint(), options.timeoutSeconds ?? this.runtime.timeoutSeconds, options.signal);
404
+ }
343
405
  /** Reports whether the server answers. */
344
406
  ping(options = {}) {
345
407
  return this.runtime.transport.ping(this.runtime.nextEndpoint(), options.timeoutSeconds ?? this.runtime.timeoutSeconds, options.signal);
@@ -362,14 +424,20 @@ export class CamusClient {
362
424
  *
363
425
  * With `await using`, a transaction that is left without a commit is rolled back as the block
364
426
  * unwinds.
427
+ *
428
+ * With `deferBegin`, or with learned routing on, `BEGIN` is not sent here. The first statement,
429
+ * or the first `CamusPipeline` send, sends it.
365
430
  */
366
431
  async beginTransaction(options = {}, signal) {
367
432
  const effective = this.resolveTransactionOptions(options);
368
433
  const router = this.runtime.router;
369
- if (router === undefined) {
434
+ if (router === undefined && effective.deferBegin !== true) {
370
435
  // Routing off: begin here, on the rotation, right now.
371
436
  const endpoint = this.runtime.nextEndpoint();
372
- const result = await this.runtime.transport.startTransaction(endpoint, this.runtime.database, effective, this.runtime.timeoutSeconds, signal);
437
+ const result = await traced(this.runtime, { operationName: 'BEGIN' }, (operation) => {
438
+ operation?.setEndpoint(endpoint);
439
+ return this.runtime.transport.startTransaction(endpoint, this.runtime.database, effective, this.runtime.timeoutSeconds, signal);
440
+ });
373
441
  return new CamusTransaction(this.runtime, effective, {
374
442
  txnIdPT: result.txnIdPT,
375
443
  txnIdCounter: result.txnIdCounter,
@@ -380,7 +448,7 @@ export class CamusClient {
380
448
  const deferred = new CamusTransaction(this.runtime, effective);
381
449
  // An explicit affinity begins the transaction here, on the named statement's learned endpoint,
382
450
  // falling back to rotation when nothing is learned. Without one, the first statement chooses.
383
- if (effective.affinity !== undefined) {
451
+ if (router !== undefined && effective.affinity !== undefined) {
384
452
  const learned = router.selectEndpoint(this.runtime.database, effective.affinity, CamusRouteOpKind.Query);
385
453
  await deferred.ensureStarted(learned.endpoint, signal);
386
454
  }
@@ -403,6 +471,9 @@ export class CamusClient {
403
471
  * an exponential back-off. So the function must be safe to run more than once — it must not send
404
472
  * an email, charge a card, or mutate state outside the database on a path that could repeat.
405
473
  *
474
+ * The work can commit the transaction itself with `CamusPipeline.commit`. The transaction is
475
+ * then not committed a second time.
476
+ *
406
477
  * A commit that reports an unresolved outcome is **not** retried this way. That case is resolved
407
478
  * inside `CamusTransaction`, by re-issuing the same commit on the same handle, because replaying
408
479
  * the work could apply an already-durable commit twice.
@@ -412,7 +483,7 @@ export class CamusClient {
412
483
  maxAttempts: options.maxAttempts ?? 5,
413
484
  ...(options.signal === undefined ? {} : { signal: options.signal }),
414
485
  };
415
- return withRetry(async () => {
486
+ return retryLoop(async () => {
416
487
  const transaction = await this.beginTransaction(options.transactionOptions ?? {}, options.signal);
417
488
  let result;
418
489
  try {
@@ -424,10 +495,12 @@ export class CamusClient {
424
495
  }
425
496
  // A commit that lost a conflict leaves nothing to roll back, and one whose outcome was
426
497
  // unknown was already resolved inside `commit`. Either way the transaction is over, and the
427
- // retry loop above decides whether to run the whole unit of work again.
428
- await transaction.commit(options.signal);
498
+ // retry loop above decides whether to run the whole unit of work again. A pipeline that
499
+ // committed the transaction inside the work already did this step.
500
+ if (!transaction.isCommittedByPipeline)
501
+ await transaction.commit(options.signal);
429
502
  return result;
430
- }, retryOptions);
503
+ }, retryOptions, CamusRetryKind.Transaction);
431
504
  }
432
505
  // ─── Prepared statements ──────────────────────────────────────────────────
433
506
  /**
@@ -453,9 +526,9 @@ export class CamusClient {
453
526
  : this.runtime.nextEndpoint();
454
527
  const { decision, evicted } = policy.pin(database, sql);
455
528
  if (decision === PrepareDecision.Register) {
456
- await this.register(endpoint, database, sql, options);
529
+ await registerStatement(this.runtime, endpoint, database, sql, options);
457
530
  }
458
- this.release(endpoint, evicted);
531
+ releaseEvicted(this.runtime, endpoint, evicted);
459
532
  }
460
533
  /** Whether a statement is currently kept prepared for this client's database. */
461
534
  isPrepared(sql) {
@@ -626,13 +699,15 @@ export class CamusClient {
626
699
  * Runs a write and reports its count only. `discardReturningRows` has no effect on a statement
627
700
  * without `RETURNING`, so this sets it on every statement and does not parse the SQL for the clause.
628
701
  */
629
- async executeNonQuery(sql, parameters, options) {
630
- const result = await this.executeNonQueryCore(sql, parameters, options, true);
631
- return { affectedRows: result.affectedRows, routingAdvice: result.routing };
702
+ executeNonQuery(sql, parameters, options) {
703
+ return traced(this.runtime, { operationName: operationName(sql), queryText: sql }, async (operation) => {
704
+ const result = await this.executeNonQueryCore(sql, parameters, options, true, operation);
705
+ return { affectedRows: result.affectedRows, routingAdvice: result.routing };
706
+ });
632
707
  }
633
708
  /** Runs a write with `RETURNING` on the non-query route and maps the rows it sent back. */
634
- async queryWriteReturning(sql, parameters, options) {
635
- const result = await this.executeNonQueryCore(sql, parameters, options, false);
709
+ async queryWriteReturning(sql, parameters, options, operation) {
710
+ const result = await this.executeNonQueryCore(sql, parameters, options, false, operation);
636
711
  // The server decides the shape. A reply without `columns` has nothing to map, but it still
637
712
  // reports the count.
638
713
  const resultSet = result.returning ?? CamusResultSet.EMPTY;
@@ -649,10 +724,11 @@ export class CamusClient {
649
724
  * Runs a write on the non-query route. The endpoint, the negotiation flag, and the learning after
650
725
  * a success follow the same routing rules as the query path.
651
726
  */
652
- async executeNonQueryCore(sql, parameters, options, discardReturningRows) {
727
+ async executeNonQueryCore(sql, parameters, options, discardReturningRows, operation) {
653
728
  const encoded = encodeParameters(parameters);
654
729
  const transaction = options.transaction;
655
730
  const route = await this.route(sql, CamusRouteOpKind.NonQuery, transaction, options.signal);
731
+ operation?.setEndpoint(route.endpoint);
656
732
  const request = await this.buildRequest(sql, encoded, route, transaction, options, {
657
733
  negotiateRouting: route.router !== undefined,
658
734
  autocommitOptions: transaction === undefined ? this.resolveTransactionOptions(options.transactionOptions) : undefined,
@@ -711,7 +787,7 @@ export class CamusClient {
711
787
  sql,
712
788
  parameters,
713
789
  timeoutSeconds: options.timeoutSeconds ?? this.runtime.timeoutSeconds,
714
- prepared: await this.shouldPrepare(sql, route.endpoint, options),
790
+ prepared: await shouldPrepare(this.runtime, sql, route.endpoint, options),
715
791
  routingAcceptVersion: extra.negotiateRouting ? ROUTING_ACCEPT_VERSION : 0,
716
792
  ...(extra.discardReturningRows === true ? { discardReturningRows: true } : {}),
717
793
  ...(transaction === undefined
@@ -726,88 +802,6 @@ export class CamusClient {
726
802
  signal: options.signal,
727
803
  };
728
804
  }
729
- /**
730
- * Whether this execution should name a prepared statement instead of carrying its SQL,
731
- * registering it first when this is the execution that tips it over the threshold.
732
- *
733
- * The registration is awaited rather than started in the background, because the whole point is
734
- * that this execution and the ones after it are cheap. Firing it off and running inline anyway
735
- * would leave a busy statement racing its own warm-up. It costs one extra round trip, once per
736
- * statement per endpoint.
737
- *
738
- * The caller passes the endpoint it already resolved. A REST handle is node-local and the pool
739
- * rotates, so registering against a freshly drawn endpoint would routinely prepare on one node
740
- * and execute on another — correct, because the transport re-registers where it lands, but a
741
- * wasted round trip every single time.
742
- */
743
- async shouldPrepare(sql, endpoint, options) {
744
- const policy = this.runtime.preparedStatements;
745
- if (policy.isDisabled || !isPreparableStatement(sql))
746
- return false;
747
- const { decision, evicted } = policy.decide(this.runtime.database, sql);
748
- this.release(endpoint, evicted);
749
- switch (decision) {
750
- case PrepareDecision.Yes:
751
- return true;
752
- case PrepareDecision.Register:
753
- return this.register(endpoint, this.runtime.database, sql, options);
754
- default:
755
- return false;
756
- }
757
- }
758
- /**
759
- * Registers a statement and records what happened, reporting whether it may now run prepared.
760
- *
761
- * A registration failure never reaches the caller: preparing is an optimization, and the
762
- * statement runs inline exactly as it would have if the driver had not tried. What the failure
763
- * does decide is whether to ask again. A refusal specific to this statement stops asking for that
764
- * statement; anything that says the node has no prepared-statement support at all stops asking
765
- * for every statement, because one round trip per distinct SQL to relearn that is worse than not
766
- * trying. A failure that never reached a verdict — a timeout, an unreachable node — drops the
767
- * entry instead, so one network blip does not cost this statement its registration for the life
768
- * of the process.
769
- */
770
- async register(endpoint, database, sql, options) {
771
- const policy = this.runtime.preparedStatements;
772
- try {
773
- await this.runtime.transport.prepare(endpoint, database, sql, options.timeoutSeconds ?? this.runtime.timeoutSeconds, options.signal);
774
- policy.markPrepared(database, sql);
775
- return true;
776
- }
777
- catch (error) {
778
- // The caller's own cancellation is not a verdict on the statement, but the entry must not be
779
- // left mid-registration, or it would never be reconsidered.
780
- if (options.signal?.aborted === true) {
781
- policy.forget(database, sql);
782
- throw error;
783
- }
784
- // The statement is about to run inline and will report any real problem itself. The only
785
- // decision left here is whether asking again is worth a round trip.
786
- if (CamusError.is(error) && isUnsupported(error)) {
787
- policy.markRefused(database, sql);
788
- policy.disable();
789
- return false;
790
- }
791
- if (declinesStatement(error))
792
- policy.markRefused(database, sql);
793
- else
794
- policy.forget(database, sql);
795
- return false;
796
- }
797
- }
798
- /**
799
- * Releases a statement the policy evicted, so the server stops holding a handle this client has
800
- * stopped using.
801
- *
802
- * It is best effort and off the caller's path: it is bookkeeping, not part of the statement being
803
- * run. It takes the endpoint the caller already resolved rather than drawing a new one, which
804
- * would rotate the pool as a side effect of housekeeping.
805
- */
806
- release(endpoint, evicted) {
807
- if (evicted === undefined)
808
- return;
809
- void this.runtime.transport.closePrepared(endpoint, evicted.database, evicted.sql).catch(() => undefined);
810
- }
811
805
  /**
812
806
  * The effective options for a transaction or an autocommit statement: the caller's explicit knobs
813
807
  * win, then this client's defaults, then the server default for any knob still unset.
@@ -827,6 +821,7 @@ export class CamusClient {
827
821
  catch (error) {
828
822
  if (attempt >= maxAttempts || !isRetryable(error))
829
823
  throw error;
824
+ recordRetry(CamusRetryKind.CreateDatabase, error, { database: this.runtime.database });
830
825
  const base = Math.min(50 * 2 ** (attempt - 1), 800);
831
826
  const jitter = base * 0.25 * (2 * Math.random() - 1);
832
827
  await delay(Math.max(1, base + jitter), signal);
@@ -834,50 +829,6 @@ export class CamusClient {
834
829
  }
835
830
  }
836
831
  }
837
- /**
838
- * The codes that say nothing about the statement itself.
839
- *
840
- * `Generic` covers a call that was sent and then lost, and every failure the driver could not
841
- * classify. The rest name the connection or the principal. A statement that meets one of these is
842
- * left reconsiderable: the next call site asks again.
843
- */
844
- const UNINFORMATIVE_CODES = new Set([
845
- CamusErrorCode.Generic,
846
- CamusErrorCode.EndpointUnreachable,
847
- CamusErrorCode.AuthenticationFailed,
848
- CamusErrorCode.InsufficientPrivilege,
849
- CamusErrorCode.TooManyAuthAttempts,
850
- CamusErrorCode.InsecureTransport,
851
- ]);
852
- /**
853
- * True when the server gave a verdict on this statement, rather than the round trip failing.
854
- *
855
- * Only a verdict is terminal. A retryable condition, a transport failure, and an error the driver
856
- * did not raise itself all leave the question open.
857
- */
858
- function declinesStatement(error) {
859
- if (!CamusError.is(error))
860
- return false;
861
- if (isRetryable(error))
862
- return false;
863
- return !UNINFORMATIVE_CODES.has(error.code);
864
- }
865
- /**
866
- * True when a failure says the node does not implement prepared statements at all, rather than
867
- * declining this particular statement.
868
- *
869
- * Both spellings surface under the generic code, because a server old enough not to have the
870
- * feature is also too old to have a specific code for refusing it. A server that does have it
871
- * declines an individual statement with a `CADB05xx` code instead.
872
- *
873
- * It is a heuristic, and it is only ever used to answer "is asking again worth a round trip?".
874
- * Reading it wrong costs at most one wasted registration attempt per statement, never a failed
875
- * statement.
876
- */
877
- function isUnsupported(error) {
878
- return (error.code === CamusErrorCode.Generic &&
879
- (error.message.includes('404') || error.message.toLowerCase().includes('unimplemented')));
880
- }
881
832
  /**
882
833
  * The typed row insert names columns as they are, with no `@` placeholder prefix, because it binds
883
834
  * to column names rather than to placeholders.
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -8,6 +8,13 @@ import type { CamusCredentials } from './auth/credentials.js';
8
8
  import { CamusEndpointPool } from './endpoint-pool.js';
9
9
  import type { CamusTransactionOptions } from './options.js';
10
10
  import type { DecodeOptions, Int64Mode } from './values/decode.js';
11
+ /**
12
+ * The highest HTTP version that the REST calls ask for, as the .NET driver's `HttpVersion=` names
13
+ * it. Node's `fetch` sends HTTP/1.1 only, so `1.1` is the only value a client accepts. `2` and `3`
14
+ * are part of the type so that the refusal is a clear error at run time, and not a surprise in a
15
+ * connection string shared with a .NET service.
16
+ */
17
+ export type CamusHttpVersion = '1.1' | '2' | '3';
11
18
  /** The wire protocol a client speaks. */
12
19
  export declare const CamusProtocol: {
13
20
  /** The REST and JSON HTTP API. This is the default. */
@@ -123,6 +130,12 @@ export interface CamusClientOptions {
123
130
  * server that announced it reads one. Default true.
124
131
  */
125
132
  readonly requestFrames?: boolean;
133
+ /**
134
+ * The highest HTTP version for the REST calls. Default `1.1`, which is the only version that
135
+ * Node's `fetch` sends. The key exists so that a .NET connection string reads the same here, and
136
+ * `2` and `3` are refused. See `CamusHttpVersion`.
137
+ */
138
+ readonly httpVersion?: CamusHttpVersion;
126
139
  /** The HTTP endpoint for the backup admin API. It is required when `protocol` is `grpc`. */
127
140
  readonly backupEndpoint?: string;
128
141
  /** The backup admin request timeout in seconds. Default 300. */
@@ -143,6 +156,11 @@ export interface CamusClientOptions {
143
156
  readonly defaultTransactionOptions?: CamusTransactionOptions;
144
157
  /** How an `int64` column reaches a caller. Default `auto`. */
145
158
  readonly int64?: Int64Mode;
159
+ /**
160
+ * Whether the driver's spans carry the SQL text as `db.query.text`. Default false, because SQL
161
+ * text with literal values can contain sensitive data. Parameter values are never recorded.
162
+ */
163
+ readonly traceQueryText?: boolean;
146
164
  }
147
165
  /** The settings a client actually runs on, after both input forms are resolved. */
148
166
  export interface ResolvedConfig {
@@ -155,6 +173,8 @@ export interface ResolvedConfig {
155
173
  readonly maxAutoPrepare: number;
156
174
  readonly autoPrepareMinUsages: number;
157
175
  readonly batch: GrpcBatchOptions;
176
+ /** Always `1.1`: a configuration that asks for more is refused when it is resolved. */
177
+ readonly httpVersion: '1.1';
158
178
  readonly backupEndpoint: string | undefined;
159
179
  readonly backupTimeoutSeconds: number;
160
180
  readonly allowInsecureCredentials: boolean;
@@ -163,6 +183,8 @@ export interface ResolvedConfig {
163
183
  readonly routingMaxHintAgeMs: number;
164
184
  readonly defaultTransactionOptions: CamusTransactionOptions;
165
185
  readonly decode: DecodeOptions;
186
+ /** Whether the driver's spans carry the SQL text. */
187
+ readonly traceQueryText: boolean;
166
188
  /** The connection string as written, when the client was built from one. */
167
189
  readonly connectionString: string | undefined;
168
190
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}