Differences From:
File
src/content.c
part of check-in
[75c476ccd1]
- Work on network synchronization
by
drh on
2007-07-23 20:33:04.
[view]
To:
File
src/content.c
part of check-in
[e3c529c2f0]
- Merge in clone and sync changes. Fix a bug in undelta.
by
anonymous on
2007-07-30 16:31:11.
[view]
@@ -285,9 +285,9 @@
*/
void content_deltify(int rid, int srcid, int force){
int s;
Blob data, src, delta;
- static Stmt s1, s2;
+ Stmt s1, s2;
if( srcid==rid ) return;
if( !force && findSrcid(rid, 0)>0 ) return;
s = srcid;
while( (s = findSrcid(s, 0))>0 ){
@@ -301,18 +301,18 @@
blob_delta_create(&src, &data, &delta);
if( blob_size(&src)>=50 && blob_size(&data)>=50 &&
blob_size(&delta) < blob_size(&data)*0.75 ){
blob_compress(&delta, &delta);
- db_static_prepare(&s1, "UPDATE blob SET content=:data WHERE rid=:rid");
- db_static_prepare(&s2, "REPLACE INTO delta(rid,srcid)VALUES(:rid,:sid)");
- db_bind_int(&s1, ":rid", rid);
- db_bind_blob(&s1, ":data", &delta);
- db_bind_int(&s2, ":rid", rid);
+ db_prepare(&s1, "UPDATE blob SET content=:data WHERE rid=%d", rid);
+ db_prepare(&s2, "REPLACE INTO delta(rid,srcid)VALUES(%d,:sid)", rid);
+ db_bind_blob(&s1, ":data", &delta);
db_bind_int(&s2, ":sid", srcid);
db_begin_transaction();
db_exec(&s1);
db_exec(&s2);
db_end_transaction(0);
+ db_finalize(&s1);
+ db_finalize(&s2);
}
blob_reset(&src);
blob_reset(&data);
blob_reset(&delta);