MonetDB: default - Merge with Nov2019
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
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...
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...
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...
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...
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...
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...
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...
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