Changeset: 800fd3bf2cc7 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=800fd3bf2cc7
Modified Files:
        gdk/gdk.h
        gdk/gdk_col.c
        monetdb5/extras/crackers/crackers_joins.mx
        monetdb5/modules/kernel/aggr.mx
        monetdb5/modules/kernel/aggr_be_avg.mx
        monetdb5/modules/kernel/aggr_be_count.mx
        monetdb5/modules/kernel/aggr_be_minmax.mx
        monetdb5/modules/kernel/aggr_be_prod.mx
        monetdb5/modules/kernel/aggr_be_sum.mx
        monetdb5/modules/kernel/aggr_bge_avg.mx
        monetdb5/modules/kernel/aggr_bge_count.mx
        monetdb5/modules/kernel/aggr_bge_minmax.mx
        monetdb5/modules/kernel/aggr_bge_prod.mx
        monetdb5/modules/kernel/aggr_bge_sum.mx
        monetdb5/modules/kernel/aggr_ri.mx
        monetdb5/modules/kernel/algebra.mx
        monetdb5/modules/kernel/array.mx
        monetdb5/modules/kernel/colcalc.mx
        monetdb5/modules/kernel/colcast.mx
        monetdb5/modules/kernel/colcolor.mx
        monetdb5/modules/kernel/colifthen.mx
        monetdb5/modules/kernel/colmmath.mx
        monetdb5/modules/kernel/colmtime.mx
        monetdb5/modules/kernel/colstr.mx
        monetdb5/modules/kernel/column.mx
        monetdb5/modules/kernel/group.mx
        monetdb5/modules/kernel/logger.c
        monetdb5/modules/kernel/microbenchmark.c
        monetdb5/modules/kernel/status.c
        monetdb5/modules/mal/Makefile.ag
        monetdb5/modules/mal/cbp.c
        monetdb5/modules/mal/clients.c
        monetdb5/modules/mal/extensions.c
        monetdb5/modules/mal/factories.c
        monetdb5/modules/mal/groupby.c
        monetdb5/modules/mal/histogram.h
        monetdb5/modules/mal/inout.c
        monetdb5/modules/mal/inout.h
        monetdb5/modules/mal/inout.mal
        monetdb5/modules/mal/inspect.c
        monetdb5/modules/mal/inspect.h
        monetdb5/modules/mal/inspect.mal
        monetdb5/modules/mal/mdb.c
        monetdb5/modules/mal/pcrelib.c
        monetdb5/modules/mal/pcrelib.h
        monetdb5/modules/mal/pcrelib.mal
        monetdb5/modules/mal/remote.c
        monetdb5/modules/mal/replication.c
        monetdb5/modules/mal/replication.h
        monetdb5/modules/mal/table_sql.c
        monetdb5/modules/mal/tablet.c
        monetdb5/modules/mal/tablet.h
        monetdb5/modules/mal/tablet_sql.c
        monetdb5/modules/mal/xmlcolumn.c
        monetdb5/modules/mal/zorder.c
        monetdb5/optimizer/Makefile.ag
        monetdb5/optimizer/opt_accumulators.c
        monetdb5/optimizer/opt_commonTerms.c
        monetdb5/optimizer/opt_compression.c
        monetdb5/optimizer/opt_costModel.c
        monetdb5/optimizer/opt_datacyclotron.c
        monetdb5/optimizer/opt_deadcode.c
        monetdb5/optimizer/opt_derivepath.c
        monetdb5/optimizer/opt_dictionary.c
        monetdb5/optimizer/opt_garbagecollector.c
        monetdb5/optimizer/opt_joinpath.c
        monetdb5/optimizer/opt_joinpath.h
        monetdb5/optimizer/opt_mapreduce.c
        monetdb5/optimizer/opt_mergetable.c
        monetdb5/optimizer/opt_mitosis.c
        monetdb5/optimizer/opt_multiplex.c
        monetdb5/optimizer/opt_octopus.c
        monetdb5/optimizer/opt_pipes.c
        monetdb5/optimizer/opt_prejoin.c
        monetdb5/optimizer/opt_prelude.c
        monetdb5/optimizer/opt_prelude.h
        monetdb5/optimizer/opt_pushranges.c
        monetdb5/optimizer/opt_recycler.c
        monetdb5/optimizer/opt_remap.c
        monetdb5/optimizer/opt_remoteQueries.c
        monetdb5/optimizer/opt_replication.c
        monetdb5/optimizer/opt_singleton.c
        monetdb5/optimizer/opt_statistics.c
        monetdb5/optimizer/opt_support.c
        monetdb5/optimizer/opt_tarantula.c
        monetdb5/optimizer/optimizer.h
