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