Changeset: e52f4d981252 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e52f4d981252
Modified Files:
sql/server/rel_select.c
sql/test/analytics/Tests/analytics09.stable.out
Branch: Apr2019
Log Message:
Fix for the found bug, i.e when adding a grouping expression for a projection
over a line, make sure all underlying projections have it
diffs (59 lines):
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
@@ -4790,18 +4790,34 @@ opt_groupby_add_exp(mvc *sql, sql_rel *p
if (!exp_name(in))
exp_label(sql->sa, in, ++sql->label);
found = exps_find_exp( p->exps, in);
- if (!found)
+ if (!found) {
+ sql_rel *l = p->l;
+ while (l && !is_base(l->op)) {
+ if (!exps_find_exp(l->exps, in))
+ append(l->exps, exp_copy(sql->sa, in));
+ else
+ break;
+ l = l->l;
+ }
append(p->exps, in);
- else
+ } else
in = found;
in = exp_column(sql->sa, exp_relname(in), exp_name(in),
exp_subtype(in), exp_card(in), has_nil(in), is_intern(in));
} else if (pp && pp->op == op_groupby) {
if (!exp_name(in))
exp_label(sql->sa, in, ++sql->label);
found = exps_find_exp( p->exps, in);
- if (!found)
+ if (!found) {
+ sql_rel *l = p->l;
+ while (l && !is_base(l->op)) {
+ if (!exps_find_exp(l->exps, in))
+ append(l->exps, exp_copy(sql->sa, in));
+ else
+ break;
+ l = l->l;
+ }
append(p->exps, in);
- else
+ } else
in = found;
in = exp_column(sql->sa, exp_relname(in), exp_name(in),
exp_subtype(in), exp_card(in), has_nil(in), is_intern(in));
}
diff --git a/sql/test/analytics/Tests/analytics09.stable.out
b/sql/test/analytics/Tests/analytics09.stable.out
--- a/sql/test/analytics/Tests/analytics09.stable.out
+++ b/sql/test/analytics/Tests/analytics09.stable.out
@@ -383,6 +383,13 @@ Ready.
% int # type
% 1 # length
[ 1 ]
+#select avg(sum(aa)) over (rows unbounded preceding),
+# rank() over (partition by sum(aa)) from analytics;
+% sys.L5, sys.L12 # table_name
+% L5, L12 # name
+% double, int # type
+% 24, 1 # length
+[ 46, 1 ]
#drop table analytics;
# 13:13:17 >
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list