40 lines
774 B
Go
40 lines
774 B
Go
|
package wal
|
||
|
|
||
|
const sqlSchema = `
|
||
|
BEGIN IMMEDIATE;
|
||
|
|
||
|
CREATE TABLE IF NOT EXISTS wal(
|
||
|
SeqNum INTEGER NOT NULL PRIMARY KEY,
|
||
|
CreatedAt INTEGER NOT NULL,
|
||
|
Collection TEXT NOT NULL,
|
||
|
ID INTEGER NOT NULL,
|
||
|
Store INTEGER NOT NULL,
|
||
|
Data BLOB
|
||
|
) WITHOUT ROWID;
|
||
|
|
||
|
CREATE INDEX IF NOT EXISTS wal_created_at_index ON wal(CreatedAt);
|
||
|
|
||
|
COMMIT;
|
||
|
`
|
||
|
|
||
|
const sqlWALMaxSeqNum = `
|
||
|
SELECT COALESCE(MAX(SeqNum), 0) FROM wal;
|
||
|
`
|
||
|
|
||
|
const sqlWALInsert = `
|
||
|
INSERT INTO wal(
|
||
|
SeqNum,CreatedAt,Collection,ID,Store,Data
|
||
|
) VALUES (?,?,?,?,?,?)`
|
||
|
|
||
|
const sqlWALFollowQuery = `
|
||
|
SELECT
|
||
|
SeqNum,Collection,ID,Store,Data
|
||
|
FROM
|
||
|
wal
|
||
|
WHERE
|
||
|
SeqNum > ?
|
||
|
ORDER BY SeqNum ASC`
|
||
|
|
||
|
const sqlWALDeleteQuery = `
|
||
|
DELETE FROM wal WHERE CreatedAt < ? AND SeqNum < (SELECT MAX(SeqNum) FROM wal)`
|