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

Reply via email to