Branch: headless
Log Message:

A bunch of changes
Ranging from simple renames to code adjustments for COL.
Part of the Makefile.ag is commented out to enable
compilation tests to proceed further.


diffs (truncated from 6419 to 300 lines):

diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -1410,6 +1410,8 @@
  * @item COL *
  * @tab COLsetaccess (COL *b, int mode)
  * @item int
+ * @tab COLsetreadmode (COL *b)
+ * @item int
  * @tab COLdirty (COL *b)
  * @item int
  * @tab COLgetaccess (COL *b)
@@ -1454,6 +1456,8 @@
  * A special mode is append-only. It is then allowed to insert BUNs
  * at the end of the COL, but not to modify anything that already
  * was in there.
+ * The COLsetreadmode operation sets COL_READ but also checks for newly added 
+ * and dirty columns.
  */
 gdk_export str COLrename(COL *b, const char *nme);
 #ifndef COLcount
@@ -1471,6 +1475,7 @@
 gdk_export int COLname(COL *b, const char *nme);
 gdk_export COL *COLseqbase(COL *b, oid o);
 gdk_export COL *COLsetaccess(COL *b, int mode);
+gdk_export void COLsetreadonly(COL *b);
 gdk_export int COLgetaccess(COL *b);
 gdk_export int COLcheckmodes(COL *b, int persistent);
 
diff --git a/gdk/gdk_col.c b/gdk/gdk_col.c
--- a/gdk/gdk_col.c
+++ b/gdk/gdk_col.c
@@ -2011,6 +2011,20 @@
        return b;
 }
 
+/*
+The &2 indicates dirty and new, ie only do BATsetaccess on a
+special case (when the bat is just created).
+Used to be done in the old mil interpreter loop. In m5 we
+moved this to the functions themselves.
+It is not expected to produce a new column.
+*/
+void
+COLsetreadonly(COL *b)
+{
+       if (!(b->dirty&2)) 
+               (void) COLsetaccess(b, COL_READ);
+}
+
 int
 COLgetaccess(COL *b)
 {
diff --git a/monetdb5/extras/crackers/crackers_joins.mx 
b/monetdb5/extras/crackers/crackers_joins.mx
--- a/monetdb5/extras/crackers/crackers_joins.mx
+++ b/monetdb5/extras/crackers/crackers_joins.mx
@@ -408,14 +408,14 @@
        COLiter li = col_iterator(l);
         COLiter ri = col_iterator(r);
 
-       COLaccessBegin(r, USE_HEAD, MMAP_SEQUENTIAL);
+       COLaccessBegin(r, USE_HEAP, MMAP_SEQUENTIAL);
        if (COLprepareHash(r)){
-               COLaccessEnd(r, USE_HEAD, MMAP_SEQUENTIAL);
+               COLaccessEnd(r, USE_HEAP, MMAP_SEQUENTIAL);
                T2=GDKusec();
                return T2-T1;
        }
-       COLaccessEnd(r, USE_HEAD, MMAP_SEQUENTIAL);
-       COLaccessBegin(r, USE_HEAD|USE_TAIL|USE_HHASH, MMAP_WILLNEED);
+       COLaccessEnd(r, USE_HEAP, MMAP_SEQUENTIAL);
+       COLaccessBegin(r, USE_HEAP|USE_HHASH, MMAP_WILLNEED);
        switch (any = ATOMstorage(l->ttype)) {
 #ifndef NOEXPAND_CHR
        case TYPE_chr:
@@ -449,7 +449,7 @@
        }
 
       bunins_failed: /* blindly assume bunins does NOT fail*/
-       COLaccessEnd(r, USE_HEAD|USE_TAIL|USE_HHASH, MMAP_WILLNEED);
+       COLaccessEnd(r, USE_HEAP|USE_HHASH, MMAP_WILLNEED);
        T2=GDKusec();
        return T2-T1;
 }
