gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r5330 - GNUnet/src/applications/sqstore_mysql
Date: Sat, 21 Jul 2007 23:23:07 -0600 (MDT)

Author: grothoff
Date: 2007-07-21 23:23:07 -0600 (Sat, 21 Jul 2007)
New Revision: 5330

Modified:
   GNUnet/src/applications/sqstore_mysql/mysql.c
   GNUnet/src/applications/sqstore_mysql/mysqltest.c
   GNUnet/src/applications/sqstore_mysql/mysqltest3.c
Log:
tests pass

Modified: GNUnet/src/applications/sqstore_mysql/mysql.c
===================================================================
--- GNUnet/src/applications/sqstore_mysql/mysql.c       2007-07-22 05:02:46 UTC 
(rev 5329)
+++ GNUnet/src/applications/sqstore_mysql/mysql.c       2007-07-22 05:23:07 UTC 
(rev 5330)
@@ -212,7 +212,7 @@
                                "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 != ?) ) "\
+#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;
@@ -221,7 +221,7 @@
                                   "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 != ?) ) "\
+#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;
@@ -308,6 +308,10 @@
       iclose();
       return SYSERR;
     }
+  /* MySQL 5.0.46 fixes a bug in MyISAM (presumably); 
+     earlier versions have issues with INDEX over BINARY data,
+     which is why we need to use InnoDB for those
+     (even though MyISAM would be faster) */
   mysql_query (dbh->dbf,
               "CREATE TABLE IF NOT EXISTS gn071 ("
               " size INT(11) UNSIGNED NOT NULL DEFAULT 0,"
@@ -785,9 +789,9 @@
     last_vkey = 0;
     last_expire = 0;
   } else {
-    last_prio = -1;
-    last_vkey = -1;
-    last_expire = -1;
+    last_prio = 0x7FFFFFFFL;
+    last_vkey = 0x7FFFFFFFFFFFFFFFLL; /* MySQL only supports 63 bits */
+    last_expire = 0x7FFFFFFFFFFFFFFFLL; /* MySQL only supports 63 bits */
   }
   memset(qbind, 0, sizeof(qbind));
   if (is_prio) {
@@ -814,7 +818,7 @@
   qbind[4].buffer_type = MYSQL_TYPE_LONGLONG;
   qbind[4].buffer = &now;
   qbind[4].is_unsigned = YES;
-  GE_ASSERT (ectx, mysql_stmt_param_count (stmt) <= 4);
+  GE_ASSERT (ectx, mysql_stmt_param_count (stmt) <= 5);
   
   hashSize = sizeof(HashCode512);
   memset(rbind, 0, sizeof(rbind));
@@ -897,8 +901,15 @@
     }
     mysql_stmt_reset(stmt);
     MUTEX_UNLOCK (lock);
+    if ( ( (is_prio) && (last_prio != prio)) ||
+        ( (!is_prio) && (last_expire != expiration) ) ) {
+      if (is_asc)
+       last_vkey = 0;
+      else
+       last_vkey = 0x7FFFFFFFFFFFFFFFLL; /* MySQL only supports 63 bits */
+    } else
+      last_vkey = vkey;
     last_prio = prio;
-    last_vkey = vkey;
     last_expire = expiration;
     count++;
     if (iter != NULL) {

Modified: GNUnet/src/applications/sqstore_mysql/mysqltest.c
===================================================================
--- GNUnet/src/applications/sqstore_mysql/mysqltest.c   2007-07-22 05:02:46 UTC 
(rev 5329)
+++ GNUnet/src/applications/sqstore_mysql/mysqltest.c   2007-07-22 05:23:07 UTC 
(rev 5330)
@@ -31,7 +31,7 @@
 #include "gnunet_sqstore_service.h"
 #include "core.h"
 
-#define ASSERT(x) do { if (! (x)) { printf("Error at %s:%d\n", __FILE__, 
__LINE__); abort(); goto FAILURE;} } while (0)
+#define ASSERT(x) do { if (! (x)) { printf("Error at %s:%d\n", __FILE__, 
__LINE__); goto FAILURE;} } while (0)
 
 static cron_t now;
 

Modified: GNUnet/src/applications/sqstore_mysql/mysqltest3.c
===================================================================
--- GNUnet/src/applications/sqstore_mysql/mysqltest3.c  2007-07-22 05:02:46 UTC 
(rev 5329)
+++ GNUnet/src/applications/sqstore_mysql/mysqltest3.c  2007-07-22 05:23:07 UTC 
(rev 5330)
@@ -109,6 +109,7 @@
 {
   int i;
   int j;
+  int ret;
   cron_t start;
   cron_t end;
 
@@ -128,41 +129,41 @@
       if (GNUNET_SHUTDOWN_TEST () == YES)
         break;
       start = get_time ();
-      api->iterateLowPriority (0, &iterateDummy, api);
+      ret = api->iterateLowPriority (0, &iterateDummy, api);
       end = get_time ();
-      printf ("%3u low priority iteration took %20llums\n", i, end - start);
+      printf ("%3u low priority iteration took %20llums (%d)\n", i, end - 
start, ret);
       if (GNUNET_SHUTDOWN_TEST () == YES)
         break;
       start = get_time ();
-      api->iterateExpirationTime (0, &iterateDummy, api);
+      ret = api->iterateExpirationTime (0, &iterateDummy, api);
       end = get_time ();
-      printf ("%3u expiration t iteration took %20llums\n", i, end - start);
+      printf ("%3u expiration t iteration took %20llums (%d)\n", i, end - 
start, ret);
       if (GNUNET_SHUTDOWN_TEST () == YES)
         break;
       start = get_time ();
-      api->iterateNonAnonymous (0, &iterateDummy, api);
+      ret = api->iterateNonAnonymous (0, &iterateDummy, api);
       end = get_time ();
-      printf ("%3u non anonymou iteration took %20llums\n", i, end - start);
+      printf ("%3u non anonymou iteration took %20llums (%d)\n", i, end - 
start, ret);
       if (GNUNET_SHUTDOWN_TEST () == YES)
         break;
 #if 1
       start = get_time ();
-      api->iterateNonAnonymous (0, &iterateDummy, api);
+      ret = api->iterateNonAnonymous (0, &iterateDummy, api);
       end = get_time ();
-      printf ("%3u non anon YES iteration took %20llums\n", i, end - start);
+      printf ("%3u non anon YES iteration took %20llums (%d)\n", i, end - 
start, ret);
       if (GNUNET_SHUTDOWN_TEST () == YES)
         break;
 #endif
       start = get_time ();
-      api->iterateMigrationOrder (&iterateDummy, api);
+      ret = api->iterateMigrationOrder (&iterateDummy, api);
       end = get_time ();
-      printf ("%3u migration or iteration took %20llums\n", i, end - start);
+      printf ("%3u migration or iteration took %20llums (%d)\n", i, end - 
start, ret);
       if (GNUNET_SHUTDOWN_TEST () == YES)
         break;
       start = get_time ();
-      api->iterateAllNow (&iterateDummy, api);
+      ret = api->iterateAllNow (&iterateDummy, api);
       end = get_time ();
-      printf ("%3u all now      iteration took %20llums\n", i, end - start);
+      printf ("%3u all now      iteration took %20llums (%d)\n", i, end - 
start, ret);
       if (GNUNET_SHUTDOWN_TEST () == YES)
         break;
     }





reply via email to

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