Changeset: 9ebc778f2967 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9ebc778f2967 Modified Files: sql/backends/monet5/sql_scenario.c sql/benchmarks/tpch/14.sql sql/benchmarks/tpch/LOCKED/Tests/01-22.stable.out.int128 sql/benchmarks/tpch/LOCKED/Tests/14.stable.out.int128 sql/benchmarks/tpch/Tests/01-22.stable.out.int128 sql/benchmarks/tpch/Tests/14.stable.out.int128 Branch: default Log Message:
Merge with Apr2019 branch. diffs (117 lines): diff --git a/sql/backends/monet5/sql_scenario.c b/sql/backends/monet5/sql_scenario.c --- a/sql/backends/monet5/sql_scenario.c +++ b/sql/backends/monet5/sql_scenario.c @@ -1303,25 +1303,12 @@ SQLCacheRemove(Client c, str nme) } str -SQLcallback(Client c, str msg){ - char newerr[1024]; +SQLcallback(Client c, str msg) +{ + char *newerr; - if (msg && (strstr(msg, "MALexception") || strstr(msg,"GDKexception"))) { - // massage the error to comply with SQL - char *s; - s = strchr(msg, ':'); - if (s) { - s++; - if (s - msg >= (ptrdiff_t) sizeof(newerr)) - s = msg + sizeof(newerr) - 1; - strncpy(newerr, msg, s - msg); - newerr[s-msg] = 0; - snprintf(newerr + (s-msg), sizeof(newerr) -(s-msg), SQLSTATE(HY020) "%s",s); - freeException(msg); - msg = GDKstrdup(newerr); - } - } - if (msg) { + if (msg && + (newerr = GDKmalloc(strlen(msg) + 1)) != NULL) { /* remove exception decoration */ char *m, *n, *p, *s; size_t l; @@ -1337,17 +1324,15 @@ SQLcallback(Client c, str msg){ } else { l = strlen(s); } - if (p + l >= newerr + sizeof(newerr)) - l = newerr + sizeof(newerr) - p - 1; memcpy(p, s, l); p += l; m = n; } *p = 0; freeException(msg); - msg = GDKstrdup(newerr); + msg = GDKrealloc(newerr, strlen(newerr) + 1); } - return MALcallback(c,msg); + return MALcallback(c, msg); } str diff --git a/sql/benchmarks/tpch/14.sql b/sql/benchmarks/tpch/14.sql --- a/sql/benchmarks/tpch/14.sql +++ b/sql/benchmarks/tpch/14.sql @@ -1,8 +1,10 @@ -- using default substitutions +-- Adapted orignal query in testweb. Replaced 100.00 by 100.0 to avoid error "!Too many digits (19 > 18)" on architectures +-- which do not support decimals with more than 18 digits precision (such as MSVC Windows and --disable-int128 builts). select - 100.00 * sum(case + 100.0 * sum(case when p_type like 'PROMO%' then l_extendedprice * (1 - l_discount) else 0 diff --git a/sql/benchmarks/tpch/LOCKED/Tests/01-22.stable.out.int128 b/sql/benchmarks/tpch/LOCKED/Tests/01-22.stable.out.int128 --- a/sql/benchmarks/tpch/LOCKED/Tests/01-22.stable.out.int128 +++ b/sql/benchmarks/tpch/LOCKED/Tests/01-22.stable.out.int128 @@ -699,7 +699,7 @@ stdout of test '01-22` in directory 'sql % promo_revenue # name % decimal # type % 40 # length -[ 15.486545 ] +[ 15.48654 ] % sys.supplier, sys.supplier, sys.supplier, sys.supplier, sys.revenue0 # table_name % s_suppkey, s_name, s_address, s_phone, total_revenue # name diff --git a/sql/benchmarks/tpch/LOCKED/Tests/14.stable.out.int128 b/sql/benchmarks/tpch/LOCKED/Tests/14.stable.out.int128 --- a/sql/benchmarks/tpch/LOCKED/Tests/14.stable.out.int128 +++ b/sql/benchmarks/tpch/LOCKED/Tests/14.stable.out.int128 @@ -33,7 +33,7 @@ stdout of test '14` in directory 'sql/be % promo_revenue # name % decimal # type % 40 # length -[ 15.486545 ] +[ 15.48654 ] # 09:17:18 > # 09:17:18 > Done. diff --git a/sql/benchmarks/tpch/Tests/01-22.stable.out.int128 b/sql/benchmarks/tpch/Tests/01-22.stable.out.int128 --- a/sql/benchmarks/tpch/Tests/01-22.stable.out.int128 +++ b/sql/benchmarks/tpch/Tests/01-22.stable.out.int128 @@ -699,7 +699,7 @@ stdout of test '01-22` in directory 'sql % promo_revenue # name % decimal # type % 40 # length -[ 15.486545 ] +[ 15.48654 ] # 18:03:42 > # 18:03:42 > mclient -lsql -ftest -tnone -Eutf-8 -i -e --host=/var/tmp/mtest-10362 --port=37514 < /home/niels/data/MonetDB/sql/benchmarks/tpch/15.sql diff --git a/sql/benchmarks/tpch/Tests/14.stable.out.int128 b/sql/benchmarks/tpch/Tests/14.stable.out.int128 --- a/sql/benchmarks/tpch/Tests/14.stable.out.int128 +++ b/sql/benchmarks/tpch/Tests/14.stable.out.int128 @@ -33,7 +33,7 @@ stdout of test '14` in directory 'sql/be % promo_revenue # name % decimal # type % 40 # length -[ 15.486545 ] +[ 15.48654 ] # 09:17:18 > # 09:17:18 > Done. _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list