Changeset: f0db56045d9f for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f0db56045d9f Modified Files: MonetDB.spec clients/ChangeLog clients/Tests/exports.stable.out clients/examples/C/Makefile.ag clients/mapilib/mapi.h debian/monetdb-client-testing.install monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out monetdb5/mal/mal.c monetdb5/mal/mal.h monetdb5/mal/mal_profiler.c monetdb5/mal/mal_runtime.c monetdb5/modules/atoms/uuid.c monetdb5/modules/mal/pcre.c sql/backends/monet5/sql_upgrades.c sql/server/sql_scan.c sql/test/BugTracker-2009/Tests/POWER_vs_prod.SF-2596114.stable.out sql/test/BugTracker-2009/Tests/explain_gives_crash.SF-2741829.sql sql/test/BugTracker-2009/Tests/explain_gives_crash.SF-2741829.stable.out sql/test/BugTracker-2009/Tests/segfault_when_quitting_debugger.SF-2538837.stable.out sql/test/BugTracker/Tests/bug_in_selection.SF-1892413.stable.err sql/test/BugTracker/Tests/explain.SF-1739353.stable.out sql/test/BugTracker/Tests/groupby_orderby_nonselected.SF-1723863.stable.err sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128 sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128 sql/test/emptydb-upgrade/Tests/upgrade.stable.out sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128 sql/test/mapi/Tests/All sql/test/pg_regress/Tests/comments.stable.err sql/test/pg_regress/Tests/comments.stable.out sql/test/testdb-upgrade-chain-hge/Tests/upgrade.stable.out sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.32bit sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128 sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out sql/test/testdb-upgrade/Tests/upgrade.stable.out sql/test/testdb-upgrade/Tests/upgrade.stable.out.32bit sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128 Branch: protocol Log Message:
Merge with default. diffs (truncated from 1626 to 300 lines): diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -384,8 +384,6 @@ developer. %{_bindir}/odbcsample1 %{_bindir}/sample0 %{_bindir}/sample1 -%{_bindir}/sample2 -%{_bindir}/sample3 %{_bindir}/sample4 %{_bindir}/smack00 %{_bindir}/smack01 diff --git a/clients/ChangeLog b/clients/ChangeLog --- a/clients/ChangeLog +++ b/clients/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog file for clients # This file is updated with Maddlog +* Wed Nov 16 2016 Sjoerd Mullender <sjo...@acm.org> +- Removed the "array" and "quick" functions from the mapi library. + To be precise, the removed functions are: mapi_execute_array, + mapi_fetch_field_array, mapi_prepare_array, mapi_query_array, + mapi_quick_query, mapi_quick_query_array, and mapi_quick_response. + * Sun Oct 30 2016 Martin Kersten <m...@cwi.nl> - Added a more elaborate \help command for SQL expressions. 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 @@ -510,13 +510,11 @@ MapiMsg mapi_disconnect(Mapi mid); MapiMsg mapi_error(Mapi mid); char *mapi_error_str(Mapi mid); MapiMsg mapi_execute(MapiHdl hdl); -MapiMsg mapi_execute_array(MapiHdl hdl, char **val); MapiMsg mapi_explain(Mapi mid, FILE *fd); MapiMsg mapi_explain_query(MapiHdl hdl, FILE *fd); MapiMsg mapi_explain_result(MapiHdl hdl, FILE *fd); mapi_int64 mapi_fetch_all_rows(MapiHdl hdl); char *mapi_fetch_field(MapiHdl hdl, int fnr); -char **mapi_fetch_field_array(MapiHdl hdl); MapiMsg mapi_fetch_field_bigint(MapiHdl hdl, int fnr, mapi_int64 *result); MapiMsg mapi_fetch_field_date(MapiHdl hdl, int fnr, short *year, unsigned short *month, unsigned short *day); MapiMsg mapi_fetch_field_double(MapiHdl hdl, int fnr, double *result); @@ -577,17 +575,12 @@ MapiMsg mapi_param_string(MapiHdl hdl, i MapiMsg mapi_param_type(MapiHdl hdl, int fnr, int ctype, int sqltype, void *ptr); MapiMsg mapi_ping(Mapi mid); MapiHdl mapi_prepare(Mapi mid, const char *cmd); -MapiHdl mapi_prepare_array(Mapi mid, const char *cmd, char **val); MapiMsg mapi_prepare_handle(MapiHdl hdl, const char *cmd); MapiHdl mapi_query(Mapi mid, const char *cmd); -MapiHdl mapi_query_array(Mapi mid, const char *cmd, char **val); MapiMsg mapi_query_done(MapiHdl hdl); MapiMsg mapi_query_handle(MapiHdl hdl, const char *cmd); MapiMsg mapi_query_part(MapiHdl hdl, const char *cmd, size_t size); MapiHdl mapi_query_prep(Mapi mid); -MapiHdl mapi_quick_query(Mapi mid, const char *cmd, FILE *fd); -MapiHdl mapi_quick_query_array(Mapi mid, const char *cmd, char **val, FILE *fd); -MapiMsg mapi_quick_response(MapiHdl hdl, FILE *fd); char *mapi_quote(const char *msg, int size); MapiMsg mapi_read_response(MapiHdl hdl); MapiMsg mapi_reconnect(Mapi mid); @@ -1600,12 +1593,10 @@ int OPTvolcanoImplementation(Client cntx str OPTwrapper(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); str PCREilike2(bit *ret, const str *s, const str *pat); str PCREilike3(bit *ret, const str *s, const str *pat, const str *esc); -str PCREilike_join_pcre(bat *l, bat *r, const bat *b, const bat *pat, const str *esc); str PCREimatch(bit *ret, const str *val, const str *pat); str PCREindex(int *ret, const pcre *pat, const str *val); str PCRElike2(bit *ret, const str *s, const str *pat); str PCRElike3(bit *ret, const str *s, const str *pat, const str *esc); -str PCRElike_join_pcre(bat *l, bat *r, const bat *b, const bat *pat, const str *esc); str PCRElikesubselect1(bat *ret, const bat *bid, const bat *cid, const str *pat, const str *esc, const bit *anti); str PCRElikesubselect2(bat *ret, const bat *bid, const bat *sid, const str *pat, const str *esc, const bit *caseignore, const bit *anti); str PCRElikesubselect3(bat *ret, const bat *bid, const bat *sid, const str *pat, const str *esc, const bit *anti); @@ -2235,6 +2226,7 @@ str mal_quote(const char *msg, size_t si MT_Lock mal_remoteLock; void mal_resource_reset(void) __attribute__((__visibility__("hidden"))); void mal_runtime_reset(void) __attribute__((__visibility__("hidden"))); +str mal_session_uuid; int mal_trace; void mal_unquote(char *msg); str manifoldRef; @@ -2341,7 +2333,6 @@ str partitionRef; str passRef; str pcreRef; str pcre_init(void *ret); -var_t pcre_put(Heap *h, var_t *bun, pcre *val); str pinRef; str plusRef; str postludeRef; diff --git a/clients/examples/C/Makefile.ag b/clients/examples/C/Makefile.ag --- a/clients/examples/C/Makefile.ag +++ b/clients/examples/C/Makefile.ag @@ -12,7 +12,7 @@ MAPI_LIBS = $(SOCKET_LIBS) BINS = { CONDINST = HAVE_TESTING DIR = bindir - SOURCES = sample0.c sample1.c sample2.c sample3.c sample4.c \ + SOURCES = sample0.c sample1.c sample4.c \ smack00.c smack01.c LIBS = $(MAPI_LIBS) ../../mapilib/libmapi \ $(curl_LIBS) diff --git a/clients/mapilib/mapi.h b/clients/mapilib/mapi.h --- a/clients/mapilib/mapi.h +++ b/clients/mapilib/mapi.h @@ -197,25 +197,19 @@ mapi_export MapiHdl mapi_prepare(Mapi mi mapi_export MapiMsg mapi_prepare_handle(MapiHdl hdl, const char *cmd); mapi_export MapiMsg mapi_virtual_result(MapiHdl hdl, int columns, const char **columnnames, const char **columntypes, const int *columnlengths, int tuplecount, const char ***tuples); mapi_export MapiMsg mapi_execute(MapiHdl hdl); -mapi_export MapiMsg mapi_execute_array(MapiHdl hdl, char **val); mapi_export MapiMsg mapi_fetch_reset(MapiHdl hdl); mapi_export MapiMsg mapi_finish(MapiHdl hdl); -mapi_export MapiHdl mapi_prepare_array(Mapi mid, const char *cmd, char **val); mapi_export MapiHdl mapi_query(Mapi mid, const char *cmd); mapi_export MapiMsg mapi_query_handle(MapiHdl hdl, const char *cmd); mapi_export MapiHdl mapi_query_prep(Mapi mid); mapi_export MapiMsg mapi_query_part(MapiHdl hdl, const char *cmd, size_t size); mapi_export MapiMsg mapi_query_done(MapiHdl hdl); -mapi_export MapiHdl mapi_quick_query(Mapi mid, const char *cmd, FILE *fd); -mapi_export MapiHdl mapi_query_array(Mapi mid, const char *cmd, char **val); -mapi_export MapiHdl mapi_quick_query_array(Mapi mid, const char *cmd, char **val, FILE *fd); mapi_export MapiHdl mapi_send(Mapi mid, const char *cmd); mapi_export MapiMsg mapi_read_response(MapiHdl hdl); mapi_export MapiHdl mapi_stream_query(Mapi mid, const char *cmd, int windowsize); mapi_export MapiMsg mapi_cache_limit(Mapi mid, int limit); mapi_export MapiMsg mapi_cache_shuffle(MapiHdl hdl, int percentage); mapi_export MapiMsg mapi_cache_freeup(MapiHdl hdl, int percentage); -mapi_export MapiMsg mapi_quick_response(MapiHdl hdl, FILE *fd); mapi_export MapiMsg mapi_seek_row(MapiHdl hdl, mapi_int64 rowne, int whence); mapi_export MapiMsg mapi_timeout(Mapi mid, unsigned int time); @@ -229,7 +223,6 @@ mapi_export mapi_int64 mapi_rows_affecte mapi_export char *mapi_fetch_field(MapiHdl hdl, int fnr); mapi_export size_t mapi_fetch_field_len(MapiHdl hdl, int fnr); mapi_export MapiMsg mapi_store_field(MapiHdl hdl, int fnr, int outtype, void *outparam); -mapi_export char **mapi_fetch_field_array(MapiHdl hdl); mapi_export char *mapi_fetch_line(MapiHdl hdl); mapi_export int mapi_split_line(MapiHdl hdl); mapi_export char *mapi_get_lang(Mapi mid); diff --git a/debian/monetdb-client-testing.install b/debian/monetdb-client-testing.install --- a/debian/monetdb-client-testing.install +++ b/debian/monetdb-client-testing.install @@ -2,8 +2,6 @@ debian/tmp/usr/bin/arraytest usr/bin debian/tmp/usr/bin/odbcsample1 usr/bin debian/tmp/usr/bin/sample0 usr/bin debian/tmp/usr/bin/sample1 usr/bin -debian/tmp/usr/bin/sample2 usr/bin -debian/tmp/usr/bin/sample3 usr/bin debian/tmp/usr/bin/sample4 usr/bin debian/tmp/usr/bin/smack00 usr/bin debian/tmp/usr/bin/smack01 usr/bin diff --git a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out --- a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out +++ b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out @@ -61,11 +61,12 @@ Ready. % .explain # table_name % mal # name % clob # type -% 126 # length +% 146 # length function user.s8_1():void; - X_41:void := querylog.define("explain copy into ttt from \\'/tmp/xyz\\';","default_pipe",11); + X_41:void := querylog.define("explain copy into ttt from \\'/tmp/xyz\\';","default_pipe",11:int); X_3 := sql.mvc(); - (X_24:bat[:int],X_25:bat[:int],X_26:bat[:int]) := sql.copy_from(nil,"|","\\n",nil:str,"null","/tmp/xyz",-1,0,0,0,nil:str); + (X_24:bat[:int],X_25:bat[:int],X_26:bat[:int]) := sql.copy_from(nil:ptr,"|","\\n",nil:str,"null","/tmp/xyz",-1:lng,0:lng,0:int,0:int,nil:str); +# querylog.define("explain copy into ttt from \\'/tmp/xyz\\';","default_pipe") X_28 := sql.append(X_3,"sys","ttt","a",X_24); X_33 := sql.append(X_28,"sys","ttt","b",X_25); X_36 := sql.append(X_33,"sys","ttt","c",X_26); @@ -120,11 +121,12 @@ end user.s8_1; % .explain # table_name % mal # name % clob # type -% 126 # length +% 146 # length function user.s24_1():void; - X_41:void := querylog.define("explain copy into ttt from \\'/tmp/xyz\\';","user_1",11); + X_41:void := querylog.define("explain copy into ttt from \\'/tmp/xyz\\';","user_1",11:int); X_3 := sql.mvc(); - (X_24:bat[:int],X_25:bat[:int],X_26:bat[:int]) := sql.copy_from(nil,"|","\\n",nil:str,"null","/tmp/xyz",-1,0,0,0,nil:str); + (X_24:bat[:int],X_25:bat[:int],X_26:bat[:int]) := sql.copy_from(nil:ptr,"|","\\n",nil:str,"null","/tmp/xyz",-1:lng,0:lng,0:int,0:int,nil:str); +# querylog.define("explain copy into ttt from \\'/tmp/xyz\\';","user_1") X_28 := sql.append(X_3,"sys","ttt","a",X_24); X_33 := sql.append(X_28,"sys","ttt","b",X_25); X_38 := aggr.count(X_26); diff --git a/monetdb5/mal/mal.c b/monetdb5/mal/mal.c --- a/monetdb5/mal/mal.c +++ b/monetdb5/mal/mal.c @@ -10,10 +10,12 @@ #include <monetdb_config.h> #include <mal.h> -char monet_cwd[PATHLENGTH] = { 0 }; -size_t monet_memory = 0; +char monet_cwd[PATHLENGTH] = { 0 }; +size_t monet_memory = 0; char monet_characteristics[PATHLENGTH]; -int mal_trace; /* enable profile events on console */ +int mal_trace; /* enable profile events on console */ +str mal_session_uuid; /* unique marker for the session */ + #ifdef HAVE_HGE int have_hge; #endif diff --git a/monetdb5/mal/mal.h b/monetdb5/mal/mal.h --- a/monetdb5/mal/mal.h +++ b/monetdb5/mal/mal.h @@ -52,6 +52,7 @@ mal_export char monet_characteristics[P mal_export lng memorypool; /* memory claimed by concurrent threads */ mal_export int memoryclaims; /* number of threads active with expensive operations */ mal_export int mal_trace; /* enable profile events on console */ +mal_export str mal_session_uuid; /* unique marker for the session */ #ifdef HAVE_HGE mal_export int have_hge; #endif diff --git a/monetdb5/mal/mal_profiler.c b/monetdb5/mal/mal_profiler.c --- a/monetdb5/mal/mal_profiler.c +++ b/monetdb5/mal/mal_profiler.c @@ -31,6 +31,8 @@ static str myname = 0; // avoid tracing static int eventcounter = 0; static str prettify = "\n"; /* or ' ' for single line json output */ +static int highwatermark = 5; // conservative initialization + static int TRACE_init = 0; int malProfileMode = 0; /* global flag to indicate profiling mode */ @@ -111,6 +113,9 @@ renderProfilerEvent(MalBlkPtr mb, MalStk lng usec= GDKusec(); + // ignore generation of events for instructions that are called too often + if(highwatermark && highwatermark + (start == 0) < pci->calls) + return; if( start) // show when instruction was started clock = pci->clock; else @@ -142,6 +147,8 @@ renderProfilerEvent(MalBlkPtr mb, MalStk logadd("\"function\":\"%s.%s\",%s", getModuleId(getInstrPtr(mb, 0)), getFunctionId(getInstrPtr(mb, 0)), prettify); logadd("\"pc\":%d,%s", mb?getPC(mb,pci):0, prettify); logadd("\"tag\":%d,%s", stk?stk->tag:0, prettify); + if( mal_session_uuid) + logadd("\"session\":%s,%s",mal_session_uuid,prettify); if( start){ logadd("\"state\":\"start\",%s", prettify); @@ -276,9 +283,17 @@ This information can be used to determin tname = getTypeName(getBatType(tpe)); logadd("\"type\":\"bat[:%s]\",%s", tname,pret); if( d) { - //if( isVIEW(d)) - //bid = VIEWtparent(d); + BAT *v; cnt = BATcount(d); + if( isVIEW(d)){ + logadd("\"view\":\"true\",%s", pret); + logadd("\"parent\":\"%d\",%s", VIEWtparent(d), pret); + logadd("\"seqbase\":\""BUNFMT"\",%s", d->hseqbase, pret); + logadd("\"hghbase\":\""BUNFMT"\",%s", d->hseqbase + cnt, pret); + v= BBPquickdesc(VIEWtparent(d),0); + logadd("\"kind\":\"%s\",%s", ( v->batPersistence == PERSISTENT ? "persistent":"transient"), pret); + } else + logadd("\"kind\":\"%s\",%s", ( d->batPersistence == PERSISTENT ? "persistent":"transient"), pret); total += cnt * d->twidth; total += heapinfo(d->tvheap, d->batCacheid); total += hashinfo(d->thash, d->batCacheid); @@ -890,8 +905,6 @@ cachedProfilerEvent(MalBlkPtr mb, MalStk GDKfree(stmt); } -static int highwatermark = 5; // conservative initialization - int getprofilerlimit(void) { return highwatermark; diff --git a/monetdb5/mal/mal_runtime.c b/monetdb5/mal/mal_runtime.c --- a/monetdb5/mal/mal_runtime.c +++ b/monetdb5/mal/mal_runtime.c @@ -60,7 +60,6 @@ runtimeProfileInit(Client cntxt, MalBlkP { int i; str q; - InstrPtr p; MT_lock_set(&mal_delayLock); if ( QRYqueue == 0) @@ -93,15 +92,6 @@ runtimeProfileInit(Client cntxt, MalBlkP qtop += i == qtop; - if( getprofilerlimit()){ - // reset the counters before continuing - for ( i = 0; i< mb->stop; i++){ - p= getInstrPtr(mb,i); - p->calls = 0; - p->ticks = 0; - p->totticks = 0; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list