Changeset: 90dfaf335ec2 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=90dfaf335ec2
Added Files:
        sql/test/BugTracker-2019/Tests/cast-interval.Bug-6793.sql
        sql/test/BugTracker-2019/Tests/cast-interval.Bug-6793.stable.err
        sql/test/BugTracker-2019/Tests/cast-interval.Bug-6793.stable.out
        sql/test/BugTracker-2019/Tests/could-not-allocate-space.Bug-6795.sql
        
sql/test/BugTracker-2019/Tests/could-not-allocate-space.Bug-6795.stable.err
        
sql/test/BugTracker-2019/Tests/could-not-allocate-space.Bug-6795.stable.out
        sql/test/BugTracker-2019/Tests/python-aggregate-no-groups.Bug-6726.sql
        
sql/test/BugTracker-2019/Tests/python-aggregate-no-groups.Bug-6726.stable.err
        
sql/test/BugTracker-2019/Tests/python-aggregate-no-groups.Bug-6726.stable.out
        sql/test/scanner/Tests/mserver_with_raw_strings.options5
        sql/test/scanner/Tests/mserver_with_raw_strings.sql
        sql/test/scanner/Tests/mserver_with_raw_strings.stable.err
        sql/test/scanner/Tests/mserver_with_raw_strings.stable.out
        sql/test/scanner/Tests/mserver_without_raw_strings.options5
        sql/test/scanner/Tests/mserver_without_raw_strings.sql
        sql/test/scanner/Tests/mserver_without_raw_strings.stable.err
        sql/test/scanner/Tests/mserver_without_raw_strings.stable.out
Modified Files:
        ChangeLog
        clients/mapiclient/dump.c
        clients/mapiclient/msqldump.c
        common/options/monet_options.c
        monetdb5/modules/mal/querylog.c
        monetdb5/modules/mal/wlc.h
        monetdb5/optimizer/opt_evaluate.c
        monetdb5/optimizer/opt_pipes.c
        sql/backends/monet5/Tests/pyapi05.stable.out
        sql/backends/monet5/Tests/rapi05.stable.out
        sql/backends/monet5/UDF/pyapi/conversion.c
        sql/backends/monet5/UDF/pyapi/convert_loops.h
        sql/backends/monet5/UDF/pyapi/pyapi.c
        sql/backends/monet5/UDF/pyapi/pyloader.c
        sql/backends/monet5/UDF/pyapi/pytypes.c
        sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_05.stable.out
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql_result.c
        sql/backends/monet5/sql_scenario.c
        sql/backends/monet5/sql_upgrades.c
        sql/include/sql_relation.h
        sql/server/rel_dump.c
        sql/server/rel_exp.c
        sql/server/rel_exp.h
        sql/server/rel_optimizer.c
        sql/server/rel_rel.c
        sql/server/rel_rel.h
        sql/server/rel_select.c
        sql/server/rel_unnest.c
        sql/server/sql_scan.c
        
sql/test/BugDay_2005-12-19_2.9.3/Tests/cast_bigint_to_int.SF-1211903.stable.out
        
sql/test/BugTracker-2008/Tests/decimal_cast_in_view.SF-2075223.stable.out
        sql/test/BugTracker-2013/Tests/numeric-column-alias.Bug-3279.stable.out
        sql/test/BugTracker-2014/Tests/missing_alias.Bug-3626.stable.out
        sql/test/BugTracker-2015/Tests/crash.Bug-3736.stable.out
        sql/test/BugTracker-2015/Tests/string-to-inet.Bug-3666.stable.out
        
sql/test/BugTracker-2016/Tests/convert-function-test-hge.Bug-3460.stable.out.int128
        sql/test/BugTracker-2016/Tests/convert-function-test.Bug-3460.stable.out
        
sql/test/BugTracker-2016/Tests/convert-function-test.Bug-3460.stable.out.int128
        sql/test/BugTracker-2017/Tests/sqlsmith.Bug-6219.stable.out
        sql/test/BugTracker-2017/Tests/sqlsmith01.stable.out
        sql/test/BugTracker-2018/Tests/convert-key.Bug-6648.stable.out
        
