Changeset: 2fec8a7e4924 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2fec8a7e4924
Added Files:
        sql/backends/monet5/Tests/rapi17.sql
Modified Files:
        clients/Tests/SQL-dump.stable.out
        clients/Tests/SQL-dump.stable.out.int128
        clients/Tests/exports.stable.out
        configure.ag
        monetdb5/mal/mal_parser.c
        monetdb5/modules/mal/Tests/remote12.mal
        monetdb5/modules/mal/Tests/remote12.stable.out
        monetdb5/modules/mal/bbp.c
        monetdb5/modules/mal/bbp.h
        monetdb5/modules/mal/bbp.mal
        monetdb5/modules/mal/remote.c
        monetdb5/optimizer/opt_multiplex.c
        sql/backends/monet5/Tests/All
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql_gencode.c
        sql/backends/monet5/sql_upgrades.c
        sql/scripts/25_debug.sql
        sql/test/Tests/systemfunctions.stable.out
        sql/test/Tests/systemfunctions.stable.out.int128
        sql/test/leaks/Tests/check0.sql
        sql/test/leaks/Tests/check0.stable.out.int128
        sql/test/leaks/Tests/check1.stable.out.int128
        sql/test/leaks/Tests/check2.stable.out.int128
        sql/test/leaks/Tests/check3.stable.out.int128
        sql/test/leaks/Tests/check4.stable.out.int128
        sql/test/leaks/Tests/check5.stable.out.int128
        sql/test/leaks/Tests/drop3.stable.out.int128
        sql/test/leaks/Tests/select1.stable.out.int128
        sql/test/leaks/Tests/select2.stable.out.int128
        sql/test/leaks/Tests/temp1.stable.out.int128
        sql/test/leaks/Tests/temp2.stable.out.int128
        sql/test/leaks/Tests/temp3.stable.out.int128
Branch: profiler
Log Message:

Merge default


diffs (truncated from 353 to 300 lines):

diff --git a/clients/Tests/SQL-dump.stable.out 
b/clients/Tests/SQL-dump.stable.out
--- a/clients/Tests/SQL-dump.stable.out
+++ b/clients/Tests/SQL-dump.stable.out
@@ -488,7 +488,7 @@ create function area(g geometry) returns
 create function astext(g geometry) returns string external name geom."AsText";
 -- The BAT buffer pool overview
 create function sys.bbp () 
