objective categorical abstract machine language personal data server

sqlite3-ocaml does not like semicolons

futur.blue d18309b2 a73070e0

verified
+31 -20
+14 -9
pegasus/lib/data_store.ml
··· 35 35 preferences TEXT NOT NULL, 36 36 created_at INTEGER NOT NULL, 37 37 deactivated_at INTEGER 38 - ); 39 - CREATE INDEX IF NOT EXISTS actors_did_idx ON actors (did); 40 - CREATE INDEX IF NOT EXISTS actors_handle_idx ON actors (handle); 41 - CREATE INDEX IF NOT EXISTS actors_email_idx ON actors (email); 38 + ) 42 39 |sql}] 43 40 () conn 44 41 in 45 42 let$! () = 46 43 [%rapper 47 44 execute 45 + {sql| CREATE INDEX IF NOT EXISTS actors_did_idx ON actors (did); 46 + CREATE INDEX IF NOT EXISTS actors_handle_idx ON actors (handle); 47 + CREATE INDEX IF NOT EXISTS actors_email_idx ON actors (email); 48 + |sql}] 49 + () conn 50 + in 51 + let$! () = 52 + [%rapper 53 + execute 48 54 {sql| CREATE TABLE IF NOT EXISTS invite_codes ( 49 55 code TEXT PRIMARY KEY, 50 56 did TEXT NOT NULL, 51 57 remaining INTEGER NOT NULL 52 - ); 58 + ) 53 59 |sql}] 54 60 () conn 55 61 in ··· 61 67 time INTEGER NOT NULL, 62 68 t TEXT NOT NULL, 63 69 data BLOB NOT NULL 64 - ); 65 - |sql} 66 - syntax_off] 70 + ) 71 + |sql}] 67 72 () conn 68 73 in 69 74 [%rapper ··· 74 79 jti TEXT NOT NULL, 75 80 revoked_at INTEGER NOT NULL, 76 81 PRIMARY KEY (did, jti) 77 - ); 82 + ) 78 83 |sql}] 79 84 () conn 80 85
+17 -11
pegasus/lib/user_store.ml
··· 71 71 {sql| CREATE TABLE IF NOT EXISTS mst ( 72 72 cid TEXT NOT NULL PRIMARY KEY, 73 73 data BLOB NOT NULL 74 - ); 74 + ) 75 75 |sql}] 76 76 () conn 77 77 in ··· 142 142 ~cid ~data 143 143 144 144 (* record storage *) 145 - let create_records_table = 146 - [%rapper 147 - execute 148 - {sql| CREATE TABLE IF NOT EXISTS records ( 145 + let create_records_table conn = 146 + let$! () = 147 + [%rapper 148 + execute 149 + {sql| CREATE TABLE IF NOT EXISTS records ( 149 150 path TEXT NOT NULL PRIMARY KEY, 150 151 cid TEXT NOT NULL, 151 152 since TEXT NOT NULL, 152 153 data BLOB NOT NULL 153 - ); 154 - CREATE INDEX IF NOT EXISTS records_cid_idx ON records (cid); 154 + ) 155 + |sql}] 156 + () conn 157 + in 158 + [%rapper 159 + execute 160 + {sql| CREATE INDEX IF NOT EXISTS records_cid_idx ON records (cid); 155 161 CREATE INDEX IF NOT EXISTS records_since_idx ON records (since); 156 162 |sql}] 157 - () 163 + () conn 158 164 159 165 let get_record_by_path = 160 166 [%rapper ··· 201 207 id INTEGER PRIMARY KEY, 202 208 cid TEXT NOT NULL, 203 209 mimetype TEXT NOT NULL 204 - ); 210 + ) 205 211 |sql}] 206 212 () conn 207 213 in ··· 212 218 blob_id INTEGER NOT NULL REFERENCES blobs(id) ON DELETE CASCADE, 213 219 record_path TEXT NOT NULL REFERENCES records(path) ON DELETE CASCADE, 214 220 PRIMARY KEY (blob_id, record_path) 215 - ); 221 + ) 216 222 |sql}] 217 223 () conn 218 224 in ··· 225 231 WHERE id NOT IN ( 226 232 SELECT DISTINCT blob_id FROM blobs_records 227 233 ); 228 - END; 234 + END 229 235 |sql} 230 236 syntax_off] 231 237 () conn