@ocoda/event-sourcing-mariadb 4.0.0 → 4.1.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 CHANGED
@@ -23,7 +23,9 @@
23
23
 
24
24
  This is a store integration for `@ocoda/event-sourcing`, a library for [**NestJS**](https://nestjs.com/) with the building blocks for Domain-Driven Design (DDD), CQRS and Event Sourcing.
25
25
 
26
- It provides the `MariaDBEventStore` and `MariaDBSnapshotStore`, on InnoDB: they keep events and snapshots in [MariaDB](https://mariadb.com/), with a global position per pool for `readAll()`. It is tested on MariaDB 10.11, 11.4, 11.8 and 12.3, and the newest rolling release.
26
+ It provides the `MariaDBEventStore` and `MariaDBSnapshotStore`, on InnoDB: they keep events and snapshots in [MariaDB](https://mariadb.com/) or [MySQL](https://www.mysql.com/), with a global position per pool for `readAll()`. It is tested on MariaDB 10.11, 11.4, 11.8 and 12.3 and the newest rolling release, and, from 4.1, on MySQL 8.4 and 9.7 and the newest Innovation release: see [supported versions](https://ocoda.github.io/event-sourcing/integrations/mariadb#versions). The same classes serve both servers.
27
+
28
+ On MySQL, logging in over TCP with `caching_sha2_password` needs TLS, `cachingRsaPublicKey` or `allowPublicKeyRetrieval`: see [Connecting to MySQL](https://ocoda.github.io/event-sourcing/integrations/mariadb#mysql-auth). On a Galera cluster, a multi-primary Group Replication group, TiDB or Vitess, the event store reports `globalOrder: 'best-effort'`: see [Topologies and capabilities](https://ocoda.github.io/event-sourcing/integrations/mariadb#capabilities).
27
29
 
28
30
  ## Installation
29
31
  The `mariadb` driver (`^3.5.3`) is a peer dependency, so install it next to the core module:
@@ -34,10 +36,10 @@ npm install @ocoda/event-sourcing @ocoda/event-sourcing-mariadb mariadb
34
36
  Requires Node.js 22.12 or later and NestJS 12. The package is ESM-only; CommonJS applications load it through `require()`, which Node.js supports for ES modules since 22.12. Keep it on the same version as `@ocoda/event-sourcing`.
35
37
 
36
38
  ## Upgrading from 3.x
37
- 4.0 stores events and snapshots in a new schema (schema v2), and refuses a 3.x event table until it is migrated. Migrate it once, offline, with `migrate()`, after a dry run: see the [runbook](https://ocoda.github.io/event-sourcing/integrations/mariadb#runbook) and [Migrating from 3.x to 4.0](https://ocoda.github.io/event-sourcing/upgrading/v4).
39
+ 4.0 stores events and snapshots in a new schema (schema v2), and refuses a 3.x event table until it is migrated. Migrate it once, offline, with `migrate()`, after a dry run. `migrate()` runs on MariaDB only. See the [runbook](https://ocoda.github.io/event-sourcing/integrations/mariadb#runbook) and [Migrating from 3.x to 4.0](https://ocoda.github.io/event-sourcing/upgrading/v4).
38
40
 
39
41
  ## Documentation 📗
40
- - [MariaDB](https://ocoda.github.io/event-sourcing/integrations/mariadb): the configuration, the schema, the privileges and the migration from 3.x.
42
+ - [MariaDB and MySQL](https://ocoda.github.io/event-sourcing/integrations/mariadb): the supported versions, the configuration, MySQL's authentication, the topologies, the schema, the privileges and the migration from 3.x.
41
43
  - [The documentation](https://ocoda.github.io/event-sourcing) starts with the [installation](https://ocoda.github.io/event-sourcing/start/install). The 3.x documentation is at [ocoda.github.io/event-sourcing/v3](https://ocoda.github.io/event-sourcing/v3/).
42
44
  - [Versioning and support](https://ocoda.github.io/event-sourcing/upgrading/versioning) and the [changelog](https://github.com/ocoda/event-sourcing/blob/master/packages/integration/mariadb/CHANGELOG.md).
43
45
 
@@ -1,7 +1,7 @@
1
1
  import { EventEnvelope, EventStore, type EventStoreCapabilities, type EventStream, type IEventCollection, type IEventCollectionFilter, type IEventFilter, type IEventPool, type IReadAllFilter, type MigrationOptions, type MigrationReport, type PersistOutcome, type PersistTarget } from '@ocoda/event-sourcing';
2
2
  import type { MariaDBEventStoreConfig } from './interfaces/index.js';
3
3
  /**
4
- * An event store on MariaDB (InnoDB), with schema v2 (ADR 0002 §3).
4
+ * An event store on MariaDB or MySQL (InnoDB), with schema v2 (ADR 0002 §3).
5
5
  *
6
6
  * - Every pool has a table, `events` or `<pool>-events`, registered in the `event_sourcing_collections` catalog, whose
7
7
  * row counts the pool's global positions.
@@ -12,14 +12,18 @@ import type { MariaDBEventStoreConfig } from './interfaces/index.js';
12
12
  */
13
13
  export declare class MariaDBEventStore extends EventStore<MariaDBEventStoreConfig> {
14
14
  /**
15
- * Final once `connect()` resolved: a Galera cluster (`wsrep_on`) orders the positions per node only, so it gets
16
- * `'best-effort'`.
15
+ * Final once `connect()` resolved: `'gap-safe'` on one InnoDB server (MariaDB, MySQL), `'best-effort'` on a Galera
16
+ * node, a Group Replication member in multi-primary mode, TiDB and Vitess (`capabilitiesOf` in mariadb.server.ts).
17
17
  */
18
18
  readonly capabilities: EventStoreCapabilities;
19
19
  private pool;
20
+ private server;
21
+ private deployment;
20
22
  /**
21
23
  * Migrates the event tables of a 3.x store to schema v2, without a NestJS application: inspects every table (or the
22
24
  * tables of `options.pools`), plans, and, unless `dryRun`, migrates them one by one. Stop every 3.x instance first.
25
+ *
26
+ * MariaDB only: on MySQL it throws an `UnsupportedOperationException` before it changes anything.
23
27
  */
24
28
  static migrate(config: Omit<MariaDBEventStoreConfig, 'driver'>, options?: MigrationOptions): Promise<MigrationReport>;
25
29
  /**
@@ -70,6 +74,8 @@ export declare class MariaDBEventStore extends EventStore<MariaDBEventStoreConfi
70
74
  * The last position of the pool's counter, read with a shared lock: it waits until the append that holds the counter
71
75
  * committed or rolled back, and every transaction that took a position up to it has left the set of active
72
76
  * transactions before it returns (InnoDB deregisters a committing transaction before it releases its locks).
77
+ *
78
+ * TiDB refuses `LOCK IN SHARE MODE` (1235) or ignores it, so there it is a plain read, and `readAll` is best-effort.
73
79
  */
74
80
  private readHighWaterMark;
75
81
  private connected;
@@ -1 +1 @@
1
- {"version":3,"file":"mariadb.event-store.d.ts","sourceRoot":"","sources":["../lib/mariadb.event-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,aAAa,EAIb,UAAU,EACV,KAAK,sBAAsB,EAI3B,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,aAAa,EAIlB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAsB,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAqCzF;;;;;;;;;GASG;AACH,qBAAa,iBAAkB,SAAQ,UAAU,CAAC,uBAAuB,CAAC;IACzE;;;OAGG;IACH,SAAkB,YAAY,EAAE,sBAAsB,CAIpD;IAEF,OAAO,CAAC,IAAI,CAAmB;IAE/B;;;OAGG;IACH,MAAM,CAAC,OAAO,CACb,MAAM,EAAE,IAAI,CAAC,uBAAuB,EAAE,QAAQ,CAAC,EAC/C,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,CAE1B;IAED;;;OAGG;IACH,OAAO,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAE5D;IAEY,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAoBpC;IAEY,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAQvC;IAED;;;;OAIG;IACU,gBAAgB,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA2C1E;IAED;;OAEG;IACW,eAAe,CAAC,MAAM,CAAC,EAAE,sBAAsB,GAAG,cAAc,CAAC,gBAAgB,EAAE,CAAC,CAyBjG;IAEY,gBAAgB,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAW3F;IAEY,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAiB9G;IAEa,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,cAAc,CAAC,aAAa,EAAE,CAAC,CA6B5G;IAED;;;;;;;;;;;OAWG;IACW,OAAO,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,cAAc,CAAC,aAAa,EAAE,CAAC,CAoC9E;IAED;;;OAGG;IACH,UAAgB,aAAa,CAC5B,SAAS,EAAE,SAAS,aAAa,EAAE,EACnC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,aAAa,GACzC,OAAO,CAAC,cAAc,CAAC,CAsFzB;IAED;;;OAGG;IACH,OAAO,CAAC,eAAe;YAoBT,aAAa;IAoB3B;;;;OAIG;YACW,iBAAiB;IAgB/B,OAAO,CAAC,SAAS;CAMjB"}
1
+ {"version":3,"file":"mariadb.event-store.d.ts","sourceRoot":"","sources":["../lib/mariadb.event-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,aAAa,EAIb,UAAU,EACV,KAAK,sBAAsB,EAI3B,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,aAAa,EAIlB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAsB,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AA8CzF;;;;;;;;;GASG;AACH,qBAAa,iBAAkB,SAAQ,UAAU,CAAC,uBAAuB,CAAC;IACzE;;;OAGG;IACH,SAAkB,YAAY,EAAE,sBAAsB,CAIpD;IAEF,OAAO,CAAC,IAAI,CAAmB;IAC/B,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,UAAU,CAAgC;IAElD;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CACb,MAAM,EAAE,IAAI,CAAC,uBAAuB,EAAE,QAAQ,CAAC,EAC/C,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,CAE1B;IAED;;;OAGG;IACH,OAAO,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAE5D;IAEY,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAoBpC;IAEY,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAUvC;IAED;;;;OAIG;IACU,gBAAgB,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA2C1E;IAED;;OAEG;IACW,eAAe,CAAC,MAAM,CAAC,EAAE,sBAAsB,GAAG,cAAc,CAAC,gBAAgB,EAAE,CAAC,CAyBjG;IAEY,gBAAgB,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAW3F;IAEY,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAiB9G;IAEa,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,cAAc,CAAC,aAAa,EAAE,CAAC,CA6B5G;IAED;;;;;;;;;;;OAWG;IACW,OAAO,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,cAAc,CAAC,aAAa,EAAE,CAAC,CAoC9E;IAED;;;OAGG;IACH,UAAgB,aAAa,CAC5B,SAAS,EAAE,SAAS,aAAa,EAAE,EACnC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,aAAa,GACzC,OAAO,CAAC,cAAc,CAAC,CAuFzB;IAED;;;OAGG;IACH,OAAO,CAAC,eAAe;YAoBT,aAAa;IAoB3B;;;;;;OAMG;YACW,iBAAiB;IAiB/B,OAAO,CAAC,SAAS;CAMjB"}
@@ -1,15 +1,16 @@
1
1
  import { DEFAULT_BATCH_SIZE, EventCollection, EventCollectionNotFoundException, EventEnvelope, EventId, EventNotFoundException, EventSourcingError, EventStore, EventStoreCollectionCreationException, EventStorePersistenceException, EventStoreSchemaException, StreamReadingDirection, toBatchSize, toPosition, } from '@ocoda/event-sourcing';
2
2
  import { createPool } from 'mariadb';
3
3
  import { CATALOG_TABLE, assertTableName, catalogDdl, catalogExists, escapeId, eventSchemaRemedy, eventTableDdl, inspectEventTable, registerEventTable, } from './mariadb.schema.js';
4
- import { MariaDBErrorNumber, duplicateKeyOf, errorNumberOf, fromDateTime, fromJson, inBatches, isDuplicateEntryError, isFatalConnectionError, isGaleraNode, streamRows, toDateTime, withReadCommitted, } from './mariadb.utils.js';
4
+ import { capabilitiesOf, probeDeployment, probeServer, warnDeploymentOnce, } from './mariadb.server.js';
5
+ import { MariaDBErrorNumber, duplicateKeyOf, errorNumberOf, fromDateTime, fromJson, inBatches, isDuplicateEntryError, isFatalConnectionError, isRolledBackByServer, streamRows, toDateTime, withReadCommitted, } from './mariadb.utils.js';
5
6
  import { runMigration } from './migration/migrate.js';
6
7
  /** The columns of an envelope, with the global position and the time as text. */
7
8
  const ENVELOPE_COLUMNS = `event, payload, event_id, aggregate_id, version, CAST(occurred_on AS CHAR) AS occurred_on,
8
9
  correlation_id, causation_id, CAST(global_position AS CHAR) AS global_position, headers, event_version`;
9
10
  const INSERT_COLUMNS = 'stream_id, version, event, payload, event_id, aggregate_id, occurred_on, correlation_id, causation_id, global_position, headers, event_version';
10
- const MIGRATE_REMEDY = 'Run MariaDBEventStore.migrate(config, { dryRun: true }), review the report, then migrate().';
11
+ const MIGRATE_REMEDY = 'Run MariaDBEventStore.migrate(config, { dryRun: true }), review the report, then migrate() (MariaDB only).';
11
12
  /**
12
- * An event store on MariaDB (InnoDB), with schema v2 (ADR 0002 §3).
13
+ * An event store on MariaDB or MySQL (InnoDB), with schema v2 (ADR 0002 §3).
13
14
  *
14
15
  * - Every pool has a table, `events` or `<pool>-events`, registered in the `event_sourcing_collections` catalog, whose
15
16
  * row counts the pool's global positions.
@@ -20,8 +21,8 @@ const MIGRATE_REMEDY = 'Run MariaDBEventStore.migrate(config, { dryRun: true }),
20
21
  */
21
22
  export class MariaDBEventStore extends EventStore {
22
23
  /**
23
- * Final once `connect()` resolved: a Galera cluster (`wsrep_on`) orders the positions per node only, so it gets
24
- * `'best-effort'`.
24
+ * Final once `connect()` resolved: `'gap-safe'` on one InnoDB server (MariaDB, MySQL), `'best-effort'` on a Galera
25
+ * node, a Group Replication member in multi-primary mode, TiDB and Vitess (`capabilitiesOf` in mariadb.server.ts).
25
26
  */
26
27
  capabilities = {
27
28
  atomicAppend: true,
@@ -29,9 +30,13 @@ export class MariaDBEventStore extends EventStore {
29
30
  globalOrder: 'gap-safe',
30
31
  };
31
32
  pool;
33
+ server;
34
+ deployment;
32
35
  /**
33
36
  * Migrates the event tables of a 3.x store to schema v2, without a NestJS application: inspects every table (or the
34
37
  * tables of `options.pools`), plans, and, unless `dryRun`, migrates them one by one. Stop every 3.x instance first.
38
+ *
39
+ * MariaDB only: on MySQL it throws an `UnsupportedOperationException` before it changes anything.
35
40
  */
36
41
  static migrate(config, options) {
37
42
  return runMigration(config, 'events', options);
@@ -48,18 +53,20 @@ export class MariaDBEventStore extends EventStore {
48
53
  const { driver: _driver, useDefaultPool: _useDefaultPool, ddl: _ddl, ...poolConfig } = this.options ?? {};
49
54
  const pool = createPool(withReadCommitted(poolConfig));
50
55
  // Also makes a bad connection fail the bootstrap
51
- let galera;
56
+ let server;
57
+ let deployment;
52
58
  try {
53
- galera = await isGaleraNode(pool);
59
+ server = await probeServer(pool);
60
+ deployment = await probeDeployment(pool, server);
54
61
  }
55
62
  catch (error) {
56
63
  await pool.end().catch(() => undefined);
57
64
  throw error;
58
65
  }
59
- if (galera) {
60
- Object.assign(this.capabilities, { globalOrder: 'best-effort' });
61
- this.logger.warn("Galera (wsrep_on) orders the global positions per node only: globalOrder is 'best-effort' on this cluster");
62
- }
66
+ Object.assign(this.capabilities, capabilitiesOf(deployment));
67
+ warnDeploymentOnce(deployment, this.logger);
68
+ this.server = server;
69
+ this.deployment = deployment;
63
70
  this.pool = pool;
64
71
  }
65
72
  async disconnect() {
@@ -69,6 +76,8 @@ export class MariaDBEventStore extends EventStore {
69
76
  }
70
77
  this.logger.log('Stopping store');
71
78
  this.pool = undefined;
79
+ this.server = undefined;
80
+ this.deployment = undefined;
72
81
  await pool.end();
73
82
  }
74
83
  /**
@@ -86,7 +95,7 @@ export class MariaDBEventStore extends EventStore {
86
95
  throw new EventStoreSchemaException({
87
96
  collection,
88
97
  found: 'missing',
89
- remedy: `The catalog ${CATALOG_TABLE} doesn't exist. ${eventSchemaRemedy(collection)}`,
98
+ remedy: `The catalog ${CATALOG_TABLE} doesn't exist. ${eventSchemaRemedy(collection, this.server?.flavour)}`,
90
99
  });
91
100
  }
92
101
  }
@@ -100,10 +109,10 @@ export class MariaDBEventStore extends EventStore {
100
109
  throw new EventStoreSchemaException({
101
110
  collection,
102
111
  found: 'missing',
103
- remedy: eventSchemaRemedy(collection),
112
+ remedy: eventSchemaRemedy(collection, this.server?.flavour),
104
113
  });
105
114
  }
106
- await db.query(eventTableDdl(collection));
115
+ await db.query(eventTableDdl(collection, { flavour: this.server?.flavour }));
107
116
  break;
108
117
  case 'v1':
109
118
  case 'v1-partial':
@@ -303,13 +312,14 @@ export class MariaDBEventStore extends EventStore {
303
312
  }
304
313
  catch (error) {
305
314
  broken = isFatalConnectionError(error);
306
- if (committing && (broken || errorNumberOf(error) !== MariaDBErrorNumber.Deadlock)) {
315
+ if (committing && (broken || !isRolledBackByServer(error))) {
307
316
  // The commit was sent and got no answer, or one that doesn't say whether it happened
308
317
  throw new EventStorePersistenceException({ collection, outcome: 'unknown' }, { cause: error });
309
318
  }
310
- // Nothing is stored: the failure came before the commit, or the commit was refused with a deadlock (a Galera
311
- // certification failure), which rolled the transaction back. The rollback is explicit, because a lock wait
312
- // timeout doesn't roll the transaction back (innodb_rollback_on_timeout is off).
319
+ // Nothing is stored: the failure came before the commit, or the server refused the commit and rolled the
320
+ // transaction back (a deadlock, which is how Galera reports a failed certification, or a MySQL Group
321
+ // Replication conflict). The rollback is explicit, because a lock wait timeout doesn't roll the transaction back
322
+ // (innodb_rollback_on_timeout is off).
313
323
  await connection.rollback().catch(() => {
314
324
  broken = true;
315
325
  });
@@ -359,11 +369,14 @@ export class MariaDBEventStore extends EventStore {
359
369
  * The last position of the pool's counter, read with a shared lock: it waits until the append that holds the counter
360
370
  * committed or rolled back, and every transaction that took a position up to it has left the set of active
361
371
  * transactions before it returns (InnoDB deregisters a committing transaction before it releases its locks).
372
+ *
373
+ * TiDB refuses `LOCK IN SHARE MODE` (1235) or ignores it, so there it is a plain read, and `readAll` is best-effort.
362
374
  */
363
375
  async readHighWaterMark(collection, pool) {
376
+ const lock = this.deployment?.kind === 'tidb' ? '' : ' LOCK IN SHARE MODE';
364
377
  let rows;
365
378
  try {
366
- rows = await this.connected().query(`SELECT CAST(last_position AS CHAR) AS last_position FROM ${escapeId(CATALOG_TABLE)} WHERE name = ? AND kind = 'events' LOCK IN SHARE MODE`, [collection]);
379
+ rows = await this.connected().query(`SELECT CAST(last_position AS CHAR) AS last_position FROM ${escapeId(CATALOG_TABLE)} WHERE name = ? AND kind = 'events'${lock}`, [collection]);
367
380
  }
368
381
  catch (error) {
369
382
  throw readError(error, collection, pool);
@@ -1 +1 @@
1
- {"version":3,"file":"mariadb.event-store.js","sourceRoot":"","sources":["../lib/mariadb.event-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mariadb.event-store.js","sourceRoot":"","sources":["../lib/mariadb.event-store.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { ServerFlavour } from './mariadb.server.js';
1
2
  /**
2
3
  * Schema v2 of the MariaDB stores (ADR 0002 §1 and §3): the catalog, the DDL of the event and snapshot tables, and the
3
4
  * inspection that tells a 3.x table from a 4.0 one.
@@ -53,19 +54,31 @@ export declare const probeTableName: (table: string) => string;
53
54
  export declare const isMigrationTable: (table: string) => boolean;
54
55
  /** The DDL of the catalog. */
55
56
  export declare const catalogDdl: () => string;
57
+ /**
58
+ * The type of the JSON columns (`payload`, `headers`) on a server. MariaDB's `JSON` is an alias of `LONGTEXT` with a
59
+ * `JSON_VALID` check, which keeps the text as written. MySQL's `JSON` is a binary format that sorts the keys of objects
60
+ * and prints doubles with 16 significant digits only (`0.9999999999999999` comes back as `1`), so on MySQL the JSON
61
+ * columns are `LONGTEXT`, which keeps the text that `JSON.stringify` wrote. The stores parse both (`fromJson`).
62
+ */
63
+ export declare const jsonColumnTypeOf: (flavour?: ServerFlavour) => 'JSON' | 'LONGTEXT';
64
+ /** The options of the DDL of a table. */
65
+ export interface TableDdlOptions {
66
+ /** `CREATE TABLE IF NOT EXISTS`; `true` by default. */
67
+ ifNotExists?: boolean;
68
+ /** The server the table is for, which decides the type of its JSON columns; `mariadb` by default. */
69
+ flavour?: ServerFlavour;
70
+ }
56
71
  /**
57
72
  * The DDL of an event table. The 3.x columns come first, then `global_position`, `headers` and `event_version`, so
58
73
  * that created and migrated tables are the same.
59
74
  */
60
- export declare const eventTableDdl: (table: string, { ifNotExists }?: {
61
- ifNotExists?: boolean | undefined;
62
- }) => string;
75
+ export declare const eventTableDdl: (table: string, { ifNotExists, flavour }?: TableDdlOptions) => string;
63
76
  /**
64
77
  * The DDL of a snapshot table. Its columns are the 3.x columns, in the 3.x order. The unique index on
65
78
  * `(aggregate_name, latest)` allows one flagged snapshot per stream: unflagged snapshots have a `NULL` latest, and
66
79
  * `NULL`s are distinct.
67
80
  */
68
- export declare const snapshotTableDdl: (table: string) => string;
81
+ export declare const snapshotTableDdl: (table: string, { flavour }?: Pick<TableDdlOptions, 'flavour'>) => string;
69
82
  /**
70
83
  * Registers an event table in the catalog, or heals its counter: the counter never decreases, and is at least the
71
84
  * highest position of the table.
@@ -104,7 +117,8 @@ export interface IndexInfo {
104
117
  * The columns of a table of the current database, by name; empty when the table doesn't exist.
105
118
  *
106
119
  * The lookups of `information_schema` compare the name as it is (the server finds the table directly) and in binary
107
- * (the name's case matters, like MariaDB's own lookups with `lower_case_table_names = 0`).
120
+ * (the name's case matters, like the server's own lookups with `lower_case_table_names = 0`). `CAST(… AS BINARY)`
121
+ * rather than the `BINARY` operator, which MySQL deprecates.
108
122
  */
109
123
  export declare const tableColumns: (db: Queryable, table: string) => Promise<Map<string, ColumnInfo>>;
110
124
  /** The indexes of a table of the current database. */
@@ -165,6 +179,6 @@ export interface SnapshotTableInspection {
165
179
  }
166
180
  export declare const inspectSnapshotTable: (db: Queryable, table: string) => Promise<SnapshotTableInspection>;
167
181
  /** How to create the schema by hand, for `ddl: 'none'`. */
168
- export declare const eventSchemaRemedy: (table: string) => string;
169
- export declare const snapshotSchemaRemedy: (table: string) => string;
182
+ export declare const eventSchemaRemedy: (table: string, flavour?: ServerFlavour) => string;
183
+ export declare const snapshotSchemaRemedy: (table: string, flavour?: ServerFlavour) => string;
170
184
  //# sourceMappingURL=mariadb.schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mariadb.schema.d.ts","sourceRoot":"","sources":["../lib/mariadb.schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mariadb.schema.d.ts","sourceRoot":"","sources":["../lib/mariadb.schema.ts"],"names":[],"mappings":"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"}
@@ -82,22 +82,29 @@ export const catalogDdl = () => `CREATE TABLE IF NOT EXISTS ${escapeId(CATALOG_T
82
82
  schema_version SMALLINT NOT NULL,
83
83
  last_position BIGINT NOT NULL DEFAULT 0
84
84
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin`;
85
+ /**
86
+ * The type of the JSON columns (`payload`, `headers`) on a server. MariaDB's `JSON` is an alias of `LONGTEXT` with a
87
+ * `JSON_VALID` check, which keeps the text as written. MySQL's `JSON` is a binary format that sorts the keys of objects
88
+ * and prints doubles with 16 significant digits only (`0.9999999999999999` comes back as `1`), so on MySQL the JSON
89
+ * columns are `LONGTEXT`, which keeps the text that `JSON.stringify` wrote. The stores parse both (`fromJson`).
90
+ */
91
+ export const jsonColumnTypeOf = (flavour = 'mariadb') => flavour === 'mysql' ? 'LONGTEXT' : 'JSON';
85
92
  /**
86
93
  * The DDL of an event table. The 3.x columns come first, then `global_position`, `headers` and `event_version`, so
87
94
  * that created and migrated tables are the same.
88
95
  */
89
- export const eventTableDdl = (table, { ifNotExists = true } = {}) => `CREATE TABLE ${ifNotExists ? 'IF NOT EXISTS ' : ''}${escapeId(table)} (
96
+ export const eventTableDdl = (table, { ifNotExists = true, flavour } = {}) => `CREATE TABLE ${ifNotExists ? 'IF NOT EXISTS ' : ''}${escapeId(table)} (
90
97
  stream_id VARCHAR(255) NOT NULL,
91
98
  version INT NOT NULL,
92
99
  event VARCHAR(255) NOT NULL,
93
- payload JSON NOT NULL,
100
+ payload ${jsonColumnTypeOf(flavour)} NOT NULL,
94
101
  event_id VARCHAR(40) NOT NULL,
95
102
  aggregate_id VARCHAR(255) NOT NULL,
96
103
  occurred_on DATETIME(3) NOT NULL,
97
104
  correlation_id VARCHAR(255) NULL,
98
105
  causation_id VARCHAR(255) NULL,
99
106
  global_position BIGINT NOT NULL,
100
- headers JSON NULL,
107
+ headers ${jsonColumnTypeOf(flavour)} NULL,
101
108
  event_version INT NULL,
102
109
  PRIMARY KEY (stream_id, version),
103
110
  UNIQUE KEY ${GLOBAL_POSITION_INDEX} (global_position)
@@ -107,10 +114,10 @@ export const eventTableDdl = (table, { ifNotExists = true } = {}) => `CREATE TAB
107
114
  * `(aggregate_name, latest)` allows one flagged snapshot per stream: unflagged snapshots have a `NULL` latest, and
108
115
  * `NULL`s are distinct.
109
116
  */
110
- export const snapshotTableDdl = (table) => `CREATE TABLE IF NOT EXISTS ${escapeId(table)} (
117
+ export const snapshotTableDdl = (table, { flavour } = {}) => `CREATE TABLE IF NOT EXISTS ${escapeId(table)} (
111
118
  stream_id VARCHAR(255) NOT NULL,
112
119
  version INT NOT NULL,
113
- payload JSON NOT NULL,
120
+ payload ${jsonColumnTypeOf(flavour)} NOT NULL,
114
121
  snapshot_id VARCHAR(40) NOT NULL,
115
122
  aggregate_id VARCHAR(255) NOT NULL,
116
123
  registered_on DATETIME(3) NOT NULL,
@@ -134,8 +141,10 @@ export const registerEventTableSql = (table, noBackslashEscapes = false) => `INS
134
141
  */
135
142
  export const registerEventTable = async (db, table) => {
136
143
  const [{ last }] = await db.query(`SELECT CAST(COALESCE(MAX(global_position), 0) AS CHAR) AS last FROM ${escapeId(table)}`);
144
+ // The position is bound twice rather than read back with VALUES(), which MySQL deprecates; CAST compares it as a
145
+ // number, where GREATEST of a BIGINT and a string would compare them as strings or doubles
137
146
  await db.query(`INSERT INTO ${escapeId(CATALOG_TABLE)} (name, kind, schema_version, last_position) VALUES (?, 'events', 2, ?)
138
- ON DUPLICATE KEY UPDATE schema_version = 2, last_position = GREATEST(last_position, VALUES(last_position))`, [table, last]);
147
+ ON DUPLICATE KEY UPDATE schema_version = 2, last_position = GREATEST(last_position, CAST(? AS SIGNED))`, [table, last, last]);
139
148
  };
140
149
  /** Registers a snapshot table in the catalog, with the version of its schema. */
141
150
  export const registerSnapshotTableSql = (table, schemaVersion, noBackslashEscapes = false) => `INSERT INTO ${escapeId(CATALOG_TABLE)} (name, kind, schema_version, last_position)
@@ -168,12 +177,13 @@ export const SNAPSHOT_COLUMNS = [
168
177
  * The columns of a table of the current database, by name; empty when the table doesn't exist.
169
178
  *
170
179
  * The lookups of `information_schema` compare the name as it is (the server finds the table directly) and in binary
171
- * (the name's case matters, like MariaDB's own lookups with `lower_case_table_names = 0`).
180
+ * (the name's case matters, like the server's own lookups with `lower_case_table_names = 0`). `CAST(… AS BINARY)`
181
+ * rather than the `BINARY` operator, which MySQL deprecates.
172
182
  */
173
183
  export const tableColumns = async (db, table) => {
174
184
  const rows = await db.query(`SELECT COLUMN_NAME, DATA_TYPE, COLUMN_TYPE, IS_NULLABLE, COLLATION_NAME, CHARACTER_MAXIMUM_LENGTH, EXTRA
175
185
  FROM information_schema.COLUMNS
176
- WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = ? AND BINARY TABLE_NAME = ? ORDER BY ORDINAL_POSITION`, [table, table]);
186
+ WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = ? AND CAST(TABLE_NAME AS BINARY) = ? ORDER BY ORDINAL_POSITION`, [table, table]);
177
187
  return new Map(rows.map((row) => [
178
188
  row.COLUMN_NAME.toLowerCase(),
179
189
  {
@@ -189,8 +199,9 @@ export const tableColumns = async (db, table) => {
189
199
  };
190
200
  /** The indexes of a table of the current database. */
191
201
  export const tableIndexes = async (db, table) => {
202
+ // COLUMN_NAME is NULL for a key part that is an expression (MySQL's functional indexes)
192
203
  const rows = await db.query(`SELECT INDEX_NAME, NON_UNIQUE, COLUMN_NAME FROM information_schema.STATISTICS
193
- WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = ? AND BINARY TABLE_NAME = ? ORDER BY INDEX_NAME, SEQ_IN_INDEX`, [table, table]);
204
+ WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = ? AND CAST(TABLE_NAME AS BINARY) = ? ORDER BY INDEX_NAME, SEQ_IN_INDEX`, [table, table]);
194
205
  const indexes = new Map();
195
206
  for (const row of rows) {
196
207
  const index = indexes.get(row.INDEX_NAME) ?? {
@@ -198,7 +209,7 @@ export const tableIndexes = async (db, table) => {
198
209
  unique: Number(row.NON_UNIQUE) === 0,
199
210
  columns: [],
200
211
  };
201
- index.columns.push(row.COLUMN_NAME.toLowerCase());
212
+ index.columns.push(row.COLUMN_NAME?.toLowerCase() ?? '(expression)');
202
213
  indexes.set(row.INDEX_NAME, index);
203
214
  }
204
215
  return [...indexes.values()];
@@ -209,7 +220,7 @@ export const existingTables = async (db, tables) => {
209
220
  return new Set();
210
221
  }
211
222
  const rows = await db.query(`SELECT TABLE_NAME FROM information_schema.TABLES
212
- WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME IN (?) AND BINARY TABLE_NAME IN (?)`, [tables, tables]);
223
+ WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME IN (?) AND CAST(TABLE_NAME AS BINARY) IN (?)`, [tables, tables]);
213
224
  return new Set(rows.map(({ TABLE_NAME }) => TABLE_NAME));
214
225
  };
215
226
  /** Whether the catalog exists in the current database. */
@@ -302,6 +313,6 @@ export const inspectSnapshotTable = async (db, table) => {
302
313
  return { table, state: classifySnapshotTable(columns, indexes), columns, indexes, catalog };
303
314
  };
304
315
  /** How to create the schema by hand, for `ddl: 'none'`. */
305
- export const eventSchemaRemedy = (table) => `Create it with ddl: 'auto', or run:\n${catalogDdl()};\n${eventTableDdl(table)};\n${registerEventTableSql(table)};`;
306
- export const snapshotSchemaRemedy = (table) => `Create it with ddl: 'auto', or run:\n${catalogDdl()};\n${snapshotTableDdl(table)};\n${registerSnapshotTableSql(table, 2)};`;
316
+ export const eventSchemaRemedy = (table, flavour) => `Create it with ddl: 'auto', or run:\n${catalogDdl()};\n${eventTableDdl(table, { flavour })};\n${registerEventTableSql(table)};`;
317
+ export const snapshotSchemaRemedy = (table, flavour) => `Create it with ddl: 'auto', or run:\n${catalogDdl()};\n${snapshotTableDdl(table, { flavour })};\n${registerSnapshotTableSql(table, 2)};`;
307
318
  //# sourceMappingURL=mariadb.schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mariadb.schema.js","sourceRoot":"","sources":["../lib/mariadb.schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mariadb.schema.js","sourceRoot":"","sources":["../lib/mariadb.schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import type { Logger } from '@nestjs/common';
2
+ import type { EventStoreCapabilities } from '@ocoda/event-sourcing';
3
+ import type { Queryable } from './mariadb.schema.js';
4
+ /**
5
+ * The SQL dialect of a server: MariaDB, or MySQL (and the servers that speak its dialect, such as Percona Server).
6
+ */
7
+ export type ServerFlavour = 'mariadb' | 'mysql';
8
+ /** What the stores know about the server they connect to. */
9
+ export interface MariaDBServer {
10
+ /** `@@version`, such as `11.4.5-MariaDB` or `8.4.11`. */
11
+ version: string;
12
+ /** `@@version_comment`, such as `MariaDB Server` or `MySQL Community Server - GPL`. */
13
+ comment: string;
14
+ flavour: ServerFlavour;
15
+ }
16
+ /**
17
+ * Asks the server what it is. MariaDB names itself in its version (`11.4.5-MariaDB-ubu2404`) or its comment; every
18
+ * other server is taken to speak MySQL's dialect.
19
+ * @throws what the query throws, such as a connection error
20
+ */
21
+ export declare const probeServer: (db: Queryable) => Promise<MariaDBServer>;
22
+ /**
23
+ * What the event store's server is, as far as the order of its commits goes:
24
+ * - `'innodb'`: one InnoDB server, or the primary of a replica set. Appends serialize on the counter row's lock, and
25
+ * commit in the order of their positions.
26
+ * - `'galera'`: a Galera node (MariaDB Galera Cluster, Percona XtraDB Cluster), whose row locks don't order the commits
27
+ * of the other nodes.
28
+ * - `'group-replication'`: a member of a MySQL Group Replication group in multi-primary mode, whose row locks don't
29
+ * order the commits of the other members either.
30
+ * - `'tidb'`: TiDB, which speaks MySQL but is no InnoDB: `LOCK IN SHARE MODE` is refused (1235) or takes no lock.
31
+ * - `'vitess'`: a Vitess `vtgate` (PlanetScale), which commits a transaction that spans shards shard by shard
32
+ * (`transaction_mode` `MULTI`), and reads every shard at a snapshot of its own.
33
+ */
34
+ export type MariaDBDeployment = {
35
+ kind: 'innodb';
36
+ } | {
37
+ kind: 'galera';
38
+ } | {
39
+ kind: 'group-replication';
40
+ } | {
41
+ kind: 'tidb';
42
+ } | {
43
+ kind: 'vitess';
44
+ transactionMode: string;
45
+ };
46
+ /**
47
+ * Tells the deployments apart by variables only one of them has (an unknown variable is 1193): `@@tidb_txn_mode` is
48
+ * TiDB's, `@@transaction_mode` is answered by `vtgate` itself, a Galera node has `@@wsrep_on` on and a provider loaded
49
+ * (`isGaleraNode`), and `@@group_replication_single_primary_mode` exists while the Group Replication plugin is loaded
50
+ * (explicitly off: multi-primary). Variables rather than `@@version`, which TiDB, Vitess and MariaDB let an operator
51
+ * change. Only a `vtgate` that doesn't answer `@@transaction_mode` is told by `server`'s version or comment.
52
+ * @throws what a query throws other than 1193, such as a connection error
53
+ */
54
+ export declare const probeDeployment: (db: Queryable, server: MariaDBServer) => Promise<MariaDBDeployment>;
55
+ /**
56
+ * The capabilities of the event store on a deployment (ADR 0002 §3): `'gap-safe'` rests on one InnoDB server ordering
57
+ * the commits by the counter row's lock, so every other deployment gets `'best-effort'`. Appends stay atomic, except
58
+ * on Vitess outside `transaction_mode` `SINGLE` and `TWOPC`: with `MULTI` (the default) a transaction that spans
59
+ * shards commits shard by shard, and the counter and the events can sit on different shards.
60
+ */
61
+ export declare const capabilitiesOf: (deployment: MariaDBDeployment) => Required<EventStoreCapabilities>;
62
+ /** Warns once per process and deployment kind that the store's guarantees are weaker on it. */
63
+ export declare const warnDeploymentOnce: (deployment: MariaDBDeployment, logger: Logger) => void;
64
+ //# sourceMappingURL=mariadb.server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mariadb.server.d.ts","sourceRoot":"","sources":["../lib/mariadb.server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC;AAEhD,6DAA6D;AAC7D,MAAM,WAAW,aAAa;IAC7B,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,aAAa,CAAC;CACvB;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,OAAc,SAAS,KAAG,OAAO,CAAC,aAAa,CAMtE,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,iBAAiB,GAC1B;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,mBAAmB,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/C;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,OAAc,SAAS,UAAU,aAAa,KAAG,OAAO,CAAC,iBAAiB,CAkBrG,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,eAAgB,iBAAiB,KAAG,QAAQ,CAAC,sBAAsB,CAa7F,CAAC;AAaF,+FAA+F;AAC/F,eAAO,MAAM,kBAAkB,eAAgB,iBAAiB,UAAU,MAAM,KAAG,IAMlF,CAAC"}