MonetDB: default - Merge with Nov2019

2019-11-01 Thread Pedro Ferreira
Changeset: 058cc058ecd4 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=058cc058ecd4
Modified Files:
gdk/gdk_analytic_bounds.c
gdk/gdk_analytic_func.c
monetdb5/modules/atoms/mtime_analytic.c
sql/backends/monet5/sql.mal
sql/server/rel_exp.c
sql/server/rel_optimizer.c
sql/server/sql_scan.c
sql/test/BugTracker-2013/Tests/pivot.Bug-3339.stable.err

sql/test/BugTracker-2016/Tests/CREATE_INDEX_breaks_table_queries.Bug-4053.stable.out
sql/test/BugTracker/Tests/bug_in_selection.SF-1892413.stable.err
sql/test/BugTracker/Tests/bug_in_selection.SF-1892413.stable.out
sql/test/Tests/keys.sql
sql/test/Tests/keys.stable.out
sql/test/copy/Tests/nonutf8.stable.err
sql/test/miscellaneous/Tests/All
sql/test/miscellaneous/Tests/view-mul-digits.stable.out
sql/test/subquery/Tests/correlated.stable.err
testing/malcheck.py
Branch: default
Log Message:

Merge with Nov2019


diffs (truncated from 1171 to 300 lines):

