@superhero/eventflow-db 4.2.6 → 4.3.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 (45) hide show
  1. package/config.js +17 -15
  2. package/index.js +4 -1
  3. package/package.json +1 -1
  4. package/sql/certificate/persist.sql +1 -2
  5. package/sql/certificate/read.sql +1 -1
  6. package/sql/certificate/revoke-past-validity.sql +5 -2
  7. package/sql/certificate/revoke.sql +11 -5
  8. package/sql/certificate/schema.sql +2 -2
  9. package/sql/event/delete-by-id.sql +1 -1
  10. package/sql/event/delete-by-pid-domain.sql +2 -2
  11. package/sql/event/persist.sql +1 -3
  12. package/sql/event/read-by-id.sql +1 -1
  13. package/sql/event/read-by-pid-domain-betweeen-timestamps.sql +2 -2
  14. package/sql/event/read-by-pid-domain-names.sql +3 -3
  15. package/sql/event/read-by-pid-domain.sql +2 -2
  16. package/sql/event/schema.sql +5 -5
  17. package/sql/event_cpid/delete.sql +2 -2
  18. package/sql/event_cpid/persist.sql +4 -3
  19. package/sql/event_cpid/read-by-cpid-domain.sql +3 -3
  20. package/sql/event_cpid/read-by-event_id.sql +5 -2
  21. package/sql/event_cpid/schema.sql +3 -3
  22. package/sql/event_eid/delete.sql +2 -2
  23. package/sql/event_eid/persist.sql +4 -3
  24. package/sql/event_eid/read-by-eid-domain.sql +5 -3
  25. package/sql/event_eid/read-by-eid.sql +3 -2
  26. package/sql/event_eid/read-by-event_id.sql +1 -1
  27. package/sql/event_eid/schema.sql +2 -2
  28. package/sql/event_published/persist.sql +1 -3
  29. package/sql/event_published/schema.sql +4 -4
  30. package/sql/event_published/update-to-consumed-by-hub.sql +6 -3
  31. package/sql/event_published/update-to-consumed-by-spoke.sql +7 -4
  32. package/sql/event_published/update-to-failed.sql +2 -2
  33. package/sql/event_published/update-to-orphan.sql +2 -2
  34. package/sql/event_published/update-to-success.sql +2 -2
  35. package/sql/event_scheduled/persist.sql +1 -3
  36. package/sql/event_scheduled/schema.sql +1 -1
  37. package/sql/event_scheduled/update-executed.sql +2 -2
  38. package/sql/event_scheduled/update-failed.sql +2 -2
  39. package/sql/event_scheduled/update-success.sql +2 -2
  40. package/sql/hub/persist.sql +1 -3
  41. package/sql/hub/read-quit-hub.sql +1 -1
  42. package/sql/hub/schema.sql +3 -3
  43. package/sql/hub/update-to-quit.sql +1 -1
  44. package/sql/log/persist.sql +1 -3
  45. package/sql/log/schema.sql +2 -2
