[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r2267 - GNUnet/src/applications/sqstore_sqlite
From: |
grothoff |
Subject: |
[GNUnet-SVN] r2267 - GNUnet/src/applications/sqstore_sqlite |
Date: |
Sat, 19 Nov 2005 15:27:18 -0800 (PST) |
Author: grothoff
Date: 2005-11-19 15:27:17 -0800 (Sat, 19 Nov 2005)
New Revision: 2267
Modified:
GNUnet/src/applications/sqstore_sqlite/sqlite.c
Log:
fix
Modified: GNUnet/src/applications/sqstore_sqlite/sqlite.c
===================================================================
--- GNUnet/src/applications/sqstore_sqlite/sqlite.c 2005-11-19 23:00:18 UTC
(rev 2266)
+++ GNUnet/src/applications/sqstore_sqlite/sqlite.c 2005-11-19 23:27:17 UTC
(rev 2267)
@@ -119,7 +119,7 @@
/* Is the DB already open? */
this_tid = pthread_self();
- for(idx = 0; idx < db->handle_count; idx++)
+ for (idx = 0; idx < db->handle_count; idx++)
if (pthread_equal(db->handles[idx].tid, this_tid)) {
ret = db->handles + idx;
break;
@@ -127,12 +127,10 @@
if (idx == db->handle_count) {
/* we haven't opened the DB for this thread yet */
- if (!db->handle_count)
- db->handles = MALLOC(sizeof(sqliteHandle));
- else
- db->handles = REALLOC(db->handles, (db->handle_count + 1) *
sizeof(sqliteHandle));
-
- ret = db->handles + db->handle_count++;
+ GROW(db->handles,
+ db->handle_count,
+ db->handle_count + 1);
+ ret = db->handles + db->handle_count - 1;
ret->tid = this_tid;
/* Open database and precompile statements */
@@ -144,7 +142,21 @@
FREE(db);
return NULL;
}
-
+
+ if (db->handle_count == 1) {
+ /* first open: create indices! */
+ sqlite3_exec(ret->dbh, "CREATE INDEX idx_hash ON gn070 (hash)",
+ NULL, NULL, NULL);
+ sqlite3_exec(ret->dbh, "CREATE INDEX idx_prio ON gn070 (prio)",
+ NULL, NULL, NULL);
+ sqlite3_exec(ret->dbh, "CREATE INDEX idx_expire ON gn070 (expire)",
+ NULL, NULL, NULL);
+ sqlite3_exec(ret->dbh, "CREATE INDEX idx_comb1 ON gn070
(prio,expire,hash)",
+ NULL, NULL, NULL);
+ sqlite3_exec(ret->dbh, "CREATE INDEX idx_comb2 ON gn070
(expire,prio,hash)",
+ NULL, NULL, NULL);
+ }
+
sqlite3_exec(ret->dbh, "PRAGMA temp_store=MEMORY", NULL, NULL, NULL);
sqlite3_exec(ret->dbh, "PRAGMA synchronous=OFF", NULL, NULL, NULL);
sqlite3_exec(ret->dbh, "PRAGMA count_changes=OFF", NULL, NULL, NULL);
@@ -1020,26 +1032,16 @@
}
db->payload = getStat("PAYLOAD");
-
if (db->payload == SYSERR) {
LOG_SQLITE(LOG_ERROR, "sqlite_payload");
-
FREE(db->fn);
FREE(db);
return NULL;
}
+
+
+
- sqlite3_exec(dbh->dbh, "CREATE INDEX idx_hash ON gn070 (hash)",
- NULL, NULL, NULL);
- sqlite3_exec(dbh->dbh, "CREATE INDEX idx_prio ON gn070 (prio)",
- NULL, NULL, NULL);
- sqlite3_exec(dbh->dbh, "CREATE INDEX idx_expire ON gn070 (expire)",
- NULL, NULL, NULL);
- sqlite3_exec(dbh->dbh, "CREATE INDEX idx_comb1 ON gn070 (prio,expire,hash)",
- NULL, NULL, NULL);
- sqlite3_exec(dbh->dbh, "CREATE INDEX idx_comb2 ON gn070 (expire,prio,hash)",
- NULL, NULL, NULL);
-
coreAPI = capi;
stats = coreAPI->requestService("stats");
if (stats)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r2267 - GNUnet/src/applications/sqstore_sqlite,
grothoff <=