/loggerhead/trunk

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/loggerhead/trunk

« back to all changes in this revision

Viewing changes to loggerhead/changecache.py

[rs=thumper] update to loggerhead trunk, r223

Show diffs side-by-side

added added

removed removed

Lines of Context:
33
33
 
34
34
with_lock = util.with_lock('_lock', 'ChangeCache')
35
35
 
36
 
SQLITE_INTERFACE = os.environ.get('SQLITE_INTERFACE', 'sqlite3')
37
 
 
38
 
if SQLITE_INTERFACE == 'sqlite3':
 
36
try:
39
37
    from sqlite3 import dbapi2
40
 
    _param_marker = '?'
41
 
 
42
 
_select_stmt = ("select data from revisiondata where revid = ?"
43
 
                ).replace('?', _param_marker)
44
 
_insert_stmt = ("insert into revisiondata (revid, data) "
45
 
                "values (?, ?)").replace('?', _param_marker)
46
 
 
47
 
 
 
38
except ImportError:
 
39
    from pysqlite2 import dbapi2
48
40
 
49
41
 
50
42
class FakeShelf(object):
65
57
    def _unserialize(self, data):
66
58
        return cPickle.loads(str(data))
67
59
    def get(self, revid):
68
 
        self.cursor.execute(_select_stmt, (revid,))
 
60
        self.cursor.execute(
 
61
            "select data from revisiondata where revid = ?", (revid,))
69
62
        filechange = self.cursor.fetchone()
70
63
        if filechange is None:
71
64
            return None
73
66
            return self._unserialize(filechange[0])
74
67
    def add(self, revid_obj_pairs):
75
68
        for  (r, d) in revid_obj_pairs:
76
 
            self.cursor.execute(_insert_stmt, (r, self._serialize(d)))
 
69
            self.cursor.execute(
 
70
                "insert into revisiondata (revid, data) values (?, ?)",
 
71
                (r, self._serialize(d)))
77
72
        self.connection.commit()
78
73
 
79
74