Changeset: 0112beceb275 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=0112beceb275
Modified Files:
monetdb5/optimizer/opt_candidates.c
sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out
sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out.int128
Branch: Dec2016
Log Message:
group.subgroup(done)'s second return value is a candidate list.
diffs (65 lines):
diff --git a/monetdb5/optimizer/opt_candidates.c
b/monetdb5/optimizer/opt_candidates.c
--- a/monetdb5/optimizer/opt_candidates.c
+++ b/monetdb5/optimizer/opt_candidates.c
@@ -63,6 +63,10 @@ OPTcandidatesImplementation(Client cntxt
if (getFunctionId(p) == subuniformRef)
setVarCList(mb, getArg(p, 0));
}
+ else if (getModuleId(p) == groupRef && p->retc > 1) {
+ if (getFunctionId(p) == subgroupRef || getFunctionId(p)
== subgroupdoneRef)
+ setVarCList(mb, getArg(p, 1));
+ }
}
/* Defense line against incorrect plans */
diff --git
a/sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out
b/sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out
--- a/sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out
+++ b/sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out
@@ -59,10 +59,10 @@ function user.s10_1():void;
X_23 := algebra.projection(C_4,X_17);
X_24:bat[:int] := sql.bind(X_3,"sys","t2564","c2",0:int);
X_30 := algebra.projection(C_4,X_24);
- (X_31,r1_32,r2_32) := group.subgroup(X_30);
- (X_34,r1_35,r2_35) := group.subgroup(X_23,X_31);
- (X_37,r1_38,r2_38) := group.subgroupdone(X_16,X_34);
- X_40:bat[:lng] := aggr.subcount(X_37,X_37,r1_38,false);
+ (X_31,C1_32,r2_32) := group.subgroup(X_30);
+ (X_34,C1_35,r2_35) := group.subgroup(X_23,X_31);
+ (X_37,C1_38,r2_38) := group.subgroupdone(X_16,X_34);
+ X_40:bat[:lng] := aggr.subcount(X_37,X_37,C1_38,false);
sql.resultSet(X_50,X_52,X_54,X_56,X_58,X_40);
end user.s10_1;
#inline actions= 0 time=2 usec
diff --git
a/sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out.int128
b/sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out.int128
--- a/sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out.int128
+++ b/sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out.int128
@@ -69,11 +69,11 @@ function user.s8_1():void;
C_4:bat[:oid] := sql.tid(X_3,"sys","dbg");
X_7:bat[:int] := sql.bind(X_3,"sys","dbg","a",0:int);
X_10 := algebra.projection(C_4,X_7);
- (X_11,r1_14,r2_14) := group.subgroupdone(X_10);
- X_14 := algebra.projection(r1_14,X_10);
+ (X_11,C1_14,r2_14) := group.subgroupdone(X_10);
+ X_14 := algebra.projection(C1_14,X_10);
X_17:bat[:int] := sql.bind(X_3,"sys","dbg","b",0:int);
X_19 := algebra.projection(C_4,X_17);
- X_20:bat[:hge] := aggr.subsum(X_19,X_11,r1_14,true,true);
+ X_20:bat[:hge] := aggr.subsum(X_19,X_11,C1_14,true,true);
X_15 := bat.setKey(X_14,true);
X_22:bat[:hge] := batcalc./(X_20,2:bte);
X_26:bat[:hge] := batcalc.*(X_22,2:bte);
@@ -158,11 +158,11 @@ function user.s20_1():void;
C_4:bat[:oid] := sql.tid(X_3,"sys","dbg");
X_7:bat[:int] := sql.bind(X_3,"sys","dbg","a",0:int);
X_10 := algebra.projection(C_4,X_7);
- (X_11,r1_14,r2_14) := group.subgroupdone(X_10);
- X_14 := algebra.projection(r1_14,X_10);
+ (X_11,C1_14,r2_14) := group.subgroupdone(X_10);
+ X_14 := algebra.projection(C1_14,X_10);
X_17:bat[:int] := sql.bind(X_3,"sys","dbg","b",0:int);
X_19 := algebra.projection(C_4,X_17);
- X_20:bat[:hge] := aggr.subsum(X_19,X_11,r1_14,true,true);
+ X_20:bat[:hge] := aggr.subsum(X_19,X_11,C1_14,true,true);
X_15 := bat.setKey(X_14,true);
X_22:bat[:hge] := batcalc./(X_20,2:bte);
X_26:bat[:hge] := batcalc.*(X_22,2:bte);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list