diff --git a/gdk/gdk_analytic_bounds.c b/gdk/gdk_analytic_bounds.c
--- a/gdk/gdk_analytic_bounds.c
+++ b/gdk/gdk_analytic_bounds.c
@@ -39,76 +39,144 @@
lng m = k - 1;  \
TPE1 v, calc;   \
TPE2 rlimit;\
-   for (; k < i; k++, rb++) {  \
-   rlimit = (TPE2) LIMIT;  \
-   v = bp[k];  \
-   if (is_##TPE1##_nil(v)) {   \
+   if (b->tnonil) {\
+   for (; k < i; k++, rb++) {  \
+   rlimit = (TPE2) LIMIT;  \
+   v = bp[k];  \
for (j = k; ; j--) {\
if (j == m) \
break;  \
-   if (!is_##TPE1##_nil(bp[j]))\
-   break;  \
-   }   \
-   } else {\
-   for (j = k; ; j--) {\
-   if (j == m) \
-   break;  \
-   if (is_##TPE1##_nil(bp[j])) \
-   break;  \
SUB_WITH_CHECK(v, bp[j], TPE1, calc, 
GDK_##TPE1##_max, goto calc_overflow); \
if ((TPE2)(ABSOLUTE(calc)) > rlimit) \
break;  \
}   \
-   }   \
-   j++;\
-   *rb = j;\
-   }   \
+   j++;
\
+   *rb = j;
\
+   }   
\
+   } else { \
+   for (; k < i; k++, rb++) {  
\
+   rlimit = (TPE2) LIMIT;  
\
+   v = bp[k];  
\
+   if (is_##TPE1##_nil(v)) {   
\
+   for (j = k; ; j--) {
\
+   if (j == m) 
\
+   break;  
\
+   if (!is_##TPE1##_nil(bp[j]))
\
+   break;  
\
+   }   
\
+   } else {
\
+   for (j = k; ; j--) {
\
+   if (j == m) 
\
+   break;  
\
+   if 

MonetDB: Nov2019 - Merge with Apr2019

2019-11-01 Thread Pedro Ferreira
Changeset: eeed34b9786c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=eeed34b9786c
Modified Files:
sql/server/rel_exp.c
sql/test/miscellaneous/Tests/All
sql/test/miscellaneous/Tests/view-mul-digits.stable.out
Branch: Nov2019
Log Message:

Merge with Apr2019

___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Nov2019 - When the input bound BAT has no nil values, r...

2019-11-01 Thread Pedro Ferreira
Changeset: ceb3054dca06 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ceb3054dca06
Modified Files:
gdk/gdk_analytic_bounds.c
monetdb5/modules/atoms/mtime_analytic.c
Branch: Nov2019
Log Message:

When the input bound BAT has no nil values, reduce the number of branches


diffs (truncated from 636 to 300 lines):

diff --git a/gdk/gdk_analytic_bounds.c b/gdk/gdk_analytic_bounds.c
--- a/gdk/gdk_analytic_bounds.c
+++ b/gdk/gdk_analytic_bounds.c
@@ -39,76 +39,144 @@
lng m = k - 1;  \
TPE1 v, calc;   \
TPE2 rlimit;\
-   for (; k < i; k++, rb++) {  \
-   rlimit = (TPE2) LIMIT;  \
-   v = bp[k];  \
-   if (is_##TPE1##_nil(v)) {   \
+   if (b->tnonil) {\
+   for (; k < i; k++, rb++) {  \
+   rlimit = (TPE2) LIMIT;  \
+   v = bp[k];  \
for (j = k; ; j--) {\
if (j == m) \
break;  \
-   if (!is_##TPE1##_nil(bp[j]))\
-   break;  \
-   }   \
-   } else {\
-   for (j = k; ; j--) {\
-   if (j == m) \
-   break;  \
-   if (is_##TPE1##_nil(bp[j])) \
-   break;  \
SUB_WITH_CHECK(v, bp[j], TPE1, calc, 
GDK_##TPE1##_max, goto calc_overflow); \
if ((TPE2)(ABSOLUTE(calc)) > rlimit) \
break;  \
}   \
-   }   \
-   j++;\
-   *rb = j;\
-   }   \
+   j++;
\
+   *rb = j;
\
+   }   
\
+   } else { \
+   for (; k < i; k++, rb++) {  
\
+   rlimit = (TPE2) LIMIT;  
\
+   v = bp[k];  
\
+   if (is_##TPE1##_nil(v)) {   
\
+   for (j = k; ; j--) {
\
+   if (j == m) 
\
+   break;  
\
+   if (!is_##TPE1##_nil(bp[j]))
\
+   break;  
\
+   }   
\
+   } else {
\
+   for (j = k; ; j--) {
\
+   if (j == m) 
\
+   break;  
\
+   if (is_##TPE1##_nil(bp[j])) 
\
+   break;  
\
+   SUB_WITH_CHECK(v, bp[j], TPE1, 
calc, GDK_##TPE1##_max, goto calc_overflow); \
+   if ((TPE2)(ABSOLUTE(calc)) > 
rlimit) \
+   break;  
\
+   }   
\
+   }   
\
+   j++;
\
+   *rb = j;  

MonetDB: Nov2019 - Added rel_distinct_aggregate_on_unique_values...

2019-11-01 Thread Pedro Ferreira
Changeset: 3f6c10b09d8a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=3f6c10b09d8a
Modified Files:
sql/server/rel_optimizer.c

sql/test/BugTracker-2016/Tests/CREATE_INDEX_breaks_table_queries.Bug-4053.stable.out
sql/test/Tests/keys.sql
sql/test/Tests/keys.stable.out
Branch: Nov2019
Log Message:

Added rel_distinct_aggregate_on_unique_values optimizer where transforms 
aggr(distinct unique_val) -> aggr(unique_val)


diffs (218 lines):

diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c
--- a/sql/server/rel_optimizer.c
+++ b/sql/server/rel_optimizer.c
@@ -2476,6 +2476,51 @@ rel_is_join_on_pkey( sql_rel *rel )
return 0;
 }
 
+/* if all arguments to a distinct aggregate are unique, remove 'distinct' 
property */
+static sql_rel *
+rel_distinct_aggregate_on_unique_values(int *changes, mvc *sql, sql_rel *rel)
+{
+   sql_rel *l = (sql_rel*) rel->l;
+
+   (void) sql;
+   if (rel->op == op_groupby && (!l || is_base(l->op))) {
+   for (node *n = rel->exps->h; n; n = n->next) {
+   sql_exp *exp = (sql_exp*) n->data;
+
+   if (exp->type == e_aggr && need_distinct(exp)) {
+   bool all_unique = true;
+
+   for (node *m = ((list*)exp->l)->h; m && 
all_unique; m = m->next) {
+   sql_exp *arg = (sql_exp*) m->data;
+
+   if (arg->card == CARD_ATOM) /* 
constants are always unique */
+   continue;
+   else if (arg->type == e_column) {
+   fcmp cmp = (fcmp)_column_cmp;
+   sql_column *c = 
exp_find_column(rel, arg, -2);
+
+   if (c) {
+   /* column is the only 
primary key column of its table */
+   if (find_prop(arg->p, 
PROP_HASHCOL) && c->t->pkey && list_find(c->t->pkey->k.columns, c, cmp) != NULL 
&& list_length(c->t->pkey->k.columns) == 1)
+   continue;
+   else if (c->unique == 
1) /* column has unique constraint */
+   continue;
+   else
+   all_unique = 
false;
+   } else
+   all_unique = false;
+   } else
+   all_unique = false;
+   }
+   if (all_unique) {
+   set_nodistinct(exp);
+   *changes = 1;
+   }
+   }
+   }
+   }
+   return rel;
+}
 
 static sql_rel *
 rel_distinct_project2groupby(int *changes, mvc *sql, sql_rel *rel)
@@ -9005,6 +9050,7 @@ optimize_rel(mvc *sql, sql_rel *rel, int
rel = rel_case_fixup(, sql, rel, 1);
if (value_based_opt)
rel = rewrite(sql, rel, _simplify_math, 
);
+   rel = rewrite(sql, rel, 
_distinct_aggregate_on_unique_values, );
rel = rewrite(sql, rel, _distinct_project2groupby, 
);
}
}
diff --git 
a/sql/test/BugTracker-2016/Tests/CREATE_INDEX_breaks_table_queries.Bug-4053.stable.out
 
b/sql/test/BugTracker-2016/Tests/CREATE_INDEX_breaks_table_queries.Bug-4053.stable.out
--- 
a/sql/test/BugTracker-2016/Tests/CREATE_INDEX_breaks_table_queries.Bug-4053.stable.out
+++ 
b/sql/test/BugTracker-2016/Tests/CREATE_INDEX_breaks_table_queries.Bug-4053.stable.out
@@ -84,20 +84,20 @@ stdout of test 'CREATE_INDEX_breaks_tabl
 % int, bigint, int,int,timestamp,  smallint,   smallint,   
clob,   clob,   clob,   clob,   int,clob,   clob,   clob,   clob,   clob,   
clob,   clob,   clob,   clob,   clob,   clob,   clob,   clob,   clob,   clob,   
clob,   clob,   clob,   clob,   clob,   clob,   double, double, double, double, 
double, double, double, double, double, double, double, double, double, int,
boolean,bigint, int,int,int # type
 % 1,   1,  1,  1,  26, 1,  1,  0,  0,  0,  
0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  
0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  
0,  0,  0,  24, 24, 24, 24, 24, 24, 24, 
24, 24, 24, 24, 24, 24,  

MonetDB: Nov2019 - Fix for breaking TPC-DS tests. When attemptin...

2019-11-01 Thread Pedro Ferreira
Changeset: fd511d81a1e5 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=fd511d81a1e5
Modified Files:
sql/server/rel_optimizer.c
Branch: Nov2019
Log Message:

Fix for breaking TPC-DS tests. When attempting to remove a join on a primary 
key, used in a distinct projection, test that the primary key must be the same 
one


diffs (29 lines):

diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c
--- a/sql/server/rel_optimizer.c
+++ b/sql/server/rel_optimizer.c
@@ -2503,14 +2503,17 @@ rel_distinct_project2groupby(int *change
sql_rel *j = l;
sql_rel *p = j->l;
sql_exp *je = l->exps->h->data, *le = je->l;
-   int pside = (rel_find_exp(p, le) != NULL)?1:0;
-
-   p = (pside)?j->l:j->r;
-   rel->l = rel_dup(p);
-   rel_destroy(j);
-   *changes = 1;
-   set_nodistinct(rel);
-   return rel;
+
+   if (exps_find_exp(rel->exps, le)) { /* rel must have the same 
primary key on the projection list */
+   int pside = (rel_find_exp(p, le) != NULL)?1:0;
+
+   p = (pside)?j->l:j->r;
+   rel->l = rel_dup(p);
+   rel_destroy(j);
+   *changes = 1;
+   set_nodistinct(rel);
+   return rel;
+   }
}
/* rewrite distinct project [ gbe ] ( select ( groupby [ gbe ] [ gbe, e 
] )[ e op val ]) 
 * into project [ gbe ] ( select ( group etc ) */
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Nov2019 - Added missing hge integer case for GDKanalyti...

2019-11-01 Thread Pedro Ferreira
Changeset: ed0399e67a7f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ed0399e67a7f
Modified Files:
gdk/gdk_analytic_func.c
Branch: Nov2019
Log Message:

Added missing hge integer case for GDKanalyticalnthvalue, also when there are 
no null values for flt and dbl cases in GDKanalyticaldiff, use the regular case


diffs (141 lines):

diff --git a/gdk/gdk_analytic_func.c b/gdk/gdk_analytic_func.c
--- a/gdk/gdk_analytic_func.c
+++ b/gdk/gdk_analytic_func.c
@@ -87,12 +87,20 @@ GDKanalyticaldiff(BAT *r, BAT *b, BAT *p
ANALYTICAL_DIFF_IMP(hge);
break;
 #endif
-   case TYPE_flt:
-   ANALYTICAL_DIFF_FLOAT_IMP(flt);
-   break;
-   case TYPE_dbl:
-   ANALYTICAL_DIFF_FLOAT_IMP(dbl);
-   break;
+   case TYPE_flt: {
+   if (b->tnonil) {
+   ANALYTICAL_DIFF_IMP(flt);
+   } else { /* Because of NaN values, use this path */
+   ANALYTICAL_DIFF_FLOAT_IMP(flt);
+   }
+   } break;
+   case TYPE_dbl: {
+   if (b->tnonil) {
+   ANALYTICAL_DIFF_IMP(dbl);
+   } else { /* Because of NaN values, use this path */
+   ANALYTICAL_DIFF_FLOAT_IMP(dbl);
+   }
+   } break;
default:{
BATiter it = bat_iterator(b);
ptr v = BUNtail(it, 0), next;
@@ -397,14 +405,14 @@ GDKanalyticallast(BAT *r, BAT *b, BAT *s
}   \
} while (0)
 
-#define ANALYTICAL_NTHVALUE_IMP_MULTI_FIXED(TPE1, TPE2)
\
+#define ANALYTICAL_NTHVALUE_IMP_MULTI_FIXED(TPE1, TPE2, TPE3)  
\
do {\
TPE2 *restrict lp = (TPE2*)Tloc(l, 0);  \
for (; i < cnt; i++, rb++) {\
TPE2 lnth = lp[i];  \
bs = bp + start[i]; \
be = bp + end[i];   \
-   if (is_##TPE2##_nil(lnth) || be <= bs || (lng)(lnth - 
1) > (end[i] - start[i])) \
+   if (is_##TPE2##_nil(lnth) || be <= bs || (TPE3)(lnth - 
1) > (TPE3)(end[i] - start[i])) \
curval = TPE1##_nil;\
else\
curval = *(bs + lnth - 1);  \
@@ -414,6 +422,15 @@ GDKanalyticallast(BAT *r, BAT *b, BAT *s
}   \
} while (0)
 
+#ifdef HAVE_HGE
+#define ANALYTICAL_NTHVALUE_CALC_FIXED_HGE(TPE1)   \
+   case TYPE_hge:  \
+   ANALYTICAL_NTHVALUE_IMP_MULTI_FIXED(TPE1, hge, hge); \
+   break;
+#else
+#define ANALYTICAL_NTHVALUE_CALC_FIXED_HGE(TPE1)
+#endif
+
 #define ANALYTICAL_NTHVALUE_CALC_FIXED(TPE1)   \
do {\
TPE1 *bp, *bs, *be, curval, *restrict rb;   \
@@ -421,28 +438,29 @@ GDKanalyticallast(BAT *r, BAT *b, BAT *s
rb = (TPE1*)Tloc(r, 0); \
switch (tp2) {  \
case TYPE_bte:  \
-   ANALYTICAL_NTHVALUE_IMP_MULTI_FIXED(TPE1, bte); \
+   ANALYTICAL_NTHVALUE_IMP_MULTI_FIXED(TPE1, bte, lng); \
break;  \
case TYPE_sht:  \
-   ANALYTICAL_NTHVALUE_IMP_MULTI_FIXED(TPE1, sht); \
+   ANALYTICAL_NTHVALUE_IMP_MULTI_FIXED(TPE1, sht, lng); \
break;  \
case TYPE_int:  \
-   ANALYTICAL_NTHVALUE_IMP_MULTI_FIXED(TPE1, int); \
+   ANALYTICAL_NTHVALUE_IMP_MULTI_FIXED(TPE1, int, lng); \
break;  \
case TYPE_lng:  \
-   ANALYTICAL_NTHVALUE_IMP_MULTI_FIXED(TPE1, lng); \
+   ANALYTICAL_NTHVALUE_IMP_MULTI_FIXED(TPE1, lng, lng); \
break;  \
+   ANALYTICAL_NTHVALUE_CALC_FIXED_HGE(TPE1) \
default:\
goto nosupport; \
   

MonetDB: Apr2019 - Approved test after cherry picking fixes from...

2019-11-01 Thread Pedro Ferreira
Changeset: 9fc16e0be6c7 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9fc16e0be6c7
Modified Files:
sql/test/miscellaneous/Tests/view-mul-digits.stable.out
Branch: Apr2019
Log Message:

Approved test after cherry picking fixes from Nov2019 branch into Apr2019


diffs (18 lines):

diff --git a/sql/test/miscellaneous/Tests/view-mul-digits.stable.out 
b/sql/test/miscellaneous/Tests/view-mul-digits.stable.out
--- a/sql/test/miscellaneous/Tests/view-mul-digits.stable.out
+++ b/sql/test/miscellaneous/Tests/view-mul-digits.stable.out
@@ -56,9 +56,11 @@ stdout of test 'view-mul-digits` in dire
 # MonetDB/Python2 module loaded
 # MonetDB/R   module loaded
 
-# 09:17:15 >  
-# 09:17:15 >  "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-19962" "--port=38624"
-# 09:17:15 >  
+Ready.
+
+# 09:21:41 >  
+# 09:21:41 >  "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-13533" "--port=36695"
+# 09:21:41 >  
 
 #START TRANSACTION;
 #create temp table mytable(b bigint);
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Apr2019 - Added test for upgrading tests digits problem...

2019-11-01 Thread Pedro Ferreira
Changeset: 0bc7e24533a7 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=0bc7e24533a7
Added Files:
sql/test/miscellaneous/Tests/view-mul-digits.sql
sql/test/miscellaneous/Tests/view-mul-digits.stable.err
sql/test/miscellaneous/Tests/view-mul-digits.stable.out
Modified Files:
sql/test/miscellaneous/Tests/All
Branch: Apr2019
Log Message:

Added test for upgrading tests digits problem. The missing digit only occurs on 
non-128 bit integer compilations


diffs (147 lines):

diff --git a/sql/test/miscellaneous/Tests/All b/sql/test/miscellaneous/Tests/All
--- a/sql/test/miscellaneous/Tests/All
+++ b/sql/test/miscellaneous/Tests/All
@@ -6,4 +6,5 @@ groupby_expressions
 with_update_stmts
 groupby_error
 alter_table_add_column
+view-mul-digits
 select_groupby
diff --git a/sql/test/miscellaneous/Tests/view-mul-digits.sql 
b/sql/test/miscellaneous/Tests/view-mul-digits.sql
new file mode 100644
--- /dev/null
+++ b/sql/test/miscellaneous/Tests/view-mul-digits.sql
@@ -0,0 +1,11 @@
+START TRANSACTION;
+
+create temp table mytable(b bigint);
+insert into mytable values (1), (2), (3);
+
+create view sys.myview as select cast(2 * "b" as bigint) as mycol from mytable;
+
+select t.name, c.name, c.type, c.type_digits, c.type_scale
+from sys.tables t join sys.columns c on c.table_id = t.id where t.name = 
'myview';
+
+ROLLBACK;
diff --git a/sql/test/miscellaneous/Tests/view-mul-digits.stable.err 
b/sql/test/miscellaneous/Tests/view-mul-digits.stable.err
new file mode 100644
--- /dev/null
+++ b/sql/test/miscellaneous/Tests/view-mul-digits.stable.err
@@ -0,0 +1,32 @@
+stderr of test 'view-mul-digits` in directory 'sql/test/miscellaneous` itself:
+
+
+# 09:17:14 >  
+# 09:17:14 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=38624" "--set" 
"mapi_usock=/var/tmp/mtest-19962/.s.monetdb.38624" "--forcemito" 
"--dbpath=/home/ferreira/repositories/MonetDB-Nov2019/BUILD/var/MonetDB/mTests_sql_test_miscellaneous"
 "--set" "embedded_r=yes" "--set" "embedded_py=2" "--set" "embedded_c=true"
+# 09:17:14 >  
+
+# builtin opt  gdk_dbpath = 
/home/ferreira/repositories/MonetDB-Nov2019/BUILD/var/monetdb5/dbfarm/demo
+# builtin opt  mapi_port = 5
+# builtin opt  mapi_open = false
+# builtin opt  mapi_ipv6 = false
+# builtin opt  mapi_autosense = false
+# builtin opt  sql_optimizer = default_pipe
+# builtin opt  sql_debug = 0
+# cmdline opt  gdk_nr_threads = 0
+# cmdline opt  mapi_open = true
+# cmdline opt  mapi_port = 38624
+# cmdline opt  mapi_usock = /var/tmp/mtest-19962/.s.monetdb.38624
+# cmdline opt  gdk_dbpath = 
/home/ferreira/repositories/MonetDB-Nov2019/BUILD/var/MonetDB/mTests_sql_test_miscellaneous
+# cmdline opt  embedded_r = yes
+# cmdline opt  embedded_py = 2
+# cmdline opt  embedded_c = true
+
+# 09:17:15 >  
+# 09:17:15 >  "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-19962" "--port=38624"
+# 09:17:15 >  
+
+
+# 09:17:15 >  
+# 09:17:15 >  "Done."
+# 09:17:15 >  
+
diff --git a/sql/test/miscellaneous/Tests/view-mul-digits.stable.out 
b/sql/test/miscellaneous/Tests/view-mul-digits.stable.out
new file mode 100644
--- /dev/null
+++ b/sql/test/miscellaneous/Tests/view-mul-digits.stable.out
@@ -0,0 +1,80 @@
+stdout of test 'view-mul-digits` in directory 'sql/test/miscellaneous` itself:
+
+
+# 09:17:14 >  
+# 09:17:14 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=38624" "--set" 
"mapi_usock=/var/tmp/mtest-19962/.s.monetdb.38624" "--forcemito" 
"--dbpath=/home/ferreira/repositories/MonetDB-Nov2019/BUILD/var/MonetDB/mTests_sql_test_miscellaneous"
 "--set" "embedded_r=yes" "--set" "embedded_py=2" "--set" "embedded_c=true"
+# 09:17:14 >  
+
+# MonetDB 5 server v11.35.0 (hg id: 0fdb2a149864)
+# This is an unreleased version
+# Serving database 'mTests_sql_test_miscellaneous', using 8 threads
+# Compiled for x86_64-pc-linux-gnu/64bit
+# Found 15.504 GiB available main-memory.
+# Copyright (c) 1993 - July 2008 CWI.
+# Copyright (c) August 2008 - 2019 MonetDB B.V., all rights reserved
+# Visit https://www.monetdb.org/ for further information
+# Listening for connection requests on 
mapi:monetdb://localhost.localdomain:38624/
+# Listening for UNIX domain connection requests on 
mapi:monetdb:///var/tmp/mtest-19962/.s.monetdb.38624
+# MonetDB/GIS module loaded
+# SQL catalog created, loading sql scripts once
+# loading sql script: 09_like.sql
+# loading sql script: 10_math.sql
+# loading sql script: 12_url.sql
+# loading sql script: 13_date.sql
+# loading sql script: 14_inet.sql
+# loading sql script: 15_querylog.sql
+# loading sql script: 16_tracelog.sql
+# loading sql script: 17_temporal.sql
+# loading sql script: 18_index.sql
+# loading sql script: 20_vacuum.sql
+# loading sql script: 21_dependency_views.sql
+# loading sql script: 22_clients.sql
+# loading sql script: 23_skyserver.sql
+# loading sql script: 25_debug.sql
+# loading sql script: 

MonetDB: Apr2019 - Fix for exp_sum_scales, when the '*' function...

2019-11-01 Thread Pedro Ferreira
Changeset: 66f2a980e20a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=66f2a980e20a
Modified Files:
sql/server/rel_exp.c
Branch: Apr2019
Log Message:

Fix for exp_sum_scales, when the '*' function output type is lng or hge, don't 
attempt to call sql_find_numeric


diffs (20 lines):

diff --git a/sql/server/rel_exp.c b/sql/server/rel_exp.c
--- a/sql/server/rel_exp.c
+++ b/sql/server/rel_exp.c
@@ -2026,7 +2026,15 @@ exp_sum_scales(sql_subfunc *f, sql_exp *
 
/* numeric types are fixed length */
if (ares->type.type->eclass == EC_NUM) {
-   sql_find_numeric(, ares->type.type->localtype, 
res->digits);
+#ifdef HAVE_HGE
+   if (have_hge && ares->type.type->localtype == TYPE_hge 
&& res->digits == 128)
+   t = *sql_bind_localtype("hge");
+   else
+#endif
+   if (ares->type.type->localtype == TYPE_lng && 
res->digits == 64)
+   t = *sql_bind_localtype("lng");
+   else
+   sql_find_numeric(, 
ares->type.type->localtype, res->digits);
} else {
sql_find_subtype(, ares->type.type->sqlname, 
res->digits, res->scale);
}
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list