Diff
Not logged in

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);