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

Reply via email to