diff --git a/monetdb5/modules/kernel/aggr.mx b/monetdb5/modules/kernel/aggr.mx
--- a/monetdb5/modules/kernel/aggr.mx
+++ b/monetdb5/modules/kernel/aggr.mx
@@ -295,7 +295,7 @@
                throw(MAL, "aggr.sum", RUNTIME_OBJECT_MISSING);
        }
        if( CMDaggrX3_sum_@1_@2(&bn,b,e) == GDK_SUCCEED){
-               if (!(bn->dirty&2)) bn = COLsetaccess(bn, COL_READ); 
+               COLsetreadonly(bn);
                *retid = CBPkeepref(bn);
                CBPreleaseref(b);
                CBPreleaseref(e);
@@ -320,7 +320,7 @@
                throw(MAL, "aggr.prod", RUNTIME_OBJECT_MISSING);
        }
        if( CMDaggrX3_prod_@1_@2(&bn,b,e) == GDK_SUCCEED){
-               if (!(bn->dirty&2)) bn = COLsetaccess(bn, COL_READ); 
+               COLsetreadonly(bn);
                *retid = CBPkeepref(bn);
                CBPreleaseref(b);
                CBPreleaseref(e);
@@ -371,7 +371,7 @@
                throw(MAL, "aggr.avg", RUNTIME_OBJECT_MISSING);
        }
        if( CMDaggrX3_avg_@1(&bn,b,e) == GDK_SUCCEED){
-               if (!(bn->dirty&2)) bn = COLsetaccess(bn, COL_READ); 
+               COLsetreadonly(bn);
                *retid = CBPkeepref(bn);
                CBPreleaseref(b);
                CBPreleaseref(e);
@@ -405,7 +405,7 @@
        }
 
        if( CMDaggrX3_@1(&bn,b,e) == GDK_SUCCEED){
-               if (!(bn->dirty&2)) bn = COLsetaccess(bn, COL_READ); 
+               COLsetreadonly(bn);
                *ret = CBPkeepref(bn);
                CBPreleaseref(b);
                CBPreleaseref(e);
@@ -436,7 +436,7 @@
        }
 
        if (CMDaggrX3_count(&bn, b, e, ignore_nils) == GDK_SUCCEED) {
-               if (!(bn->dirty&2)) bn = COLsetaccess(bn, COL_READ); 
+               COLsetreadonly(bn);
                *retid = CBPkeepref(bn);
                CBPreleaseref(b);
                CBPreleaseref(e);
@@ -464,7 +464,7 @@
                throw(MAL, "aggr.size", RUNTIME_OBJECT_MISSING);
        }
        if (CMDaggrX3_size(&bn, b, e) == GDK_SUCCEED) {
-               if (!(bn->dirty&2)) bn = COLsetaccess(bn, COL_READ); 
+               COLsetreadonly(bn);
                *retid = CBPkeepref(bn);
                CBPreleaseref(b);
                CBPreleaseref(e);
@@ -495,7 +495,7 @@
                throw(MAL, "aggr.sum3", RUNTIME_OBJECT_MISSING);
        }
        if( CMDaggrX3_sum3_@1_@2(&bn,b,g,e) == GDK_SUCCEED){
-               if (!(bn->dirty&2)) bn = COLsetaccess(bn, COL_READ); 
+               COLsetreadonly(bn);
                *retid = CBPkeepref(bn);
                CBPreleaseref(b);
                CBPreleaseref(e);
@@ -526,7 +526,7 @@
                throw(MAL, "aggr.prod3", RUNTIME_OBJECT_MISSING);
        }
        if( CMDaggrX3_prod3_@1_@2(&bn,b,g,e) == GDK_SUCCEED){
-               if (!(bn->dirty&2)) bn = COLsetaccess(bn, COL_READ); 
+               COLsetreadonly(bn);
                *retid = CBPkeepref(bn);
                CBPreleaseref(b);
                CBPreleaseref(e);
@@ -583,7 +583,7 @@
                throw(MAL, "aggr.avg3", RUNTIME_OBJECT_MISSING);
        }
        if( CMDaggrX3_avg3_@1(&bn,b,g,e) == GDK_SUCCEED){
-               if (!(bn->dirty&2)) bn = COLsetaccess(bn, COL_READ); 
+               COLsetreadonly(bn);
                *retid = CBPkeepref(bn);
                CBPreleaseref(b);
                CBPreleaseref(e);
@@ -624,7 +624,7 @@
                throw(MAL, "aggr.@13", RUNTIME_OBJECT_MISSING);
        }
        if( CMDaggrX3_@13(&bn,b,g,e) == GDK_SUCCEED){
-               if (!(bn->dirty&2)) bn = COLsetaccess(bn, COL_READ); 
+               COLsetreadonly(bn);
                *ret = CBPkeepref(bn);
                CBPreleaseref(b);
                CBPreleaseref(e);
@@ -660,7 +660,7 @@
                throw(MAL, "aggr.count3", RUNTIME_OBJECT_MISSING);
        }
        if (CMDaggrX3_count3(&bn, b, g, e, ignore_nils) == GDK_SUCCEED) {
-               if (!(bn->dirty&2)) bn = COLsetaccess(bn, COL_READ); 
+               COLsetreadonly(bn);
                *retif = CBPkeepref(bn);
                CBPreleaseref(b);
                CBPreleaseref(e);
diff --git a/monetdb5/modules/kernel/aggr_be_avg.mx 
b/monetdb5/modules/kernel/aggr_be_avg.mx
--- a/monetdb5/modules/kernel/aggr_be_avg.mx
+++ b/monetdb5/modules/kernel/aggr_be_avg.mx
@@ -91,7 +91,7 @@
        /* scan b, adding sums, and incrementing counts */
        bhsb = b->hseqbase - 1;
        if (!(@1 && sums))
-               
COLaccessBegin(bn,USE_HEAD|USE_HHASH|USE_TAIL,BAThordered(b)&BAThordered(e)&1?MMAP_SEQUENTIAL:MMAP_WILLNEED);
+               
COLaccessBegin(bn,USE_HEAP|USE_HHASH|USE_TAIL,BAThordered(b)&BAThordered(e)&1?MMAP_SEQUENTIAL:MMAP_WILLNEED);
        if (b_use)
                COLaccessBegin(b,b_use,MMAP_SEQUENTIAL);
        if (b->T->nonil) {
@@ -128,12 +128,12 @@
        if (b_use)
                COLaccessEnd(b,b_use,MMAP_SEQUENTIAL);
        if (!(@1 && sums))
-               
COLaccessEnd(bn,USE_HEAD|USE_HHASH|USE_TAIL,BAThordered(b)&BAThordered(e)&1?MMAP_SEQUENTIAL:MMAP_WILLNEED);
+               
COLaccessEnd(bn,USE_HEAP|USE_HHASH|USE_TAIL,BAThordered(b)&BAThordered(e)&1?MMAP_SEQUENTIAL:MMAP_WILLNEED);
        /* postprocess by dividing sums by counts */
        if (@1) {
            if (sums) {
                /* sums in sums-array */
-               COLaccessBegin(bn,USE_HEAD|USE_TAIL,MMAP_SEQUENTIAL);
+               COLaccessBegin(bn,USE_HEAP,MMAP_SEQUENTIAL);
                COLloop(bn, p, q) {
                        oid h = (*(oid*) BUNh@4(bni,p)) - min;
                        dbl *dst = (dbl*) BUNt@7(bni, p);
@@ -143,7 +143,7 @@
                                *dst = (dbl) (sums[h]/cnt[h]);
                        }
                }
-               COLaccessEnd(bn,USE_HEAD|USE_TAIL,MMAP_SEQUENTIAL);
+               COLaccessEnd(bn,USE_HEAP,MMAP_SEQUENTIAL);
                GDKfree(sums);
            }
        } else {
@@ -211,7 +211,7 @@
                return GDK_SUCCEED;
        }
        if (!BAThdense(b))
-               b_use |= USE_HEAD;
+               b_use |= USE_HEAP;
        if (e->htype == TYPE_void) {
                /* void lookup */
                if (BAThdense(b)) {
diff --git a/monetdb5/modules/kernel/aggr_be_count.mx 
b/monetdb5/modules/kernel/aggr_be_count.mx
--- a/monetdb5/modules/kernel/aggr_be_count.mx
+++ b/monetdb5/modules/kernel/aggr_be_count.mx
@@ -127,12 +127,12 @@
        }
        if (@1 && cnt) {
                /* copy cnt array to final result */
-               COLaccessBegin(bn,USE_HEAD|USE_TAIL,MMAP_SEQUENTIAL);
+               COLaccessBegin(bn,USE_HEAP,MMAP_SEQUENTIAL);
                COLloop(bn, p, q) {
                        oid h = (*(oid*) BUNh@4(bni,p)) - min;
                        *(wrd*)BUNtloc(bni, p) = cnt[h];
                }
-               COLaccessEnd(bn,USE_HEAD|USE_TAIL,MMAP_SEQUENTIAL);
+               COLaccessEnd(bn,USE_HEAP,MMAP_SEQUENTIAL);
                GDKfree(cnt);
        }
 @c
@@ -143,7 +143,7 @@
 @= aggrX3_count_loop
        ALGODEBUG THRprintf(GDKout, 
"#aggrX3_count_loop(@1,@2,@3,@4,@5,@6,@7);\n");
        if (!(@1 && cnt))
-               
COLaccessBegin(bn,USE_HEAD|USE_HHASH|USE_TAIL,BAThordered(b)&BAThordered(e)&1?MMAP_SEQUENTIAL:MMAP_WILLNEED);
+               
COLaccessBegin(bn,USE_HEAP|USE_HHASH|USE_TAIL,BAThordered(b)&BAThordered(e)&1?MMAP_SEQUENTIAL:MMAP_WILLNEED);
        if (b_use)
                COLaccessBegin(b,b_use,MMAP_SEQUENTIAL);
        COLloop(b, p, q) {
@@ -160,7 +160,7 @@
        if (b_use)
                COLaccessEnd(b,b_use,MMAP_SEQUENTIAL);
        if (!(@1 && cnt))
-               
COLaccessEnd(bn,USE_HEAD|USE_HHASH|USE_TAIL,BAThordered(b)&BAThordered(e)&1?MMAP_SEQUENTIAL:MMAP_WILLNEED);
+               
COLaccessEnd(bn,USE_HEAP|USE_HHASH|USE_TAIL,BAThordered(b)&BAThordered(e)&1?MMAP_SEQUENTIAL:MMAP_WILLNEED);
        break;
 @h
 int
@@ -207,7 +207,7 @@
        range = max - min + 1;
 
        if (!BAThdense(b))
-               b_use |= USE_HEAD;
+               b_use |= USE_HEAP;
        /* scan b, and calculate counts */
        if (e->htype == TYPE_void) {
                /* void lookup */
@@ -273,21 +273,21 @@
        /* init: set all sums to zero */
        bn->tsorted = bn->hsorted = 0;
        ALIGNsetH(bn, e);
-       COLaccessBegin(e,USE_HEAD,MMAP_SEQUENTIAL);
+       COLaccessBegin(e,USE_HEAP,MMAP_SEQUENTIAL);
        COLloop(e, p, q) {
                if (BUNfastins(bn, BUNhead(ei, p), &zero) == NULL) {
                        CBPreclaim(bn);
                        return GDK_FAIL;
                }
        }
-       COLaccessEnd(e,USE_HEAD,MMAP_SEQUENTIAL);
+       COLaccessEnd(e,USE_HEAP,MMAP_SEQUENTIAL);
        /* scan b, and add increment totals for true values */
        if (COLprepareHash(bn)) {
                GDKerror("CMDaggrX3_size(): COLprepareHash(bn) failed");
                CBPreclaim(bn);
                return GDK_FAIL;
        }
-       COLaccessBegin(b,USE_HEAD|USE_TAIL,MMAP_SEQUENTIAL);
+       COLaccessBegin(b,USE_HEAP,MMAP_SEQUENTIAL);
        COLloop(b, p, q) {
                if (*(bit *) BUNtloc(bi, p) == TRUE) {
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to