From 7fc94582e3beebd81c7780eddd3cd31e1c1b4a53 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gr=C3=A9gory=20Wisniewski?= <gregory@nexedi.com>
Date: Mon, 10 Aug 2009 12:16:34 +0000
Subject: [PATCH] Storage IDs (UUID, LOID, LPTID) in hex format to help read
 values stored in database, copy/paste from sql to command line and so on.

git-svn-id: https://svn.erp5.org/repos/neo/branches/prototype3@1259 71dcc9de-d417-0410-9af5-da40c76e7ee4
---
 neo/storage/mysqldb.py | 22 +++++++++++++++++-----
 1 file changed, 17 insertions(+), 5 deletions(-)

diff --git a/neo/storage/mysqldb.py b/neo/storage/mysqldb.py
index e3b623a0..6797e844 100644
--- a/neo/storage/mysqldb.py
+++ b/neo/storage/mysqldb.py
@@ -26,6 +26,7 @@ from struct import pack, unpack
 from neo.storage.database import DatabaseManager
 from neo.exception import DatabaseFailure
 from neo.protocol import DISCARDED_STATE
+from neo import util
 
 LOG_QUERIES = False
 
@@ -198,9 +199,11 @@ class MySQLDatabaseManager(DatabaseManager):
         self.commit()
 
     def getUUID(self):
-        return self.getConfiguration('uuid')
+        uuid = self.getConfiguration('uuid')
+        return util.bin(uuid)
 
     def setUUID(self, uuid):
+        uuid = util.dump(uuid)
         self.setConfiguration('uuid', uuid)
 
     def getNumPartitions(self):
@@ -226,20 +229,29 @@ class MySQLDatabaseManager(DatabaseManager):
         self.setConfiguration('name', name)
 
     def getPTID(self):
-        return self.getConfiguration('ptid')
+        ptid = self.getConfiguration('ptid')
+        return util.bin(ptid)
 
     def setPTID(self, ptid):
+        ptid = util.dump(ptid)
         self.setConfiguration('ptid', ptid)
 
     def getLastOID(self):
-        return self.getConfiguration('loid')
+        loid = self.getConfiguration('loid')
+        return util.bin(loid)
 
     def setLastOID(self, loid):
+        loid = util.dump(loid)
         self.setConfiguration('loid', loid)
 
     def getPartitionTable(self):
         q = self.query
-        return q("""SELECT rid, uuid, state FROM pt""")
+        cell_list = q("""SELECT rid, uuid, state FROM pt""")
+        pt = []
+        for offset, uuid, state in cell_list:
+            uuid = util.bin(uuid)
+            pt.append((offset, uuid, state))
+        return pt
 
     def getLastTID(self, all = True):
         # XXX this does not consider serials in obj.
@@ -349,7 +361,7 @@ class MySQLDatabaseManager(DatabaseManager):
             if reset:
                 q("""TRUNCATE pt""")
             for offset, uuid, state in cell_list:
-                uuid = e(uuid)
+                uuid = e(util.dump(uuid))
                 if state == DISCARDED_STATE:
                     q("""DELETE FROM pt WHERE rid = %d AND uuid = '%s'""" \
                             % (offset, uuid))
-- 
2.30.9