[Top][All Lists]
[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;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r5330 - GNUnet/src/applications/sqstore_mysql,
gnunet <=