Changeset: fadce444aea7 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=fadce444aea7 Modified Files: sql/backends/monet5/sql.c sql/storage/bat/bat_table.c sql/test/BugTracker-2009/Tests/primekeyconstraint.SF-2783425.stable.err Branch: default Log Message:
fixes for alter table set null and approved output diffs (43 lines): diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c --- a/sql/backends/monet5/sql.c +++ b/sql/backends/monet5/sql.c @@ -569,7 +569,11 @@ alter_table(mvc *sql, char *sname, sql_t /* for non empty check for nulls */ if (c->null == 0) { void *nilptr = ATOMnilptr(c->type.type->localtype); - if (table_funcs.column_find_row(sql->session->tr, nc, nilptr, NULL) != oid_nil) + rids *nils = table_funcs.rids_select(sql->session->tr, nc, nilptr, NULL, NULL); + int has_nils = (table_funcs.rids_next(nils) != oid_nil); + + table_funcs.rids_destroy(nils); + if (has_nils) return sql_message("40002!ALTER TABLE: NOT NULL constraint violated for column %s.%s", c->t->base.name, c->base.name); } } diff --git a/sql/storage/bat/bat_table.c b/sql/storage/bat/bat_table.c --- a/sql/storage/bat/bat_table.c +++ b/sql/storage/bat/bat_table.c @@ -274,7 +274,7 @@ rids_select( sql_trans *tr, sql_column * b = full_column(tr, key); if (!kvl) kvl = ATOMnilptr(b->ttype); - if (!kvh) + if (!kvh && key_value_low != ATOMnilptr(b->ttype)) kvh = ATOMnilptr(b->ttype); hi = (kvl == kvh); r = BATsubselect(b, s, kvl, kvh, 1, hi, 0); diff --git a/sql/test/BugTracker-2009/Tests/primekeyconstraint.SF-2783425.stable.err b/sql/test/BugTracker-2009/Tests/primekeyconstraint.SF-2783425.stable.err --- a/sql/test/BugTracker-2009/Tests/primekeyconstraint.SF-2783425.stable.err +++ b/sql/test/BugTracker-2009/Tests/primekeyconstraint.SF-2783425.stable.err @@ -69,9 +69,9 @@ stderr of test 'primekeyconstraint.SF-27 # 08:02:34 > mclient -lsql -umonetdb -Pmonetdb --host=eir --port=30582 # 08:02:34 > -MAPI = (monetdb) /var/tmp/mtest-23599/.s.monetdb.33852 +MAPI = (monetdb) /var/tmp/mtest-11898/.s.monetdb.35572 QUERY = ALTER TABLE way_nds ADD CONSTRAINT pk_way_nds PRIMARY KEY (way, idx); -ERROR = !UPDATE: PRIMARY KEY constraint 'way_nds.pk_way_nds' violated +ERROR = !ALTER TABLE: NOT NULL constraint violated for column way_nds.way # 08:02:34 > # 08:02:34 > Done. _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list