Changeset: b9dfce47917f for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b9dfce47917f
Modified Files:
        sql/src/server/rel_bin.mx
        sql/src/server/rel_select.mx
Branch: default
Log Message:

merged Niels' bug fix from Jun2010


diffs (104 lines):

diff -r 40d35a583fa8 -r b9dfce47917f sql/src/server/rel_bin.mx
--- a/sql/src/server/rel_bin.mx Thu Jul 08 20:51:00 2010 +0200
+++ b/sql/src/server/rel_bin.mx Fri Jul 09 00:52:49 2010 +0200
@@ -3536,7 +3536,7 @@
                                default:        /*RESTRICT*/
                                        /* The overlap between deleted 
primaries and foreign should be empty */
                                        s = stmt_binop(stmt_aggr(s, NULL, cnt, 
1), stmt_atom_wrd(0), ne);
-                                       msg = sql_message( "DELETE: FOREIGN KEY 
constraint '%s.%s' violated", k->t->base.name, k->base.name);
+                                       msg = sql_message( "DELETE: FOREIGN KEY 
constraint '%s.%s' violated", fk->t->base.name, fk->base.name);
                                        s = stmt_exception(s, msg, 00001);
                                        list_prepend(l, s);
                        }
diff -r 40d35a583fa8 -r b9dfce47917f sql/src/server/rel_select.mx
--- a/sql/src/server/rel_select.mx      Thu Jul 08 20:51:00 2010 +0200
+++ b/sql/src/server/rel_select.mx      Fri Jul 09 00:52:49 2010 +0200
@@ -1721,7 +1721,7 @@
                return NULL;
 
        a = sql_bind_arg(sql, exp->flag);
-       if (atom_cast(a, t)) {
+       if (a && atom_cast(a, t)) {
                sql_subtype *x = ZNEW(sql_subtype);
                convert_arg(sql, exp->flag, t);
                /* set new type */
@@ -3088,6 +3088,15 @@
 
        if (!s)
                s = sql->session->schema;
+
+       /* handle param's early */
+       if ((!t1 || !t2) && rel_convert_types(sql, &l, &r, 1/*fix scale*/, 
type_equal) >= 0) {
+               t1 = exp_subtype(l);
+               t2 = exp_subtype(r);
+       }
+       if (!t1 || !t2)
+               return sql_error(sql, 01, "Cannot have a parameter (?) on both 
sides of an expression");
+               
        f = sql_bind_func(s, fname, t1, t2);
        if (!f && is_commutative(fname)) {
                f = sql_bind_func(s, fname, t2, t1);
diff -r 40d35a583fa8 -r b9dfce47917f 
sql/src/test/BugConstraints/Tests/delete_primarykey_1643845.stable.err
--- a/sql/src/test/BugConstraints/Tests/delete_primarykey_1643845.stable.err    
Thu Jul 08 20:51:00 2010 +0200
+++ b/sql/src/test/BugConstraints/Tests/delete_primarykey_1643845.stable.err    
Fri Jul 09 00:52:49 2010 +0200
@@ -12,12 +12,12 @@
 # 12:55:04 >  Mtimeout -timeout 60 MapiClient -lsql -umonetdb -Pmonetdb 
--host=localhost --port=33669  < delete_primarykey_1643845.sql
 # 12:55:04 >  
 
-MAPI  = mone...@localhost:33669
+MAPI  = mone...@alf:35948
 QUERY = insert into t2 values(2,33);
 ERROR = !SQLException:assert:INSERT INTO: PRIMARY KEY constraint 't2.age_p' 
violated
-MAPI  = mone...@localhost:33669
+MAPI  = mone...@alf:35948
 QUERY = delete from t1 where id = 1;
-ERROR = !SQLException:assert:DELETE: FOREIGN KEY constraint 't1.id_p' violated
+ERROR = !SQLException:assert:DELETE: FOREIGN KEY constraint 't2.t2_id_f_fkey' 
violated
 
 # 12:55:04 >  
 # 12:55:04 >  Done.
diff -r 40d35a583fa8 -r b9dfce47917f 
sql/src/test/Update_Delete_action/Tests/delete_restrict.stable.err
--- a/sql/src/test/Update_Delete_action/Tests/delete_restrict.stable.err        
Thu Jul 08 20:51:00 2010 +0200
+++ b/sql/src/test/Update_Delete_action/Tests/delete_restrict.stable.err        
Fri Jul 09 00:52:49 2010 +0200
@@ -12,12 +12,12 @@
 # 15:54:03 >  Mtimeout -timeout 60 MapiClient -lsql -umonetdb -Pmonetdb 
--host=localhost --port=38344 
 # 15:54:03 >  
 
-MAPI  = mone...@localhost:31237
+MAPI  = mone...@alf:35948
 QUERY = delete from t1;
-ERROR = !SQLException:assert:DELETE: FOREIGN KEY constraint 't1.t1_id_pkey' 
violated
-MAPI  = mone...@localhost:31237
+ERROR = !SQLException:assert:DELETE: FOREIGN KEY constraint 't2.t2_id_fkey' 
violated
+MAPI  = mone...@alf:35948
 QUERY = delete from t1 where id > 2 and id < 5;
-ERROR = !SQLException:assert:DELETE: FOREIGN KEY constraint 't1.t1_id_pkey' 
violated
+ERROR = !SQLException:assert:DELETE: FOREIGN KEY constraint 't2.t2_id_fkey' 
violated
 
 # 15:54:05 >  
 # 15:54:05 >  Done.
diff -r 40d35a583fa8 -r b9dfce47917f 
sql/src/test/Via-m/Tests/event_s11.stable.err
--- a/sql/src/test/Via-m/Tests/event_s11.stable.err     Thu Jul 08 20:51:00 
2010 +0200
+++ b/sql/src/test/Via-m/Tests/event_s11.stable.err     Fri Jul 09 00:52:49 
2010 +0200
@@ -67,16 +67,16 @@
 # 15:59:49 >  mclient -lsql -umonetdb -Pmonetdb --host=yngling --port=32412 
 # 15:59:49 >  
 
-MAPI  = mone...@volund:38056
+MAPI  = mone...@alf:35948
 QUERY = set id_event = add_event('event 4', 123456, 'artist2', 'location3', 
'description3');
 ERROR = !types int(32,0) and date(0,0) are not equal
-MAPI  = mone...@volund:38056
+MAPI  = mone...@alf:35948
 QUERY = delete from event where event_name = 'event 2';
-ERROR = !SQLException:assert:DELETE: FOREIGN KEY constraint 
'event.event_event_id_pkey' violated
-MAPI  = mone...@volund:38056
+ERROR = !SQLException:assert:DELETE: FOREIGN KEY constraint 
'event_metadata.fk_event_metadata_event_id' violated
+MAPI  = mone...@alf:35948
 QUERY = insert into event_metadata (
 ERROR = !SQLException:assert:INSERT INTO: UNIQUE constraint 
'event_metadata.unq_metadata' violated
-MAPI  = mone...@volund:38056
+MAPI  = mone...@alf:35948
 QUERY = set id_event = add_event('event 4', '2009-06-24', 'artist4', 
'location4', 'description4');
 ERROR = !SQLException:assert:INSERT INTO: UNIQUE constraint 
'event.unq_event_name' violated
 
_______________________________________________
Checkin-list mailing list
Checkin-list@monetdb.org
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to