Changeset: 2ddccc65dcc2 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/2ddccc65dcc2
Modified Files:
sql/backends/monet5/rel_bin.c
sql/server/rel_select.c
Branch: default
Log Message:
handle single rows in rel_order_by_column_exp.
make sys.star (virtual function) return single row column, for row results.
Solves broken query in issue #7306
diffs (29 lines):
diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c
--- a/sql/backends/monet5/rel_bin.c
+++ b/sql/backends/monet5/rel_bin.c
@@ -1262,9 +1262,11 @@ exp_bin(backend *be, sql_exp *e, stmt *l
}
assert(!e->r);
if (strcmp(mod, "") == 0 && strcmp(fimp, "") == 0) {
- if (strcmp(f->func->base.name, "star") == 0)
+ if (strcmp(f->func->base.name, "star") == 0) {
+ if (!left)
+ return const_column(be, stmt_bool(be,
1));
return left->op4.lval->h->data;
- if (strcmp(f->func->base.name, "case") == 0)
+ } if (strcmp(f->func->base.name, "case") == 0)
return exp2bin_case(be, e, left, right, sel,
depth);
if (strcmp(f->func->base.name, "casewhen") == 0)
return exp2bin_casewhen(be, e, left, right,
sel, depth);
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
@@ -4480,7 +4480,7 @@ rel_order_by_column_exp(sql_query *query
if (!r)
return e;
- if (is_simple_project(r->op) && is_processed(r)) {
+ if (is_simple_project(r->op) && r->l && is_processed(r)) {
p = r;
r = r->l;
}
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]