Revision 33b4e4a6 pithos/backends/lib/sqlite/node.py

b/pithos/backends/lib/sqlite/node.py
40 40

  
41 41
ROOTNODE  = 0
42 42

  
43
( SERIAL, NODE, HASH, SIZE, TYPE, SOURCE, MTIME, MUSER, UUID, CLUSTER ) = range(10)
43
( SERIAL, NODE, HASH, SIZE, TYPE, SOURCE, MTIME, MUSER, UUID, CHECKSUM, CLUSTER ) = range(11)
44 44

  
45 45
( MATCH_PREFIX, MATCH_EXACT ) = range(2)
46 46

  
......
92 92
    'mtime'     : 6,
93 93
    'muser'     : 7,
94 94
    'uuid'      : 8,
95
    'cluster'   : 9
95
    'checksum'  : 9,
96
    'cluster'   : 10
96 97
}
97 98

  
98 99

  
......
153 154
                            mtime      integer,
154 155
                            muser      text    not null default '',
155 156
                            uuid       text    not null default '',
157
                            checksum   text    not null default '',
156 158
                            cluster    integer not null default 0,
157 159
                            foreign key (node)
158 160
                            references nodes(node)
......
211 213
    def node_get_versions(self, node, keys=(), propnames=_propnames):
212 214
        """Return the properties of all versions at node.
213 215
           If keys is empty, return all properties in the order
214
           (serial, node, hash, size, type, source, mtime, muser, uuid, cluster).
216
           (serial, node, hash, size, type, source, mtime, muser, uuid, checksum, cluster).
215 217
        """
216 218
        
217
        q = ("select serial, node, hash, size, type, source, mtime, muser, uuid, cluster "
219
        q = ("select serial, node, hash, size, type, source, mtime, muser, uuid, checksum, cluster "
218 220
             "from versions "
219 221
             "where node = ?")
220 222
        self.execute(q, (node,))
......
417 419
        parent, path = props
418 420
        
419 421
        # The latest version.
420
        q = ("select serial, node, hash, size, type, source, mtime, muser, uuid, cluster "
422
        q = ("select serial, node, hash, size, type, source, mtime, muser, uuid, checksum, cluster "
421 423
             "from versions "
422 424
             "where serial = (select max(serial) "
423 425
                             "from versions "
......
467 469
        mtime = max(mtime, r[2])
468 470
        return (count, size, mtime)
469 471
    
470
    def version_create(self, node, hash, size, type, source, muser, uuid, cluster=0):
472
    def version_create(self, node, hash, size, type, source, muser, uuid, checksum, cluster=0):
471 473
        """Create a new version from the given properties.
472 474
           Return the (serial, mtime) of the new version.
473 475
        """
474 476
        
475
        q = ("insert into versions (node, hash, size, type, source, mtime, muser, uuid, cluster) "
476
             "values (?, ?, ?, ?, ?, ?, ?, ?, ?)")
477
        q = ("insert into versions (node, hash, size, type, source, mtime, muser, uuid, checksum, cluster) "
478
             "values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")
477 479
        mtime = time()
478
        props = (node, hash, size, type, source, mtime, muser, uuid, cluster)
480
        props = (node, hash, size, type, source, mtime, muser, uuid, checksum, cluster)
479 481
        serial = self.execute(q, props).lastrowid
480 482
        self.statistics_update_ancestors(node, 1, size, mtime, cluster)
481 483
        return serial, mtime
......
483 485
    def version_lookup(self, node, before=inf, cluster=0):
484 486
        """Lookup the current version of the given node.
485 487
           Return a list with its properties:
486
           (serial, node, hash, size, type, source, mtime, muser, uuid, cluster)
488
           (serial, node, hash, size, type, source, mtime, muser, uuid, checksum, cluster)
487 489
           or None if the current version is not found in the given cluster.
488 490
        """
489 491
        
490
        q = ("select serial, node, hash, size, type, source, mtime, muser, uuid, cluster "
492
        q = ("select serial, node, hash, size, type, source, mtime, muser, uuid, checksum, cluster "
491 493
             "from versions "
492 494
             "where serial = (select max(serial) "
493 495
                             "from versions "
......
503 505
        """Return a sequence of values for the properties of
504 506
           the version specified by serial and the keys, in the order given.
505 507
           If keys is empty, return all properties in the order
506
           (serial, node, hash, size, type, source, mtime, muser, uuid, cluster).
508
           (serial, node, hash, size, type, source, mtime, muser, uuid, checksum, cluster).
507 509
        """
508 510
        
509
        q = ("select serial, node, hash, size, type, source, mtime, muser, uuid, cluster "
511
        q = ("select serial, node, hash, size, type, source, mtime, muser, uuid, checksum, cluster "
510 512
             "from versions "
511 513
             "where serial = ?")
512 514
        self.execute(q, (serial,))
......
518 520
            return r
519 521
        return [r[propnames[k]] for k in keys if k in propnames]
520 522
    
523
    def version_put_property(self, serial, key, value):
524
        """Set value for the property of version specified by key."""
525
        
526
        if key not in _propnames:
527
            return
528
        q = "update versions set %s = ? where serial = ?" % key
529
        self.execute(q, (value, serial))
530
    
521 531
    def version_recluster(self, serial, cluster):
522 532
        """Move the version into another cluster."""
523 533
        

Also available in: Unified diff