gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r5341 - GNUnet/src/applications/sqstore_mysql


From: gnunet
Subject: [GNUnet-SVN] r5341 - GNUnet/src/applications/sqstore_mysql
Date: Sun, 22 Jul 2007 12:34:26 -0600 (MDT)

Author: grothoff
Date: 2007-07-22 12:34:26 -0600 (Sun, 22 Jul 2007)
New Revision: 5341

Modified:
   GNUnet/src/applications/sqstore_mysql/mysql.c
Log:
fix

Modified: GNUnet/src/applications/sqstore_mysql/mysql.c
===================================================================
--- GNUnet/src/applications/sqstore_mysql/mysql.c       2007-07-22 08:25:48 UTC 
(rev 5340)
+++ GNUnet/src/applications/sqstore_mysql/mysql.c       2007-07-22 18:34:26 UTC 
(rev 5341)
@@ -216,21 +216,18 @@
 
 #define SELECT_IT_LOW_PRIORITY "SELECT * FROM gn071 WHERE ( (prio = ? AND vkey 
> ?) OR (prio > ? AND vkey != ?) )"\
                                "ORDER BY prio ASC,vkey ASC LIMIT 1"
-  MYSQL_STMT *ilow;
 
 #define SELECT_IT_NON_ANONYMOUS "SELECT * FROM gn071 WHERE ( (prio = ? AND 
vkey < ?) OR (prio < ? AND vkey != ?) ) "\
                                 "AND anonLevel=0 AND type != 0xFFFFFFFF "\
                                 "ORDER BY prio DESC,vkey DESC LIMIT 1"
-  MYSQL_STMT *inon;
 
 #define SELECT_IT_EXPIRATION_TIME "SELECT * FROM gn071 WHERE ( (expire = ? AND 
vkey > ?) OR (expire > ? AND vkey != ?) ) "\
                                   "ORDER BY expire ASC,vkey ASC LIMIT 1"
-  MYSQL_STMT *iexp;
 
 #define SELECT_IT_MIGRATION_ORDER "SELECT * FROM gn071 WHERE ( (expire = ? AND 
vkey < ?) OR (expire < ? AND vkey != ?) ) "\
                                   "AND expire > ? AND type!=3 "\
                                   "ORDER BY expire DESC,vkey DESC LIMIT 1"
-  MYSQL_STMT *imig;
+  MYSQL_STMT * iter[4];
 
 } mysqlHandle;
 
@@ -258,10 +255,10 @@
   PEND (dbh->count_entry_by_hash);
   PEND (dbh->count_entry_by_hash_and_type);
   PEND (dbh->update_entry);
-  PEND (dbh->ilow);
-  PEND (dbh->inon);
-  PEND (dbh->iexp);
-  PEND (dbh->imig);
+  PEND (dbh->iter[0]);
+  PEND (dbh->iter[1]);
+  PEND (dbh->iter[2]);
+  PEND (dbh->iter[3]);
   mysql_close (dbh->dbf);
   dbh->dbf = NULL;
   dbh->valid = NO;
@@ -389,10 +386,10 @@
   PINIT (dbh->count_entry_by_hash, COUNT_ENTRY_BY_HASH);
   PINIT (dbh->count_entry_by_hash_and_type, COUNT_ENTRY_BY_HASH_AND_TYPE);
   PINIT (dbh->update_entry, UPDATE_ENTRY);
-  PINIT (dbh->ilow, SELECT_IT_LOW_PRIORITY);
-  PINIT (dbh->inon, SELECT_IT_NON_ANONYMOUS);
-  PINIT (dbh->iexp, SELECT_IT_EXPIRATION_TIME);
-  PINIT (dbh->imig, SELECT_IT_MIGRATION_ORDER);
+  PINIT (dbh->iter[0], SELECT_IT_LOW_PRIORITY);
+  PINIT (dbh->iter[1], SELECT_IT_NON_ANONYMOUS);
+  PINIT (dbh->iter[2], SELECT_IT_EXPIRATION_TIME);
+  PINIT (dbh->iter[3], SELECT_IT_MIGRATION_ORDER);
   dbh->valid = YES;
   return OK;
 }
