Changeset: c7364ffc66c8 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c7364ffc66c8
Modified Files:
sql/backends/monet5/UDF/ssdb.c
Branch: ssdb
Log Message:
Fix the grouping function
use a correct estimation to allocate space for the output BAT, and
correctly keep the BATcount
diffs (34 lines):
diff --git a/sql/backends/monet5/UDF/ssdb.c b/sql/backends/monet5/UDF/ssdb.c
--- a/sql/backends/monet5/UDF/ssdb.c
+++ b/sql/backends/monet5/UDF/ssdb.c
@@ -1503,8 +1503,8 @@ SSDBgrouping(Client cntxt, MalBlkPtr mb,
tout_grp_totime = BATnew(TYPE_void, TYPE_int, nr_obs);
/* Create BATs for all columns of the output table 'tout_grp' */
- tout_obs_obsgroupid = BATnew(TYPE_void, TYPE_int, nr_obs);
- tout_obs_obsid = BATnew(TYPE_void, TYPE_int, nr_obs);
+ tout_obs_obsgroupid = BATnew(TYPE_void, TYPE_int, nr_obs*nr_obs);
+ tout_obs_obsid = BATnew(TYPE_void, TYPE_int, nr_obs*nr_obs);
/* pointers directly to the BATs' tails */
tout_grp_obsgroupid_t = (int*)Tloc(tout_grp_obsgroupid,
BUNfirst(tout_grp_obsgroupid));
@@ -1529,7 +1529,7 @@ SSDBgrouping(Client cntxt, MalBlkPtr mb,
tuples_grp++;
}
}
- if(found!=0)
+ if(found)
{
tout_grp_obsgroupid_t[j]=j;
tout_grp_center_traj_x_t[j]=(groupFrom[j]->totalx)/(groupFrom[j]->cnt);
@@ -1551,8 +1551,8 @@ SSDBgrouping(Client cntxt, MalBlkPtr mb,
BATsetcount(tout_grp_center_traj_y, j);
BATsetcount(tout_grp_fromtime, j);
BATsetcount(tout_grp_totime, j);
- BATsetcount(tout_obs_obsgroupid, nr_obs);
- BATsetcount(tout_obs_obsid, nr_obs);
+ BATsetcount(tout_obs_obsgroupid, tuples_grp);
+ BATsetcount(tout_obs_obsid, tuples_grp);
BATseqbase(tout_grp_obsgroupid, 0);
BATseqbase(tout_grp_center_traj_x, 0);
_______________________________________________
checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list