@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.
@@ -0,0 +1,74 @@
1
+ import { isGaleraNode, isOff, systemVariableOf } from './mariadb.utils.js';
2
+ /**
3
+ * Asks the server what it is. MariaDB names itself in its version (`11.4.5-MariaDB-ubu2404`) or its comment; every
4
+ * other server is taken to speak MySQL's dialect.
5
+ * @throws what the query throws, such as a connection error
6
+ */
7
+ export const probeServer = async (db) => {
8
+ const [{ version, comment }] = await db.query('SELECT @@version AS version, @@version_comment AS comment');
9
+ const flavour = /mariadb/i.test(`${version} ${comment ?? ''}`) ? 'mariadb' : 'mysql';
10
+ return { version, comment: comment ?? '', flavour };
11
+ };
12
+ /**
13
+ * Tells the deployments apart by variables only one of them has (an unknown variable is 1193): `@@tidb_txn_mode` is
14
+ * TiDB's, `@@transaction_mode` is answered by `vtgate` itself, a Galera node has `@@wsrep_on` on and a provider loaded
15
+ * (`isGaleraNode`), and `@@group_replication_single_primary_mode` exists while the Group Replication plugin is loaded
16
+ * (explicitly off: multi-primary). Variables rather than `@@version`, which TiDB, Vitess and MariaDB let an operator
17
+ * change. Only a `vtgate` that doesn't answer `@@transaction_mode` is told by `server`'s version or comment.
18
+ * @throws what a query throws other than 1193, such as a connection error
19
+ */
20
+ export const probeDeployment = async (db, server) => {
21
+ if (typeof (await systemVariableOf(db, 'tidb_txn_mode')) === 'string') {
22
+ return { kind: 'tidb' };
23
+ }
24
+ const transactionMode = await systemVariableOf(db, 'transaction_mode');
25
+ if (transactionMode !== undefined && transactionMode !== null) {
26
+ return { kind: 'vitess', transactionMode: String(transactionMode).toUpperCase() };
27
+ }
28
+ if (/-vitess/i.test(server.version) || /^Version: \S+.*\(Git revision /.test(server.comment)) {
29
+ return { kind: 'vitess', transactionMode: 'MULTI' };
30
+ }
31
+ if (await isGaleraNode(db)) {
32
+ return { kind: 'galera' };
33
+ }
34
+ if (isOff(await systemVariableOf(db, 'group_replication_single_primary_mode'))) {
35
+ return { kind: 'group-replication' };
36
+ }
37
+ return { kind: 'innodb' };
38
+ };
39
+ /**
40
+ * The capabilities of the event store on a deployment (ADR 0002 §3): `'gap-safe'` rests on one InnoDB server ordering
41
+ * the commits by the counter row's lock, so every other deployment gets `'best-effort'`. Appends stay atomic, except
42
+ * on Vitess outside `transaction_mode` `SINGLE` and `TWOPC`: with `MULTI` (the default) a transaction that spans
43
+ * shards commits shard by shard, and the counter and the events can sit on different shards.
44
+ */
45
+ export const capabilitiesOf = (deployment) => {
46
+ switch (deployment.kind) {
47
+ case 'innodb':
48
+ return { atomicAppend: true, headers: true, globalOrder: 'gap-safe' };
49
+ case 'vitess':
50
+ return {
51
+ atomicAppend: ['SINGLE', 'TWOPC'].includes(deployment.transactionMode),
52
+ headers: true,
53
+ globalOrder: 'best-effort',
54
+ };
55
+ default:
56
+ return { atomicAppend: true, headers: true, globalOrder: 'best-effort' };
57
+ }
58
+ };
59
+ const WARNINGS = {
60
+ galera: "Galera (wsrep_on) orders the global positions per node only: globalOrder is 'best-effort' on this cluster",
61
+ 'group-replication': "MySQL Group Replication in multi-primary mode orders the global positions per member only: globalOrder is 'best-effort'. Single-primary mode is 'gap-safe' on the primary.",
62
+ tidb: "TiDB is not InnoDB, and its locking reads don't wait for an append in flight: globalOrder is 'best-effort'. TiDB is not a tested server of this store.",
63
+ vitess: "Vitess commits a transaction that spans shards shard by shard, and reads every shard at a snapshot of its own: globalOrder is 'best-effort', and with transaction_mode MULTI (the default) appends are not atomic. Vitess is not a tested server of this store.",
64
+ };
65
+ const warned = new Set();
66
+ /** Warns once per process and deployment kind that the store's guarantees are weaker on it. */
67
+ export const warnDeploymentOnce = (deployment, logger) => {
68
+ if (deployment.kind === 'innodb' || warned.has(deployment.kind)) {
69
+ return;
70
+ }
71
+ warned.add(deployment.kind);
72
+ logger.warn(WARNINGS[deployment.kind]);
73
+ };
74
+ //# sourceMappingURL=mariadb.server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mariadb.server.js","sourceRoot":"","sources":["../lib/mariadb.server.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { Type } from '@nestjs/common';
2
2
  import { type AggregateRoot, type ILatestSnapshotFilter, type ISnapshot, type ISnapshotCollection, type ISnapshotCollectionFilter, type ISnapshotFilter, type ISnapshotPool, type MigrationOptions, type MigrationReport, SnapshotEnvelope, SnapshotStore, type SnapshotStream } from '@ocoda/event-sourcing';
3
3
  import type { MariaDBSnapshotStoreConfig } from './interfaces/index.js';
4
4
  /**
5
- * A snapshot store on MariaDB (InnoDB), with schema v2 (ADR 0002 §3).
5
+ * A snapshot store on MariaDB or MySQL (InnoDB), with schema v2 (ADR 0002 §3).
6
6
  *
7
7
  * - One flagged (latest) snapshot per stream, which a unique index enforces; the last snapshot of a stream is the one
8
8
  * with the highest version, which is also the flagged one.
@@ -11,11 +11,14 @@ import type { MariaDBSnapshotStoreConfig } from './interfaces/index.js';
11
11
  */
12
12
  export declare class MariaDBSnapshotStore extends SnapshotStore<MariaDBSnapshotStoreConfig> {
13
13
  private pool;
14
+ private server;
14
15
  /** The schema version of the tables this store read or wrote, by table. */
15
16
  private readonly schemaVersions;
16
17
  /**
17
18
  * Migrates the snapshot tables of a 3.x store to schema v2, without a NestJS application: converts every table (or
18
19
  * the tables of `options.pools`) in place and repairs its latest flags. Stop every 3.x instance first.
20
+ *
21
+ * MariaDB only: on MySQL it throws an `UnsupportedOperationException` before it changes anything.
19
22
  */
20
23
  static migrate(config: Omit<MariaDBSnapshotStoreConfig, 'driver'>, options?: MigrationOptions): Promise<MigrationReport>;
21
24
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"mariadb.snapshot-store.d.ts","sourceRoot":"","sources":["../lib/mariadb.snapshot-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mariadb.snapshot-store.d.ts","sourceRoot":"","sources":["../lib/mariadb.snapshot-store.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,16 @@ import { setTimeout as sleep } from 'node:timers/promises';
2
2
  import { DEFAULT_BATCH_SIZE, SnapshotCollection, SnapshotEnvelope, SnapshotNotFoundException, SnapshotStore, SnapshotStoreCollectionCreationException, SnapshotStorePersistenceException, SnapshotStoreVersionConflictException, StreamReadingDirection, getAggregateMetadata, } from '@ocoda/event-sourcing';
3
3
  import { createPool } from 'mariadb';
4
4
  import { CATALOG_TABLE, assertTableName, catalogDdl, catalogExists, escapeId, inspectSnapshotTable, registerSnapshotTableSql, snapshotSchemaRemedy, snapshotTableDdl, tableColumns, } from './mariadb.schema.js';
5
- import { MariaDBErrorNumber, errorNumberOf, fromDateTime, fromJson, inBatches, isDuplicateEntryError, isFatalConnectionError, streamRows, toDateTime, withReadCommitted, } from './mariadb.utils.js';
5
+ import { probeServer } from './mariadb.server.js';
6
+ import { MariaDBErrorNumber, errorNumberOf, fromDateTime, fromJson, inBatches, isDuplicateEntryError, isFatalConnectionError, isRolledBackByServer, streamRows, toDateTime, withReadCommitted, } from './mariadb.utils.js';
6
7
  import { runMigration } from './migration/migrate.js';
7
- /** How often an append runs when InnoDB picks it as the victim of a deadlock. */
8
+ /**
9
+ * How often an append runs when InnoDB picks it as the victim of a deadlock, or MySQL Group Replication refuses its
10
+ * commit.
11
+ */
8
12
  const DEADLOCK_ATTEMPTS = 10;
9
13
  /**
10
- * A snapshot store on MariaDB (InnoDB), with schema v2 (ADR 0002 §3).
14
+ * A snapshot store on MariaDB or MySQL (InnoDB), with schema v2 (ADR 0002 §3).
11
15
  *
12
16
  * - One flagged (latest) snapshot per stream, which a unique index enforces; the last snapshot of a stream is the one
13
17
  * with the highest version, which is also the flagged one.
@@ -16,11 +20,14 @@ const DEADLOCK_ATTEMPTS = 10;
16
20
  */
17
21
  export class MariaDBSnapshotStore extends SnapshotStore {
18
22
  pool;
23
+ server;
19
24
  /** The schema version of the tables this store read or wrote, by table. */
20
25
  schemaVersions = new Map();
21
26
  /**
22
27
  * Migrates the snapshot tables of a 3.x store to schema v2, without a NestJS application: converts every table (or
23
28
  * the tables of `options.pools`) in place and repairs its latest flags. Stop every 3.x instance first.
29
+ *
30
+ * MariaDB only: on MySQL it throws an `UnsupportedOperationException` before it changes anything.
24
31
  */
25
32
  static migrate(config, options) {
26
33
  return runMigration(config, 'snapshots', options);
@@ -41,14 +48,16 @@ export class MariaDBSnapshotStore extends SnapshotStore {
41
48
  this.logger.log('Starting store');
42
49
  const { driver: _driver, useDefaultPool: _useDefaultPool, ddl: _ddl, ...poolConfig } = this.options ?? {};
43
50
  const pool = createPool(withReadCommitted(poolConfig));
44
- // Makes a bad connection fail the bootstrap
51
+ // Also makes a bad connection fail the bootstrap
52
+ let server;
45
53
  try {
46
- await pool.query('SELECT 1');
54
+ server = await probeServer(pool);
47
55
  }
48
56
  catch (error) {
49
57
  await pool.end().catch(() => undefined);
50
58
  throw error;
51
59
  }
60
+ this.server = server;
52
61
  this.pool = pool;
53
62
  }
54
63
  async disconnect() {
@@ -58,6 +67,7 @@ export class MariaDBSnapshotStore extends SnapshotStore {
58
67
  }
59
68
  this.logger.log('Stopping store');
60
69
  this.pool = undefined;
70
+ this.server = undefined;
61
71
  await pool.end();
62
72
  }
63
73
  /**
@@ -73,7 +83,7 @@ export class MariaDBSnapshotStore extends SnapshotStore {
73
83
  // SnapshotStoreCollectionCreationException has no message of its own: the statements to run are logged, and
74
84
  // in its cause
75
85
  const missing = (what) => {
76
- const message = `${what} doesn't exist and ddl is 'none'. ${snapshotSchemaRemedy(collection)}`;
86
+ const message = `${what} doesn't exist and ddl is 'none'. ${snapshotSchemaRemedy(collection, this.server?.flavour)}`;
77
87
  this.logger.error(message);
78
88
  return new Error(message);
79
89
  };
@@ -91,11 +101,11 @@ export class MariaDBSnapshotStore extends SnapshotStore {
91
101
  if (none) {
92
102
  throw missing(`The ${collection} table`);
93
103
  }
94
- await db.query(snapshotTableDdl(collection));
104
+ await db.query(snapshotTableDdl(collection, { flavour: this.server?.flavour }));
95
105
  }
96
106
  else if (state !== 'v2') {
97
107
  version = 1;
98
- this.logger.warn(`The ${collection} table has the 3.x snapshot schema. It keeps working, without the unique latest flag and with registered_on to the second; migrate it with MariaDBSnapshotStore.migrate().`);
108
+ this.logger.warn(`The ${collection} table has the 3.x snapshot schema. It keeps working, without the unique latest flag and with registered_on to the second; migrate it with MariaDBSnapshotStore.migrate() (MariaDB only).`);
99
109
  }
100
110
  await db.query(registerSnapshotTableSql(collection, version));
101
111
  // How registered_on is read and written follows its type: a table that a migration stopped in may have converted it
@@ -175,7 +185,8 @@ export class MariaDBSnapshotStore extends SnapshotStore {
175
185
  return envelope;
176
186
  }
177
187
  catch (error) {
178
- if (errorNumberOf(error) !== MariaDBErrorNumber.Deadlock || attempt >= DEADLOCK_ATTEMPTS) {
188
+ // A deadlock victim, or a commit that MySQL Group Replication refused: the transaction was rolled back
189
+ if (!isRolledBackByServer(error) || attempt >= DEADLOCK_ATTEMPTS) {
179
190
  throw error;
180
191
  }
181
192
  await connection.rollback();
@@ -1 +1 @@
1
- {"version":3,"file":"mariadb.snapshot-store.js","sourceRoot":"","sources":["../lib/mariadb.snapshot-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mariadb.snapshot-store.js","sourceRoot":"","sources":["../lib/mariadb.snapshot-store.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,11 @@ export declare const MariaDBErrorNumber: {
30
30
  readonly SpecificAccessDenied: 1227;
31
31
  /** `ER_SUBQUERY_NO_1_ROW`: what the migration's lock statement raises when another migration holds the lock. */
32
32
  readonly SubqueryReturnsMoreThanOneRow: 1242;
33
+ /**
34
+ * `ER_TRANSACTION_ROLLBACK_DURING_COMMIT`: MySQL Group Replication refused the transaction at `COMMIT` (it conflicts
35
+ * with a transaction of another member) and rolled it back.
36
+ */
37
+ readonly TransactionRollbackDuringCommit: 3101;
33
38
  };
34
39
  /** The error number of an error of the `mariadb` connector, if it has one. */
35
40
  export declare const errorNumberOf: (error: unknown) => number | undefined;
@@ -44,11 +49,28 @@ export declare const isDuplicateEntryError: (error: unknown) => boolean;
44
49
  */
45
50
  export declare const duplicateKeyOf: (error: unknown) => string | undefined;
46
51
  /**
47
- * Whether the server is a Galera node (`@@wsrep_on`), whose row locks don't order the commits of other nodes. A server
48
- * without the variable (1193) isn't one.
52
+ * The value of a system variable of the session (`@@<name>`), or `undefined` when the server doesn't know it (1193).
53
+ * One statement per variable: an unknown variable fails the whole statement.
49
54
  * @throws what the query throws otherwise, such as a connection error
50
55
  */
56
+ export declare const systemVariableOf: (db: Queryable, name: string) => Promise<unknown>;
57
+ /** Whether the value of a boolean system variable is on (`1`, `ON` or `true`, as the servers and the connector read it). */
58
+ export declare const isOn: (value: unknown) => boolean;
59
+ /** Whether the value of a boolean system variable is explicitly off (`0`, `OFF` or `false`). */
60
+ export declare const isOff: (value: unknown) => boolean;
61
+ /**
62
+ * Whether the server is a Galera node, whose row locks don't order the commits of other nodes: `@@wsrep_on` is on (the
63
+ * session's value: on Percona XtraDB Cluster it is a session variable only), and a provider is loaded. A standalone
64
+ * MariaDB server started with `wsrep_on=ON` and no provider (`none`) reads 1 too. A server without the variable (1193)
65
+ * isn't one.
66
+ * @throws what a query throws otherwise, such as a connection error
67
+ */
51
68
  export declare const isGaleraNode: (db: Queryable) => Promise<boolean>;
69
+ /**
70
+ * Whether the server rolled the transaction back when it refused its `COMMIT`: a deadlock (1213, also how Galera reports
71
+ * a failed certification) or a MySQL Group Replication conflict (3101). Nothing of the transaction is stored then.
72
+ */
73
+ export declare const isRolledBackByServer: (error: unknown) => boolean;
52
74
  /**
53
75
  * The pool options of a store: its `initSql` runs first, then `READ COMMITTED` for the session, so that a read never
54
76
  * sees an append that isn't committed yet (`READ UNCOMMITTED`) whatever the server's default isolation is. Appends and
@@ -1 +1 @@
1
- {"version":3,"file":"mariadb.utils.d.ts","sourceRoot":"","sources":["../lib/mariadb.utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,iDAAiD;AACjD,eAAO,MAAM,kBAAkB;IAC9B,8GAA8G;aAC9G,SAAS,EAAE,IAAI;IACf,sBAAsB;aACtB,QAAQ,EAAE,IAAI;IACd,qEAAqE;aACrE,oBAAoB,EAAE,IAAI;IAC1B,yFAAyF;aACzF,QAAQ,EAAE,IAAI;IACd,oEAAoE;aACpE,cAAc,EAAE,IAAI;IACpB,sFAAsF;aACtF,cAAc,EAAE,IAAI;IACpB,qEAAqE;aACrE,iBAAiB,EAAE,IAAI;IACvB,0BAA0B;aAC1B,WAAW,EAAE,IAAI;IACjB,qFAAqF;aACrF,qBAAqB,EAAE,IAAI;IAC3B,8BAA8B;aAC9B,eAAe,EAAE,IAAI;IACrB,oFAAoF;aACpF,aAAa,EAAE,IAAI;IACnB,2EAA2E;aAC3E,QAAQ,EAAE,IAAI;IACd,+EAA+E;aAC/E,oBAAoB,EAAE,IAAI;IAC1B,gHAAgH;aAChH,6BAA6B,EAAE,IAAI;CAC1B,CAAC;AAEX,8EAA8E;AAC9E,eAAO,MAAM,aAAa,UAAW,OAAO,KAAG,MAAM,GAAG,SAGvD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,UAAW,OAAO,KAAG,OAGtD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,UAAW,OAAO,KAAG,MAAM,GAAG,SAMxD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,OAAc,SAAS,KAAG,OAAO,CAAC,OAAO,CAWjE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,WAAY,UAAU,KAAG,UAGrD,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,sBAAsB,UAAW,OAAO,KAAG,OACU,CAAC;AAEnE;;;;GAIG;AACH,eAAO,MAAM,UAAU,SAAU,IAAI,KAAG,MAA2D,CAAC;AAEpG;;GAEG;AACH,eAAO,MAAM,YAAY,UAAW,MAAM,GAAG,IAAI,KAAG,IACoB,CAAC;AAEzE;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,OAAO,KAAG,CAAiE,CAAC;AAE/G;;;;;;;GAOG;AACH,wBAAuB,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,CAoBvG;AAED;;GAEG;AACH,wBAAuB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,EAAE,CAAC,CAY9F"}
1
+ {"version":3,"file":"mariadb.utils.d.ts","sourceRoot":"","sources":["../lib/mariadb.utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,iDAAiD;AACjD,eAAO,MAAM,kBAAkB;IAC9B,8GAA8G;aAC9G,SAAS,EAAE,IAAI;IACf,sBAAsB;aACtB,QAAQ,EAAE,IAAI;IACd,qEAAqE;aACrE,oBAAoB,EAAE,IAAI;IAC1B,yFAAyF;aACzF,QAAQ,EAAE,IAAI;IACd,oEAAoE;aACpE,cAAc,EAAE,IAAI;IACpB,sFAAsF;aACtF,cAAc,EAAE,IAAI;IACpB,qEAAqE;aACrE,iBAAiB,EAAE,IAAI;IACvB,0BAA0B;aAC1B,WAAW,EAAE,IAAI;IACjB,qFAAqF;aACrF,qBAAqB,EAAE,IAAI;IAC3B,8BAA8B;aAC9B,eAAe,EAAE,IAAI;IACrB,oFAAoF;aACpF,aAAa,EAAE,IAAI;IACnB,2EAA2E;aAC3E,QAAQ,EAAE,IAAI;IACd,+EAA+E;aAC/E,oBAAoB,EAAE,IAAI;IAC1B,gHAAgH;aAChH,6BAA6B,EAAE,IAAI;IACnC;;;OAGG;aACH,+BAA+B,EAAE,IAAI;CAC5B,CAAC;AAEX,8EAA8E;AAC9E,eAAO,MAAM,aAAa,UAAW,OAAO,KAAG,MAAM,GAAG,SAGvD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,UAAW,OAAO,KAAG,OAGtD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,UAAW,OAAO,KAAG,MAAM,GAAG,SAMxD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,OAAc,SAAS,QAAQ,MAAM,KAAG,OAAO,CAAC,OAAO,CAanF,CAAC;AAEF,4HAA4H;AAC5H,eAAO,MAAM,IAAI,UAAW,OAAO,KAAG,OAC6D,CAAC;AAEpG,gGAAgG;AAChG,eAAO,MAAM,KAAK,UAAW,OAAO,KAAG,OAC8D,CAAC;AAEtG;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,OAAc,SAAS,KAAG,OAAO,CAAC,OAAO,CAQjE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,UAAW,OAAO,KAAG,OAGrD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,WAAY,UAAU,KAAG,UAGrD,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,sBAAsB,UAAW,OAAO,KAAG,OACU,CAAC;AAEnE;;;;GAIG;AACH,eAAO,MAAM,UAAU,SAAU,IAAI,KAAG,MAA2D,CAAC;AAEpG;;GAEG;AACH,eAAO,MAAM,YAAY,UAAW,MAAM,GAAG,IAAI,KAAG,IACoB,CAAC;AAEzE;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,OAAO,KAAG,CAAiE,CAAC;AAE/G;;;;;;;GAOG;AACH,wBAAuB,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,CAoBvG;AAED;;GAEG;AACH,wBAAuB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,EAAE,CAAC,CAY9F"}
@@ -28,6 +28,11 @@ export const MariaDBErrorNumber = {
28
28
  SpecificAccessDenied: 1227,
29
29
  /** `ER_SUBQUERY_NO_1_ROW`: what the migration's lock statement raises when another migration holds the lock. */
30
30
  SubqueryReturnsMoreThanOneRow: 1242,
31
+ /**
32
+ * `ER_TRANSACTION_ROLLBACK_DURING_COMMIT`: MySQL Group Replication refused the transaction at `COMMIT` (it conflicts
33
+ * with a transaction of another member) and rolled it back.
34
+ */
35
+ TransactionRollbackDuringCommit: 3101,
31
36
  };
32
37
  /** The error number of an error of the `mariadb` connector, if it has one. */
33
38
  export const errorNumberOf = (error) => {
@@ -53,22 +58,52 @@ export const duplicateKeyOf = (error) => {
53
58
  return /for key '(?:[^']*\.)?([^.']+)'$/.exec(text)?.[1];
54
59
  };
55
60
  /**
56
- * Whether the server is a Galera node (`@@wsrep_on`), whose row locks don't order the commits of other nodes. A server
57
- * without the variable (1193) isn't one.
61
+ * The value of a system variable of the session (`@@<name>`), or `undefined` when the server doesn't know it (1193).
62
+ * One statement per variable: an unknown variable fails the whole statement.
58
63
  * @throws what the query throws otherwise, such as a connection error
59
64
  */
60
- export const isGaleraNode = async (db) => {
61
- let wsrep;
65
+ export const systemVariableOf = async (db, name) => {
66
+ if (!/^[a-z0-9_]+$/.test(name)) {
67
+ throw new Error(`Not a system variable name: ${name}`);
68
+ }
62
69
  try {
63
- [{ wsrep }] = await db.query('SELECT @@wsrep_on AS wsrep');
70
+ const [{ value }] = await db.query(`SELECT @@${name} AS value`);
71
+ return value;
64
72
  }
65
73
  catch (error) {
66
74
  if (errorNumberOf(error) === MariaDBErrorNumber.UnknownSystemVariable) {
67
- return false;
75
+ return undefined;
68
76
  }
69
77
  throw error;
70
78
  }
71
- return wsrep === 1 || wsrep === 1n || wsrep === true || String(wsrep).toUpperCase() === 'ON';
79
+ };
80
+ /** Whether the value of a boolean system variable is on (`1`, `ON` or `true`, as the servers and the connector read it). */
81
+ export const isOn = (value) => value === 1 || value === 1n || value === true || ['1', 'ON'].includes(String(value).toUpperCase());
82
+ /** Whether the value of a boolean system variable is explicitly off (`0`, `OFF` or `false`). */
83
+ export const isOff = (value) => value === 0 || value === 0n || value === false || ['0', 'OFF'].includes(String(value).toUpperCase());
84
+ /**
85
+ * Whether the server is a Galera node, whose row locks don't order the commits of other nodes: `@@wsrep_on` is on (the
86
+ * session's value: on Percona XtraDB Cluster it is a session variable only), and a provider is loaded. A standalone
87
+ * MariaDB server started with `wsrep_on=ON` and no provider (`none`) reads 1 too. A server without the variable (1193)
88
+ * isn't one.
89
+ * @throws what a query throws otherwise, such as a connection error
90
+ */
91
+ export const isGaleraNode = async (db) => {
92
+ if (!isOn(await systemVariableOf(db, 'wsrep_on'))) {
93
+ return false;
94
+ }
95
+ const provider = String((await systemVariableOf(db, 'wsrep_provider')) ?? '')
96
+ .trim()
97
+ .toLowerCase();
98
+ return provider !== '' && provider !== 'none';
99
+ };
100
+ /**
101
+ * Whether the server rolled the transaction back when it refused its `COMMIT`: a deadlock (1213, also how Galera reports
102
+ * a failed certification) or a MySQL Group Replication conflict (3101). Nothing of the transaction is stored then.
103
+ */
104
+ export const isRolledBackByServer = (error) => {
105
+ const errno = errorNumberOf(error);
106
+ return errno === MariaDBErrorNumber.Deadlock || errno === MariaDBErrorNumber.TransactionRollbackDuringCommit;
72
107
  };
73
108
  /**
74
109
  * The pool options of a store: its `initSql` runs first, then `READ COMMITTED` for the session, so that a read never
@@ -1 +1 @@
1
- {"version":3,"file":"mariadb.utils.js","sourceRoot":"","sources":["../lib/mariadb.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mariadb.utils.js","sourceRoot":"","sources":["../lib/mariadb.utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../lib/migration/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,yBAAyB,EAE9B,KAAK,gBAAgB,EACrB,KAAK,eAAe,EAGpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAmB,KAAK,gBAAgB,EAAoB,MAAM,SAAS,CAAC;AACnF,OAAO,EAIN,KAAK,SAAS,EAYd,MAAM,sBAAsB,CAAC;AA8B9B;;;GAGG;AAEH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEnD;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC9B,cAAc,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxE;AAED,yDAAyD;AACzD,KAAK,gBAAgB,GAAG;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,WAAY,gBAAgB,GAAG,gBAAgB,KAAG,gBAGhF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,WAChB,gBAAgB,GAAG,gBAAgB,QACrC,aAAa,YACV,gBAAgB,UAClB,cAAc,KACnB,OAAO,CAAC,eAAe,CAgBzB,CAAC;AAkCF,qGAAqG;AACrG,eAAO,MAAM,kBAAkB,OAAc,SAAS,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CASlF,CAAC;AAiCF,8GAA8G;AAC9G,eAAO,MAAM,cAAc,OAAc,SAAS,QAAQ,aAAa,KAAG,OAAO,CAAC,MAAM,EAAE,CAwBzF,CAAC;AAEF,2DAA2D;AAC3D,eAAO,MAAM,YAAY,OAAc,SAAS,SAAS,MAAM,KAAG,OAAO,CAAC,MAAM,EAAE,CAqBjF,CAAC;AAuJF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,OAAc,SAAS,KAAG,OAAO,CAAC,MAAM,EAAE,CAYzE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,SAAU,MAAM,SAAS,OAAO,UAAU,MAAM,aAAY,SAAS,MAAM,EAAE,KAAQ,MAoC5G,CAAC;AA6CF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,OAC9B,SAAS,OACR,MAAM,KACT,OAAO,CAAC,WAAW,CAAC,yBAAyB,CAAC,sBAAsB,CAAC,CAAC,CAgBxE,CAAC;AAwHF,oHAAoH;AACpH,eAAO,MAAM,YAAY,kBAAmB,MAAM,KAAG,MAAM,GAAG,SAQ7D,CAAC;AAEF,qHAAqH;AACrH,eAAO,MAAM,eAAe,eAAgB,MAAM,KAAG,MAAM,GAAG,SAQ7D,CAAC"}
1
+ {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../lib/migration/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,yBAAyB,EAE9B,KAAK,gBAAgB,EACrB,KAAK,eAAe,EAIpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAmB,KAAK,gBAAgB,EAAoB,MAAM,SAAS,CAAC;AACnF,OAAO,EAIN,KAAK,SAAS,EAYd,MAAM,sBAAsB,CAAC;AA+B9B;;;GAGG;AAEH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEnD;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC9B,cAAc,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxE;AAED,yDAAyD;AACzD,KAAK,gBAAgB,GAAG;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,WAAY,gBAAgB,GAAG,gBAAgB,KAAG,gBAGhF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,WAChB,gBAAgB,GAAG,gBAAgB,QACrC,aAAa,YACV,gBAAgB,UAClB,cAAc,KACnB,OAAO,CAAC,eAAe,CAgBzB,CAAC;AAkCF,qGAAqG;AACrG,eAAO,MAAM,kBAAkB,OAAc,SAAS,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CASlF,CAAC;AA0CF,8GAA8G;AAC9G,eAAO,MAAM,cAAc,OAAc,SAAS,QAAQ,aAAa,KAAG,OAAO,CAAC,MAAM,EAAE,CAwBzF,CAAC;AAEF,2DAA2D;AAC3D,eAAO,MAAM,YAAY,OAAc,SAAS,SAAS,MAAM,KAAG,OAAO,CAAC,MAAM,EAAE,CAqBjF,CAAC;AAuJF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,OAAc,SAAS,KAAG,OAAO,CAAC,MAAM,EAAE,CAYzE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,SAAU,MAAM,SAAS,OAAO,UAAU,MAAM,aAAY,SAAS,MAAM,EAAE,KAAQ,MAoC5G,CAAC;AA6CF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,OAC9B,SAAS,OACR,MAAM,KACT,OAAO,CAAC,WAAW,CAAC,yBAAyB,CAAC,sBAAsB,CAAC,CAAC,CAgBxE,CAAC;AAwHF,oHAAoH;AACpH,eAAO,MAAM,YAAY,kBAAmB,MAAM,KAAG,MAAM,GAAG,SAQ7D,CAAC;AAEF,qHAAqH;AACrH,eAAO,MAAM,eAAe,eAAgB,MAAM,KAAG,MAAM,GAAG,SAQ7D,CAAC"}
@@ -1,6 +1,7 @@
1
- import { EventCollection, SnapshotCollection, } from '@ocoda/event-sourcing';
1
+ import { EventCollection, SnapshotCollection, UnsupportedOperationException, } from '@ocoda/event-sourcing';
2
2
  import { createConnection } from 'mariadb';
3
3
  import { CATALOG_TABLE, EVENT_COLUMNS, SNAPSHOT_COLUMNS, assertTableName, backupTableName, escapeId, inspectEventTable, inspectSnapshotTable, isMigrationTable, latestIndexes, snapshotColumnsAreV2, tableColumns, tableIndexes, } from '../mariadb.schema.js';
4
+ import { probeServer } from '../mariadb.server.js';
4
5
  import { MariaDBErrorNumber, errorNumberOf, isFatalConnectionError, isGaleraNode } from '../mariadb.utils.js';
5
6
  import { planEventMigration, planSnapshotMigration, } from './plan.js';
6
7
  import { GALERA_FRAGMENT_BYTES, GALERA_MIN_FRAGMENT_BYTES, acquireLockSql, canonicalizedEventStreamsSql, canonicalizedSnapshotStreamsSql, caseVariantStreamsSql, duplicateEventIdsSql, galeraFragmentBytesOf, gappedStreamsSampleSql, gappedStreamsTotalSql, lockWaitSecondsOf, nonCrockfordEventIdsSql, occurredOnRepairSql, otherTransactionsSql, releaseLockSql, lockNameSql, sessionSql, snapshotFlagsSql, } from './sql.js';
@@ -69,6 +70,14 @@ export const maxWriteSetBytesOf = async (db) => {
69
70
  }
70
71
  };
71
72
  const migrate = async (connection, kind, options, hooks) => {
73
+ // The migration's session settings and checks are MariaDB's. 3.x on MySQL is not supported yet
74
+ const server = await probeServer(connection);
75
+ if (server.flavour !== 'mariadb') {
76
+ throw new UnsupportedOperationException({
77
+ operation: `servers other than MariaDB, and this one is ${server.comment || 'MySQL'} ${server.version}`,
78
+ component: 'MariaDB migration from 3.x',
79
+ });
80
+ }
72
81
  const dryRun = options.dryRun ?? false;
73
82
  const environment = await environmentOf(connection);
74
83
  const planOptions = {
@@ -1 +1 @@
1
- {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../lib/migration/migrate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../lib/migration/migrate.ts"],"names":[],"mappings":"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"}