This repository has been archived on 2022-07-30. You can view files and clone it, but cannot push or open issues/pull-requests.
mdb/kvstore/db-sql.go

35 lines
849 B
Go

package kvstore
const sqlSchema = `
BEGIN IMMEDIATE;
CREATE TABLE IF NOT EXISTS kv(
Collection TEXT NOT NULL,
ID INTEGER NOT NULL,
Data BLOB,
PRIMARY KEY (Collection, ID)
) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS maxSeqNum(
ID INTEGER NOT NULL PRIMARY KEY,
Value INTEGER NOT NULL
) WITHOUT ROWID;
INSERT INTO maxSeqNum(ID, Value) VALUES (1, 0) ON CONFLICT DO NOTHING;
COMMIT;`
const sqlKVUpsert = `
INSERT INTO kv
(Collection,ID,Data) VALUES (?,?,?)
ON CONFLICT(Collection,ID) DO UPDATE SET
Data=excluded.Data
WHERE
ID=excluded.ID`
const sqlKVDelete = `DELETE FROM kv WHERE Collection=? AND ID=?`
const sqlKVIterate = `SELECT ID,Data FROM kv WHERE Collection=?`
const sqlMaxSeqNumGet = `SELECT Value FROM maxSeqNum WHERE ID=1`
const sqlMaxSeqNumSet = `UPDATE maxSeqNum SET Value=? WHERE ID=1`