Changeset: eb19fe85e464 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=eb19fe85e464
Modified Files:
        gdk/gdk_logger.c
        sql/storage/store.c
        sql/test/BugTracker-2015/Tests/name_conflict.Bug-3650.sql
        sql/test/BugTracker-2015/Tests/name_conflict.Bug-3650.stable.err
        sql/test/BugTracker-2016/Tests/column_name_conflict.Bug-3912.sql
        sql/test/BugTracker-2016/Tests/column_name_conflict.Bug-3912.stable.err
        sql/test/BugTracker-2016/Tests/column_name_conflict.Bug-3912.stable.out
Branch: Apr2019
Log Message:

fix bug 6591, bats within the logger are found using the sqlid, which solves
any naming conflict introduced by the name mangling.


diffs (99 lines):

diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -3075,8 +3075,11 @@ logger_find_bat(logger *lg, const char *
                if (BAThash(lg->catalog_nme) == GDK_SUCCEED) {
                        HASHloop_str(cni, cni.b->thash, p, name) {
                                oid pos = p;
-                               if (BUNfnd(lg->dcatalog, &pos) == BUN_NONE)
-                                       return *(log_bid *) 
Tloc(lg->catalog_bid, p);
+                               if (BUNfnd(lg->dcatalog, &pos) == BUN_NONE) {
+                                       oid lid = *(oid*) Tloc(lg->catalog_oid, 
p);
+                                       if (!lid)
+                                               return *(log_bid *) 
Tloc(lg->catalog_bid, p);
+                               }
                        }
                }
        } else {
diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -2741,7 +2741,7 @@ sql_trans_copy_column( sql_trans *tr, sq
        sql_table *syscolumn = find_sql_table(syss, "_columns");
        sql_column *col = SA_ZNEW(tr->sa, sql_column);
 
-       if (sql_trans_name_conflict(tr, t->s->base.name, t->base.name, 
c->base.name))
+       if (t->system && sql_trans_name_conflict(tr, t->s->base.name, 
t->base.name, c->base.name))
                return NULL;
        base_init(tr->sa, &col->base, c->base.id, TR_NEW, c->base.name);
        col->type = c->type;
@@ -5477,7 +5477,7 @@ sql_trans_create_column(sql_trans *tr, s
        if (!tpe)
                return NULL;
 
-       if (sql_trans_name_conflict(tr, t->s->base.name, t->base.name, name))
+       if (t->system && sql_trans_name_conflict(tr, t->s->base.name, 
t->base.name, name))
                return NULL;
        col = create_sql_column(tr->sa, t, name, tpe);
 
diff --git a/sql/test/BugTracker-2015/Tests/name_conflict.Bug-3650.sql 
b/sql/test/BugTracker-2015/Tests/name_conflict.Bug-3650.sql
--- a/sql/test/BugTracker-2015/Tests/name_conflict.Bug-3650.sql
+++ b/sql/test/BugTracker-2015/Tests/name_conflict.Bug-3650.sql
@@ -3,3 +3,4 @@ create table foo_bar (id integer);
 insert into foo (id, bar_id) values (1,2), (3,4);
 select * from foo;
 drop table foo;
+drop table foo_bar;
diff --git a/sql/test/BugTracker-2015/Tests/name_conflict.Bug-3650.stable.err 
b/sql/test/BugTracker-2015/Tests/name_conflict.Bug-3650.stable.err
--- a/sql/test/BugTracker-2015/Tests/name_conflict.Bug-3650.stable.err
+++ b/sql/test/BugTracker-2015/Tests/name_conflict.Bug-3650.stable.err
@@ -30,10 +30,6 @@ stderr of test 'name_conflict.Bug-3650` 
 # 18:58:39 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-24602" "--port=35483"
 # 18:58:39 >  
 
-MAPI  = (monetdb) /var/tmp/mtest-32037/.s.monetdb.32270
-QUERY = create table foo_bar (id integer);
-ERROR = !CREATE TABLE: sys_foo_bar_id conflicts
-CODE  = 42000
 
 # 18:58:39 >  
 # 18:58:39 >  "Done."
diff --git a/sql/test/BugTracker-2016/Tests/column_name_conflict.Bug-3912.sql 
b/sql/test/BugTracker-2016/Tests/column_name_conflict.Bug-3912.sql
--- a/sql/test/BugTracker-2016/Tests/column_name_conflict.Bug-3912.sql
+++ b/sql/test/BugTracker-2016/Tests/column_name_conflict.Bug-3912.sql
@@ -4,3 +4,4 @@ insert into foo values (1);
 insert into foo_bar values (2); 
 select * from foo_bar;
 drop table foo_bar;
+drop table foo;
diff --git 
a/sql/test/BugTracker-2016/Tests/column_name_conflict.Bug-3912.stable.err 
b/sql/test/BugTracker-2016/Tests/column_name_conflict.Bug-3912.stable.err
--- a/sql/test/BugTracker-2016/Tests/column_name_conflict.Bug-3912.stable.err
+++ b/sql/test/BugTracker-2016/Tests/column_name_conflict.Bug-3912.stable.err
@@ -30,14 +30,6 @@ stderr of test 'column_name_conflict.Bug
 # 08:21:28 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-32403" "--port=38022"
 # 08:21:28 >  
 
-MAPI  = (monetdb) /var/tmp/mtest-32403/.s.monetdb.38022
-QUERY = create table foo (bar_baz int);
-ERROR = !CREATE TABLE: sys_foo_bar_baz conflicts
-CODE  = 42000
-MAPI  = (monetdb) /var/tmp/mtest-30274/.s.monetdb.37685
-QUERY = insert into foo values (1); 
-ERROR = !INSERT INTO: no such table 'foo'
-CODE  = 42S02
 
 # 08:21:28 >  
 # 08:21:28 >  "Done."
diff --git 
a/sql/test/BugTracker-2016/Tests/column_name_conflict.Bug-3912.stable.out 
b/sql/test/BugTracker-2016/Tests/column_name_conflict.Bug-3912.stable.out
--- a/sql/test/BugTracker-2016/Tests/column_name_conflict.Bug-3912.stable.out
+++ b/sql/test/BugTracker-2016/Tests/column_name_conflict.Bug-3912.stable.out
@@ -30,6 +30,9 @@ Ready.
 # 08:21:28 >  
 
 #create table foo_bar (baz int);
+#create table foo (bar_baz int);
+#insert into foo values (1); 
+[ 1    ]
 #insert into foo_bar values (2); 
 [ 1    ]
 #select * from foo_bar;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to