aboutsummaryrefslogtreecommitdiff
path: root/src/datastore
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2011-09-14 12:29:57 +0000
committerChristian Grothoff <christian@grothoff.org>2011-09-14 12:29:57 +0000
commit063ce6a14df7382df008f07c547bf3d3f5c79dae (patch)
tree795cc12dbedb80ea13df25a755f4c3ce02212ddb /src/datastore
parent12e817dea1836b76b7f05c06d0c57ba43e938ef2 (diff)
downloadgnunet-063ce6a14df7382df008f07c547bf3d3f5c79dae.tar.gz
gnunet-063ce6a14df7382df008f07c547bf3d3f5c79dae.zip
use INDEXED BY only for sqlite >= 3.7
Diffstat (limited to 'src/datastore')
-rw-r--r--src/datastore/plugin_datastore_sqlite.c28
1 files changed, 23 insertions, 5 deletions
diff --git a/src/datastore/plugin_datastore_sqlite.c b/src/datastore/plugin_datastore_sqlite.c
index 2620c3682..931202707 100644
--- a/src/datastore/plugin_datastore_sqlite.c
+++ b/src/datastore/plugin_datastore_sqlite.c
@@ -326,23 +326,41 @@ database_setup (const struct GNUNET_CONFIGURATION_Handle *cfg,
326 (sq_prepare 326 (sq_prepare
327 (plugin->dbh, 327 (plugin->dbh,
328 "SELECT type,prio,anonLevel,expire,hash,value,_ROWID_ " 328 "SELECT type,prio,anonLevel,expire,hash,value,_ROWID_ "
329 "FROM gn090 INDEXED BY idx_repl_rvalue WHERE repl=?2 AND " 329 "FROM gn090 "
330#if SQLITE_VERSION_NUMBER >= 3007000
331 "INDEXED BY idx_repl_rvalue "
332#endif
333 "WHERE repl=?2 AND "
330 " (rvalue>=?1 OR " 334 " (rvalue>=?1 OR "
331 " NOT EXISTS (SELECT 1 FROM gn090 INDEXED BY idx_repl_rvalue WHERE repl=?2 AND rvalue>=?1 LIMIT 1) ) " 335 " NOT EXISTS (SELECT 1 FROM gn090 "
336#if SQLITE_VERSION_NUMBER >= 3007000
337 "INDEXED BY idx_repl_rvalue "
338#endif
339 "WHERE repl=?2 AND rvalue>=?1 LIMIT 1) ) "
332 "ORDER BY rvalue ASC LIMIT 1", &plugin->selRepl) != SQLITE_OK) || 340 "ORDER BY rvalue ASC LIMIT 1", &plugin->selRepl) != SQLITE_OK) ||
333 (sq_prepare 341 (sq_prepare
334 (plugin->dbh, "SELECT MAX(repl) FROM gn090 INDEXED BY idx_repl_rvalue", 342 (plugin->dbh, "SELECT MAX(repl) FROM gn090"
343#if SQLITE_VERSION_NUMBER >= 3007000
344 " INDEXED BY idx_repl_rvalue"
345#endif
346 "",
335 &plugin->maxRepl) != SQLITE_OK) || 347 &plugin->maxRepl) != SQLITE_OK) ||
336 (sq_prepare 348 (sq_prepare
337 (plugin->dbh, 349 (plugin->dbh,
338 "SELECT type,prio,anonLevel,expire,hash,value,_ROWID_ " 350 "SELECT type,prio,anonLevel,expire,hash,value,_ROWID_ "
339 "FROM gn090 INDEXED BY idx_expire " 351 "FROM gn090 "
352#if SQLITE_VERSION_NUMBER >= 3007000
353 "INDEXED BY idx_expire "
354#endif
340 "WHERE NOT EXISTS (SELECT 1 FROM gn090 WHERE expire < ?1 LIMIT 1) OR (expire < ?1) " 355 "WHERE NOT EXISTS (SELECT 1 FROM gn090 WHERE expire < ?1 LIMIT 1) OR (expire < ?1) "
341 "ORDER BY expire ASC LIMIT 1", &plugin->selExpi) != SQLITE_OK) || 356 "ORDER BY expire ASC LIMIT 1", &plugin->selExpi) != SQLITE_OK) ||
342 (sq_prepare 357 (sq_prepare
343 (plugin->dbh, 358 (plugin->dbh,
344 "SELECT type,prio,anonLevel,expire,hash,value,_ROWID_ " 359 "SELECT type,prio,anonLevel,expire,hash,value,_ROWID_ "
345 "FROM gn090 INDEXED BY idx_anon_type_hash " 360 "FROM gn090 "
361#if SQLITE_VERSION_NUMBER >= 3007000
362 "INDEXED BY idx_anon_type_hash "
363#endif
346 "WHERE (anonLevel = 0 AND type=?1) " 364 "WHERE (anonLevel = 0 AND type=?1) "
347 "ORDER BY hash DESC LIMIT 1 OFFSET ?2", 365 "ORDER BY hash DESC LIMIT 1 OFFSET ?2",
348 &plugin->selZeroAnon) != SQLITE_OK) || 366 &plugin->selZeroAnon) != SQLITE_OK) ||