Changeset: ded559802900 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ded559802900
Modified Files:
        sql/storage/bat/bat_storage.c
        sql/storage/bat/bat_storage.h
Branch: newstorage
Log Message:

convert negative ts to positive and update ts bats


diffs (97 lines):

diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c
--- a/sql/storage/bat/bat_storage.c
+++ b/sql/storage/bat/bat_storage.c
@@ -2416,50 +2416,36 @@ tr_update_dbat(sql_trans *tr, sql_dbat *
 }
 
 int
-tr_update_tsbats(sql_trans *tr, sql_timestamps *tts, sql_timestamps *fts, int 
cleared) {
+tr_update_tsbats(sql_trans *tr, sql_timestamps *tts, sql_timestamps *fts) {
 
        int ok = LOG_OK;
-       //BAT *insb = NULL;
-       //BAT *delb = NULL;
-       (void)cleared;
+       BAT *insb, *delb = NULL;
+       BUN p, q;
+       int curIns, curDel;
+
        if (!fts)
                return ok;
 
-       assert(store_nr_active==1);
-
-       //insb = temp_descriptor(fts->insbid);
-       //if (cleared) {
-       //      BAT *otsb = temp_descriptor(tts->insbid);
-
-                /*if (BATcount(insb) > SNAPSHOT_MINSIZE) {
-                       temp_destroy(tts->insbid);
-                       tts->insbid = fts->insbid;
-               } else {
-                       append_inserted(otsb, insb);
-                       temp_destroy(fts->insbid);
-               }*/
+       insb = temp_descriptor(fts->insbid);
+       delb = temp_descriptor(fts->delbid);
+
+
        fts->insbid = 0;
-       tts->cnt = fts->cnt;
-               //bat_destroy(otsb);
-       //}
-       //bat_destroy(insb);
-
-       //delb = temp_descriptor(fts->delbid);
-       //if (cleared) {
-          //      BAT *otsb = temp_descriptor(tts->delbid);
-
-               /* if (BATcount(delb) > SNAPSHOT_MINSIZE) {
-                        temp_destroy(tts->delbid);
-                        tts->delbid = fts->delbid;
-                } else {
-                        append_inserted(otsb, delb);
-                        temp_destroy(fts->delbid);
-                }*/
         fts->delbid = 0;
         tts->cnt = fts->cnt;
-                //bat_destroy(otsb);
-       //}
-        //bat_destroy(delb);
+
+       /* convert timestamps to positive */
+       BATloop(insb, p, q) {
+               curIns = *Tloc(insb,p) * (-1);
+               if (curIns == tr->wtime)
+                       BUNinplace(insb, p, insb->H, (ptr)&curIns, TRUE);
+               curDel = *Tloc(delb,p) * (-1);
+               if (curDel == tr->wtime)
+                       BUNinplace(delb, p, delb->H, (ptr)&curDel, TRUE);
+       }
+
+       bat_destroy(insb);
+       bat_destroy(delb);
 
         if (tts->next) {
                 ok = destroy_tsbats(tr, tts->next);
@@ -2515,7 +2501,7 @@ update_table(sql_trans *tr, sql_table *f
                } else {
                        assert(tt->base.allocated);
                        tr_update_dbat(tr, tt->data, ft->data, ft->cleared);
-                       tr_update_tsbats(tr, tt->timestamps, ft->timestamps, 
ft->cleared);
+                       tr_update_tsbats(tr, tt->timestamps, ft->timestamps);
                }
        }
        for (n = ft->columns.set->h, m = tt->columns.set->h; ok == LOG_OK && n 
&& m; n = n->next, m = m->next) {
diff --git a/sql/storage/bat/bat_storage.h b/sql/storage/bat/bat_storage.h
--- a/sql/storage/bat/bat_storage.h
+++ b/sql/storage/bat/bat_storage.h
@@ -59,7 +59,7 @@ extern int bat_storage_init( store_funct
 
 extern int tr_update_delta( sql_trans *tr, sql_delta *obat, sql_delta *cbat );
 extern int tr_update_dbat(sql_trans *tr, sql_dbat *tdb, sql_dbat *fdb, int 
cleared);
-extern int tr_update_tsbats(sql_trans *tr, sql_timestamps *tts, sql_timestamps 
*fts, int cleared);
+extern int tr_update_tsbats(sql_trans *tr, sql_timestamps *tts, sql_timestamps 
*fts);
 extern int tr_log_delta( sql_trans *tr, sql_delta *cbat, int cleared);
 extern int tr_log_dbat(sql_trans *tr, sql_dbat *fdb, int cleared);
 extern int tr_log_tsbats(sql_trans *tr, sql_timestamps *ts, int cleared);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to