diff options
author | David Barksdale <amatus@amat.us> | 2017-06-05 07:46:41 -0500 |
---|---|---|
committer | David Barksdale <amatus@amat.us> | 2017-06-05 07:50:04 -0500 |
commit | 57866fe5f37a8cf2d43f8839a2f2b18e986acb81 (patch) | |
tree | cd81b5fbd3433c5fc05d296b7afde34a5aab7ba1 /src/datastore | |
parent | 6a04c1c5fc8e8d6a8e17c0e217ffbfc868a09592 (diff) | |
download | gnunet-57866fe5f37a8cf2d43f8839a2f2b18e986acb81.tar.gz gnunet-57866fe5f37a8cf2d43f8839a2f2b18e986acb81.zip |
[datastore] Remove unused indicies from sqlite
*** The table name was changed ***
Users will need to dump and re-import their sqlite databases with
gnunet-datastore -d and -i.
Diffstat (limited to 'src/datastore')
-rw-r--r-- | src/datastore/plugin_datastore_sqlite.c | 52 |
1 files changed, 20 insertions, 32 deletions
diff --git a/src/datastore/plugin_datastore_sqlite.c b/src/datastore/plugin_datastore_sqlite.c index cdadfb87d..77b8409cd 100644 --- a/src/datastore/plugin_datastore_sqlite.c +++ b/src/datastore/plugin_datastore_sqlite.c | |||
@@ -186,31 +186,19 @@ create_indices (sqlite3 * dbh) | |||
186 | { | 186 | { |
187 | /* create indices */ | 187 | /* create indices */ |
188 | if ((SQLITE_OK != | 188 | if ((SQLITE_OK != |
189 | sqlite3_exec (dbh, "CREATE INDEX IF NOT EXISTS idx_hash ON gn090 (hash)", | 189 | sqlite3_exec (dbh, "CREATE INDEX IF NOT EXISTS idx_hash ON gn091 (hash)", |
190 | NULL, NULL, NULL)) || | 190 | NULL, NULL, NULL)) || |
191 | (SQLITE_OK != | 191 | (SQLITE_OK != |
192 | sqlite3_exec (dbh, | 192 | sqlite3_exec (dbh, |
193 | "CREATE INDEX IF NOT EXISTS idx_expire_repl ON gn090 (expire ASC,repl DESC)", | 193 | "CREATE INDEX IF NOT EXISTS idx_anon_type ON gn091 (anonLevel ASC,type)", |
194 | NULL, NULL, NULL)) || | 194 | NULL, NULL, NULL)) || |
195 | (SQLITE_OK != | 195 | (SQLITE_OK != |
196 | sqlite3_exec (dbh, | 196 | sqlite3_exec (dbh, |
197 | "CREATE INDEX IF NOT EXISTS idx_comb ON gn090 (anonLevel ASC,expire ASC,prio,type,hash)", | 197 | "CREATE INDEX IF NOT EXISTS idx_expire ON gn091 (expire ASC)", |
198 | NULL, NULL, NULL)) || | 198 | NULL, NULL, NULL)) || |
199 | (SQLITE_OK != | 199 | (SQLITE_OK != |
200 | sqlite3_exec (dbh, | 200 | sqlite3_exec (dbh, |
201 | "CREATE INDEX IF NOT EXISTS idx_anon_type_hash ON gn090 (anonLevel ASC,type,hash)", | 201 | "CREATE INDEX IF NOT EXISTS idx_repl_rvalue ON gn091 (repl,rvalue)", |
202 | NULL, NULL, NULL)) || | ||
203 | (SQLITE_OK != | ||
204 | sqlite3_exec (dbh, | ||
205 | "CREATE INDEX IF NOT EXISTS idx_expire ON gn090 (expire ASC)", | ||
206 | NULL, NULL, NULL)) || | ||
207 | (SQLITE_OK != | ||
208 | sqlite3_exec (dbh, | ||
209 | "CREATE INDEX IF NOT EXISTS idx_repl_rvalue ON gn090 (repl,rvalue)", | ||
210 | NULL, NULL, NULL)) || | ||
211 | (SQLITE_OK != | ||
212 | sqlite3_exec (dbh, | ||
213 | "CREATE INDEX IF NOT EXISTS idx_repl ON gn090 (repl DESC)", | ||
214 | NULL, NULL, NULL))) | 202 | NULL, NULL, NULL))) |
215 | GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR, "sqlite", | 203 | GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR, "sqlite", |
216 | "Failed to create indices: %s\n", sqlite3_errmsg (dbh)); | 204 | "Failed to create indices: %s\n", sqlite3_errmsg (dbh)); |
@@ -315,7 +303,7 @@ database_setup (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
315 | /* We have to do it here, because otherwise precompiling SQL might fail */ | 303 | /* We have to do it here, because otherwise precompiling SQL might fail */ |
316 | CHECK (SQLITE_OK == | 304 | CHECK (SQLITE_OK == |
317 | sq_prepare (plugin->dbh, | 305 | sq_prepare (plugin->dbh, |
318 | "SELECT 1 FROM sqlite_master WHERE tbl_name = 'gn090'", | 306 | "SELECT 1 FROM sqlite_master WHERE tbl_name = 'gn091'", |
319 | &stmt)); | 307 | &stmt)); |
320 | 308 | ||
321 | /* FIXME: SQLite does not have unsigned integers! This is ok for the type column because | 309 | /* FIXME: SQLite does not have unsigned integers! This is ok for the type column because |
@@ -327,7 +315,7 @@ database_setup (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
327 | sqlite3_step (stmt)) && | 315 | sqlite3_step (stmt)) && |
328 | (SQLITE_OK != | 316 | (SQLITE_OK != |
329 | sqlite3_exec (plugin->dbh, | 317 | sqlite3_exec (plugin->dbh, |
330 | "CREATE TABLE gn090 (" | 318 | "CREATE TABLE gn091 (" |
331 | " repl INT4 NOT NULL DEFAULT 0," | 319 | " repl INT4 NOT NULL DEFAULT 0," |
332 | " type INT4 NOT NULL DEFAULT 0," | 320 | " type INT4 NOT NULL DEFAULT 0," |
333 | " prio INT4 NOT NULL DEFAULT 0," | 321 | " prio INT4 NOT NULL DEFAULT 0," |
@@ -353,7 +341,7 @@ database_setup (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
353 | #define RESULT_COLUMNS "repl, type, prio, anonLevel, expire, hash, value, _ROWID_" | 341 | #define RESULT_COLUMNS "repl, type, prio, anonLevel, expire, hash, value, _ROWID_" |
354 | if ( (SQLITE_OK != | 342 | if ( (SQLITE_OK != |
355 | sq_prepare (plugin->dbh, | 343 | sq_prepare (plugin->dbh, |
356 | "UPDATE gn090 " | 344 | "UPDATE gn091 " |
357 | "SET prio = prio + ?, " | 345 | "SET prio = prio + ?, " |
358 | "repl = repl + ?, " | 346 | "repl = repl + ?, " |
359 | "expire = MAX(expire, ?) " | 347 | "expire = MAX(expire, ?) " |
@@ -361,16 +349,16 @@ database_setup (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
361 | &plugin->update)) || | 349 | &plugin->update)) || |
362 | (SQLITE_OK != | 350 | (SQLITE_OK != |
363 | sq_prepare (plugin->dbh, | 351 | sq_prepare (plugin->dbh, |
364 | "UPDATE gn090 " "SET repl = MAX (0, repl - 1) WHERE _ROWID_ = ?", | 352 | "UPDATE gn091 " "SET repl = MAX (0, repl - 1) WHERE _ROWID_ = ?", |
365 | &plugin->updRepl)) || | 353 | &plugin->updRepl)) || |
366 | (SQLITE_OK != | 354 | (SQLITE_OK != |
367 | sq_prepare (plugin->dbh, | 355 | sq_prepare (plugin->dbh, |
368 | "SELECT " RESULT_COLUMNS " FROM gn090 " | 356 | "SELECT " RESULT_COLUMNS " FROM gn091 " |
369 | #if SQLITE_VERSION_NUMBER >= 3007000 | 357 | #if SQLITE_VERSION_NUMBER >= 3007000 |
370 | "INDEXED BY idx_repl_rvalue " | 358 | "INDEXED BY idx_repl_rvalue " |
371 | #endif | 359 | #endif |
372 | "WHERE repl=?2 AND " " (rvalue>=?1 OR " | 360 | "WHERE repl=?2 AND " " (rvalue>=?1 OR " |
373 | " NOT EXISTS (SELECT 1 FROM gn090 " | 361 | " NOT EXISTS (SELECT 1 FROM gn091 " |
374 | #if SQLITE_VERSION_NUMBER >= 3007000 | 362 | #if SQLITE_VERSION_NUMBER >= 3007000 |
375 | "INDEXED BY idx_repl_rvalue " | 363 | "INDEXED BY idx_repl_rvalue " |
376 | #endif | 364 | #endif |
@@ -379,7 +367,7 @@ database_setup (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
379 | &plugin->selRepl)) || | 367 | &plugin->selRepl)) || |
380 | (SQLITE_OK != | 368 | (SQLITE_OK != |
381 | sq_prepare (plugin->dbh, | 369 | sq_prepare (plugin->dbh, |
382 | "SELECT MAX(repl) FROM gn090" | 370 | "SELECT MAX(repl) FROM gn091" |
383 | #if SQLITE_VERSION_NUMBER >= 3007000 | 371 | #if SQLITE_VERSION_NUMBER >= 3007000 |
384 | " INDEXED BY idx_repl_rvalue" | 372 | " INDEXED BY idx_repl_rvalue" |
385 | #endif | 373 | #endif |
@@ -387,18 +375,18 @@ database_setup (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
387 | &plugin->maxRepl)) || | 375 | &plugin->maxRepl)) || |
388 | (SQLITE_OK != | 376 | (SQLITE_OK != |
389 | sq_prepare (plugin->dbh, | 377 | sq_prepare (plugin->dbh, |
390 | "SELECT " RESULT_COLUMNS " FROM gn090 " | 378 | "SELECT " RESULT_COLUMNS " FROM gn091 " |
391 | #if SQLITE_VERSION_NUMBER >= 3007000 | 379 | #if SQLITE_VERSION_NUMBER >= 3007000 |
392 | "INDEXED BY idx_expire " | 380 | "INDEXED BY idx_expire " |
393 | #endif | 381 | #endif |
394 | "WHERE NOT EXISTS (SELECT 1 FROM gn090 WHERE expire < ?1 LIMIT 1) OR (expire < ?1) " | 382 | "WHERE NOT EXISTS (SELECT 1 FROM gn091 WHERE expire < ?1 LIMIT 1) OR (expire < ?1) " |
395 | "ORDER BY expire ASC LIMIT 1", | 383 | "ORDER BY expire ASC LIMIT 1", |
396 | &plugin->selExpi)) || | 384 | &plugin->selExpi)) || |
397 | (SQLITE_OK != | 385 | (SQLITE_OK != |
398 | sq_prepare (plugin->dbh, | 386 | sq_prepare (plugin->dbh, |
399 | "SELECT " RESULT_COLUMNS " FROM gn090 " | 387 | "SELECT " RESULT_COLUMNS " FROM gn091 " |
400 | #if SQLITE_VERSION_NUMBER >= 3007000 | 388 | #if SQLITE_VERSION_NUMBER >= 3007000 |
401 | "INDEXED BY idx_anon_type_hash " | 389 | "INDEXED BY idx_anon_type " |
402 | #endif | 390 | #endif |
403 | "WHERE _ROWID_ >= ? AND " | 391 | "WHERE _ROWID_ >= ? AND " |
404 | "anonLevel = 0 AND " | 392 | "anonLevel = 0 AND " |
@@ -407,12 +395,12 @@ database_setup (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
407 | &plugin->selZeroAnon)) || | 395 | &plugin->selZeroAnon)) || |
408 | (SQLITE_OK != | 396 | (SQLITE_OK != |
409 | sq_prepare (plugin->dbh, | 397 | sq_prepare (plugin->dbh, |
410 | "INSERT INTO gn090 (repl, type, prio, anonLevel, expire, rvalue, hash, vhash, value) " | 398 | "INSERT INTO gn091 (repl, type, prio, anonLevel, expire, rvalue, hash, vhash, value) " |
411 | "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)", | 399 | "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)", |
412 | &plugin->insertContent)) || | 400 | &plugin->insertContent)) || |
413 | (SQLITE_OK != | 401 | (SQLITE_OK != |
414 | sq_prepare (plugin->dbh, | 402 | sq_prepare (plugin->dbh, |
415 | "SELECT " RESULT_COLUMNS " FROM gn090 " | 403 | "SELECT " RESULT_COLUMNS " FROM gn091 " |
416 | "WHERE _ROWID_ >= ? AND " | 404 | "WHERE _ROWID_ >= ? AND " |
417 | "(rvalue >= ? OR 0 = ?) AND " | 405 | "(rvalue >= ? OR 0 = ?) AND " |
418 | "(hash = ? OR 0 = ?) AND " | 406 | "(hash = ? OR 0 = ?) AND " |
@@ -421,11 +409,11 @@ database_setup (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
421 | &plugin->get)) || | 409 | &plugin->get)) || |
422 | (SQLITE_OK != | 410 | (SQLITE_OK != |
423 | sq_prepare (plugin->dbh, | 411 | sq_prepare (plugin->dbh, |
424 | "DELETE FROM gn090 WHERE _ROWID_ = ?", | 412 | "DELETE FROM gn091 WHERE _ROWID_ = ?", |
425 | &plugin->delRow)) || | 413 | &plugin->delRow)) || |
426 | (SQLITE_OK != | 414 | (SQLITE_OK != |
427 | sq_prepare (plugin->dbh, | 415 | sq_prepare (plugin->dbh, |
428 | "DELETE FROM gn090 " | 416 | "DELETE FROM gn091 " |
429 | "WHERE hash = ? AND " | 417 | "WHERE hash = ? AND " |
430 | "value = ? ", | 418 | "value = ? ", |
431 | &plugin->remove)) || | 419 | &plugin->remove)) || |
@@ -1137,7 +1125,7 @@ sqlite_plugin_get_keys (void *cls, | |||
1137 | GNUNET_assert (NULL != proc); | 1125 | GNUNET_assert (NULL != proc); |
1138 | if (SQLITE_OK != | 1126 | if (SQLITE_OK != |
1139 | sq_prepare (plugin->dbh, | 1127 | sq_prepare (plugin->dbh, |
1140 | "SELECT hash FROM gn090", | 1128 | "SELECT hash FROM gn091", |
1141 | &stmt)) | 1129 | &stmt)) |
1142 | { | 1130 | { |
1143 | LOG_SQLITE (plugin, | 1131 | LOG_SQLITE (plugin, |