Changeset: 3273642fac4c for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=3273642fac4c
Modified Files:
clients/Tests/MAL-signatures.stable.out
clients/Tests/MAL-signatures.stable.out.int128
clients/Tests/exports.stable.out
clients/mapiclient/tomograph.c
monetdb5/ChangeLog
monetdb5/extras/rapi/Tests/rapi08.malC
monetdb5/mal/Tests/tst1500.malC
monetdb5/mal/Tests/tst1503.malC
monetdb5/modules/kernel/group.c
monetdb5/modules/kernel/group.h
monetdb5/modules/kernel/group.mal
monetdb5/modules/mal/groupby.c
monetdb5/optimizer/opt_candidates.c
monetdb5/optimizer/opt_costModel.c
monetdb5/optimizer/opt_mergetable.c
monetdb5/optimizer/opt_prelude.c
monetdb5/optimizer/opt_prelude.h
monetdb5/optimizer/opt_volcano.c
sql/backends/monet5/sql.mal
sql/backends/monet5/sql_statement.c
sql/test/BugTracker-2009/Tests/explain_gives_crash.SF-2741829.stable.out
sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out.32bit
sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out
Branch: default
Log Message:
Renamed some versions of group.subgroup to group.group; added optional
candidate lists.
diffs (truncated from 533 to 300 lines):
diff --git a/clients/Tests/MAL-signatures.stable.out
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -7691,13 +7691,19 @@ Ready.
[ "geom", "mbrRight", "command geom.mbrRight(geom1:wkb,geom2:wkb):bit
", "mbrRight_wkb;", "Returns true if the mbr of geom1 is right of
the mbr of geom2" ]
[ "geom", "prelude", "command geom.prelude():void ",
"geom_prelude;", "" ]
[ "geom", "setSRID", "command geom.setSRID(w:wkb,srid:int):wkb ",
"wkbSetSRID;", "Sets the Reference System ID for this Geometry." ]
+[ "group", "group", "command group.group(b:bat[:any_1])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng]) ", "GRPgroup1;", ""
]
+[ "group", "group", "command group.group(b:bat[:any_1],s:bat[:oid])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng]) ", "GRPgroup2;", ""
]
+[ "group", "groupdone", "command group.groupdone(b:bat[:any_1])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng]) ", "GRPgroup1;", ""
]
+[ "group", "groupdone", "command
group.groupdone(b:bat[:any_1],s:bat[:oid])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng]) ", "GRPgroup2;", ""
]
[ "group", "multicolumn", "pattern group.multicolumn(b:bat[:any]...)
(ref:bat[:oid],grp:bat[:oid],hist:bat[:any]) ", "GROUPmulticolumngroup;",
"Derivation of a group index over multiple columns." ]
-[ "group", "subgroup", "command group.subgroup(b:bat[:any_1])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng]) ", "GRPsubgroup1;",
"" ]
[ "group", "subgroup", "command
group.subgroup(b:bat[:any_1],g:bat[:oid])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng]) ", "GRPsubgroup2;",
"" ]
-[ "group", "subgroup", "command
group.subgroup(b:bat[:any_1],g:bat[:oid],e:bat[:oid],h:bat[:lng])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng]) ", "GRPsubgroup3;",
"" ]
-[ "group", "subgroupdone", "command group.subgroupdone(b:bat[:any_1])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng]) ", "GRPsubgroup1;",
"" ]
+[ "group", "subgroup", "command
group.subgroup(b:bat[:any_1],s:bat[:oid],g:bat[:oid])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng]) ", "GRPsubgroup3;",
"" ]
+[ "group", "subgroup", "command
group.subgroup(b:bat[:any_1],g:bat[:oid],e:bat[:oid],h:bat[:lng])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng]) ", "GRPsubgroup4;",
"" ]
+[ "group", "subgroup", "command
group.subgroup(b:bat[:any_1],s:bat[:oid],g:bat[:oid],e:bat[:oid],h:bat[:lng])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng]) ", "GRPsubgroup5;",
"" ]
[ "group", "subgroupdone", "command
group.subgroupdone(b:bat[:any_1],g:bat[:oid])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng]) ", "GRPsubgroup2;",
"" ]
-[ "group", "subgroupdone", "command
group.subgroupdone(b:bat[:any_1],g:bat[:oid],e:bat[:oid],h:bat[:lng])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng]) ", "GRPsubgroup3;",
"" ]
+[ "group", "subgroupdone", "command
group.subgroupdone(b:bat[:any_1],s:bat[:oid],g:bat[:oid])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng]) ", "GRPsubgroup3;",
"" ]
+[ "group", "subgroupdone", "command
group.subgroupdone(b:bat[:any_1],g:bat[:oid],e:bat[:oid],h:bat[:lng])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng]) ", "GRPsubgroup4;",
"" ]
+[ "group", "subgroupdone", "command
group.subgroupdone(b:bat[:any_1],s:bat[:oid],g:bat[:oid],e:bat[:oid],h:bat[:lng])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng]) ", "GRPsubgroup5;",
"" ]
[ "gsl", "chi2prob", "command gsl.chi2prob(d:dbl,i:dbl):dbl ",
"GSLchisqProb;", "Chi Squared probability" ]
[ "identifier", "#fromstr", "command identifier.#fromstr():void ",
"IDfromString;", "Convert a string to an identifier without any check"
]
[ "identifier", "#tostr", "command identifier.#tostr():void ",
"IDtoString;", "Convert identifier to string equivalent" ]
diff --git a/clients/Tests/MAL-signatures.stable.out.int128
b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -10047,13 +10047,19 @@ Ready.
[ "geom", "mbrRight", "command geom.mbrRight(geom1:wkb,geom2:wkb):bit
", "mbrRight_wkb;", "Returns true if the mbr of geom1 is right of
the mbr of geom2" ]
[ "geom", "prelude", "command geom.prelude():void ",
"geom_prelude;", "" ]
[ "geom", "setSRID", "command geom.setSRID(w:wkb,srid:int):wkb ",
"wkbSetSRID;", "Sets the Reference System ID for this Geometry." ]
+[ "group", "group", "command group.group(b:bat[:any_1])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng]) ", "GRPgroup1;", ""
]
+[ "group", "group", "command group.group(b:bat[:any_1],s:bat[:oid])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng]) ", "GRPgroup2;", ""
]
+[ "group", "groupdone", "command group.groupdone(b:bat[:any_1])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng]) ", "GRPgroup1;", ""
]
+[ "group", "groupdone", "command
group.groupdone(b:bat[:any_1],s:bat[:oid])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng]) ", "GRPgroup2;", ""
]
[ "group", "multicolumn", "pattern group.multicolumn(b:bat[:any]...)
(ref:bat[:oid],grp:bat[:oid],hist:bat[:any]) ", "GROUPmulticolumngroup;",
"Derivation of a group index over multiple columns." ]
-[ "group", "subgroup", "command group.subgroup(b:bat[:any_1])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng]) ", "GRPsubgroup1;",
"" ]
[ "group", "subgroup", "command
group.subgroup(b:bat[:any_1],g:bat[:oid])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng]) ", "GRPsubgroup2;",
"" ]
-[ "group", "subgroup", "command
group.subgroup(b:bat[:any_1],g:bat[:oid],e:bat[:oid],h:bat[:lng])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng]) ", "GRPsubgroup3;",
"" ]
-[ "group", "subgroupdone", "command group.subgroupdone(b:bat[:any_1])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng]) ", "GRPsubgroup1;",
"" ]
+[ "group", "subgroup", "command
group.subgroup(b:bat[:any_1],s:bat[:oid],g:bat[:oid])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng]) ", "GRPsubgroup3;",
"" ]
+[ "group", "subgroup", "command
group.subgroup(b:bat[:any_1],g:bat[:oid],e:bat[:oid],h:bat[:lng])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng]) ", "GRPsubgroup4;",
"" ]
+[ "group", "subgroup", "command
group.subgroup(b:bat[:any_1],s:bat[:oid],g:bat[:oid],e:bat[:oid],h:bat[:lng])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng]) ", "GRPsubgroup5;",
"" ]
[ "group", "subgroupdone", "command
group.subgroupdone(b:bat[:any_1],g:bat[:oid])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng]) ", "GRPsubgroup2;",
"" ]
-[ "group", "subgroupdone", "command
group.subgroupdone(b:bat[:any_1],g:bat[:oid],e:bat[:oid],h:bat[:lng])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng]) ", "GRPsubgroup3;",
"" ]
+[ "group", "subgroupdone", "command
group.subgroupdone(b:bat[:any_1],s:bat[:oid],g:bat[:oid])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng]) ", "GRPsubgroup3;",
"" ]
+[ "group", "subgroupdone", "command
group.subgroupdone(b:bat[:any_1],g:bat[:oid],e:bat[:oid],h:bat[:lng])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng]) ", "GRPsubgroup4;",
"" ]
+[ "group", "subgroupdone", "command
group.subgroupdone(b:bat[:any_1],s:bat[:oid],g:bat[:oid],e:bat[:oid],h:bat[:lng])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng]) ", "GRPsubgroup5;",
"" ]
[ "gsl", "chi2prob", "command gsl.chi2prob(d:dbl,i:dbl):dbl ",
"GSLchisqProb;", "Chi Squared probability" ]
[ "identifier", "#fromstr", "command identifier.#fromstr():void ",
"IDfromString;", "Convert a string to an identifier without any check"
]
[ "identifier", "#tostr", "command identifier.#tostr():void ",
"IDtoString;", "Convert identifier to string equivalent" ]
diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -1142,10 +1142,12 @@ str FCTgetOwners(bat *ret);
str FCTgetPlants(bat *ret, bat *ret2);
str FCTshutdown(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
str GROUPmulticolumngroup(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str GRPsubgroup1(bat *ngid, bat *next, bat *nhis, const bat *bid);
+str GRPgroup1(bat *ngid, bat *next, bat *nhis, const bat *bid);
+str GRPgroup2(bat *ngid, bat *next, bat *nhis, const bat *bid, const bat *sid);
str GRPsubgroup2(bat *ngid, bat *next, bat *nhis, const bat *bid, const bat
*gid);
-str GRPsubgroup3(bat *ngid, bat *next, bat *nhis, const bat *bid, const bat
*gid, const bat *eid, const bat *hid);
-str GRPsubgroup4(bat *ngid, bat *next, bat *nhis, const bat *bid, const bat
*sid, const bat *gid, const bat *eid, const bat *hid);
+str GRPsubgroup3(bat *ngid, bat *next, bat *nhis, const bat *bid, const bat
*sid, const bat *gid);
+str GRPsubgroup4(bat *ngid, bat *next, bat *nhis, const bat *bid, const bat
*gid, const bat *eid, const bat *hid);
+str GRPsubgroup5(bat *ngid, bat *next, bat *nhis, const bat *bid, const bat
*sid, const bat *gid, const bat *eid, const bat *hid);
str IDentifier(identifier *retval, str *in);
int IDfromString(str src, int *len, identifier *retval);
str IDprelude(void *ret);
@@ -2110,6 +2112,7 @@ int getprofilerlimit(void);
str grabRef;
str groupRef;
str groupbyRef;
+str groupdoneRef;
int hasCommonResults(InstrPtr p, InstrPtr q);
int hasSameArguments(MalBlkPtr mb, InstrPtr p, InstrPtr q);
int hasSameSignature(MalBlkPtr mb, InstrPtr p, InstrPtr q, int stop);
diff --git a/clients/mapiclient/tomograph.c b/clients/mapiclient/tomograph.c
--- a/clients/mapiclient/tomograph.c
+++ b/clients/mapiclient/tomograph.c
@@ -294,11 +294,13 @@ base_colors[NUM_COLORS] = {
/* 766 */ { 0, 0, "aggr", "subsum", 0 },
/* 610 */ { 0, 0, "batcalc", "*", 0 },
/* 577 */ { 0, 0, "group", "subgroupdone", 0 },
+/* 577 */ { 0, 0, "group", "groupdone", 0 },
/* 481 */ { 0, 0, "sql", "subdelta", 0 },
/* 481 */ { 0, 0, "sql", "subsort", 0 },
/* 448 */ { 0, 0, "batcalc", "-", 0 },
/* 334 */ { 0, 0, "bat", "mirror", 0 },
/* 300 */ { 0, 0, "group", "subgroup", 0 },
+/* 300 */ { 0, 0, "group", "group", 0 },
/* 264 */ { 0, 0, "batcalc", "==", 0 },
/* 260 */ { 0, 0, "batcalc", "ifthenelse", 0 },
/* 209 */ { 0, 0, "batcalc", "hge", 0 },
diff --git a/monetdb5/ChangeLog b/monetdb5/ChangeLog
--- a/monetdb5/ChangeLog
+++ b/monetdb5/ChangeLog
@@ -1,6 +1,11 @@
# ChangeLog file for MonetDB5
# This file is updated with Maddlog
+* Tue Dec 13 2016 Sjoerd Mullender <[email protected]>
+- group.subgroup is now called group.group if it is not refining a group.
+ Both group.group and group.subgroup now also have variants with a
+ candidate list.
+
* Tue Nov 8 2016 Martin Kersten <[email protected]>
- The allocation schemes for MAL blocks and Variables has been turned
into block-based. This reduces the number of malloc()/free() calls.
diff --git a/monetdb5/extras/rapi/Tests/rapi08.malC
b/monetdb5/extras/rapi/Tests/rapi08.malC
--- a/monetdb5/extras/rapi/Tests/rapi08.malC
+++ b/monetdb5/extras/rapi/Tests/rapi08.malC
@@ -18,7 +18,7 @@ ti:= bat.append(ti,2:oid);
ti:= bat.append(ti,3:oid);
ti_gv:bat[:int] := algebra.projection(ti,gv);
-(grp:bat[:oid],r1_9:bat[:oid],r2_9:bat[:lng]) := group.subgroupdone(ti_gv);
+(grp:bat[:oid],r1_9:bat[:oid],r2_9:bat[:lng]) := group.groupdone(ti_gv);
ti_dv:bat[:int] := algebra.projection(ti,dv);
io.print(grp);
diff --git a/monetdb5/mal/Tests/tst1500.malC b/monetdb5/mal/Tests/tst1500.malC
--- a/monetdb5/mal/Tests/tst1500.malC
+++ b/monetdb5/mal/Tests/tst1500.malC
@@ -8,7 +8,7 @@
je_a := bat.append(x,3:bte);
ke_a := bat.append(x,3:bte);
io.print("group x"); io.print(x);
- (g1,e1,h1) := group.subgroup(x);
+ (g1,e1,h1) := group.group(x);
io.print("g1 becomes"); io.print(g1);
io.print("e1 becomes"); io.print(e1);
io.print("h1 becomes"); io.print(h1);
diff --git a/monetdb5/mal/Tests/tst1503.malC b/monetdb5/mal/Tests/tst1503.malC
--- a/monetdb5/mal/Tests/tst1503.malC
+++ b/monetdb5/mal/Tests/tst1503.malC
@@ -36,7 +36,7 @@
if_a := bat.append(z,"c");
jf_a := bat.append(z,"a");
io.print("group x");io.print(x,y,z);
- (g1,e1,h1) := group.subgroup(x);
+ (g1,e1,h1) := group.group(x);
io.print("g1 becomes"); io.print(g1);
io.print("e1 becomes"); io.print(e1);
io.print("h1 becomes"); io.print(h1);
diff --git a/monetdb5/modules/kernel/group.c b/monetdb5/modules/kernel/group.c
--- a/monetdb5/modules/kernel/group.c
+++ b/monetdb5/modules/kernel/group.c
@@ -13,7 +13,7 @@
#include "algebra.h"
str
-GRPsubgroup4(bat *ngid, bat *next, bat *nhis, const bat *bid, const bat *sid,
const bat *gid, const bat *eid, const bat *hid)
+GRPsubgroup5(bat *ngid, bat *next, bat *nhis, const bat *bid, const bat *sid,
const bat *gid, const bat *eid, const bat *hid)
{
BAT *b, *s, *g, *e, *h, *gn, *en, *hn;
gdk_return r;
@@ -35,7 +35,7 @@ GRPsubgroup4(bat *ngid, bat *next, bat *
BBPunfix(e->batCacheid);
if (h)
BBPunfix(h->batCacheid);
- throw(MAL, "group.subgroup", RUNTIME_OBJECT_MISSING);
+ throw(MAL, gid ? "group.subgroup" : "group.group",
RUNTIME_OBJECT_MISSING);
}
if ((r = BATgroup(&gn, &en, &hn, b, s, g, e, h)) == GDK_SUCCEED) {
*ngid = gn->batCacheid;
@@ -54,23 +54,35 @@ GRPsubgroup4(bat *ngid, bat *next, bat *
BBPunfix(e->batCacheid);
if (h)
BBPunfix(h->batCacheid);
- return r == GDK_SUCCEED ? MAL_SUCCEED : createException(MAL,
"group.subgroup", GDK_EXCEPTION);
+ return r == GDK_SUCCEED ? MAL_SUCCEED : createException(MAL, gid ?
"group.subgroup" : "group.group", GDK_EXCEPTION);
}
str
-GRPsubgroup3(bat *ngid, bat *next, bat *nhis, const bat *bid, const bat *gid,
const bat *eid, const bat *hid)
+GRPsubgroup4(bat *ngid, bat *next, bat *nhis, const bat *bid, const bat *gid,
const bat *eid, const bat *hid)
{
- return GRPsubgroup4(ngid, next, nhis, bid, NULL, gid, eid, hid);
+ return GRPsubgroup5(ngid, next, nhis, bid, NULL, gid, eid, hid);
+}
+
+str
+GRPsubgroup3(bat *ngid, bat *next, bat *nhis, const bat *bid, const bat *sid,
const bat *gid)
+{
+ return GRPsubgroup5(ngid, next, nhis, bid, sid, gid, NULL, NULL);
}
str
GRPsubgroup2(bat *ngid, bat *next, bat *nhis, const bat *bid, const bat *gid)
{
- return GRPsubgroup4(ngid, next, nhis, bid, NULL, gid, NULL, NULL);
+ return GRPsubgroup5(ngid, next, nhis, bid, NULL, gid, NULL, NULL);
}
str
-GRPsubgroup1(bat *ngid, bat *next, bat *nhis, const bat *bid)
+GRPgroup2(bat *ngid, bat *next, bat *nhis, const bat *bid, const bat *sid)
{
- return GRPsubgroup4(ngid, next, nhis, bid, NULL, NULL, NULL, NULL);
+ return GRPsubgroup5(ngid, next, nhis, bid, sid, NULL, NULL, NULL);
}
+
+str
+GRPgroup1(bat *ngid, bat *next, bat *nhis, const bat *bid)
+{
+ return GRPsubgroup5(ngid, next, nhis, bid, NULL, NULL, NULL, NULL);
+}
diff --git a/monetdb5/modules/kernel/group.h b/monetdb5/modules/kernel/group.h
--- a/monetdb5/modules/kernel/group.h
+++ b/monetdb5/modules/kernel/group.h
@@ -10,15 +10,19 @@
#define _GROUP_H_
#include "gdk.h"
-mal_export str GRPsubgroup1(bat *ngid, bat *next, bat *nhis,
- const bat *bid);
+mal_export str GRPgroup1(bat *ngid, bat *next, bat *nhis, const bat *bid);
+mal_export str GRPgroup2(bat *ngid, bat *next, bat *nhis,
+ const bat *bid, const bat
*sid);
mal_export str GRPsubgroup2(bat *ngid, bat *next, bat *nhis,
const bat *bid, const
bat *gid);
mal_export str GRPsubgroup3(bat *ngid, bat *next, bat *nhis,
+ const bat *bid, const
bat *sid,
+ const bat *gid);
+mal_export str GRPsubgroup4(bat *ngid, bat *next, bat *nhis,
const bat *bid, const
bat *gid,
const bat *eid, const
bat *hid);
-mal_export str GRPsubgroup4(bat *ngid, bat *next, bat *nhis,
- const bat *bid, const
bat *sid, const bat *gid,
- const bat *eid, const
bat *hid);
+mal_export str GRPsubgroup5(bat *ngid, bat *next, bat *nhis,
+ const bat *bid, const
bat *sid,
+ const bat *gid, const
bat *eid, const bat *hid);
#endif /* _GROUP_H_ */
diff --git a/monetdb5/modules/kernel/group.mal
b/monetdb5/modules/kernel/group.mal
--- a/monetdb5/modules/kernel/group.mal
+++ b/monetdb5/modules/kernel/group.mal
@@ -6,16 +6,28 @@
module group;
-command subgroup(b:bat[:any_1])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng])
-address GRPsubgroup1;
+command group(b:bat[:any_1])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng])
+address GRPgroup1;
+command group(b:bat[:any_1],s:bat[:oid])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng])
+address GRPgroup2;
command subgroup(b:bat[:any_1],g:bat[:oid])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng])
address GRPsubgroup2;
+command subgroup(b:bat[:any_1],s:bat[:oid],g:bat[:oid])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng])
+address GRPsubgroup3;
command subgroup(b:bat[:any_1],g:bat[:oid],e:bat[:oid],h:bat[:lng])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng])
-address GRPsubgroup3;
+address GRPsubgroup4;
+command
subgroup(b:bat[:any_1],s:bat[:oid],g:bat[:oid],e:bat[:oid],h:bat[:lng])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng])
+address GRPsubgroup5;
-command subgroupdone(b:bat[:any_1])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng])
-address GRPsubgroup1;
+command groupdone(b:bat[:any_1])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng])
+address GRPgroup1;
+command groupdone(b:bat[:any_1],s:bat[:oid])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng])
+address GRPgroup2;
command subgroupdone(b:bat[:any_1],g:bat[:oid])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng])
address GRPsubgroup2;
+command subgroupdone(b:bat[:any_1],s:bat[:oid],g:bat[:oid])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng])
+address GRPsubgroup3;
command subgroupdone(b:bat[:any_1],g:bat[:oid],e:bat[:oid],h:bat[:lng])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng])
-address GRPsubgroup3;
+address GRPsubgroup4;
+command
subgroupdone(b:bat[:any_1],s:bat[:oid],g:bat[:oid],e:bat[:oid],h:bat[:lng])
(groups:bat[:oid],extents:bat[:oid],histo:bat[:lng])
+address GRPsubgroup5;
diff --git a/monetdb5/modules/mal/groupby.c b/monetdb5/modules/mal/groupby.c
--- a/monetdb5/modules/mal/groupby.c
+++ b/monetdb5/modules/mal/groupby.c
@@ -175,12 +175,12 @@ GROUPmulticolumngroup(Client cntxt, MalB
throw(MAL,"group.subgroup",MAL_MALLOC_FAIL);
GROUPcollectSort(aggr, 0, aggr->last);
- /* (grp,ext,hist) := group.subgroup(..) */
+ /* (grp,ext,hist) := group.group(..) */
/* use the old pattern to perform the incremental grouping */
*grp = 0;
*ext = 0;
*hist = 0;
- msg = GRPsubgroup1(grp, ext, hist, &aggr->bid[0]);
+ msg = GRPgroup1(grp, ext, hist, &aggr->bid[0]);
i = 1;
if (msg == MAL_SUCCEED && aggr->last > 1)
do {
@@ -200,7 +200,7 @@ GROUPmulticolumngroup(Client cntxt, MalB
*grp = 0;
*ext = 0;
*hist = 0;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list