Changeset: dcf1c003fbfa for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/dcf1c003fbfa
Added Files:
sql/test/BugTracker-2023/Tests/view-on-alias-crash-7386.test
Modified Files:
sql/server/rel_rel.c
sql/test/BugTracker-2023/Tests/All
Branch: Sep2022
Log Message:
add test and fix for bug #7386, lookup of alias columns fixed
diffs (50 lines):
diff --git a/sql/server/rel_rel.c b/sql/server/rel_rel.c
--- a/sql/server/rel_rel.c
+++ b/sql/server/rel_rel.c
@@ -917,7 +917,7 @@ rel_groupby(mvc *sql, sql_rel *l, list *
list_append(gexps, e);
} else {
const char *ername = exp_relname(e), *nername =
exp_relname(ne), *ename = exp_name(e), *nename = exp_name(ne);
- if ((ername && !nername) || (!ername &&
nername) ||
+ if ((ername && !nername) || (!ername &&
nername) ||
(ername && nername &&
strcmp(ername,nername) != 0) || strcmp(ename,nename) != 0)
list_append(gexps, e);
}
@@ -1905,11 +1905,15 @@ rel_deps(mvc *sql, sql_rel *r, list *ref
continue;
} else if (oname[0] == '%') {
sql_idx *i = find_sql_idx(t, oname+1);
- cond_append(l, &i->base);
- } else {
- sql_column *c = find_sql_column(t, oname);
- cond_append(l, &c->base);
+ if (i) {
+ cond_append(l, &i->base);
+ continue;
+ }
}
+ sql_column *c = find_sql_column(t, oname);
+ if (!c)
+ return -1;
+ cond_append(l, &c->base);
}
} break;
case op_table: {
diff --git a/sql/test/BugTracker-2023/Tests/All
b/sql/test/BugTracker-2023/Tests/All
--- a/sql/test/BugTracker-2023/Tests/All
+++ b/sql/test/BugTracker-2023/Tests/All
@@ -1,3 +1,4 @@
ambiguous-identifiers-7372
temp-table-foreign-key-crash-7378
+view-on-alias-crash-7386
alter-inc-seq-crash-7387
diff --git a/sql/test/BugTracker-2023/Tests/view-on-alias-crash-7386.test
b/sql/test/BugTracker-2023/Tests/view-on-alias-crash-7386.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2023/Tests/view-on-alias-crash-7386.test
@@ -0,0 +1,5 @@
+statement ok
+CREATE VIEW t2 AS SELECT 1 UNION ALL SELECT 1;
+
+statement ok
+CREATE VIEW v2 AS SELECT * FROM t2;
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]