Changeset: c5bf136c8e6c for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c5bf136c8e6c
Modified Files:
monetdb5/modules/mal/mosaic.c
monetdb5/modules/mal/mosaic.mal
Branch: mosaic
Log Message:
Support analyse using the property list
diffs (72 lines):
diff --git a/monetdb5/modules/mal/mosaic.c b/monetdb5/modules/mal/mosaic.c
--- a/monetdb5/modules/mal/mosaic.c
+++ b/monetdb5/modules/mal/mosaic.c
@@ -1058,7 +1058,7 @@ MOSjoin(Client cntxt, MalBlkPtr mb, MalS
// all possible compression options.
static void
-MOSanalyseInternal(Client cntxt, BUN threshold, int bid)
+MOSanalyseInternal(Client cntxt, BUN threshold, str properties, int bid)
{
BAT *b;
int ret;
@@ -1095,7 +1095,7 @@ MOSanalyseInternal(Client cntxt, BUN thr
case TYPE_flt:
case TYPE_dbl:
mnstr_printf(cntxt->fdout,"#%d\t%-8s\t%s\t"BUNFMT"\t", bid,
BBP_physical(bid), type, BATcount(b));
- MOScompressInternal(cntxt, &ret, &bid, 0);
+ MOScompressInternal(cntxt, &ret, &bid, properties);
if( ret != bid)
BBPdecref(ret,TRUE);
case TYPE_str:
@@ -1103,7 +1103,7 @@ MOSanalyseInternal(Client cntxt, BUN thr
default:
if( b->ttype == TYPE_timestamp || b->ttype == TYPE_date ||
b->ttype == TYPE_daytime){
mnstr_printf(cntxt->fdout,"#%d\t%-8s\t%s\t"BUNFMT"\t",
bid, BBP_physical(bid), type, BATcount(b));
- MOScompressInternal(cntxt, &ret, &bid, 0);
+ MOScompressInternal(cntxt, &ret, &bid, properties);
if( ret != bid)
BBPdecref(ret,TRUE);
} else
@@ -1118,18 +1118,23 @@ MOSanalyse(Client cntxt, MalBlkPtr mb, M
{
int i,bid;
BUN threshold= 1000;
+ str properties = 0;
(void) mb;
- if( pci->argc > 1)
- threshold = *(BUN*) getArgReference(stk,pci,1);
+ if( pci->argc > 1){
+ if( getArgType(mb,pci,1) == TYPE_lng)
+ threshold = *(BUN*) getArgReference(stk,pci,1);
+ if( getArgType(mb,pci,1) == TYPE_str)
+ properties = *(str*) getArgReference(stk,pci,1);
+ }
if( pci->argc >2 ){
bid = *(int*) getArgReference(stk,pci,2);
- MOSanalyseInternal(cntxt, threshold,bid);
+ MOSanalyseInternal(cntxt, threshold, properties, bid);
} else
for (i = 1; i < getBBPsize(); i++)
if (BBP_logical(i) && (BBP_refs(i) || BBP_lrefs(i)) )
- MOSanalyseInternal(cntxt, threshold, i);
+ MOSanalyseInternal(cntxt, threshold, properties, i);
return MAL_SUCCEED;
}
diff --git a/monetdb5/modules/mal/mosaic.mal b/monetdb5/modules/mal/mosaic.mal
--- a/monetdb5/modules/mal/mosaic.mal
+++ b/monetdb5/modules/mal/mosaic.mal
@@ -16,6 +16,10 @@ pattern analyse()
address MOSanalyse
comment "Apply heap compression on all";
+pattern analyse(properties:str)
+address MOSanalyse
+comment "Apply heap compression on all with minimum threshold";
+
pattern analyse(threshold:lng)
address MOSanalyse
comment "Apply heap compression on all with minimum threshold";
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list