sql/test/BugTracker-2018/Tests/count_from_commented_function_signatures.Bug-6542.stable.out
        sql/test/BugTracker-2019/Tests/All
        sql/test/BugTracker-2019/Tests/prepare-types.Bug-6724.stable.out
        sql/test/BugTracker/Tests/convert_dec2varchar.SF-1774312.stable.out
        sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out
        sql/test/Tests/keys.stable.out
        sql/test/Tests/window_functions.stable.out
        sql/test/bugs/Tests/cast_varchar2int-bug-sf-964165.stable.out
        sql/test/emptydb/Tests/check.SQL.py
        sql/test/emptydb/Tests/check.stable.out
        sql/test/emptydb/Tests/check.stable.out.32bit
        sql/test/emptydb/Tests/check.stable.out.int128
        sql/test/mergetables/Tests/mergeinit.stable.err
        sql/test/mergetables/Tests/sqlsmith-exists.sql
        sql/test/mergetables/Tests/sqlsmith-exists.stable.out
        sql/test/pg_regress/Tests/date.stable.out
        sql/test/pg_regress/Tests/int8.stable.out
        sql/test/pg_regress/Tests/int8.stable.out.int128
        sql/test/scanner/Tests/All
        sql/test/subquery/Tests/subquery3.sql
        sql/test/subquery/Tests/subquery3.stable.out
        sql/test/sys-schema/Tests/bam_tables_checks.stable.out
        sql/test/sys-schema/Tests/check_MaxStrLength_violations.stable.out
        tools/merovingian/client/monetdb.1
        tools/merovingian/daemon/forkmserver.c
        tools/merovingian/utils/properties.c
        tools/mserver/mserver5.1.in
        tools/mserver/mserver5.c
Branch: gdk_tracer
Log Message:

Merge with default


diffs (truncated from 18946 to 300 lines):

diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,11 @@
 # ChangeLog file for devel
 # This file is updated with Maddlog
 
+* Fri Dec  6 2019 Panagiotis Koutsourakis <[email protected]>
+- Added mserver5 option (--set raw_strings=true|false) and monetdb
+  database property (raw_strings=yes|no) to control interpretation
+  of strings.
+
 * Fri Nov 29 2019 Panagiotis Koutsourakis <[email protected]>
 - Added support for raw strings using the syntax r'' or R''. This means
   that C-like escapes will remain uninterpreted within those strings. For
