Changeset: b2dfbd4a12bd for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b2dfbd4a12bd
Modified Files:
        clients/Tests/exports.stable.out
        gdk/gdk.h
        gdk/gdk_mosaic.c
        monetdb5/modules/mosaic/Makefile.ag
        monetdb5/modules/mosaic/Tests/All
        monetdb5/modules/mosaic/Tests/mosaic_bit_1.capped.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_bit_1.delta.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_bit_1.frame.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_bit_1.prefix.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_bit_1.raw.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_bit_1.var.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_bit_2.linear.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_bit_2.runlength.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_bit_with_nils_1.capped.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_bit_with_nils_1.delta.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_bit_with_nils_1.frame.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_bit_with_nils_1.prefix.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_bit_with_nils_1.raw.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_bit_with_nils_1.var.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_bit_with_nils_2.linear.stable.out
        
monetdb5/modules/mosaic/Tests/mosaic_bit_with_nils_2.runlength.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_date_1.capped.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_date_1.delta.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_date_1.frame.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_date_1.prefix.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_date_1.raw.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_date_1.var.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_date_2.linear.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_date_2.runlength.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_date_with_nils_1.capped.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_date_with_nils_1.delta.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_date_with_nils_1.frame.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_date_with_nils_1.prefix.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_date_with_nils_1.raw.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_date_with_nils_1.var.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_date_with_nils_2.linear.stable.out
        
monetdb5/modules/mosaic/Tests/mosaic_date_with_nils_2.runlength.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_lng_1.capped.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_lng_1.delta.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_lng_1.frame.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_lng_1.prefix.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_lng_1.raw.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_lng_1.var.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_lng_2.linear.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_lng_2.runlength.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_lng_with_nils_1.capped.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_lng_with_nils_1.delta.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_lng_with_nils_1.frame.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_lng_with_nils_1.prefix.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_lng_with_nils_1.raw.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_lng_with_nils_1.var.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_lng_with_nils_2.linear.stable.out
        
monetdb5/modules/mosaic/Tests/mosaic_lng_with_nils_2.runlength.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_oid_1.capped.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_oid_1.delta.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_oid_1.frame.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_oid_1.prefix.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_oid_1.raw.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_oid_1.var.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_oid_2.linear.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_oid_2.runlength.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_oid_with_nils_1.capped.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_oid_with_nils_1.delta.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_oid_with_nils_1.frame.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_oid_with_nils_1.prefix.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_oid_with_nils_1.raw.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_oid_with_nils_1.var.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_oid_with_nils_2.linear.stable.out
        
monetdb5/modules/mosaic/Tests/mosaic_oid_with_nils_2.runlength.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_timestamp_1.capped.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_timestamp_1.frame.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_timestamp_1.prefix.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_timestamp_1.raw.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_timestamp_1.var.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_timestamp_2.linear.stable.out
        monetdb5/modules/mosaic/Tests/mosaic_timestamp_2.runlength.stable.out
        
monetdb5/modules/mosaic/Tests/mosaic_timestamp_with_nils_1.capped.stable.out
        
monetdb5/modules/mosaic/Tests/mosaic_timestamp_with_nils_1.delta.stable.out
        
monetdb5/modules/mosaic/Tests/mosaic_timestamp_with_nils_1.frame.stable.out
        
monetdb5/modules/mosaic/Tests/mosaic_timestamp_with_nils_1.prefix.stable.out
        
monetdb5/modules/mosaic/Tests/mosaic_timestamp_with_nils_1.raw.stable.out
        
monetdb5/modules/mosaic/Tests/mosaic_timestamp_with_nils_1.var.stable.out
        
monetdb5/modules/mosaic/Tests/mosaic_timestamp_with_nils_2.linear.stable.out
        
monetdb5/modules/mosaic/Tests/mosaic_timestamp_with_nils_2.runlength.stable.out
        monetdb5/modules/mosaic/mosaic.c
        monetdb5/modules/mosaic/mosaic.h
        monetdb5/modules/mosaic/mosaic_capped.c
        monetdb5/modules/mosaic/mosaic_capped.h
        monetdb5/modules/mosaic/mosaic_delta.c
        monetdb5/modules/mosaic/mosaic_delta.h
        monetdb5/modules/mosaic/mosaic_dictionary.h
        monetdb5/modules/mosaic/mosaic_frame.c
        monetdb5/modules/mosaic/mosaic_frame.h
        monetdb5/modules/mosaic/mosaic_linear.c
        monetdb5/modules/mosaic/mosaic_linear.h
        monetdb5/modules/mosaic/mosaic_prefix.c
        monetdb5/modules/mosaic/mosaic_prefix.h
        monetdb5/modules/mosaic/mosaic_raw.c
        monetdb5/modules/mosaic/mosaic_raw.h
        monetdb5/modules/mosaic/mosaic_runlength.c
        monetdb5/modules/mosaic/mosaic_runlength.h
        monetdb5/modules/mosaic/mosaic_var.c
        monetdb5/modules/mosaic/mosaic_var.h
