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

Reply via email to