diff options
author | Christian Grothoff <christian@grothoff.org> | 2011-09-14 12:29:57 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2011-09-14 12:29:57 +0000 |
commit | 063ce6a14df7382df008f07c547bf3d3f5c79dae (patch) | |
tree | 795cc12dbedb80ea13df25a755f4c3ce02212ddb /src/datastore | |
parent | 12e817dea1836b76b7f05c06d0c57ba43e938ef2 (diff) | |
download | gnunet-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.c | 28 |
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) || |