package/config.js CHANGED
@@ -11,21 +11,23 @@ export default
11
11
  {
12
12
  db:
13
13
  {
14
- debug : process.env.EVENTFLOW_MYSQL_DEBUG ?? false,
15
- insecureAuth : process.env.EVENTFLOW_MYSQL_INSECURE_AUTH ?? false,
16
- enableKeepAlive : process.env.EVENTFLOW_MYSQL_ENABLE_KEEP_ALIVE ?? true,
17
- waitForConnections : process.env.EVENTFLOW_MYSQL_WAIT_FOR_CONN ?? true,
18
- keepAliveInitialDelay : process.env.EVENTFLOW_MYSQL_KEEP_ALIVE_DELAY ?? '10000',
19
- queueLimit : process.env.EVENTFLOW_MYSQL_QUEUE_LIMIT ?? '0',
20
- connectionLimit : process.env.EVENTFLOW_MYSQL_CONNECTION_LIMIT ?? '5',
21
- flags : process.env.EVENTFLOW_MYSQL_FLAGS ?? '',
22
- charset : process.env.EVENTFLOW_MYSQL_CHARSET ?? 'UTF8_GENERAL_CI',
23
- timezone : process.env.EVENTFLOW_MYSQL_TIMEZONE ?? 'Z',
24
- host : process.env.EVENTFLOW_MYSQL_HOST ?? 'localhost',
25
- port : process.env.EVENTFLOW_MYSQL_PORT ?? '3306',
26
- user : process.env.EVENTFLOW_MYSQL_USER ?? 'root',
27
- password : process.env.EVENTFLOW_MYSQL_PASS ?? 'root',
28
- database : process.env.EVENTFLOW_MYSQL_DB ?? 'eventflow',
14
+ debug : process.env.EVENTFLOW_MYSQL_DEBUG ?? false,
15
+ insecureAuth : process.env.EVENTFLOW_MYSQL_INSECURE_AUTH ?? false,
16
+ enableKeepAlive : process.env.EVENTFLOW_MYSQL_ENABLE_KEEP_ALIVE ?? true,
17
+ waitForConnections : process.env.EVENTFLOW_MYSQL_WAIT_FOR_CONN ?? true,
18
+ namedPlaceholders : process.env.EVENTFLOW_MYSQL_NAMED_PLACEHOLDERS ?? false,
19
+ idleTimeout : process.env.EVENTFLOW_MYSQL_IDLE_TIMEOUT ?? 0,
20
+ keepAliveInitialDelay : process.env.EVENTFLOW_MYSQL_KEEP_ALIVE_DELAY ?? 0,
21
+ queueLimit : process.env.EVENTFLOW_MYSQL_QUEUE_LIMIT ?? 0,
22
+ connectionLimit : process.env.EVENTFLOW_MYSQL_CONNECTION_LIMIT ?? 10,
23
+ flags : process.env.EVENTFLOW_MYSQL_FLAGS ?? '',
24
+ charset : process.env.EVENTFLOW_MYSQL_CHARSET ?? 'utf8mb4',
25
+ timezone : process.env.EVENTFLOW_MYSQL_TIMEZONE ?? 'Z',
26
+ host : process.env.EVENTFLOW_MYSQL_HOST ?? 'localhost',
27
+ port : process.env.EVENTFLOW_MYSQL_PORT ?? '3306',
28
+ user : process.env.EVENTFLOW_MYSQL_USER ?? 'root',
29
+ password : process.env.EVENTFLOW_MYSQL_PASS ?? 'root',
30
+ database : process.env.EVENTFLOW_MYSQL_DB ?? 'eventflow',
29
31
  }
30
32
  }
31
33
  }
package/index.js CHANGED
@@ -23,6 +23,8 @@ export function locate(locator)
23
23
  */
24
24
  export default class DB