Branch: mosaic
Log Message:

Major refactoring:
- Factor out common code between select, thetaselect and various compression 
techniques.
- Introduce candidate list iterator and prepare for GDK integration.


diffs (truncated from 31953 to 300 lines):

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
@@ -309,6 +309,7 @@ lng IMPSimprintsize(BAT *b);
 void MOSdestroy(BAT *b);
 void MOSsetLock(BAT *b);
 void MOSunsetLock(BAT *b);
+void MOSvirtualize(BAT *bn);
 int MT_check_nr_cores(void);
 int MT_create_thread(MT_Id *t, void (*function)(void *), void *arg, enum 
MT_thr_detach d, const char *threadname);
 void MT_exiting_thread(void);
@@ -485,7 +486,7 @@ ssize_t ptrToStr(str *dst, size_t *len, 
 const ptr ptr_nil;
 struct dirent *readdir(DIR *dir);
 void rewinddir(DIR *dir);
-void setBitVector(BitVector vector, const BUN i, const int bits, const 
unsigned int value);
+void setBitVector(BitVector vector, const BUN i, const int bits, const 
BitVectorChunk value);
 ssize_t shtFromStr(const char *src, size_t *len, sht **dst, bool external);
 ssize_t shtToStr(str *dst, size_t *len, const sht *src, bool external);
 const sht sht_nil;
@@ -1522,13 +1523,13 @@ void MOSblk(MosaicBlk blk);
 str MOScompress(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str MOScompressInternal(BAT *bsrc, const char *compressions);
 void MOScompress_capped(MOStask task, MosaicBlkRec *estimate);
-void MOScompress_delta(MOStask task);
-void MOScompress_frame(MOStask task);
-void MOScompress_linear(MOStask task);
-void MOScompress_prefix(MOStask task);
+void MOScompress_delta(MOStask task, MosaicBlkRec *estimate);
+void MOScompress_frame(MOStask task, MosaicBlkRec *estimate);
+void MOScompress_linear(MOStask task, MosaicBlkRec *estimate);
+void MOScompress_prefix(MOStask task, MosaicBlkRec *estimate);
 void MOScompress_raw(MOStask task, MosaicBlkRec *estimate);
-void MOScompress_runlength(MOStask task);
-void MOScompress_var(MOStask task);
+void MOScompress_runlength(MOStask task, MosaicBlkRec *estimate);
+void MOScompress_var(MOStask task, MosaicBlkRec *estimate);
 str MOScreateCappedInfo(MOStask task);
 void MOScreateframeDictionary(MOStask task);
 void MOScreatevar(MOStask task);
@@ -1554,14 +1555,14 @@ void MOSinitHeader(MOStask task);
 void MOSinitializeScan(MOStask task, BAT *b);
 bool MOSisTypeAllowed(int compression, BAT *b);
 str MOSjoin(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str MOSjoin_capped(MOStask task);
-str MOSjoin_delta(MOStask task);
-str MOSjoin_frame(MOStask task);
-str MOSjoin_linear(MOStask task);
-str MOSjoin_prefix(MOStask task);
-str MOSjoin_raw(MOStask task);
-str MOSjoin_runlength(MOStask task);
-str MOSjoin_var(MOStask task);
+str MOSjoin_capped(MOStask task, bit nil_matches);
+str MOSjoin_delta(MOStask task, bit nil_matches);
+str MOSjoin_frame(MOStask task, bit nil_matches);
+str MOSjoin_linear(MOStask task, bit nil_matches);
+str MOSjoin_prefix(MOStask task, bit nil_matches);
+str MOSjoin_raw(MOStask task, bit nil_matches);
+str MOSjoin_runlength(MOStask task, bit nil_matches);
+str MOSjoin_var(MOStask task, bit nil_matches);
 str MOSlayout(BAT *b, BAT *btech, BAT *bcount, BAT *binput, BAT *boutput, BAT 
*bproperties);
 void MOSlayout_capped(MOStask task, BAT *btech, BAT *bcount, BAT *binput, BAT 
*boutput, BAT *bproperties);
 void MOSlayout_capped_hdr(MOStask task, BAT *btech, BAT *bcount, BAT *binput, 
BAT *boutput, BAT *bproperties);
@@ -1589,14 +1590,6 @@ str MOSprojection_raw(MOStask task);
 str MOSprojection_runlength(MOStask task);
 str MOSprojection_var(MOStask task);
 str MOSselect(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str MOSselect_capped(MOStask task, void *low, void *hgh, bit *li, bit *hi, bit 
*anti);
-str MOSselect_delta(MOStask task, void *low, void *hgh, bit *li, bit *hi, bit 
*anti);
-str MOSselect_frame(MOStask task, void *low, void *hgh, bit *li, bit *hi, bit 
*anti);
-str MOSselect_linear(MOStask task, void *low, void *hgh, bit *li, bit *hi, bit 
*anti);
-str MOSselect_prefix(MOStask task, void *low, void *hgh, bit *li, bit *hi, bit 
*anti);
-str MOSselect_raw(MOStask task, void *low, void *hgh, bit *li, bit *hi, bit 
*anti);
-str MOSselect_runlength(MOStask task, void *low, void *hgh, bit *li, bit *hi, 
bit *anti);
-str MOSselect_var(MOStask task, void *low, void *hgh, bit *li, bit *hi, bit 
*anti);
 void MOSskip_capped(MOStask task);
 void MOSskip_delta(MOStask task);
 void MOSskip_frame(MOStask task);
@@ -1608,14 +1601,6 @@ void MOSskip_var(MOStask task);
 str MOSslice(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str MOSsliceInternal(bat *slices, BUN size, BAT *b);
 str MOSthetaselect(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str MOSthetaselect_capped(MOStask task, void *val, str oper);
-str MOSthetaselect_delta(MOStask task, void *val, str oper);
-str MOSthetaselect_frame(MOStask task, void *val, str oper);
-str MOSthetaselect_linear(MOStask task, void *val, str oper);
-str MOSthetaselect_prefix(MOStask task, void *val, str oper);
-str MOSthetaselect_raw(MOStask task, void *val, str oper);
-str MOSthetaselect_runlength(MOStask task, void *val, str oper);
-str MOSthetaselect_var(MOStask task, void *val, str oper);
 void MOSupdateHeader(MOStask task);
 void MPresetProfiler(stream *fdout);
 char *MSP_locate_sqlscript(const char *mod_name, bit recurse);
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -1870,6 +1870,7 @@ gdk_export int BATcheckmosaic(BAT *b);
 gdk_export void MOSdestroy(BAT *b);
 gdk_export void MOSsetLock(BAT* b);
 gdk_export void MOSunsetLock(BAT* b);
+gdk_export void MOSvirtualize(BAT *bn);
 
 /*
  * @- Column Imprints Functions
diff --git a/gdk/gdk_mosaic.c b/gdk/gdk_mosaic.c
--- a/gdk/gdk_mosaic.c
+++ b/gdk/gdk_mosaic.c
@@ -214,3 +214,8 @@ BATmosaic(BAT *b, BUN cap) {
 
        return GDK_SUCCEED;
 }
+
+void
+MOSvirtualize(BAT *bn) {
+       virtualize(bn);
+}
diff --git a/monetdb5/modules/mosaic/Makefile.ag 
b/monetdb5/modules/mosaic/Makefile.ag
--- a/monetdb5/modules/mosaic/Makefile.ag
+++ b/monetdb5/modules/mosaic/Makefile.ag
@@ -21,6 +21,7 @@ lib_mosaic = {
        SOURCES = \
                mosaic.c mosaic.h \
                mosaic_hdr.c mosaic_hdr.h \
+               mosaic_select.h \
                mosaic_raw.c mosaic_raw.h \
                mosaic_runlength.c mosaic_runlength.h \
                mosaic_var.c mosaic_var.h \
diff --git a/monetdb5/modules/mosaic/Tests/All 
b/monetdb5/modules/mosaic/Tests/All
--- a/monetdb5/modules/mosaic/Tests/All
+++ b/monetdb5/modules/mosaic/Tests/All
@@ -1,3 +1,14 @@
+mosaic_bit_1.var
+mosaic_lng_1.var
+mosaic_oid_1.var
+mosaic_date_1.var
+mosaic_timestamp_1.var
+mosaic_bit_with_nils_1.var
+mosaic_lng_with_nils_1.var
+mosaic_oid_with_nils_1.var
+mosaic_date_with_nils_1.var
+mosaic_timestamp_with_nils_1.var
+
 mosaic_runlength
 mosaic_mix
 mosaic_var
@@ -30,17 +41,6 @@ mosaic_linear_joins
 mosaic_prefix_joins
 mosaic_mix_joins
 
-mosaic_bit_1.raw
-mosaic_lng_1.raw
-mosaic_oid_1.raw
-mosaic_date_1.raw
-mosaic_timestamp_1.raw
-mosaic_bit_with_nils_1.raw
-mosaic_lng_with_nils_1.raw
-mosaic_oid_with_nils_1.raw
-mosaic_date_with_nils_1.raw
-mosaic_timestamp_with_nils_1.raw
-
 mosaic_bit_2.runlength
 mosaic_lng_2.runlength
 mosaic_oid_2.runlength
@@ -52,17 +52,6 @@ mosaic_oid_with_nils_2.runlength
 mosaic_date_with_nils_2.runlength
 mosaic_timestamp_with_nils_2.runlength
 
-mosaic_bit_1.var
-mosaic_lng_1.var
-mosaic_oid_1.var
-mosaic_date_1.var
-mosaic_timestamp_1.var
-mosaic_bit_with_nils_1.var
-mosaic_lng_with_nils_1.var
-mosaic_oid_with_nils_1.var
-mosaic_date_with_nils_1.var
-mosaic_timestamp_with_nils_1.var
-
 mosaic_bit_1.capped
 mosaic_lng_1.capped
 mosaic_oid_1.capped
@@ -117,3 +106,14 @@ mosaic_lng_with_nils_1.prefix
 mosaic_oid_with_nils_1.prefix
 mosaic_date_with_nils_1.prefix
 mosaic_timestamp_with_nils_1.prefix
+
+mosaic_bit_1.raw
+mosaic_lng_1.raw
+mosaic_oid_1.raw
+mosaic_date_1.raw
+mosaic_timestamp_1.raw
+mosaic_bit_with_nils_1.raw
+mosaic_lng_with_nils_1.raw
+mosaic_oid_with_nils_1.raw
+mosaic_date_with_nils_1.raw
+mosaic_timestamp_with_nils_1.raw
diff --git a/monetdb5/modules/mosaic/Tests/mosaic_bit_1.capped.stable.out 
b/monetdb5/modules/mosaic/Tests/mosaic_bit_1.capped.stable.out
--- a/monetdb5/modules/mosaic/Tests/mosaic_bit_1.capped.stable.out
+++ b/monetdb5/modules/mosaic/Tests/mosaic_bit_1.capped.stable.out
@@ -26,51 +26,51 @@ MOScompress_capped
 MOSdecompress_capped
 MOSselect_capped
 MOSselect_capped
-MOSthetaselect_capped
 MOSselect_capped
-MOSthetaselect_capped
-MOSselect_capped
-MOSthetaselect_capped
 MOSselect_capped
 MOSselect_capped
-MOSthetaselect_capped
+MOSselect_capped
+MOSselect_capped
 MOSselect_capped
 MOSselect_capped
 MOSselect_capped
 MOSselect_capped
-MOSthetaselect_capped
 MOSselect_capped
-MOSthetaselect_capped
 MOSselect_capped
-MOSthetaselect_capped
 MOSselect_capped
 MOSselect_capped
-MOSthetaselect_capped
+MOSselect_capped
+MOSselect_capped
+MOSselect_capped
+MOSselect_capped
 MOSselect_capped
 MOSselect_capped
 MOSselect_capped
 MOSselect_capped
 MOSselect_capped
 MOSselect_capped
-MOSthetaselect_capped
 MOSselect_capped
-MOSthetaselect_capped
 MOSselect_capped
-MOSthetaselect_capped
 MOSselect_capped
 MOSselect_capped
-MOSthetaselect_capped
+MOSselect_capped
+MOSselect_capped
+MOSselect_capped
+MOSselect_capped
 MOSselect_capped
 MOSselect_capped
 MOSselect_capped
-MOSthetaselect_capped
+MOSselect_capped
 MOSselect_capped
-MOSthetaselect_capped
 MOSselect_capped
-MOSthetaselect_capped
+MOSselect_capped
 MOSselect_capped
 MOSselect_capped
-MOSthetaselect_capped
+MOSselect_capped
+MOSselect_capped
+MOSselect_capped
+MOSselect_capped
+MOSselect_capped
 MOSselect_capped
 MOSselect_capped
 MOSselect_capped
@@ -112,7 +112,7 @@ MOSselect_capped
 MOSselect_capped
 MOSjoin_capped
 MOSjoin_capped
-MOSthetaselect_capped
+MOSselect_capped
 MOSprojection_capped
 MOSprojection_capped
 
diff --git a/monetdb5/modules/mosaic/Tests/mosaic_bit_1.delta.stable.out 
b/monetdb5/modules/mosaic/Tests/mosaic_bit_1.delta.stable.out
--- a/monetdb5/modules/mosaic/Tests/mosaic_bit_1.delta.stable.out
+++ b/monetdb5/modules/mosaic/Tests/mosaic_bit_1.delta.stable.out
@@ -21,51 +21,51 @@ MOScompress_delta
 MOSdecompress_delta
 MOSselect_delta
 MOSselect_delta
-MOSthetaselect_delta
 MOSselect_delta
-MOSthetaselect_delta
-MOSselect_delta
-MOSthetaselect_delta
 MOSselect_delta
 MOSselect_delta
-MOSthetaselect_delta
+MOSselect_delta
+MOSselect_delta
 MOSselect_delta
 MOSselect_delta
 MOSselect_delta
 MOSselect_delta
-MOSthetaselect_delta
 MOSselect_delta
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to