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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list