Changeset: ddfb1de0af03 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ddfb1de0af03
Modified Files:
sql/server/rel_rel.c
sql/server/rel_select.c
Branch: default
Log Message:
Correctly apply aliasing for LIMIT in subqueries.
diffs (35 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
@@ -274,7 +274,8 @@ rel_bind_column2( mvc *sql, sql_rel *rel
is_sort(rel) ||
is_semi(rel->op) ||
is_apply(rel->op) ||
- is_select(rel->op)) {
+ is_select(rel->op) ||
+ is_topn(rel->op)) {
if (rel->l)
return rel_bind_column2(sql, rel->l, tname, cname, f);
}
diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -227,8 +227,16 @@ rel_table_optname(mvc *sql, sql_rel *sq,
}
}
if (!columnrefs && sq->exps) {
- node *ne = sq->exps->h;
-
+ node *ne;
+ if (is_topn(sq->op)) {
+ // if the current node is a LIMIT statement
+ // we perform the alias on the underlying
projection
+ assert(sq->l);
+ assert(is_project(((sql_rel*)sq->l)->op));
+ ne = ((sql_rel*)sq->l)->exps->h;
+ } else {
+ ne = sq->exps->h;
+ }
for (; ne; ne = ne->next) {
sql_exp *e = ne->data;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list