Changeset: d5436b5b660d for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d5436b5b660d
Modified Files:
sql/backends/monet5/sql_scenario.c
sql/server/sql_mvc.c
sql/storage/bat/bat_storage.c
sql/storage/bat/bat_storage.h
sql/storage/bat/bat_table.c
sql/storage/store.c
Branch: newstorage
Log Message:
creating delete-transaction bat
diffs (truncated from 1821 to 300 lines):
diff --git a/sql/backends/monet5/sql_scenario.c
b/sql/backends/monet5/sql_scenario.c
--- a/sql/backends/monet5/sql_scenario.c
+++ b/sql/backends/monet5/sql_scenario.c
@@ -1932,6 +1932,9 @@ SQLparser(Client c)
}
}
finalize:
+
+ printf("-----finalizing\n");
+
if (msg)
sqlcleanup(m, 0);
return msg;
diff --git a/sql/server/sql_mvc.c b/sql/server/sql_mvc.c
--- a/sql/server/sql_mvc.c
+++ b/sql/server/sql_mvc.c
@@ -182,6 +182,8 @@ mvc_trans(mvc *m)
int schema_changed = 0, err = m->session->status;
assert(!m->session->active); /* can only start a new transaction */
+ printf("in mvc_trans\n");
+
store_lock();
schema_changed = sql_trans_begin(m->session);
if (m->qc && (schema_changed || m->qc->nr > m->cache || err)){
@@ -206,6 +208,8 @@ mvc_commit(mvc *m, int chain, char *name
assert(tr);
assert(m->session->active); /* only commit an active transaction */
+ printf("in mvc commit\n");
+
if (mvc_debug)
fprintf(stderr, "#mvc_commit %s\n", (name) ? name : "");
@@ -288,6 +292,7 @@ build up the hash (not copyied in the tr
mvc_rollback(m, chain, name);
return -1;
}
+
sql_trans_end(m->session);
if (chain)
sql_trans_begin(m->session);
@@ -304,6 +309,8 @@ mvc_rollback(mvc *m, int chain, char *na
int res = 0;
sql_trans *tr = m->session->tr;
+ printf("in mvc_rollback");
+
if (mvc_debug)
fprintf(stderr, "#mvc_rollback %s\n", (name) ? name : "");
@@ -340,6 +347,7 @@ mvc_rollback(mvc *m, int chain, char *na
tr = sql_trans_destroy(tr);
}
m->session-> tr = tr;
+
/* make sure we do not reuse changed data */
if (tr->wtime)
tr->status = 1;
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
@@ -12,7 +12,7 @@
* The Original Code is the MonetDB Database System.
*
* The Initial Developer of the Original Code is CWI.
- * Portions created by CWI are Copyright (C) 1997-July 2008 CWI.
+ Portions created by CWI are Copyright (C) 1997-July 2008 CWI.
* Copyright August 2008-2013 MonetDB B.V.
* All Rights Reserved.
*/
@@ -50,6 +50,9 @@ delta_bind_del(sql_dbat *bat, int access
#ifdef NDEBUG
(void) access; /* satisfy compiler */
#endif
+
+ //printf("in delta_bind_del\n");
+
assert(access == RDONLY || access == RD_INS);
assert(access!=RD_UPD);
@@ -61,6 +64,9 @@ delta_bind_del(sql_dbat *bat, int access
static BAT *
bind_del(sql_trans *tr, sql_table *t, int access)
{
+
+ //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);
@@ -77,6 +83,8 @@ delta_bind_ubat(sql_delta *bat, int acce
#ifdef NDEBUG
(void) access; /* satisfy compiler */
#endif
+ printf("in delta_bind_ubat\n");
+
assert(access == RD_UPD);
if (bat->ubid)
b = temp_descriptor(bat->ubid);
@@ -91,6 +99,8 @@ bind_ucol(sql_trans *tr, sql_column *c,
{
BAT *u = NULL, *d, *r;
+ printf("in bind_ucol\n");
+
if (!c->data) {
sql_column *oc = tr_find_column(tr->parent, c);
c->data = timestamp_delta(oc->data, tr->stime);
@@ -115,6 +125,8 @@ bind_uidx(sql_trans *tr, sql_idx * i, in
{
BAT *u = NULL, *d, *r;
+ printf("in bind_uidx\n");
+
if (!i->data) {
sql_idx *oi = tr_find_idx(tr->parent, i);
i->data = timestamp_delta(oi->data, tr->stime);
@@ -139,6 +151,8 @@ delta_bind_bat( sql_delta *bat, int acce
{
BAT *b;
+ printf("in delta_bind_bat\n");
+
assert(access == RDONLY || access == RD_INS);
assert(bat != NULL);
if (temp || access == RD_INS) {
@@ -169,6 +183,8 @@ delta_bind_bat( sql_delta *bat, int acce
static BAT *
bind_col(sql_trans *tr, sql_column *c, int access)
{
+ printf("in bind_col\n");
+
if (!c->data) {
sql_column *oc = tr_find_column(tr->parent, c);
c->data = timestamp_delta(oc->data, tr->stime);
@@ -183,6 +199,9 @@ bind_col(sql_trans *tr, sql_column *c, i
static BAT *
bind_idx(sql_trans *tr, sql_idx * i, int access)
{
+
+ printf("in bind_idx\n");
+
if (!i->data) {
sql_idx *oi = tr_find_idx(tr->parent, i);
i->data = timestamp_delta(oi->data, tr->stime);
@@ -200,6 +219,8 @@ delta_update_bat( sql_delta *bat, BAT *t
BAT *b;
BAT *upd = BATleftfetchjoin(BATmirror(tids), updates, BATcount(tids));
+ printf("in delta_update_bat\n");
+
if (bat->cached) {
bat_destroy(bat->cached);
bat->cached = NULL;
@@ -259,6 +280,8 @@ delta_update_val( sql_delta *bat, oid ri
{
BAT *b = NULL;
+ printf("in delta_update_val\n");
+
assert(rid != oid_nil);
if (bat->cached) {
@@ -297,6 +320,9 @@ delta_update_val( sql_delta *bat, oid ri
static int
dup_delta(sql_trans *tr, sql_delta *obat, sql_delta *bat, int type, int
oc_isnew, int c_isnew, int temp, int sz)
{
+
+ printf("in dup_delta\n");
+
if (!obat)
return LOG_OK;
bat->ibid = obat->ibid;
@@ -359,6 +385,8 @@ dup_delta(sql_trans *tr, sql_delta *obat
int
dup_bat(sql_trans *tr, sql_table *t, sql_delta *obat, sql_delta *bat, int
type, int oc_isnew, int c_isnew)
{
+ printf("in dup_bat\n");
+
return dup_delta( tr, obat, bat, type, oc_isnew, c_isnew,
isTempTable(t), t->sz);
}
@@ -368,6 +396,8 @@ update_col(sql_trans *tr, sql_column *c,
BAT *b = tids;
sql_delta *bat;
+ printf("in update_col\n");
+
if (tpe == TYPE_bat && !BATcount(b))
return;
@@ -393,6 +423,8 @@ update_idx(sql_trans *tr, sql_idx * i, v
BAT *b = tids;
sql_delta *bat;
+ printf("in update_idx\n");
+
if (tpe == TYPE_bat && !BATcount(b))
return;
@@ -422,6 +454,8 @@ delta_append_bat( sql_delta *bat, BAT *i
assert(!c || c->htype == TYPE_void);
#endif
+ printf("in delta_append_bat\n");
+
if (!BATcount(i))
return ;
b = temp_descriptor(bat->ibid);
@@ -460,12 +494,15 @@ delta_append_bat( sql_delta *bat, BAT *i
static void
delta_append_val( sql_delta *bat, void *i )
{
+
BAT *b = temp_descriptor(bat->ibid);
#ifndef NDEBUG
BAT *c = BBPquickdesc(bat->bid, 0);
assert(!c || c->htype == TYPE_void);
#endif
+ printf("in delta append val\n");
+
assert(b->htype == TYPE_void);
if (bat->cached) {
bat_destroy(bat->cached);
@@ -503,6 +540,8 @@ dup_idx(sql_trans *tr, sql_idx *i, sql_i
{
int ok = LOG_OK;
+ printf("in dup_idx\n");
+
if (i->data) {
int type = (ni->type==join_idx)?TYPE_oid:TYPE_wrd;
sql_delta *bat = ni->data = ZNEW(sql_delta), *obat = i->data;
@@ -515,15 +554,27 @@ dup_idx(sql_trans *tr, sql_idx *i, sql_i
static int
dup_dbat( sql_trans *tr, sql_dbat *obat, sql_dbat *bat, int is_new, int temp)
{
+
+ printf("in dup_dbat\n");
+
bat->dbid = obat->dbid;
+
+ bat->dtrbid = obat->dtrbid;
+
bat->cnt = obat->cnt;
+
bat->dname = _STRDUP(obat->dname);
+
+ bat->dtrname = _STRDUP(obat->dtrname);
+
bat->wtime = obat->wtime;
if (bat->dbid) {
if (is_new) {
obat->dbid = temp_copy(bat->dbid, temp);
+ obat->dtrbid = temp_copy(bat->dtrbid, temp);
} else {
bat->dbid = ebat_copy(bat->dbid, 0, temp);
+ bat->dtrbid = ebat_copy(bat->dtrbid, 0, temp);
}
}
(void)tr;
@@ -546,6 +597,8 @@ append_col(sql_trans *tr, sql_column *c,
BAT *b = i;
sql_delta *bat;
+ printf("in append_col\n");
+
if (tpe == TYPE_bat && !BATcount(b))
return;
@@ -574,6 +627,8 @@ append_idx(sql_trans *tr, sql_idx * i, v
BAT *b = ib;
sql_delta *bat;
+ printf("in append_idx\n");
+
if (tpe == TYPE_bat && !BATcount(b))
return;
@@ -598,6 +653,8 @@ delta_delete_bat( sql_dbat *bat, BAT *i
{
BAT *b = temp_descriptor(bat->dbid);
+ printf("in delta_delete_bat\n");
+
if (isEbat(b)) {
temp_destroy(bat->dbid);
bat->dbid = temp_copy(b->batCacheid, FALSE);
@@ -616,6 +673,8 @@ delta_delete_val( sql_dbat *bat, oid rid
{
BAT *b = temp_descriptor(bat->dbid);
+ printf("in delta_delete_val\n");
+
if (isEbat(b)) {
temp_destroy(bat->dbid);
bat->dbid = temp_copy(b->batCacheid, FALSE);
@@ -636,6 +695,8 @@ delete_tab(sql_trans *tr, sql_table * t,
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list