aboutsummaryrefslogtreecommitdiff
path: root/src/datastore
diff options
context:
space:
mode:
authorDavid Barksdale <amatus@amat.us>2017-06-05 07:46:41 -0500
committerDavid Barksdale <amatus@amat.us>2017-06-05 07:50:04 -0500
commit57866fe5f37a8cf2d43f8839a2f2b18e986acb81 (patch)
treecd81b5fbd3433c5fc05d296b7afde34a5aab7ba1 /src/datastore
parent6a04c1c5fc8e8d6a8e17c0e217ffbfc868a09592 (diff)
downloadgnunet-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.c52
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,