Changeset: 164eee74d3cf for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=164eee74d3cf Modified Files: sql/backends/monet5/sql_cat.c sql/storage/bat/bat_storage.c sql/storage/store.c Branch: Apr2019 Log Message:
fixes for bug 6748 - incase of new tables the delta's bid isn't used yet, so also alters should not use it - added error messages when delta structure creation fails diffs (55 lines): diff --git a/sql/backends/monet5/sql_cat.c b/sql/backends/monet5/sql_cat.c --- a/sql/backends/monet5/sql_cat.c +++ b/sql/backends/monet5/sql_cat.c @@ -889,7 +889,9 @@ alter_table(Client cntxt, mvc *sql, char for (; n; n = n->next) { /* propagate alter table .. add column */ sql_column *c = n->data; - mvc_copy_column(sql, nt, c); + + if (mvc_copy_column(sql, nt, c) == NULL) + throw(SQL,"sql.alter_table", SQLSTATE(40002) "ALTER TABLE: Failed to create column %s.%s", c->t->base.name, c->base.name); } if (t->idxs.set) { /* alter drop index */ @@ -924,7 +926,8 @@ alter_table(Client cntxt, mvc *sql, char if (r != GDK_SUCCEED) throw(SQL, "sql.alter_table", GDK_EXCEPTION); } - mvc_copy_idx(sql, nt, i); + if (mvc_copy_idx(sql, nt, i) == NULL) + throw(SQL,"sql.alter_table", SQLSTATE(40002) "ALTER TABLE: Failed to create index %s.%s", i->t->base.name, i->base.name); } } if (t->keys.set) { 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 @@ -1473,9 +1473,11 @@ create_col(sql_trans *tr, sql_column *c) if (cnt && fc != c) { sql_delta *d = fc->data; - bat->bid = copyBat(d->bid, type, 0); - if(bat->bid == BID_NIL) - ok = LOG_ERR; + if (d->bid) { + bat->bid = copyBat(d->bid, type, 0); + if(bat->bid == BID_NIL) + ok = LOG_ERR; + } if (d->ibid) { bat->ibid = copyBat(d->ibid, type, d->ibase); if(bat->ibid == BID_NIL) diff --git a/sql/storage/store.c b/sql/storage/store.c --- a/sql/storage/store.c +++ b/sql/storage/store.c @@ -2464,7 +2464,8 @@ sql_trans_copy_idx( sql_trans *tr, sql_t if (isDeclaredTable(i->t)) if (!isDeclaredTable(t) && isTable(ni->t) && idx_has_column(ni->type)) - store_funcs.create_idx(tr, ni); + if (store_funcs.create_idx(tr, ni) != LOG_OK) + return NULL; if (!isDeclaredTable(t)) table_funcs.table_insert(tr, sysidx, &ni->base.id, &t->base.id, &ni->type, ni->base.name); ni->base.wtime = t->base.wtime = t->s->base.wtime = tr->wtime = tr->wstime; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list