Changeset: 21ed682825b4 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=21ed682825b4
Modified Files:
        gdk/gdk.h
        gdk/gdk_bat.c
        gdk/gdk_join.c
        gdk/gdk_select.c
        monetdb5/mal/mal.h
        monetdb5/modules/mal/mdb.c
        sql/backends/monet5/sql.c
        tools/mserver/mserver5.1.in
        tools/mserver/mserver5.c
Branch: viewless
Log Message:

introduce --viewless option


diffs (153 lines):

diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -432,6 +432,9 @@
 #define FORCEMITOMASK  (1<<29)
 #define FORCEMITODEBUG if (GDKdebug & FORCEMITOMASK)
 
+#define VIEWLESSMASK   (1<<30)
+#define VIEWLESSDEBUG  if (GDKdebug & VIEWLESSMASK)
+
 /*
  * @- GDK session handling
  * @multitable @columnfractions 0.08 0.7
diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c
--- a/gdk/gdk_bat.c
+++ b/gdk/gdk_bat.c
@@ -1990,6 +1990,9 @@ BATassertProps(BAT *b)
        assert(b->batCacheid > 0);
        assert(b->batCount >= b->batInserted);
 
+
+       VIEWLESSDEBUG assert(viewless(b));
+
        /* headless */
        assert(b->hseqbase <= GDK_oid_max); /* non-nil seqbase */
        assert(b->hseqbase + BATcount(b) <= GDK_oid_max);
diff --git a/gdk/gdk_join.c b/gdk/gdk_join.c
--- a/gdk/gdk_join.c
+++ b/gdk/gdk_join.c
@@ -99,13 +99,6 @@ joinparamcheck(BAT *l, BAT *r1, BAT *r2,
                GDKerror("%s: candidate lists must be unique.\n", func);
                return GDK_FAIL;
        }
-       if (!viewless(l) || !viewless(r1) || (r2 && !viewless(r2))) {
-               /*
-               GDKerror("%s: inputs are views.\n", func);
-               assert(0);
-               return GDK_FAIL;
-               */
-       }
        return GDK_SUCCEED;
 }
 
diff --git a/gdk/gdk_select.c b/gdk/gdk_select.c
--- a/gdk/gdk_select.c
+++ b/gdk/gdk_select.c
@@ -1211,9 +1211,6 @@ BATselect(BAT *b, BAT *s, const void *tl
 
        BATcheck(b, "BATselect", NULL);
        BATcheck(tl, "BATselect: tl value required", NULL);
-       if (!viewless(b)) {
-               fprintf(stderr, "BATselect: b=%s#(%u) is a view.\n", 
BATgetId(b), VIEWtparent(b));
-       }
 
        assert(s == NULL || s->ttype == TYPE_oid || s->ttype == TYPE_void);
        assert(hi == 0 || hi == 1);
diff --git a/monetdb5/mal/mal.h b/monetdb5/mal/mal.h
--- a/monetdb5/mal/mal.h
+++ b/monetdb5/mal/mal.h
@@ -63,8 +63,8 @@ mal_export int have_hge;
    for a documentation of all debug options.
 */
 #define GRPthreads (THRDMASK | PARMASK)
-#define GRPmemory (MEMMASK | ALLOCMASK )
-#define GRPproperties (CHECKMASK | PROPMASK | BATMASK )
+#define GRPmemory (MEMMASK | ALLOCMASK)
+#define GRPproperties (CHECKMASK | PROPMASK | BATMASK)
 #define GRPio (IOMASK | PERFMASK )
 #define GRPheaps (HEAPMASK)
 #define GRPtransactions (TMMASK | DELTAMASK | TEMMASK)
@@ -73,6 +73,7 @@ mal_export int have_hge;
 #define GRPperformance (DEADBEEFMASK)
 #define GRPoptimizers  (OPTMASK)
 #define GRPforcemito (FORCEMITOMASK | NOSYNCMASK)
+#define GRPviewless (VIEWLESSMASK | CHECKMASK | PROPMASK | BATMASK)
 
 mal_export MT_Lock  mal_contextLock;
 mal_export MT_Lock  mal_remoteLock;
diff --git a/monetdb5/modules/mal/mdb.c b/monetdb5/modules/mal/mdb.c
--- a/monetdb5/modules/mal/mdb.c
+++ b/monetdb5/modules/mal/mdb.c
@@ -211,6 +211,8 @@ MDBsetDebugStr(int *ret, str *flg)
                GDKdebug |= GRPperformance;
        if( strcmp("forcemito",*flg)==0)
                GDKdebug |= GRPforcemito;
+       if( strcmp("viewless",*flg)==0)
+               GDKdebug |= GRPviewless;
     return MAL_SUCCEED;
 }
 
diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c
--- a/sql/backends/monet5/sql.c
+++ b/sql/backends/monet5/sql.c
@@ -515,9 +515,6 @@ mvc_bind(mvc *m, const char *sname, cons
                return NULL;
 
        b = store_funcs.bind_col(tr, c, access);
-       if (!viewless(b)) {
-               fprintf(stderr, "mvc_bind: b=%s#(%u) is a view.\n", 
BATgetId(b), VIEWtparent(b));
-       }
        return b;
 }
 
diff --git a/tools/mserver/mserver5.1.in b/tools/mserver/mserver5.1.in
--- a/tools/mserver/mserver5.1.in
+++ b/tools/mserver/mserver5.1.in
@@ -177,6 +177,8 @@ combination of):
                               overhead for unnecessarily large plans);
                               used only for development & testing;
                               set automatically by Mtest.py
+  1073741824 = VIEWLESSMASK = check if a newly created BAT is a view
+                              (requires that PROPMASK is set)
 .EE
 
 Note that
@@ -195,6 +197,7 @@ these debug flags as well:
   \-\-performance   (DEADBEEFMASK)
   \-\-optimizers    (OPTMASK)
   \-\-forcemito     (FORCEMITOMASK | NOSYNCMASK)
+  \-\-viewless      (VIEWLESSMASK | CHECKMASK | PROPMASK | BATMASK)
 .EE
 
 Default:
diff --git a/tools/mserver/mserver5.c b/tools/mserver/mserver5.c
--- a/tools/mserver/mserver5.c
+++ b/tools/mserver/mserver5.c
@@ -116,6 +116,7 @@ usage(char *prog, int xit)
        fprintf(stderr, "     --optimizers\n");
        fprintf(stderr, "     --trace\n");
        fprintf(stderr, "     --forcemito\n");
+       fprintf(stderr, "     --viewless\n");
        fprintf(stderr, "     --debug=<bitmask>\n");
 
        exit(xit);
@@ -265,6 +266,7 @@ main(int argc, char **av)
                { "optimizers", 0, 0, 0 },
                { "performance", 0, 0, 0 },
                { "forcemito", 0, 0, 0 },
+               { "viewless", 0, 0, 0 },
                { "heaps", 0, 0, 0 },
                { 0, 0, 0, 0 }
        };
@@ -368,6 +370,10 @@ main(int argc, char **av)
                                grpdebug |= GRPforcemito;
                                break;
                        }
+                       if (strcmp(long_options[option_index].name, "viewless") 
== 0) {
+                               grpdebug |= GRPviewless;
+                               break;
+                       }
                        if (strcmp(long_options[option_index].name, 
"performance") == 0) {
                                grpdebug |= GRPperformance;
                                break;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to