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