From 948e0b1f43e21f2b9f2326f231a2961ba76d6704 Mon Sep 17 00:00:00 2001 From: mdipierro Date: Wed, 13 Nov 2013 14:07:26 -0600 Subject: [PATCH] possible to fix to memdb threading issue --- VERSION | 2 +- gluon/contrib/memdb.py | 15 ++------------- 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/VERSION b/VERSION index e0c0fa53..254ca105 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -Version 2.7.4-stable+timestamp.2013.11.11.17.41.59 +Version 2.7.4-stable+timestamp.2013.11.13.14.06.31 diff --git a/gluon/contrib/memdb.py b/gluon/contrib/memdb.py index d7f3c400..8f181a64 100644 --- a/gluon/contrib/memdb.py +++ b/gluon/contrib/memdb.py @@ -20,6 +20,7 @@ import cStringIO import csv import copy import gluon.validators as validators +from gluon.utils import web2py_uuid from gluon.storage import Storage from gluon import SQLTABLE import random @@ -279,22 +280,11 @@ class Table(DALStorage): def delete(self, id): return self._tableobj.delete(self._id_to_key(id)) - def _shard_key(self, shard): - return self._id_to_key('s/%s' % shard) - def _id_to_key(self, id): return '__memdb__/t/%s/k/%s' % (self._tablename, str(id)) def _create_id(self): - shard = random.randint(10, 99) - shard_id = self._shard_key(shard) - id = self._tableobj.incr(shard_id) - if not id: - if self._tableobj.set(shard_id, '0'): - id = 0 - else: - raise Exception('cannot set memcache') - return long(str(shard) + str(id)) + return long(web2py_uuid().replace('-',''),16) def __str__(self): return self._tablename @@ -302,7 +292,6 @@ class Table(DALStorage): def __call__(self, id): return self.get(id) - class Expression(object): def __init__(