diff --git a/clients/mapiclient/dump.c b/clients/mapiclient/dump.c
--- a/clients/mapiclient/dump.c
+++ b/clients/mapiclient/dump.c
@@ -128,7 +128,17 @@ squoted_print(stream *f, const char *s, 
        if (mnstr_printf(f, "%c", quote) < 0)
                return -1;
        while (*s) {
+               size_t n = strcspn(s, "\\'\"\177"
+                                  "\001\002\003\004\005\006\007"
+                                  "\010\011\012\013\014\015\016\017"
+                                  "\020\021\022\023\024\025\026\027"
+                                  "\030\031\032\033\034\035\036\037");
+               if (n > 0 && mnstr_write(f, s, 1, n) < 0)
+                       return -1;
+               s += n;
                switch (*s) {
+               case '\0':
+                       continue;
                case '\\':
                        if (mnstr_write(f, "\\\\", 1, 2) < 0)
                                return -1;
@@ -148,13 +158,8 @@ squoted_print(stream *f, const char *s, 
                                return -1;
                        break;
                default:
-                       if ((0 < *s && *s < 32) || *s == '\177') {
-                               if (mnstr_printf(f, "\\%03o", (uint8_t) *s) < 0)
-                                       return -1;
-                       } else {
-                               if (mnstr_write(f, s, 1, 1) < 0)
-                                       return -1;
-                       }
+                       if (mnstr_printf(f, "\\%03o", (uint8_t) *s) < 0)
+                               return -1;
                        break;
                }
                s++;
@@ -1783,14 +1788,13 @@ dump_table_data(Mapi mid, const char *sc
                                         strcmp(tp, "url") == 0 ||
                                         strcmp(tp, "uuid") == 0 ||
                                         string[i])
-                                       squoted_print(toConsole, s, useInserts 
? '\'' : '"');
+                                       squoted_print(toConsole, s, '\'');
                                else
                                        mnstr_printf(toConsole, "%s", s);
                        } else if (string[i]) {
-                               /* write double or single-quoted
-                                  string with certain characters
-                                  escaped */
-                               squoted_print(toConsole, s, useInserts ? '\'' : 
'"');
+                               /* write double-quoted string with
+                                  certain characters escaped */
+                               squoted_print(toConsole, s, '"');
                        } else
                                mnstr_printf(toConsole, "%s", s);
 
diff --git a/clients/mapiclient/msqldump.c b/clients/mapiclient/msqldump.c
--- a/clients/mapiclient/msqldump.c
+++ b/clients/mapiclient/msqldump.c
@@ -159,6 +159,10 @@ main(int argc, char **argv)
        if (user_set_as_flag)
                passwd = NULL;
 
+       if( dbname == NULL){
+               printf("msqldump, please specify a database\n");
+               usage(argv[0], -1);
+       }
        if (user == NULL)
                user = simple_prompt("user", BUFSIZ, 1, prompt_getlogin());
        if (passwd == NULL)
@@ -186,7 +190,7 @@ main(int argc, char **argv)
                        fprintf(stderr, "%s", motd);
        }
        mapi_trace(mid, trace);
-       mapi_cache_limit(mid, 10000);
+       mapi_cache_limit(mid, -1);
 
        out = file_wastream(stdout, "stdout");
        if (out == NULL) {
diff --git a/common/options/monet_options.c b/common/options/monet_options.c
--- a/common/options/monet_options.c
+++ b/common/options/monet_options.c
@@ -43,7 +43,7 @@
 #define getpid _getpid
 #endif
 
-/* these two are used of the set parameter passed into functions is NULL */
+/* these two are used if the set parameter passed into functions is NULL */
 static int default_setlen = 0;
 static opt *default_set = NULL;
 
@@ -218,7 +218,7 @@ mo_builtin_settings(opt **Set)
        if (Set == NULL)
                return 0;
 
-#define N_OPTIONS      7       /*MUST MATCH # OPTIONS BELOW */
+#define N_OPTIONS      8       /*MUST MATCH # OPTIONS BELOW */
        set = malloc(sizeof(opt) * N_OPTIONS);
        if (set == NULL)
                return 0;
@@ -252,6 +252,10 @@ mo_builtin_settings(opt **Set)
        set[i].name = strdup("sql_debug");
        set[i].value = strdup("0");
        i++;
+       set[i].kind = opt_builtin;
+       set[i].name = strdup("raw_strings");
+       set[i].value = strdup("false");
+       i++;
 
        assert(i == N_OPTIONS);
        *Set = set;
diff --git a/monetdb5/modules/mal/querylog.c b/monetdb5/modules/mal/querylog.c
--- a/monetdb5/modules/mal/querylog.c
+++ b/monetdb5/modules/mal/querylog.c
@@ -79,6 +79,8 @@ static BAT *QLOG_calls_result = 0;
 static BAT *QLOG_calls_cpuload = 0;
 static BAT *QLOG_calls_iowait = 0;
 
+static MT_Lock QLOGlock = MT_LOCK_INITIALIZER("QLOGlock");
+
 str
 QLOGcatalog(BAT **r)
 {
@@ -90,7 +92,7 @@ QLOGcatalog(BAT **r)
        msg = initQlog();
        if( msg)
                return msg;
-       MT_lock_set(&mal_profileLock);
+       MT_lock_set(&QLOGlock);
        r[0] = COLcopy(QLOG_cat_id, QLOG_cat_id->ttype, false, TRANSIENT);
        r[1] = COLcopy(QLOG_cat_user, QLOG_cat_user->ttype,false, TRANSIENT);
        r[2] = COLcopy(QLOG_cat_defined, QLOG_cat_defined->ttype,false, 
TRANSIENT);
@@ -99,7 +101,7 @@ QLOGcatalog(BAT **r)
        r[5] = COLcopy(QLOG_cat_plan, QLOG_cat_plan->ttype,false, TRANSIENT);
        r[6] = COLcopy(QLOG_cat_mal, QLOG_cat_mal->ttype,false, TRANSIENT);
        r[7] = COLcopy(QLOG_cat_optimize, QLOG_cat_optimize->ttype,false, 
TRANSIENT);
-       MT_lock_unset(&mal_profileLock);
+       MT_lock_unset(&QLOGlock);
        for ( i = 0; i< 8; i++)
                cnt += r[i] != 0;
        if( cnt != 8){
@@ -125,7 +127,7 @@ QLOGcalls(BAT **r)
        msg = initQlog();
        if( msg)
                return msg;
-       MT_lock_set(&mal_profileLock);
+       MT_lock_set(&QLOGlock);
        r[0] = COLcopy(QLOG_calls_id, QLOG_calls_id->ttype, false, TRANSIENT);
        r[1] = COLcopy(QLOG_calls_start, QLOG_calls_start->ttype,false, 
TRANSIENT);
        r[2] = COLcopy(QLOG_calls_stop, QLOG_calls_stop->ttype,false, 
TRANSIENT);
@@ -135,7 +137,7 @@ QLOGcalls(BAT **r)
        r[6] = COLcopy(QLOG_calls_result, QLOG_calls_result->ttype,false, 
TRANSIENT);
        r[7] = COLcopy(QLOG_calls_cpuload, QLOG_calls_cpuload->ttype,false, 
TRANSIENT);
        r[8] = COLcopy(QLOG_calls_iowait, QLOG_calls_iowait->ttype,false, 
TRANSIENT);
-       MT_lock_unset(&mal_profileLock);
+       MT_lock_unset(&QLOGlock);
        for ( i = 0; i< 9; i++)
                cnt += r[i] != 0;
        if( cnt != 9){
@@ -248,9 +250,9 @@ initQlog(void)
 
        if (QLOG_init)
                return MAL_SUCCEED;        /* already initialized */
-       MT_lock_set(&mal_profileLock);
+       MT_lock_set(&QLOGlock);
        msg = _initQlog();
-       MT_lock_unset(&mal_profileLock);
+       MT_lock_unset(&QLOGlock);
        return msg;
 }
 
@@ -300,7 +302,7 @@ QLOGempty(void *ret)
        msg = initQlog();
        if( msg)
                return msg;
-       MT_lock_set(&mal_profileLock);
+       MT_lock_set(&QLOGlock);
        /* drop all querylog tables */
 
        BATclear(QLOG_cat_id,true);
@@ -323,7 +325,7 @@ QLOGempty(void *ret)
        BATclear(QLOG_calls_iowait,true);
 
        TMsubcommit_list(commitlist, committop);
-       MT_lock_unset(&mal_profileLock);
+       MT_lock_unset(&QLOGlock);
        return MAL_SUCCEED;
 }
 
@@ -345,7 +347,7 @@ QLOGappend(Client cntxt, MalBlkPtr mb, M
        if( msg)
                return msg;
        snprintf(buf,128,"%s.%s", getModuleId(sig), getFunctionId(sig));
-       MT_lock_set(&mal_profileLock);
+       MT_lock_set(&QLOGlock);
        o = BUNfnd(QLOG_cat_id, &mb->tag);
        if ( o == BUN_NONE){
                *ret = mb->tag;
@@ -357,11 +359,11 @@ QLOGappend(Client cntxt, MalBlkPtr mb, M
                        BUNappend(QLOG_cat_optimize,&mb->optimize,false) != 
GDK_SUCCEED ||
                        BUNappend(QLOG_cat_user,*usr,false) != GDK_SUCCEED ||
                        BUNappend(QLOG_cat_defined,tick,false) != GDK_SUCCEED) {
-                       MT_lock_unset(&mal_profileLock);
+                       MT_lock_unset(&QLOGlock);
                        throw(MAL, "querylog.append", SQLSTATE(HY001) 
MAL_MALLOC_FAIL);
                }
        }
-       MT_lock_unset(&mal_profileLock);
+       MT_lock_unset(&QLOGlock);
        TMsubcommit_list(commitlist, committop);
        return MAL_SUCCEED;
 }
@@ -409,7 +411,7 @@ QLOGcall(Client cntxt, MalBlkPtr mb, Mal
                return msg;
        if ( *xtime + *rtime < QLOGthreshold)
                return MAL_SUCCEED;
-       MT_lock_set(&mal_profileLock);
+       MT_lock_set(&QLOGlock);
        if (BUNappend(QLOG_calls_id,&mb->tag,false) != GDK_SUCCEED ||
                BUNappend(QLOG_calls_start,tick1,false) != GDK_SUCCEED ||
                BUNappend(QLOG_calls_stop,tick2,false) != GDK_SUCCEED ||
@@ -419,10 +421,10 @@ QLOGcall(Client cntxt, MalBlkPtr mb, Mal
                BUNappend(QLOG_calls_result,rtime,false) != GDK_SUCCEED ||
                BUNappend(QLOG_calls_cpuload,cpu,false) != GDK_SUCCEED ||
                BUNappend(QLOG_calls_iowait,iowait,false) != GDK_SUCCEED) {
-               MT_lock_unset(&mal_profileLock);
+               MT_lock_unset(&QLOGlock);
                throw(MAL, "querylog.call", SQLSTATE(HY001) MAL_MALLOC_FAIL);
        }
-       MT_lock_unset(&mal_profileLock);
+       MT_lock_unset(&QLOGlock);
        TMsubcommit_list(commitlist, committop);
        return MAL_SUCCEED;
 }
diff --git a/monetdb5/modules/mal/wlc.h b/monetdb5/modules/mal/wlc.h
--- a/monetdb5/modules/mal/wlc.h
+++ b/monetdb5/modules/mal/wlc.h
@@ -11,12 +11,13 @@
 
 #include "gdk.h"
 #include <time.h>
+#include "mal.h"
 #include "mal_exception.h"
 #include "mal_interpreter.h"
 
 #define WLC_QUERY              1
 #define WLC_UPDATE             2
-#define WLC_CATALOG    3
+#define WLC_CATALOG            3
 #define WLC_IGNORE             4
 
 /* WLC modes */
diff --git a/monetdb5/optimizer/opt_evaluate.c 
b/monetdb5/optimizer/opt_evaluate.c
--- a/monetdb5/optimizer/opt_evaluate.c
+++ b/monetdb5/optimizer/opt_evaluate.c
@@ -120,7 +120,6 @@ OPTevaluateImplementation(Client cntxt, 
        InstrPtr p;
        int i, k, limit, *alias = 0, barrier;
        MalStkPtr env = NULL;
-       int profiler, sqlprofiler;
        int debugstate = cntxt->itrace, actions = 0, constantblock = 0;
        int *assigned = 0, use; 
        char buf[256];
@@ -176,9 +175,6 @@ OPTevaluateImplementation(Client cntxt, 
                if (use && p->retc == 1 && OPTallConstant(cntxt, mb, p) && 
!isUnsafeFunction(p)) {
                        barrier = p->barrier;
                        p->barrier = 0;
-                       profiler = malProfileMode;      /* we don't trace it */
-                       sqlprofiler = cntxt->sqlprofiler;
-                       malProfileMode = 0;
                        if ( env == NULL) {
                                env = prepareMALstack(mb,  2 * mb->vsize);
                                if (!env) {
@@ -188,8 +184,6 @@ OPTevaluateImplementation(Client cntxt, 
                                env->keepAlive = TRUE;
                        }
                        msg = reenterMAL(cntxt, mb, i, i + 1, env);
-                       malProfileMode= profiler;
-                       cntxt->sqlprofiler = sqlprofiler;
                        p->barrier = barrier;
                        
                        TRC_DEBUG(MAL_OPT_EVALUATE, "Retc var: %s - Result: 
%s\n", getVarName(mb, getArg(p, 0)), msg == MAL_SUCCEED ? "ok" : msg);
diff --git a/monetdb5/optimizer/opt_pipes.c b/monetdb5/optimizer/opt_pipes.c
--- a/monetdb5/optimizer/opt_pipes.c
+++ b/monetdb5/optimizer/opt_pipes.c
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to