@@ -791,7 +788,7 @@
 iterateHelper (unsigned int type,
                int is_asc,
                int is_prio,
-               MYSQL_STMT * stmt, Datum_Iterator iter, void *closure)
+               unsigned int iter_select, Datum_Iterator iter, void *closure)
 {
   Datastore_Value *datum;
   int count;
@@ -810,6 +807,7 @@
   cron_t now;
   MYSQL_BIND qbind[5];
   MYSQL_BIND rbind[7];
+  MYSQL_STMT * stmt;
 
   if (is_asc)
     {
@@ -890,6 +888,7 @@
           mysql_thread_end ();
           return SYSERR;
         }
+      stmt = dbh->iter[iter_select];
       now = get_time ();
       if (mysql_stmt_bind_param (stmt, qbind))
         {
@@ -979,7 +978,7 @@
 static int
 iterateLowPriority (unsigned int type, Datum_Iterator iter, void *closure)
 {
-  return iterateHelper (type, YES, YES, dbh->ilow, iter, closure);
+  return iterateHelper (type, YES, YES, 0, iter, closure);
 }
 
 /**
@@ -995,7 +994,7 @@
 static int
 iterateNonAnonymous (unsigned int type, Datum_Iterator iter, void *closure)
 {
-  return iterateHelper (type, NO, YES, dbh->inon, iter, closure);
+  return iterateHelper (type, NO, YES, 1, iter, closure);
 }
 
 /**
@@ -1011,7 +1010,7 @@
 static int
 iterateExpirationTime (unsigned int type, Datum_Iterator iter, void *closure)
 {
-  return iterateHelper (type, YES, NO, dbh->iexp, iter, closure);
+  return iterateHelper (type, YES, NO, 2, iter, closure);
 }
 
 /**
@@ -1025,7 +1024,7 @@
 static int
 iterateMigrationOrder (Datum_Iterator iter, void *closure)
 {
-  return iterateHelper (0, NO, NO, dbh->imig, iter, closure);
+  return iterateHelper (0, NO, NO, 3, iter, closure);
 }
 
 /**
@@ -1039,7 +1038,7 @@
 static int
 iterateAllNow (Datum_Iterator iter, void *closure)
 {
-  return iterateHelper (0, YES, YES, dbh->ilow, iter, closure);
+  return iterateHelper (0, YES, YES, 0, iter, closure);
 }
 
 /**
@@ -1085,20 +1084,6 @@
           GE_DEBUG | GE_REQUEST | GE_USER,
           "MySQL looks for `%s' of type %u\n", &enc, type);
 #endif
-  if (type != 0)
-    {
-      if (iter == NULL)
-        stmt = dbh->count_entry_by_hash_and_type;
-      else
-        stmt = dbh->select_entry_by_hash_and_type;
-    }
-  else
-    {
-      if (iter == NULL)
-        stmt = dbh->count_entry_by_hash;
-      else
-        stmt = dbh->select_entry_by_hash;
-    }
 
   hashSize = sizeof (HashCode512);
   GE_ASSERT (ectx, mysql_stmt_param_count (stmt) <= 3);
@@ -1151,6 +1136,21 @@
           mysql_thread_end ();
           return SYSERR;
         }
+      if (type != 0)
+       {
+         if (iter == NULL)
+           stmt = dbh->count_entry_by_hash_and_type;
+         else
+           stmt = dbh->select_entry_by_hash_and_type;
+       }
+      else
+       {
+         if (iter == NULL)
+           stmt = dbh->count_entry_by_hash;
+         else
+           stmt = dbh->select_entry_by_hash;
+       }
+
       if (mysql_stmt_bind_param (stmt, qbind))
         {
           GE_LOG (ectx,





reply via email to

[Prev in Thread] Current Thread [Next in Thread]