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