Skip to content
File

Blob: kv/sqlite3/queries.go

go58 lines
1package sqlite3
2 
3// ---------------------------------------------------------------------------
4// Centralized SQL query definitions for kv/sqlite3.
5//
6// Fixed-shape queries are grouped by domain and referenced by the prepared
7// statement registry (see statements.go) as well as direct call sites.
8// Dynamic queries (e.g. RemoveKeys with variable IN clauses) stay in their
9// respective call sites but use the table/column names defined here.
10// ---------------------------------------------------------------------------
11 
12// -- simple_entries ---------------------------------------------------------
13 
14const (
15 querySimplePut = "INSERT INTO `simple_entries` (`key`, `value`) VALUES (?, ?) ON CONFLICT(`key`) DO UPDATE SET `value` = excluded.`value`"
16 querySimpleGet = "SELECT `value` FROM `simple_entries` WHERE `key` = ?"
17 querySimpleDel = "DELETE FROM `simple_entries` WHERE `key` = ?"
18)
19 
20// -- prefix_entries ---------------------------------------------------------
21 
22const (
23 queryPrefixAppend = "INSERT INTO `prefix_entries` (`prefix`, `child`) VALUES (?, ?) ON CONFLICT DO NOTHING"
24 queryPrefixContains = "SELECT 1 FROM `prefix_entries` WHERE `prefix` = ? AND `child` = ? LIMIT 1"
25 queryPrefixList = "SELECT `child` FROM `prefix_entries` WHERE `prefix` = ?"
26 queryPrefixRemove = "DELETE FROM `prefix_entries` WHERE `prefix` = ? AND `child` = ?"
27 queryPrefixCount = "SELECT COUNT(*) FROM `prefix_entries` WHERE `prefix` = ?"
28)
29 
30// -- lease_entries ----------------------------------------------------------
31 
32const (
33 queryLeaseAcquire = "INSERT INTO `lease_entries` (`owner`, `token`) VALUES (?, ?) " +
34 "ON CONFLICT(`owner`) DO UPDATE SET `token` = excluded.`token` " +
35 "WHERE `token` <= ?"
36 queryLeaseRenew = "UPDATE `lease_entries` SET `token` = ? WHERE `owner` = ? AND `token` = ? AND `token` > ?"
37 queryLeaseRelease = "DELETE FROM `lease_entries` WHERE `owner` = ? AND `token` = ?"
38 queryLeaseGet = "SELECT `token` FROM `lease_entries` WHERE `owner` = ?"
39 queryLeaseImport = "INSERT INTO `lease_entries` (`owner`, `token`) VALUES (?, ?) ON CONFLICT(`owner`) DO UPDATE SET `token` = excluded.`token`"
40)
41 
42// -- key_trackers -----------------------------------------------------------
43 
44const (
45 queryTrackerLookup = "SELECT `hash`, `flags` FROM `key_trackers` WHERE `key` = ?"
46 queryTrackerInsert = "INSERT INTO `key_trackers` (`key`, `hash`, `flags`) VALUES (?, ?, ?)"
47 queryTrackerUpdate = "UPDATE `key_trackers` SET `flags` = ? WHERE `key` = ?"
48 queryTrackerDelete = "DELETE FROM `key_trackers` WHERE `key` = ?"
49)
50 
51// -- provider (list / range) ------------------------------------------------
52 
53const (
54 queryListKeys = "SELECT `key`, `flags` FROM `key_trackers`"
55 queryRangeKeysNorm = "SELECT `key` FROM `key_trackers` WHERE (`hash` > ? AND `hash` < ?) OR `hash` = ? ORDER BY `hash` ASC"
56 queryRangeKeysWrap = "SELECT `key` FROM `key_trackers` WHERE `hash` > ? OR `hash` < ? OR `hash` = ? ORDER BY `hash` ASC"
57)