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

create and destroy delete-trans bat


diffs (95 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
@@ -51,7 +51,7 @@ delta_bind_del(sql_dbat *bat, int access
        (void) access; /* satisfy compiler */
 #endif
 
-       //printf("in delta_bind_del\n");
+       printf("in delta_bind_del\n");
 
        assert(access == RDONLY || access == RD_INS);
        assert(access!=RD_UPD);
@@ -66,7 +66,6 @@ bind_del(sql_trans *tr, sql_table *t, in
 {
 
        //printf("in bind_del\n");
-
        if (!t->data) {
                sql_table *ot = tr_find_table(tr->parent, t);
                t->data = timestamp_dbat(ot->data, tr->stime);
@@ -1159,16 +1158,16 @@ snapshot_create_idx(sql_trans *tr, sql_i
 }
 
 static int
-load_dbat(sql_dbat *bat, int bid)
+load_dbat(sql_dbat *bat, int bid, int dtrbid)
 {
        BAT *b = quick_descriptor(bid);
-       //BAT *dtrb = quick_descriptor(dtrbid);
+       BAT *dtrb = quick_descriptor(dtrbid);
 
        printf("in load_dbat\n");
 
        bat->dbid = temp_create(b);
+       bat->dtrbid = temp_create(dtrb);
        bat->cnt = BATcount(b);
-       //bat->dtrbid = temp_create(dtrb);
        return LOG_OK;
 }
 
@@ -1211,10 +1210,10 @@ create_del(sql_trans *tr, sql_table *t)
        (void)tr;
        if (t->base.flag == TR_OLD && !isTempTable(t)) {
                log_bid bid = logger_find_bat(bat_logger, bat->dname);
-               //log_bid dtrbid = logger_find_bat(bat_logger, bat->dtrname);
+               log_bid dtrbid = logger_find_bat(bat_logger, bat->dtrname);
 
-               if (bid)
-                       return load_dbat(bat, bid);
+               if (bid && dtrbid)
+                       return load_dbat(bat, bid, dtrbid);
                ok = LOG_ERR;
        } else if (bat->dbid && bat->dtrbid && !isTempTable(t)) {
                return ok;
@@ -1250,7 +1249,7 @@ log_create_dbat( sql_dbat *bat )
        ok = log_bat_persists(bat_logger, b, bat->dname);
        bat_destroy(b);
 
-       if (ok) {
+       if (ok!=LOG_ERR) {
                (void) logger_add_bat(bat_logger, trdb, bat->dtrname);
                ok = log_bat_persists(bat_logger, trdb, bat->dtrname);
                bat_destroy(trdb);
@@ -1602,11 +1601,17 @@ clear_dbat(sql_trans *tr, sql_dbat *bat)
                BATcommit(b);
                bat_destroy(b);
        }
+       if(bat->dtrbid) {
+               BAT *b = temp_descriptor(bat->dtrbid);
+
+               sz+= BATcount(b);
+               bat_clear(b);
+               BATcommit(b);
+               bat_destroy(b);
+       }
        bat->cnt = 0;
        bat->wtime = tr->wstime;
 
-       printf("in clear_bat\n");
-
        return sz;
 }
 
diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -447,7 +447,7 @@ load_column(sql_trans *tr, sql_table *t,
        sql_table *columns = find_sql_table(syss, "_columns");
        sqlid cid;
 
-       printf("in load_column\n");
+       //printf("in load_column\n");
 
        v = table_funcs.column_find_value(tr, find_sql_column(columns, "id"), 
rid);
        cid = *(sqlid *)v;                      _DELETE(v);     
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to