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

Reply via email to