Changeset: 639feb0162b0 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=639feb0162b0
Added Files:
sql/backends/monet5/Tests/int_notation_1e5.sql
sql/backends/monet5/Tests/int_notation_1e5.stable.err
sql/backends/monet5/Tests/int_notation_1e5.stable.out
sql/backends/monet5/Tests/pyapi31.stable.err
sql/backends/monet5/Tests/pyapi31.stable.out
sql/backends/monet5/Tests/pyloader01.sql
sql/backends/monet5/Tests/pyloader01.stable.err
sql/backends/monet5/Tests/pyloader01.stable.out
sql/backends/monet5/Tests/pyloader02.sql
sql/backends/monet5/Tests/pyloader02.stable.err
sql/backends/monet5/Tests/pyloader02.stable.out
sql/backends/monet5/Tests/pyloader03.sql
sql/backends/monet5/Tests/pyloader03.stable.err
sql/backends/monet5/Tests/pyloader03.stable.out
sql/backends/monet5/Tests/pyloader04.sql
sql/backends/monet5/Tests/pyloader04.stable.err
sql/backends/monet5/Tests/pyloader04.stable.out
sql/backends/monet5/Tests/pyloader05.sql
sql/backends/monet5/Tests/pyloader05.stable.err
sql/backends/monet5/Tests/pyloader05.stable.out
sql/backends/monet5/Tests/pyloader07.sql
sql/backends/monet5/Tests/pyloader07.stable.err
sql/backends/monet5/Tests/pyloader07.stable.out
sql/backends/monet5/UDF/pyapi/convert_loops.h
sql/backends/monet5/UDF/pyapi/emit.c
sql/backends/monet5/UDF/pyapi/emit.h
sql/backends/monet5/UDF/pyapi/pyloader.c
Modified Files:
clients/Tests/MAL-signatures.stable.out
clients/Tests/MAL-signatures.stable.out.int128
clients/Tests/exports.stable.out
clients/mapiclient/tomograph.c
gdk/ChangeLog
gdk/gdk.h
gdk/gdk_atoms.c
gdk/gdk_bat.c
gdk/gdk_bbp.c
gdk/gdk_bbp.h
gdk/gdk_join.c
gdk/gdk_private.h
gdk/gdk_select.c
gdk/gdk_storage.c
gdk/gdk_utils.c
gdk/gdk_utils.h
geom/monetdb5/30_geom.mal
monetdb5/ChangeLog
monetdb5/extras/mal_optimizer_template/91_opt_sql_append.mal
monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.single
monetdb5/extras/rapi/50_rapi.mal
monetdb5/extras/rapi/rapi.c
monetdb5/extras/sphinx/30_sphinx.mal
monetdb5/mal/Tests/dynamicload.malC
monetdb5/mal/Tests/dynamicload.stable.err
monetdb5/mal/Tests/tst275.stable.out
monetdb5/mal/mal.h
monetdb5/mal/mal_atom.c
monetdb5/mal/mal_client.c
monetdb5/mal/mal_debugger.c
monetdb5/mal/mal_errors.h
monetdb5/mal/mal_exception.c
monetdb5/mal/mal_function.c
monetdb5/mal/mal_function.h
monetdb5/mal/mal_instruction.c
monetdb5/mal/mal_instruction.h
monetdb5/mal/mal_interpreter.c
monetdb5/mal/mal_linker.c
monetdb5/mal/mal_linker.h
monetdb5/mal/mal_listing.c
monetdb5/mal/mal_listing.h
monetdb5/mal/mal_module.c
monetdb5/mal/mal_module.h
monetdb5/mal/mal_parser.c
monetdb5/mal/mal_private.h
monetdb5/mal/mal_readline.c
monetdb5/mal/mal_resolve.c
monetdb5/mal/mal_runtime.c
monetdb5/mal/mal_scenario.c
monetdb5/mal/mal_session.c
monetdb5/modules/kernel/algebra.c
monetdb5/modules/kernel/bat5.c
monetdb5/modules/kernel/status.c
monetdb5/modules/mal/bbp.c
monetdb5/modules/mal/bbp.h
monetdb5/modules/mal/bbp.mal
monetdb5/modules/mal/inspect.c
monetdb5/modules/mal/manual.c
monetdb5/modules/mal/manual.h
monetdb5/modules/mal/manual.mal
monetdb5/modules/mal/sysmon.c
monetdb5/modules/mal/tablet.c
monetdb5/optimizer/Tests/inlineFunction.stable.out
monetdb5/optimizer/Tests/inlineFunction1.stable.out
monetdb5/optimizer/Tests/inlineFunction3.stable.out
monetdb5/optimizer/Tests/inlineFunction4.stable.out
monetdb5/optimizer/opt_generator.c
monetdb5/optimizer/opt_macro.c
monetdb5/optimizer/opt_mitosis.c
monetdb5/optimizer/opt_pipes.c
monetdb5/optimizer/opt_support.c
sql/backends/monet5/40_sql.mal
sql/backends/monet5/LSST/80_lsst.mal
sql/backends/monet5/Tests/All
sql/backends/monet5/Tests/pyapi30.stable.out
sql/backends/monet5/UDF/cudf/80_udf.mal
sql/backends/monet5/UDF/cudf/Tests/udf-fuse.stable.out
sql/backends/monet5/UDF/cudf/Tests/udf-reverse.stable.out
sql/backends/monet5/UDF/pyapi/Makefile.ag
sql/backends/monet5/UDF/pyapi/connection.c
sql/backends/monet5/UDF/pyapi/connection.h
sql/backends/monet5/UDF/pyapi/formatinput.c
sql/backends/monet5/UDF/pyapi/formatinput.h
sql/backends/monet5/UDF/pyapi/pyapi.c
sql/backends/monet5/UDF/pyapi/pyapi.h
sql/backends/monet5/UDF/pyapi/pyapi.mal
sql/backends/monet5/UDF/pyapi/pytypes.h
sql/backends/monet5/UDF/pyapi/type_conversion.c
sql/backends/monet5/UDF/pyapi/type_conversion.h
sql/backends/monet5/generator/90_generator.mal
sql/backends/monet5/gsl/73_gsl.mal
sql/backends/monet5/rel_bin.c
sql/backends/monet5/sql.c
sql/backends/monet5/sql.h
sql/backends/monet5/sql_gencode.c
sql/backends/monet5/sql_optimizer.c
sql/backends/monet5/vaults/bam/85_bam.mal
sql/backends/monet5/vaults/fits/72_fits.mal
sql/backends/monet5/vaults/lidar/75_lidar.mal
sql/backends/monet5/vaults/netcdf/74_netcdf.mal
sql/backends/monet5/vaults/shp/75_shp.mal
sql/benchmarks/ssbm/Tests/01-explain.stable.out
sql/benchmarks/ssbm/Tests/01-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/02-explain.stable.out
sql/benchmarks/ssbm/Tests/02-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/03-explain.stable.out
sql/benchmarks/ssbm/Tests/03-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/04-explain.stable.out
sql/benchmarks/ssbm/Tests/04-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/05-explain.stable.out
sql/benchmarks/ssbm/Tests/05-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/06-explain.stable.out
sql/benchmarks/ssbm/Tests/06-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/07-explain.stable.out
sql/benchmarks/ssbm/Tests/07-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/08-explain.stable.out
sql/benchmarks/ssbm/Tests/08-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/09-explain.stable.out
sql/benchmarks/ssbm/Tests/09-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/10-explain.stable.out
sql/benchmarks/ssbm/Tests/10-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/11-explain.stable.out
sql/benchmarks/ssbm/Tests/11-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/12-explain.stable.out
sql/benchmarks/ssbm/Tests/12-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/13-explain.stable.out
sql/benchmarks/ssbm/Tests/13-explain.stable.out.int128
sql/benchmarks/tpch/Tests/01-explain.stable.out.int128
sql/benchmarks/tpch/Tests/02-explain.stable.out
sql/benchmarks/tpch/Tests/03-explain.stable.out
sql/benchmarks/tpch/Tests/03-explain.stable.out.int128
sql/benchmarks/tpch/Tests/04-explain.stable.out
sql/benchmarks/tpch/Tests/05-explain.stable.out
sql/benchmarks/tpch/Tests/05-explain.stable.out.int128
sql/benchmarks/tpch/Tests/06-explain.stable.out.int128
sql/benchmarks/tpch/Tests/07-explain.stable.out
sql/benchmarks/tpch/Tests/07-explain.stable.out.int128
sql/benchmarks/tpch/Tests/08-explain.stable.out
sql/benchmarks/tpch/Tests/08-explain.stable.out.int128
sql/benchmarks/tpch/Tests/09-explain.stable.out
sql/benchmarks/tpch/Tests/09-explain.stable.out.int128
sql/benchmarks/tpch/Tests/10-explain.stable.out.int128
sql/benchmarks/tpch/Tests/11-explain.stable.out
sql/benchmarks/tpch/Tests/11-explain.stable.out.int128
sql/benchmarks/tpch/Tests/12-explain.stable.out
sql/benchmarks/tpch/Tests/12-explain.stable.out.int128
sql/benchmarks/tpch/Tests/13-explain.stable.out
sql/benchmarks/tpch/Tests/14-explain.stable.out.int128
sql/benchmarks/tpch/Tests/15-explain.stable.out
sql/benchmarks/tpch/Tests/15-explain.stable.out.int128
sql/benchmarks/tpch/Tests/16-explain.stable.out
sql/benchmarks/tpch/Tests/17-explain.stable.out
sql/benchmarks/tpch/Tests/17-explain.stable.out.int128
sql/benchmarks/tpch/Tests/18-explain.stable.out
sql/benchmarks/tpch/Tests/18-explain.stable.out.int128
sql/benchmarks/tpch/Tests/19-explain.stable.out
sql/benchmarks/tpch/Tests/19-explain.stable.out.int128
sql/benchmarks/tpch/Tests/20-explain.stable.out
sql/benchmarks/tpch/Tests/20-explain.stable.out.int128
sql/benchmarks/tpch/Tests/21-explain.stable.out
sql/benchmarks/tpch/Tests/22-explain.stable.out
sql/benchmarks/tpch/Tests/22-explain.stable.out.int128
sql/include/sql_catalog.h
sql/scripts/25_debug.sql
sql/server/rel_psm.c
sql/server/rel_select.c
sql/server/rel_semantic.c
sql/server/rel_updates.c
sql/server/sql_mvc.h
sql/server/sql_parser.h
sql/server/sql_parser.y
sql/server/sql_scan.c
sql/test/BugTracker-2009/Tests/POWER_vs_prod.SF-2596114.stable.out
sql/test/BugTracker-2010/Tests/LIMIT_OFFSET_big-endian.Bug-2622.stable.out
sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out
sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out
sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.stable.out
sql/test/BugTracker-2014/Tests/manifold.Bug-3556.stable.out
sql/test/BugTracker-2014/Tests/nil_2dec_lng.Bug-3592.stable.out
sql/test/BugTracker-2014/Tests/nil_2dec_lng.Bug-3592.stable.out.single
sql/test/BugTracker-2015/Tests/useless_casts.Bug-3756.stable.out
sql/test/BugTracker-2016/Tests/querylog.stable.out
sql/test/BugTracker/Tests/explain.SF-1739353.stable.out
sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out
sql/test/Tests/setoptimizer.stable.out
sql/test/Tests/setoptimizer.stable.out.Windows
sql/test/malloc_fail/Tests/setmemorylimit-fail.sql
sql/test/malloc_fail/Tests/setmemorylimit-fail.stable.err
sql/test/malloc_fail/Tests/setmemorylimit-fail.stable.out
sql/test/malloc_fail/Tests/setmemorylimit-fail2.sql
sql/test/malloc_fail/Tests/setmemorylimit.sql
sql/test/mergetables/Tests/mergequery.stable.out
testing/Mtest.py.in
tools/mserver/mserver5.c
Branch: jit
Log Message:
Merge with default
diffs (truncated from 11756 to 300 lines):
diff --git a/clients/Tests/MAL-signatures.stable.out
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -1877,6 +1877,14 @@ pattern batpyapimap.subeval_aggr(fptr:pt
address PyAPIevalAggrMap;
comment grouped aggregates through Python
+pattern batpyapi.eval_loader(fptr:ptr,expr:str,arg:any...):any...
+address PyAPIevalLoader;
+comment loader functions through Python
+
+pattern batpyapi.eval_loader(fptr:ptr,expr:str):any...
+address PyAPIevalLoader;
+comment loader functions through Python
+
pattern batpyapi.eval_aggr(fptr:ptr,expr:str,arg:any...):any...
address PyAPIevalAggr;
comment grouped aggregates through Python
@@ -24056,10 +24064,6 @@ command bbp.getDirty():bat[:str]
address CMDbbpDirty;
comment Create a BAT with the dirty/ diffs/clean status
-command bbp.getHeat():bat[:int]
-address CMDbbpHeat;
-comment Create a BAT with the heat values
-
command bbp.getLocation():bat[:str]
address CMDbbpLocation;
comment Create a BAT with their disk locations
@@ -31659,6 +31663,14 @@ pattern pyapimap.subeval_aggr(fptr:ptr,e
address PyAPIevalAggrMap;
comment grouped aggregates through Python
+pattern pyapi.eval_loader(fptr:ptr,expr:str,arg:any...):any...
+address PyAPIevalLoader;
+comment loader functions through Python
+
+pattern pyapi.eval_loader(fptr:ptr,expr:str):any...
+address PyAPIevalLoader;
+comment loader functions through Python
+
pattern pyapi.eval_aggr(fptr:ptr,expr:str,arg:any...):any...
address PyAPIevalAggr;
comment grouped aggregates through Python
diff --git a/clients/Tests/MAL-signatures.stable.out.int128
b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -2269,6 +2269,14 @@ pattern batpyapimap.subeval_aggr(fptr:pt
address PyAPIevalAggrMap;
comment grouped aggregates through Python
+pattern batpyapi.eval_loader(fptr:ptr,expr:str,arg:any...):any...
+address PyAPIevalLoader;
+comment loader functions through Python
+
+pattern batpyapi.eval_loader(fptr:ptr,expr:str):any...
+address PyAPIevalLoader;
+comment loader functions through Python
+
pattern batpyapi.eval_aggr(fptr:ptr,expr:str,arg:any...):any...
address PyAPIevalAggr;
comment grouped aggregates through Python
@@ -31915,10 +31923,6 @@ command bbp.getDirty():bat[:str]
address CMDbbpDirty;
comment Create a BAT with the dirty/ diffs/clean status
-command bbp.getHeat():bat[:int]
-address CMDbbpHeat;
-comment Create a BAT with the heat values
-
command bbp.getLocation():bat[:str]
address CMDbbpLocation;
comment Create a BAT with their disk locations
@@ -41080,6 +41084,14 @@ pattern pyapimap.subeval_aggr(fptr:ptr,e
address PyAPIevalAggrMap;
comment grouped aggregates through Python
+pattern pyapi.eval_loader(fptr:ptr,expr:str,arg:any...):any...
+address PyAPIevalLoader;
+comment loader functions through Python
+
+pattern pyapi.eval_loader(fptr:ptr,expr:str):any...
+address PyAPIevalLoader;
+comment loader functions through Python
+
pattern pyapi.eval_aggr(fptr:ptr,expr:str,arg:any...):any...
address PyAPIevalAggr;
comment grouped aggregates through Python
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
@@ -177,7 +177,6 @@ BAT *BATunique(BAT *b, BAT *s);
BBPrec *BBP[N_BBPINIT];
void BBPaddfarm(const char *dirname, int rolemask);
void BBPclear(bat bid);
-int BBPcurstamp(void);
int BBPdecref(bat b, int logical);
BAT *BBPdescriptor(bat b);
int BBPin;
@@ -974,7 +973,6 @@ str CMDbbp(bat *ID, bat *NS, bat *TT, ba
str CMDbbpCount(bat *ret);
str CMDbbpDirty(bat *ret);
str CMDbbpDiskSpace(lng *ret);
-str CMDbbpHeat(bat *ret);
str CMDbbpKind(bat *ret);
str CMDbbpLRefCount(bat *ret);
str CMDbbpLocation(bat *ret);
@@ -1282,7 +1280,6 @@ str MANIFOLDevaluate(Client cntxt, MalBl
str MANIFOLDremapMultiplex(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
p);
MALfcn MANIFOLDtypecheck(Client cntxt, MalBlkPtr mb, InstrPtr pci);
str MANUALcreateOverview(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str MANUALhelp(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
str MATHbinary_ATAN2dbl(dbl *res, const dbl *a, const dbl *b);
str MATHbinary_ATAN2flt(flt *res, const flt *a, const flt *b);
str MATHbinary_POWdbl(dbl *res, const dbl *a, const dbl *b);
@@ -2031,14 +2028,11 @@ void deleteSymbol(Module scope, Symbol p
str deltaRef;
str dense_rankRef;
str depositRef;
-void deriveModule(Module scope, str nme);
malType destinationType(MalBlkPtr mb, InstrPtr p);
str diffRef;
str disconnectRef;
str divRef;
void dumpExceptionsToStream(stream *out, str msg);
-void dumpHelpTable(stream *f, Module s, str text, int flag);
-void dumpSearchTable(stream *f, str text);
str emptybindRef;
str emptybindidxRef;
str eqRef;
@@ -2070,7 +2064,6 @@ void freeException(str);
void freeInstruction(InstrPtr p);
void freeMalBlk(MalBlkPtr mb);
void freeModule(Module cur);
-void freeModuleList(Module cur);
void freeStack(MalStkPtr stk);
void freeSymbol(Symbol s);
void freeSymbolList(Symbol s);
@@ -2080,7 +2073,7 @@ str fstrcmp_impl(dbl *ret, str *string1,
void garbageCollector(Client cntxt, MalBlkPtr mb, MalStkPtr stk, int flag);
void garbageElement(Client cntxt, ValPtr v);
str generatorRef;
-MALfcn getAddress(stream *out, str filename, str modnme, str fcnname, int
silent);
+MALfcn getAddress(stream *out, str filename, str fcnname, int silent);
str getArgDefault(MalBlkPtr mb, InstrPtr p, int idx);
ptr getArgReference(MalStkPtr stk, InstrPtr pci, int k);
int getAtomIndex(str nme, int len, int deftpe);
@@ -2100,13 +2093,12 @@ enum malexception getExceptionType(str);
int getFltConstant(MalBlkPtr mb, flt val);
Scenario getFreeScenario(void);
Symbol getFunctionSymbol(Module scope, InstrPtr p);
-char **getHelp(Module m, str pat, int flag);
-char **getHelpMatch(char *pat);
int getHgeConstant(MalBlkPtr mb, hge val);
int getIntConstant(MalBlkPtr mb, int val);
int getLngConstant(MalBlkPtr mb, lng val);
MalBlkPtr getMalBlkHistory(MalBlkPtr mb, int idx);
lng getMemoryClaim(MalBlkPtr mb, MalStkPtr stk, InstrPtr pci, int i, int flag);
+Module getModuleChain(void);
str getName(const char *nme);
str getNameLen(const char *nme, size_t len);
int getOidConstant(MalBlkPtr mb, oid val);
@@ -2143,7 +2135,6 @@ str ilikesubselectRef;
str ilikethetasubselectRef;
str ilikeuselectRef;
void initHeartbeat(void);
-void initLibraries(void);
void initNamespace(void);
void initParser(void);
void initProfiler(void);
@@ -2171,7 +2162,6 @@ int isFragmentGroup2(InstrPtr q);
int isIdentifier(str s);
int isInvariant(MalBlkPtr mb, int pcf, int pcl, int varid);
int isLikeOp(InstrPtr q);
-int isLoaded(str modulename);
int isLoopBarrier(MalBlkPtr mb, int pc);
int isMapOp(InstrPtr q);
int isMatJoinOp(InstrPtr q);
@@ -2182,7 +2172,6 @@ int isNotUsedIn(InstrPtr p, int start, i
int isOptimizerEnabled(MalBlkPtr mb, str opt);
int isOptimizerPipe(str name);
int isOrderby(InstrPtr q);
-int isPreloaded(str nme);
int isProcedure(MalBlkPtr mb, InstrPtr p);
int isSample(InstrPtr q);
int isSideEffectFree(MalBlkPtr mb);
@@ -2287,6 +2276,7 @@ int mnstr_writeInt_wrap(Stream *S, int *
str mnstr_writeIntwrap(void *ret, Stream *S, int *data);
int mnstr_write_string(Stream *S, str data);
str mnstr_write_stringwrap(void *ret, Stream *S, str *data);
+Module moduleIndex[256][256];
char monet_characteristics[PATHLENGTH];
char monet_cwd[PATHLENGTH];
size_t monet_memory;
@@ -2441,7 +2431,6 @@ str setAccessRef;
void setArgType(MalBlkPtr mb, InstrPtr p, int i, int tpe);
InstrPtr setArgument(MalBlkPtr mb, InstrPtr p, int idx, int varid);
void setHeartbeat(int delay);
-void setModuleJump(str nme, Module cur);
void setPolymorphic(InstrPtr p, int tpe, int force);
void setReturnArgument(InstrPtr p, int varid);
str setScenario(Client c, str nme);
@@ -2457,7 +2446,6 @@ void showCurrentScenario(void);
void showErrors(Client cntxt);
void showException(stream *out, enum malexception, const char *, _In_z_
_Printf_format_string_ const char *, ...) __attribute__((__format__(__printf__,
4, 5)));
void showFlowGraph(MalBlkPtr mb, MalStkPtr stk, str fname);
-void showHelp(Module m, str txt, stream *fs);
void showMalBlkHistory(stream *out, MalBlkPtr mb);
void showOptimizerHistory(void);
void showOptimizerStep(str fnme, int i, int flg);
@@ -2529,13 +2517,12 @@ int timestamp_tz_fromstr(const char *buf
int timestamp_tz_tostr(str *buf, int *len, const timestamp *val, const tzone
*timezone);
str transRef;
void trimMalVariables(MalBlkPtr mb, MalStkPtr stk);
-void trimMalVariables_(MalBlkPtr mb, bit *used, MalStkPtr glb);
+void trimMalVariables_(MalBlkPtr mb, MalStkPtr glb);
void typeChecker(stream *out, Module scope, MalBlkPtr mb, InstrPtr p, int
silent);
int tzone_fromstr(const char *buf, int *len, tzone **d);
tzone tzone_local;
int tzone_tostr(str *buf, int *len, const tzone *z);
str unescape_str(str *retval, str s);
-void unloadLibraries(void);
str unlockRef;
str unpackRef;
str unpinRef;
diff --git a/clients/mapiclient/tomograph.c b/clients/mapiclient/tomograph.c
--- a/clients/mapiclient/tomograph.c
+++ b/clients/mapiclient/tomograph.c
@@ -1877,6 +1877,8 @@ main(int argc, char **argv)
resetTomograph();
conn = mapi_get_from(dbh);
while ((m = mnstr_read(conn, buffer + len, 1, buflen - len-1))
>= 0) {
+ if (m == 0 && (m = mnstr_read(conn, buffer + len, 1,
buflen - len-1)) <= 0)
+ break;
buffer[len + m] = 0;
response = buffer;
while ((e = strchr(response, '\n')) != NULL) {
diff --git a/gdk/ChangeLog b/gdk/ChangeLog
--- a/gdk/ChangeLog
+++ b/gdk/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog file for MonetDB
# This file is updated with Maddlog
+* Tue Jul 26 2016 Sjoerd Mullender <[email protected]>
+- BATattach now can also create a str BAT from a file consisting of
+ null-terminated strings. The input file must be encoded using UTF-8.
+- BATattach now copies the input file instead of "stealing" it.
+- Removed the lastused "timestamp" from the BBP.
+- Removed batStamp field from BAT descriptor, and removed the BBPcurstamp
+ function.
+
* Fri Jul 22 2016 Sjoerd Mullender <[email protected]>
- Removed unused functions BBPhot and BBPcold.
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -795,7 +795,6 @@ gdk_export int VALisnil(const ValRecord
typedef struct {
/* dynamic bat properties */
MT_Id tid; /* which thread created it */
- int stamp; /* BAT recent creation stamp */
unsigned int
copiedtodisk:1, /* once written */
dirty:2, /* dirty wrt disk? */
@@ -884,7 +883,6 @@ typedef struct BATiter {
#define batInserted S.inserted
#define batCount S.count
#define batCapacity S.capacity
-#define batStamp S.stamp
#define batSharecnt S.sharecnt
#define batRestricted S.restricted
#define batRole S.role
@@ -1669,7 +1667,6 @@ typedef struct {
str options; /* A string list of options */
int refs; /* in-memory references on which the loaded
status of a BAT relies */
int lrefs; /* logical references on which the existence of
a BAT relies */
- int lastused; /* BBP LRU stamp */
volatile int status; /* status mask used for spin locking */
/* MT_Id pid; non-zero thread-id if this BAT is private */
} BBPrec;
@@ -1695,14 +1692,12 @@ gdk_export BBPrec *BBP[N_BBPINIT];
#define BBP_desc(i) BBP[(i)>>BBPINITLOG][(i)&(BBPINIT-1)].desc
#define BBP_refs(i) BBP[(i)>>BBPINITLOG][(i)&(BBPINIT-1)].refs
#define BBP_lrefs(i) BBP[(i)>>BBPINITLOG][(i)&(BBPINIT-1)].lrefs
-#define BBP_lastused(i) BBP[(i)>>BBPINITLOG][(i)&(BBPINIT-1)].lastused
#define BBP_status(i) BBP[(i)>>BBPINITLOG][(i)&(BBPINIT-1)].status
#define BBP_pid(i) BBP[(i)>>BBPINITLOG][(i)&(BBPINIT-1)].pid
/* macros that nicely check parameters */
#define BBPcacheid(b) ((b)->batCacheid)
#define BBPstatus(i) (BBPcheck((i),"BBPstatus")?BBP_status(i):-1)
-gdk_export int BBPcurstamp(void);
#define BBPrefs(i) (BBPcheck((i),"BBPrefs")?BBP_refs(i):-1)
#define BBPcache(i) (BBPcheck((i),"BBPcache")?BBP_cache(i):(BAT*) NULL)
#define BBPname(i) \
diff --git a/gdk/gdk_atoms.c b/gdk/gdk_atoms.c
--- a/gdk/gdk_atoms.c
+++ b/gdk/gdk_atoms.c
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list