Changeset: 4f3fe9b1b8eb for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4f3fe9b1b8eb
Modified Files:
monetdb5/extras/bwd/operations.c
Branch: bwd
Log Message:
* simple grouping query runs now but doesn't yield any results:
```mclient -s " set optimizer='sequential_pipe'; select
bwdecomposevarchar(l_returnflag, 8), bwdecomposedec(l_extendedprice, 32) from
lineitem; set optimizer='bwd_pipe'; trace select l_returnflag,
sum(l_extendedprice) as sum_disc_price from lineitem group by l_returnflag;" ```
Unterschiede (72 Zeilen):
diff --git a/monetdb5/extras/bwd/operations.c b/monetdb5/extras/bwd/operations.c
--- a/monetdb5/extras/bwd/operations.c
+++ b/monetdb5/extras/bwd/operations.c
@@ -1020,13 +1020,38 @@ str BWDSelectNotNilRefine(int *result, i
str BWDGroupedSumApproximate(int *retid,int *valuesID, int *groupsID, int
*histogramID){
- throw(MAL, __func__, "not implemented yet: %s (%s:%d)", __func__,
__FILE__, __LINE__);
+ str result = MAL_SUCCEED;
+ BAT *groups = BATdescriptor(*groupsID);
+ BAT *values = BATdescriptor(*valuesID);
+ BAT *histogram = BATdescriptor(*histogramID);
+ if (groups == NULL || values == NULL || histogram == NULL)
+ throw(MAL, __func__, RUNTIME_OBJECT_MISSING);
+ if(!batTailIsDecomposed(groups)){
+ printf("bwd.%s : groups bat is not decomposed: %d, no
approximation can be provided\n", __func__, groups->batCacheid);
+ result = NOT_DECOMPOSED;
+ } else if(!batTailIsDecomposed(values)){
+ printf("bwd.%s : values bat is not decomposed: %d, no
approximation can be provided\n", __func__, values->batCacheid);
+ result = NOT_DECOMPOSED;
+ } else if(!batTailIsDecomposed(histogram)){
+ printf("bwd.%s : histogram bat is not decomposed: %d, no
approximation can be provided\n", __func__, histogram->batCacheid);
+ result = NOT_DECOMPOSED;
+ } else {
+ /* clTail resultTailDefinition; */
+ BAT* sums = BATnew(TYPE_oid,TYPE_wrd, BATcount(groups));
+
+ BBPkeepref(*retid = sums->batCacheid);
+ }
+
+ BBPreleaseref(groups->batCacheid);
+ BBPreleaseref(values->batCacheid);
+ BBPreleaseref(histogram->batCacheid);
+ return result;
}
str BWDGroupedSumRefine(int *retid,int *bid, int *gid, int *eid, bat* approx){
- throw(MAL, __func__, "not implemented yet: %s (%s:%d)", __func__,
__FILE__, __LINE__);
-
+ BBPincref(*retid = *approx, 1);
+ return MAL_SUCCEED;
}
@@ -1110,15 +1135,14 @@ str BWDGroupApproximate(int *rethisto, i
printf("bwd.%s : bat is not decomposed: %d, no approximation
can be provided\n", __func__, *bid);
result = NOT_DECOMPOSED;
} else{ // get input objects and parameters
- cl_mem valueColumn = batTailApproximation(b);
clTail newTailDefinition;
cl_int err;
- if((err = clEnqueueReadBuffer(getCommandQueue(), valueColumn,
CL_TRUE, 0, sizeof(int), &newTailDefinition.count , 0, NULL, NULL)))
+ if((err = clEnqueueReadBuffer(getCommandQueue(),
batTailApproximation(b), CL_TRUE, 0, sizeof(int), &newTailDefinition.count , 0,
NULL, NULL)))
printf("#%s, clEnqueueReadBuffer (b): %s;\n", __func__,
clError(err));
{ // create output objects
BAT* groupIDs = BATnew(b->htype, TYPE_oid, BATcount(b));
- BAT* histo = BATnew(TYPE_oid,TYPE_wrd, 0);
+ BAT* histo = BATnew(TYPE_oid,TYPE_int, 0);
{ // groupID object
const unsigned int newIndex =
getNextFreeDecomposedBATSlotIndex();
DecomposedBATSlot* groupIDSlot =
getDecomposedBATSlotForIndex(newIndex);
@@ -1161,7 +1185,7 @@ str BWDGroupApproximate(int *rethisto, i
str BWDGroupRefine(int *rethisto, int *retbid, int *bid, int *apprrethisto,
int *apprretbid){
BBPincref(*rethisto = *apprrethisto, 1);
BBPincref(*retbid = *apprretbid, 1);
- throw(MAL, __func__, "not implemented yet: %s", __func__);
+ return MAL_SUCCEED;
}
str BWDMulticolumnGroupRefine(Client cntxt, MalBlkPtr mb, MalStkPtr stk,
InstrPtr pci){
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list