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