-       returns table (id int, name string, htype string, 
+       returns table (id int, name string, 
                ttype string, count bigint, refcnt int, lrefcnt int, 
                location string, heat int, dirty string, 
                status string, kind string) 
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
@@ -995,7 +995,7 @@ str CMDbatSUB(Client cntxt, MalBlkPtr mb
 str CMDbatSUBenlarge(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str CMDbatSUBsignal(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str CMDbatXOR(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str CMDbbp(bat *ID, bat *NS, bat *HT, bat *TT, bat *CNT, bat *REFCNT, bat 
*LREFCNT, bat *LOCATION, bat *HEAT, bat *DIRTY, bat *STATUS, bat *KIND);
+str CMDbbp(bat *ID, bat *NS, bat *TT, bat *CNT, bat *REFCNT, bat *LREFCNT, bat 
*LOCATION, bat *HEAT, bat *DIRTY, bat *STATUS, bat *KIND);
 str CMDbbpCount(bat *ret);
 str CMDbbpDirty(bat *ret);
 str CMDbbpDiskSpace(lng *ret);
diff --git a/configure.ag b/configure.ag
--- a/configure.ag
+++ b/configure.ag
@@ -1870,8 +1870,8 @@ if test "x$have_pthread" != xno; then
        save_LIBS="$LIBS"
        save_CPPFLAGS="$CPPFLAGS"
        case $GCC-$have_pthread-$CC_ver in
-               
yes-auto-clang-5.*|yes-yes-clang-5.*|yes-auto-clang-6.*|yes-yes-clang-6.*)
-                       # clang 5.*/6.* (Xcode 6.0) does not
+               
yes-auto-clang-5.*|yes-yes-clang-5.*|yes-auto-clang-6.*|yes-yes-clang-6.*|yes-auto-clang-7.*|yes-yes-clang-7.*)
+                       # clang 5.*/6.*/7.* (Xcode 6.0) does not
                        # seem to have / require -pthread as compiler
                        # option; on Mac OS X Yosamite, "Apple LLVM 
                        # version 6.0 (clang-600.0.51) (based on LLVM 3.5svn)"
diff --git a/monetdb5/mal/mal_parser.c b/monetdb5/mal/mal_parser.c
--- a/monetdb5/mal/mal_parser.c
+++ b/monetdb5/mal/mal_parser.c
@@ -685,7 +685,6 @@ parseTypeId(Client cntxt, int defaultTyp
                advance(cntxt, 5);
                if (currChar(cntxt) == ':') {
                        ht = simpleTypeId(cntxt);
-                       //kh = typeAlias(cntxt, ht);
                        if( ht != TYPE_oid){
                                parseError(cntxt, "':oid' expected\n");
                                return i;
@@ -727,10 +726,12 @@ parseTypeId(Client cntxt, int defaultTyp
                return TYPE_bat;
        }
        // Headless definition of a column
-       if (s[0] == ':' && s[1] == 'c' && s[2] == 'o' && s[3] == 'l' && 
!idCharacter[(int) s[4]]) {
+       if (s[0] == ':' && s[1] == 'c' && s[2] == 'o' && s[3] == 'l' && s[4] == 
'[') {
                /* parse default for :col[:any] */
-               advance(cntxt, 4);
-               return newColumnType(TYPE_any);
+               advance(cntxt, 5);
+               skipSpace(cntxt);
+               tt = simpleTypeId(cntxt);
+               return newColumnType(tt);
        }
        if (currChar(cntxt) == ':') {
                ht = simpleTypeId(cntxt);
diff --git a/monetdb5/modules/mal/Tests/remote12.mal 
b/monetdb5/modules/mal/Tests/remote12.mal
--- a/monetdb5/modules/mal/Tests/remote12.mal
+++ b/monetdb5/modules/mal/Tests/remote12.mal
@@ -1,9 +1,9 @@
 #causing a segfault 
 uri := sabaoth.getLocalConnectionURI();
 conn:str := remote.connect(uri, "monetdb", "monetdb");
-e := nil:BAT;
+e := nil:bat[:oid,:int];
 m:str := remote.put(conn, e);
 io.print(m);
-v:BAT := remote.get(conn,m);
+v:bat[:oid,:int] := remote.get(conn,m);
 io.print(v);
 mdb.var();
diff --git a/monetdb5/modules/mal/Tests/remote12.stable.out 
b/monetdb5/modules/mal/Tests/remote12.stable.out
--- a/monetdb5/modules/mal/Tests/remote12.stable.out
+++ b/monetdb5/modules/mal/Tests/remote12.stable.out
@@ -20,14 +20,14 @@ function user.main():void;
 #causing a sigfault  
     uri := sabaoth.getLocalConnectionURI();
     conn:str  := remote.connect(uri,"monetdb","monetdb");
-    e := nil:BAT;
+    e := nil:bat[:oid,:int];
     m:str := remote.put(conn,e);
     io.print(m);
-    v:BAT := remote.get(conn,m);
+    v:bat[:oid,:int] := remote.get(conn,m);
     io.print(v);
     mdb.var();
 end user.main;
-!MALException:remote.put:unsupported type: BAT
+
 
 
 
diff --git a/monetdb5/modules/mal/bbp.c b/monetdb5/modules/mal/bbp.c
--- a/monetdb5/modules/mal/bbp.c
+++ b/monetdb5/modules/mal/bbp.c
@@ -34,7 +34,7 @@ CMDbbpbind(Client cntxt, MalBlkPtr mb, M
        str name;
        ValPtr lhs;
        bat i;
-       int ht,tt;
+       int tt;
        BAT *b;
 
        (void) cntxt;
@@ -53,12 +53,10 @@ CMDbbpbind(Client cntxt, MalBlkPtr mb, M
                throw(MAL, "bbp.bind", RUNTIME_OBJECT_MISSING);
 
        /* check conformity of the actual type and the one requested */
-       ht= getHeadType(getArgType(mb,pci,0));
        tt= getColumnType(getArgType(mb,pci,0));
-       if( b->htype == TYPE_void && ht== TYPE_oid) ht= TYPE_void;
        if( b->ttype == TYPE_void && tt== TYPE_oid) tt= TYPE_void;
 
-       if( ht != b->htype || tt != b->ttype){
+       if( tt != b->ttype){
                BBPunfix(i);
                throw(MAL, "bbp.bind", SEMANTIC_TYPE_MISMATCH );
        }
@@ -391,15 +389,14 @@ CMDgetBATlrefcnt(int *res, bat *bid)
        return MAL_SUCCEED;
 }
 
-str CMDbbp(bat *ID, bat *NS, bat *HT, bat *TT, bat *CNT, bat *REFCNT, bat 
*LREFCNT, bat *LOCATION, bat *HEAT, bat *DIRTY, bat *STATUS, bat *KIND)
+str CMDbbp(bat *ID, bat *NS, bat *TT, bat *CNT, bat *REFCNT, bat *LREFCNT, bat 
*LOCATION, bat *HEAT, bat *DIRTY, bat *STATUS, bat *KIND)
 {
-       BAT *id, *ns, *ht, *tt, *cnt, *refcnt, *lrefcnt, *location, *heat, 
*dirty, *status, *kind, *bn;
+       BAT *id, *ns, *tt, *cnt, *refcnt, *lrefcnt, *location, *heat, *dirty, 
*status, *kind, *bn;
        int     i;
        char buf[MAXPATHLEN];
 
        id = BATnew(TYPE_void, TYPE_int, getBBPsize(), TRANSIENT);
        ns = BATnew(TYPE_void, TYPE_str, getBBPsize(), TRANSIENT);
-       ht = BATnew(TYPE_void, TYPE_str, getBBPsize(), TRANSIENT);
        tt = BATnew(TYPE_void, TYPE_str, getBBPsize(), TRANSIENT);
        cnt = BATnew(TYPE_void, TYPE_lng, getBBPsize(), TRANSIENT);
        refcnt = BATnew(TYPE_void, TYPE_int, getBBPsize(), TRANSIENT);
@@ -410,10 +407,9 @@ str CMDbbp(bat *ID, bat *NS, bat *HT, ba
        status = BATnew(TYPE_void, TYPE_str, getBBPsize(), TRANSIENT);
        kind = BATnew(TYPE_void, TYPE_str, getBBPsize(), TRANSIENT);
 
-       if (!id || !ns || !ht || !tt || !cnt || !refcnt || !lrefcnt || 
!location || !heat || !dirty || !status || !kind) {
+       if (!id || !ns || !tt || !cnt || !refcnt || !lrefcnt || !location || 
!heat || !dirty || !status || !kind) {
                BBPreclaim(id);
                BBPreclaim(ns);
-               BBPreclaim(ht);
                BBPreclaim(tt);
                BBPreclaim(cnt);
                BBPreclaim(refcnt);
@@ -427,7 +423,6 @@ str CMDbbp(bat *ID, bat *NS, bat *HT, ba
        }
        BATseqbase(id, 0);
        BATseqbase(ns, 0);
-       BATseqbase(ht, 0);
        BATseqbase(tt, 0);
        BATseqbase(cnt, 0);
        BATseqbase(refcnt, 0);
@@ -453,7 +448,6 @@ str CMDbbp(bat *ID, bat *NS, bat *HT, ba
                                snprintf(buf, MAXPATHLEN, "%s", 
BBP_physical(i));
                                BUNappend(id, &i, FALSE);
                                BUNappend(ns, BBP_logical(i), FALSE);
-                               BUNappend(ht, BATatoms[BAThtype(bn)].name, 
FALSE);
                                BUNappend(tt, BATatoms[BATttype(bn)].name, 
FALSE);
                                BUNappend(cnt, &l, FALSE);
                                BUNappend(refcnt, &refs, FALSE);
@@ -469,7 +463,6 @@ str CMDbbp(bat *ID, bat *NS, bat *HT, ba
        }
        BBPkeepref(*ID = id->batCacheid);
        BBPkeepref(*NS = ns->batCacheid);
-       BBPkeepref(*HT = ht->batCacheid);
        BBPkeepref(*TT = tt->batCacheid);
        BBPkeepref(*CNT = cnt->batCacheid);
        BBPkeepref(*REFCNT = refcnt->batCacheid);
diff --git a/monetdb5/modules/mal/bbp.h b/monetdb5/modules/mal/bbp.h
--- a/monetdb5/modules/mal/bbp.h
+++ b/monetdb5/modules/mal/bbp.h
@@ -53,5 +53,5 @@ bbp_export str CMDbbpLRefCount(bat *ret)
 bbp_export str CMDbbpgetIndex(int *res, bat *bid);
 bbp_export str CMDgetBATrefcnt(int *res, bat *bid);
 bbp_export str CMDgetBATlrefcnt(int *res, bat *bid);
-bbp_export str CMDbbp(bat *ID, bat *NS, bat *HT, bat *TT, bat *CNT, bat 
*REFCNT, bat *LREFCNT, bat *LOCATION, bat *HEAT, bat *DIRTY, bat *STATUS, bat 
*KIND);
+bbp_export str CMDbbp(bat *ID, bat *NS, bat *TT, bat *CNT, bat *REFCNT, bat 
*LREFCNT, bat *LOCATION, bat *HEAT, bat *DIRTY, bat *STATUS, bat *KIND);
 #endif /* _BBP_H_*/
diff --git a/monetdb5/modules/mal/bbp.mal b/monetdb5/modules/mal/bbp.mal
--- a/monetdb5/modules/mal/bbp.mal
+++ b/monetdb5/modules/mal/bbp.mal
@@ -18,8 +18,9 @@ command getNames() :bat[:oid,:str]
 address CMDbbpNames
 comment "Map BAT into its bbp name";
 
-command get() (id:bat[:oid,:int], ns:bat[:oid,:str],
-              ht:bat[:oid,:str], tt:bat[:oid,:str],
+command get() (id:bat[:oid,:int], 
+                       ns:bat[:oid,:str],
+              tt:bat[:oid,:str],
               cnt:bat[:oid,:lng], refcnt:bat[:oid,:int],
               lrefcnt:bat[:oid,:int], location:bat[:oid,:str],
               heat:bat[:oid,:int], dirty:bat[:oid,:str],
diff --git a/monetdb5/modules/mal/remote.c b/monetdb5/modules/mal/remote.c
--- a/monetdb5/modules/mal/remote.c
+++ b/monetdb5/modules/mal/remote.c
@@ -678,7 +678,7 @@ str RMTput(Client cntxt, MalBlkPtr mb, M
                msg = createException(MAL, "remote.put", "unsupported type: 
%s", tpe);
                GDKfree(tpe);
                return msg;
-       } else if (isaBatType(type)) {
+       } else if (isaBatType(type) && *(int*) value != 0) {
                BATiter bi;
                /* naive approach using bat.new() and bat.insert() calls */
                char *tail;
diff --git a/sql/backends/monet5/Tests/All b/sql/backends/monet5/Tests/All
--- a/sql/backends/monet5/Tests/All
+++ b/sql/backends/monet5/Tests/All
@@ -16,6 +16,7 @@ HAVE_LIBR?rapi13
 HAVE_LIBR?rapi14
 HAVE_LIBR?rapi15
 HAVE_LIBR?rapi16
+HAVE_LIBR?rapi17
 
 # should this work?
 #inlineUDF
diff --git a/sql/backends/monet5/Tests/rapi17.sql 
b/sql/backends/monet5/Tests/rapi17.sql
new file mode 100644
--- /dev/null
+++ b/sql/backends/monet5/Tests/rapi17.sql
@@ -0,0 +1,4 @@
+START TRANSACTION;
+create function dt(d date) returns string language R { class(d) };
+select dt( cast('2015-09-21' as date) );
+ROLLBACK;
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
@@ -2149,7 +2149,7 @@ setwritable(BAT *b)
 
        if (BATsetaccess(b, BAT_WRITE) != GDK_SUCCEED) {
                if (b->batSharecnt) {
-                       bn = BATcopy(b, b->htype, b->ttype, TRUE, TRANSIENT);
+                       bn = BATcopy(b, TYPE_void, b->ttype, TRUE, TRANSIENT);
                        if (bn != NULL)
                                BATsetaccess(bn, BAT_WRITE);
                } else {
@@ -2340,7 +2340,7 @@ DELTAsub(bat *result, const bat *col, co
                        i = u_id;
                }
                if (isVIEW(res)) {
-                       BAT *n = BATcopy(res, res->htype, res->ttype, TRUE, 
TRANSIENT);
+                       BAT *n = BATcopy(res, TYPE_void, res->ttype, TRUE, 
TRANSIENT);
                        BBPunfix(res->batCacheid);
                        res = n;
                        if (res == NULL) {
diff --git a/sql/backends/monet5/sql_gencode.c 
b/sql/backends/monet5/sql_gencode.c
--- a/sql/backends/monet5/sql_gencode.c
+++ b/sql/backends/monet5/sql_gencode.c
@@ -549,7 +549,7 @@ static int
 
                type = newBatType(TYPE_oid, type);
                p = newFcnCall(curBlk, batRef, newRef);
-               p = pushType(curBlk, p, getHeadType(type));
+               p = pushType(curBlk, p, TYPE_oid);
                p = pushType(curBlk, p, getColumnType(type));
                setArgType(curBlk, p, 0, type);
                lret[i] = getArg(p, 0);
diff --git a/sql/scripts/25_debug.sql b/sql/scripts/25_debug.sql
--- a/sql/scripts/25_debug.sql
+++ b/sql/scripts/25_debug.sql
@@ -36,7 +36,7 @@ create view sys.environment as select * 
 
 -- The BAT buffer pool overview
 create function sys.bbp ()
-       returns table (id int, name string, htype string,
+       returns table (id int, name string, 
                ttype string, count BIGINT, refcnt int, lrefcnt int,
                location string, heat int, dirty string,
                status string, kind string)
diff --git a/sql/test/Tests/systemfunctions.stable.out 
b/sql/test/Tests/systemfunctions.stable.out
--- a/sql/test/Tests/systemfunctions.stable.out
+++ b/sql/test/Tests/systemfunctions.stable.out
@@ -162,18 +162,17 @@ Ready.
 [ "sys",       "area", 1,      "geometry",     ""      ]
 [ "sys",       "astext",       0,      "clob", "create function astext(g 
geometry) returns string external name geom.\"AsText\";"      ]
 [ "sys",       "astext",       1,      "geometry",     ""      ]
-[ "sys",       "bbp",  0,      "int",  "-- The BAT buffer pool 
overview\ncreate function sys.bbp ()\n\treturns table (id int, name string, 
htype string,\n\t\tttype string, count bigint, refcnt int, lrefcnt 
int,\n\t\tlocation string, heat int, dirty string,\n\t\tstatus string, kind 
string)\n\texternal name bbp.get;"   ]
+[ "sys",       "bbp",  0,      "int",  "-- The BAT buffer pool 
overview\ncreate function sys.bbp ()\n\treturns table (id int, name string, 
\n\t\tttype string, count bigint, refcnt int, lrefcnt int,\n\t\tlocation 
string, heat int, dirty string,\n\t\tstatus string, kind string)\n\texternal 
name bbp.get;"        ]
 [ "sys",       "bbp",  1,      "clob", ""      ]
 [ "sys",       "bbp",  2,      "clob", ""      ]
-[ "sys",       "bbp",  3,      "clob", ""      ]
-[ "sys",       "bbp",  4,      "bigint",       ""      ]
+[ "sys",       "bbp",  3,      "bigint",       ""      ]
+[ "sys",       "bbp",  4,      "int",  ""      ]
 [ "sys",       "bbp",  5,      "int",  ""      ]
-[ "sys",       "bbp",  6,      "int",  ""      ]
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to