25
25
  {
26
+ escape = mysql2.escape
27
+
26
28
  constructor(gateway)
27
29
  {
28
30
  this.gateway = gateway
@@ -295,7 +297,8 @@ export default class DB
295
297
 
296
298
  try
297
299
  {
298
- result = await this.gateway.query('event/read-by-pid-domain-names', [ pid, domain, names ])
300
+ const castings = names.map(() => `CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin`).join(',')
301
+ result = await this.gateway.query('event/read-by-pid-domain-names', [ castings, pid, domain, ...names ])
299
302
  }
300
303
  catch(reason)
301
304
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@superhero/eventflow-db",
3
- "version": "4.2.6",
3
+ "version": "4.3.0",
4
4
  "description": "Eventflow db is a set of common database logic in the eventflow ecosystem.",
5
5
  "keywords": [
6
6
  "eventflow"
@@ -1,2 +1 @@
1
- INSERT INTO certificate
2
- SET ?
1
+ INSERT INTO certificate SET ?
@@ -1,5 +1,5 @@
1
1
  SELECT *
2
2
  FROM certificate
3
- WHERE id = ?
3
+ WHERE id = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
4
4
  AND version = 0
5
5
  AND revoked IS NULL
@@ -6,7 +6,10 @@ LEFT JOIN
6
6
  GROUP BY id
7
7
  ) sub
8
8
  ON c.id = sub.id
9
- SET c.revoked = UTC_TIMESTAMP(),
10
- c.version = sub.new_version
9
+
10
+ SET
11
+ c.revoked = UTC_TIMESTAMP(),
12
+ c.version = sub.new_version
13
+
11
14
  WHERE c.version = 0
12
15
  AND c.validity < UTC_TIMESTAMP()
@@ -1,13 +1,19 @@
1
1
  UPDATE certificate AS c
2
2
  LEFT JOIN
3
3
  (
4
- SELECT id, COUNT(*) AS new_version
4
+ SELECT
5
+ id,
6
+ COUNT(*) AS new_version
7
+
5
8
  FROM certificate
6
- WHERE id = ?
9
+ WHERE id = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
7
10
  ) sub
8
11
  ON c.id = sub.id
9
- SET c.revoked = UTC_TIMESTAMP(),
10
- c.version = sub.new_version
11
- WHERE c.id = ?
12
+
13
+ SET
14
+ c.revoked = UTC_TIMESTAMP(),
15
+ c.version = sub.new_version
16
+
17
+ WHERE c.id = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
12
18
  AND c.version = 0
13
19
  AND c.revoked IS NULL
@@ -3,8 +3,8 @@ CREATE TABLE IF NOT EXISTS certificate
3
3
  created DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
4
4
  updated DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
5
5
  version INT UNSIGNED NOT NULL DEFAULT 0,
6
- id VARCHAR(64) NOT NULL,
7
- cert TEXT NOT NULL,
6
+ id VARCHAR(64) NOT NULL CHARACTER SET ascii COLLATE ascii_bin,
7
+ cert TEXT NOT NULL CHARACTER SET ascii COLLATE ascii_bin,
8
8
  `key` BLOB NOT NULL,
9
9
  key_iv VARBINARY(16) NOT NULL,
10
10
  key_salt VARBINARY(16) NOT NULL,
@@ -1,3 +1,3 @@
1
1
  DELETE
2
2
  FROM event
3
- WHERE id = ?
3
+ WHERE id = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
@@ -1,4 +1,4 @@
1
1
  DELETE
2
2
  FROM event
3
- WHERE pid = ?
4
- AND domain = ?
3
+ WHERE pid = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
4
+ AND domain = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
@@ -1,3 +1 @@
1
- INSERT
2
- INTO event
3
- SET ?
1
+ INSERT INTO event SET ?
@@ -1,3 +1,3 @@
1
1
  SELECT *
2
2
  FROM event
3
- WHERE id = ?
3
+ WHERE id = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
@@ -1,6 +1,6 @@
1
1
  SELECT *
2
2
  FROM event
3
- WHERE pid = ?
4
- AND domain = ?
3
+ WHERE pid = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
4
+ AND domain = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
5
5
  AND timestamp BETWEEN ? AND ?
6
6
  ORDER BY timestamp ASC
@@ -1,6 +1,6 @@
1
1
  SELECT *
2
2
  FROM event
3
- WHERE pid = ?
4
- AND domain = ?
5
- AND name IN (?)
3
+ WHERE pid = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
4
+ AND domain = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
5
+ AND name IN (?%s)
6
6
  ORDER BY timestamp ASC
@@ -1,5 +1,5 @@
1
1
  SELECT *
2
2
  FROM event
3
- WHERE pid = ?
4
- AND domain = ?
3
+ WHERE pid = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
4
+ AND domain = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
5
5
  ORDER BY timestamp ASC
@@ -1,11 +1,11 @@
1
1
  CREATE TABLE IF NOT EXISTS event
2
2
  (
3
- id VARCHAR(64) NOT NULL,
3
+ id VARCHAR(64) NOT NULL CHARACTER SET ascii COLLATE ascii_bin,
4
4
  timestamp DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
5
- domain VARCHAR(64) NOT NULL,
6
- rid VARCHAR(64) NULL,
7
- pid VARCHAR(64) NOT NULL,
8
- name VARCHAR(64) NOT NULL,
5
+ domain VARCHAR(64) NOT NULL CHARACTER SET ascii COLLATE ascii_bin,
6
+ rid VARCHAR(64) NULL CHARACTER SET ascii COLLATE ascii_bin,
7
+ pid VARCHAR(64) NOT NULL CHARACTER SET ascii COLLATE ascii_bin,
8
+ name VARCHAR(64) NOT NULL CHARACTER SET ascii COLLATE ascii_bin,
9
9
  data JSON NOT NULL,
10
10
 
11
11
  PRIMARY KEY (id),
@@ -1,4 +1,4 @@
1
1
  DELETE
2
2
  FROM event_cpid
3
- WHERE event_id = ?
4
- AND cpid = ?
3
+ WHERE event_id = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
4
+ AND cpid = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
@@ -1,3 +1,4 @@
1
- INSERT
2
- INTO event_cpid
3
- SET event_id = ?, cpid = ?
1
+ INSERT INTO event_cpid
2
+ SET
3
+ event_id = ?,
4
+ cpid = ?
@@ -1,7 +1,7 @@
1
1
  SELECT event.*
2
2
  FROM event_cpid
3
3
  JOIN event
4
- ON event_id = id AND event.domain = event_cpid.domain
5
- WHERE event_cpid.cpid = ?
6
- AND event_cpid.domain = ?
4
+ ON event_id = event.id AND event.domain = event_cpid.domain
5
+ WHERE event_cpid.cpid = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
6
+ AND event_cpid.domain = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
7
7
  ORDER BY timestamp ASC
@@ -1,3 +1,6 @@
1
- SELECT domain, cpid
1
+ SELECT
2
+ domain,
3
+ cpid
4
+
2
5
  FROM event_cpid
3
- WHERE event_id = ?
6
+ WHERE event_id = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
@@ -1,8 +1,8 @@
1
1
  CREATE TABLE IF NOT EXISTS event_cpid
2
2
  (
3
- event_id VARCHAR(64) NOT NULL,
4
- domain VARCHAR(64) NOT NULL,
5
- cpid VARCHAR(64) NOT NULL,
3
+ event_id VARCHAR(64) NOT NULL CHARACTER SET ascii COLLATE ascii_bin,
4
+ domain VARCHAR(64) NOT NULL CHARACTER SET ascii COLLATE ascii_bin,
5
+ cpid VARCHAR(64) NOT NULL CHARACTER SET ascii COLLATE ascii_bin,
6
6
 
7
7
  PRIMARY KEY (event_id, domain, cpid),
8
8
  FOREIGN KEY (event_id) REFERENCES event (id)
@@ -1,4 +1,4 @@
1
1
  DELETE
2
2
  FROM event_eid
3
- WHERE event_id = ?
4
- AND eid = ?
3
+ WHERE event_id = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
4
+ AND eid = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
@@ -1,3 +1,4 @@
1
- INSERT
2
- INTO event_eid
3
- SET event_id = ?, eid = ?
1
+ INSERT INTO event_eid
2
+ SET
3
+ event_id = ?,
4
+ eid = ?
@@ -1,7 +1,9 @@
1
1
  SELECT event.*
2
2
  FROM event_eid
3
3
  JOIN event
4
- ON event_id = id
5
- WHERE eid = ?
6
- AND domain = ?
4
+ ON event_id = event.id
5
+
6
+ WHERE eid = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
7
+ AND domain = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
8
+
7
9
  ORDER BY timestamp ASC
@@ -1,6 +1,7 @@
1
1
  SELECT event.*
2
2
  FROM event_eid
3
3
  JOIN event
4
- ON event_id = id
5
- WHERE eid = ?
4
+ ON event_id = event.id
5
+
6
+ WHERE eid = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
6
7
  ORDER BY timestamp ASC
@@ -1,3 +1,3 @@
1
1
  SELECT eid
2
2
  FROM event_eid
3
- WHERE event_id = ?
3
+ WHERE event_id = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
@@ -1,7 +1,7 @@
1
1
  CREATE TABLE IF NOT EXISTS event_eid
2
2
  (
3
- event_id VARCHAR(64) NOT NULL,
4
- eid VARCHAR(64) NOT NULL,
3
+ event_id VARCHAR(64) NOT NULL CHARACTER SET ascii COLLATE ascii_bin,
4
+ eid VARCHAR(64) NOT NULL CHARACTER SET ascii COLLATE ascii_bin,
5
5
 
6
6
  PRIMARY KEY (event_id, eid),
7
7
  FOREIGN KEY (event_id) REFERENCES event (id)
@@ -1,3 +1 @@
1
- INSERT
2
- INTO event_published
3
- SET ?
1
+ INSERT INTO event_published SET ?
@@ -1,10 +1,10 @@
1
1
  CREATE TABLE IF NOT EXISTS event_published
2
2
  (
3
- event_id VARCHAR(64) NOT NULL,
3
+ event_id VARCHAR(64) NOT NULL CHARACTER SET ascii COLLATE ascii_bin,
4
4
  published DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP(),
5
- publisher VARCHAR(64) NOT NULL,
6
- consumer VARCHAR(64) NULL,
7
- hub VARCHAR(64) NULL,
5
+ publisher VARCHAR(64) NOT NULL CHARACTER SET ascii COLLATE ascii_bin,
6
+ consumer VARCHAR(64) NULL CHARACTER SET ascii COLLATE ascii_bin,
7
+ hub VARCHAR(64) NULL CHARACTER SET ascii COLLATE ascii_bin,
8
8
  consumed_hub DATETIME NULL,
9
9
  consumed_spoke DATETIME NULL,
10
10
  success DATETIME NULL,
@@ -1,5 +1,8 @@
1
1
  UPDATE event_published
2
- SET consumed_hub = UTC_TIMESTAMP(),
3
- hub = ?
4
- WHERE event_id = ?
2
+
3
+ SET
4
+ consumed_hub = UTC_TIMESTAMP(),
5
+ hub = ?
6
+
7
+ WHERE event_id = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
5
8
  AND consumed_hub IS NULL
@@ -1,5 +1,8 @@
1
1
  UPDATE event_published
2
- SET consumed_spoke = UTC_TIMESTAMP(),
3
- consumer = ?
4
- WHERE event_id = ?
5
- AND consumed_spoke IS NULL
2
+
3
+ SET
4
+ consumed_spoke = UTC_TIMESTAMP(),
5
+ consumer = ?
6
+
7
+ WHERE event_id = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
8
+ AND consumed_spoke IS NULL
@@ -1,3 +1,3 @@
1
1
  UPDATE event_published
2
- SET failed = UTC_TIMESTAMP()
3
- WHERE event_id = ?
2
+ SET failed = UTC_TIMESTAMP()
3
+ WHERE event_id = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
@@ -1,3 +1,3 @@
1
1
  UPDATE event_published
2
- SET orphan = UTC_TIMESTAMP()
3
- WHERE event_id = ?
2
+ SET orphan = UTC_TIMESTAMP()
3
+ WHERE event_id = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
@@ -1,3 +1,3 @@
1
1
  UPDATE event_published
2
- SET success = UTC_TIMESTAMP()
3
- WHERE event_id = ?
2
+ SET success = UTC_TIMESTAMP()
3
+ WHERE event_id = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
@@ -1,3 +1 @@
1
- INSERT
2
- INTO event_scheduled
3
- SET ?
1
+ INSERT INTO event_scheduled SET ?
@@ -1,6 +1,6 @@
1
1
  CREATE TABLE IF NOT EXISTS event_scheduled
2
2
  (
3
- event_id VARCHAR(64) NOT NULL,
3
+ event_id VARCHAR(64) NOT NULL CHARACTER SET ascii COLLATE ascii_bin,
4
4
  timestamp DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP(),
5
5
  scheduled DATETIME NOT NULL,
6
6
  executed DATETIME NULL,
@@ -1,3 +1,3 @@
1
1
  UPDATE event_scheduled
2
- SET executed = UTC_TIMESTAMP()
3
- WHERE event_id = ?
2
+ SET executed = UTC_TIMESTAMP()
3
+ WHERE event_id = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
@@ -1,3 +1,3 @@
1
1
  UPDATE event_scheduled
2
- SET failed = UTC_TIMESTAMP()
3
- WHERE event_id = ?
2
+ SET failed = UTC_TIMESTAMP()
3
+ WHERE event_id = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
@@ -1,3 +1,3 @@
1
1
  UPDATE event_scheduled
2
- SET success = UTC_TIMESTAMP()
3
- WHERE event_id = ?
2
+ SET success = UTC_TIMESTAMP()
3
+ WHERE event_id = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
@@ -1,3 +1 @@
1
- INSERT
2
- INTO hub
3
- SET ?
1
+ INSERT INTO hub SET ?
@@ -1,4 +1,4 @@
1
1
  SELECT *
2
2
  FROM hub
3
- WHERE id = ?
3
+ WHERE id = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
4
4
  AND quit IS NOT NULL
@@ -1,10 +1,10 @@
1
1
  CREATE TABLE IF NOT EXISTS hub
2
2
  (
3
- id VARCHAR(64) NOT NULL,
3
+ id VARCHAR(64) NOT NULL CHARACTER SET ascii COLLATE ascii_bin,
4
4
  timestamp DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP(),
5
- external_ip VARCHAR(16) NOT NULL,
5
+ external_ip VARCHAR(16) NOT NULL CHARACTER SET ascii COLLATE ascii_bin,
6
6
  external_port SMALLINT UNSIGNED NOT NULL,
7
- internal_ip VARCHAR(16) NOT NULL,
7
+ internal_ip VARCHAR(16) NOT NULL CHARACTER SET ascii COLLATE ascii_bin,
8
8
  internal_port SMALLINT UNSIGNED NOT NULL,
9
9
  quit DATETIME NULL,
10
10
 
@@ -1,4 +1,4 @@
1
1
  UPDATE hub
2
2
  SET quit = UTC_TIMESTAMP()
3
- WHERE id = ?
3
+ WHERE id = CAST(? AS CHAR CHARACTER SET ascii) COLLATE ascii_bin
4
4
  AND quit IS NULL
@@ -1,3 +1 @@
1
- INSERT
2
- INTO log
3
- SET ?
1
+ INSERT INTO log SET ?
@@ -1,8 +1,8 @@
1
1
  CREATE TABLE IF NOT EXISTS log
2
2
  (
3
3
  timestamp DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
4
- agent VARCHAR(64) NOT NULL,
5
- message TEXT NOT NULL,
4
+ agent VARCHAR(64) NOT NULL CHARACTER SET ascii COLLATE ascii_bin,
5
+ message TEXT NOT NULL CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
6
6
  error JSON NOT NULL,
7
7
  INDEX idx_timestamp (timestamp),
8
8
  INDEX idx_agent (agent)