Changeset: c416ac4ba363 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c416ac4ba363
Added Files:
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-complex-case-nullif-coalesce.Bug-6565.stable.err
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-complex-case-nullif-coalesce.Bug-6565.stable.out
        sql/test/BugTracker-2018/Tests/sqlitelogictest-complex-case.Bug-6568.sql
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-mal-calc-undefined.Bug-6566.stable.err
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-mal-calc-undefined.Bug-6566.stable.out
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-not-between-wrong.Bug-6569.sql
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-undefined-calc.Bug-6570.sql
Modified Files:
        clients/Tests/exports.stable.out
        gdk/gdk_cross.c
        gdk/gdk_group.c
        monetdb5/mal/mal_interpreter.c
        sql/server/rel_optimizer.c
        sql/server/rel_select.c
        sql/test/BugTracker-2015/Tests/null.Bug-3833.stable.out
        sql/test/BugTracker-2016/Tests/null_in_null.Bug-3900.stable.out
        sql/test/BugTracker-2018/Tests/All
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-wrong-cast-null.Bug-6551.stable.out
        testing/listexports.py.in
Branch: default
Log Message:

Merge with Mar2018 branch.


diffs (truncated from 503 to 300 lines):

diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -428,16 +428,6 @@ lng logger_read_last_transaction_id(logg
 gdk_return logger_reload(logger *lg);
 gdk_return logger_restart(logger *lg);
 int logger_sequence(logger *lg, int seq, lng *id);
-char *mcrypt_BackendSum(const char *string, size_t len);
-char *mcrypt_MD5Sum(const char *string, size_t len);
-char *mcrypt_RIPEMD160Sum(const char *string, size_t len);
-char *mcrypt_SHA1Sum(const char *string, size_t len);
-char *mcrypt_SHA224Sum(const char *string, size_t len);
-char *mcrypt_SHA256Sum(const char *string, size_t len);
-char *mcrypt_SHA384Sum(const char *string, size_t len);
-char *mcrypt_SHA512Sum(const char *string, size_t len);
-const char *mcrypt_getHashAlgorithms(void);
-char *mcrypt_hashPassword(const char *algo, const char *password, const char 
*challenge);
 void *mdlopen(const char *library, int mode);
 int mo_add_option(opt **Set, int setlen, opt_kind kind, const char *name, 
const char *value);
 int mo_builtin_settings(opt **Set);
@@ -445,23 +435,6 @@ char *mo_find_option(opt *set, int setle
 void mo_free_options(opt *set, int setlen);
 void mo_print_options(opt *set, int setlen);
 int mo_system_config(opt **Set, int setlen);
-void msab_dbfarminit(const char *dbfarm);
-void msab_dbpathinit(const char *dbpath);
-char *msab_deserialise(sabdb **ret, char *sabdb);
-char *msab_freeStatus(sabdb **ret);
-char *msab_getDBfarm(char **ret);
-char *msab_getDBname(char **ret);
-char *msab_getMyStatus(sabdb **ret);
-char *msab_getStatus(sabdb **ret, char *dbname);
-char *msab_getUplogInfo(sabuplog *ret, const sabdb *db);
-char *msab_marchConnection(const char *host, const int port);
-char *msab_marchScenario(const char *lang);
-char *msab_registerStarted(void);
-char *msab_registerStarting(void);
-char *msab_registerStop(void);
-char *msab_retreatScenario(const char *lang);
-char *msab_serialise(char **ret, const sabdb *db);
-char *msab_wildRetreat(void);
 const oid oid_nil;
 DIR *opendir(const char *dirname);
 void print_trace(void);
@@ -595,6 +568,22 @@ MapiMsg mapi_timeout(Mapi mid, unsigned 
 void mapi_trace(Mapi mid, int flag);
 char *mapi_unquote(char *msg);
 MapiMsg mapi_virtual_result(MapiHdl hdl, int columns, const char 
**columnnames, const char **columntypes, const int *columnlengths, int 
tuplecount, const char ***tuples);
+char *mcrypt_BackendSum(const char *string, size_t len);
+char *mcrypt_MD5Sum(const char *string, size_t len);
+char *mcrypt_RIPEMD160Sum(const char *string, size_t len);
+char *mcrypt_SHA1Sum(const char *string, size_t len);
+char *mcrypt_SHA224Sum(const char *string, size_t len);
+char *mcrypt_SHA256Sum(const char *string, size_t len);
+char *mcrypt_SHA384Sum(const char *string, size_t len);
+char *mcrypt_SHA512Sum(const char *string, size_t len);
+const char *mcrypt_getHashAlgorithms(void);
+char *mcrypt_hashPassword(const char *algo, const char *password, const char 
*challenge);
+int mo_add_option(opt **Set, int setlen, opt_kind kind, const char *name, 
const char *value);
+int mo_builtin_settings(opt **Set);
+char *mo_find_option(opt *set, int setlen, const char *name);
+void mo_free_options(opt *set, int setlen);
+void mo_print_options(opt *set, int setlen);
+int mo_system_config(opt **Set, int setlen);
 const char *wsaerror(int);
 
 # monetdb5
@@ -2367,6 +2356,23 @@ char monet_characteristics[4096];
 char monet_cwd[FILENAME_MAX];
 size_t monet_memory;
 void moveInstruction(MalBlkPtr mb, int pc, int target);
+void msab_dbfarminit(const char *dbfarm);
+void msab_dbpathinit(const char *dbpath);
+char *msab_deserialise(sabdb **ret, char *sabdb);
+char *msab_freeStatus(sabdb **ret);
+char *msab_getDBfarm(char **ret);
+char *msab_getDBname(char **ret);
+char *msab_getMyStatus(sabdb **ret);
+char *msab_getStatus(sabdb **ret, char *dbname);
+char *msab_getUplogInfo(sabuplog *ret, const sabdb *db);
+char *msab_marchConnection(const char *host, const int port);
+char *msab_marchScenario(const char *lang);
+char *msab_registerStarted(void);
+char *msab_registerStarting(void);
+char *msab_registerStop(void);
+char *msab_retreatScenario(const char *lang);
+char *msab_serialise(char **ret, const sabdb *db);
+char *msab_wildRetreat(void);
 void mserver_reset(int exit);
 str mtimeRef;
 str mulRef;
diff --git a/gdk/gdk_cross.c b/gdk/gdk_cross.c
--- a/gdk/gdk_cross.c
+++ b/gdk/gdk_cross.c
@@ -36,8 +36,13 @@ BATsubcross(BAT **r1p, BAT **r2p, BAT *l
                cnt2 = rcandend - rcand;
 
        bn1 = COLnew(0, TYPE_oid, cnt1 * cnt2, TRANSIENT);
-       if (bn1 == NULL)
+       bn2 = COLnew(0, TYPE_oid, cnt1 * cnt2, TRANSIENT);
+       if (bn1 == NULL || bn2 == NULL) {
+               BBPreclaim(bn1);
+               BBPreclaim(bn2);
                return GDK_FAIL;
+       }
+
        BATsetcount(bn1, cnt1 * cnt2);
        bn1->tsorted = 1;
        bn1->trevsorted = cnt1 <= 1;
@@ -58,13 +63,8 @@ BATsubcross(BAT **r1p, BAT **r2p, BAT *l
                BATtseqbase(bn1, bn1->tkey ? seq : oid_nil);
        }
 
-       bn2 = COLnew(0, TYPE_oid, cnt1 * cnt2, TRANSIENT);
-       if (bn2 == NULL) {
-               BBPreclaim(bn1);
-               return GDK_FAIL;
-       }
        BATsetcount(bn2, cnt1 * cnt2);
-       bn2->tsorted = cnt1 <= 1;
+       bn2->tsorted = cnt1 <= 1 || cnt2 <= 1;
        bn2->trevsorted = cnt2 <= 1;
        bn2->tkey = cnt1 <= 1;
        bn2->tnil = 0;
diff --git a/gdk/gdk_group.c b/gdk/gdk_group.c
--- a/gdk/gdk_group.c
+++ b/gdk/gdk_group.c
@@ -633,7 +633,7 @@ BATgroup_internal(BAT **groups, BAT **ex
                                en->tnonil = 1;
                                en->tseqbase = oid_nil;
                        } else {
-                               en = BATdense(0, b->hseqbase, cnt);
+                               en = BATdense(0, b->hseqbase + start, cnt);
                                if (en == NULL)
                                        goto error;
                        }
diff --git a/monetdb5/mal/mal_interpreter.c b/monetdb5/mal/mal_interpreter.c
--- a/monetdb5/mal/mal_interpreter.c
+++ b/monetdb5/mal/mal_interpreter.c
@@ -655,8 +655,7 @@ str runMALsequence(Client cntxt, MalBlkP
                                                BAT *_b = BATdescriptor(bid);
                                                t = getBatType(t);
                                                assert(stk->stk[a].vtype == 
TYPE_bat);
-                                               assert(bid == 0 ||
-                                                          is_bat_nil(bid) ||
+                                               assert(is_bat_nil(bid) ||
                                                           t == TYPE_any ||
                                                           ATOMtype(_b->ttype) 
== ATOMtype(t));
                                                if(_b) BBPunfix(bid);
@@ -680,8 +679,7 @@ str runMALsequence(Client cntxt, MalBlkP
                                        bat bid = stk->stk[a].val.bval;
                                        t = getBatType(t);
                                        assert(stk->stk[a].vtype == TYPE_bat);
-                                       assert(bid == 0 ||
-                                                  is_bat_nil(bid) ||
+                                       assert(is_bat_nil(bid) ||
                                                   t == TYPE_any ||
                                                   
ATOMtype(BBP_desc(bid)->ttype) == ATOMtype(t));
                                } else {
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
@@ -2880,15 +2880,20 @@ exp_simplify_math( mvc *sql, sql_exp *e,
                if (!f->func->s && list_length(l) == 2) {
                        sql_exp *le = l->h->data;
                        sql_exp *re = l->h->next->data;
+                       sql_subtype *et = exp_subtype(e);
 
                        if (exp_is_atom(le) && exp_is_null(sql, le)) {
                                (*changes)++;
                                exp_setname(sql->sa, le, exp_relname(e), 
exp_name(e));
+                               if (subtype_cmp(et, exp_subtype(le)) != 0)
+                                       le = exp_convert(sql->sa, le, 
exp_subtype(le), et);
                                return le;
                        }
                        if (exp_is_atom(re) && exp_is_null(sql, re)) {
                                (*changes)++;
                                exp_setname(sql->sa, re, exp_relname(e), 
exp_name(e));
+                               if (subtype_cmp(et, exp_subtype(re)) != 0)
+                                       re = exp_convert(sql->sa, re, 
exp_subtype(re), et);
                                return re;
                        }
                }
diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -184,6 +184,8 @@ rel_project2groupby(mvc *sql, sql_rel *g
                g->op = op_groupby;
                g->r = new_exp_list(sql->sa); /* add empty groupby column list 
*/
                
+               if (!g->exps)
+                       g->exps = new_exp_list(sql->sa);
                for (en = g->exps->h; en; en = en->next) {
                        sql_exp *e = en->data;
 
diff --git a/sql/test/BugTracker-2015/Tests/null.Bug-3833.stable.out 
b/sql/test/BugTracker-2015/Tests/null.Bug-3833.stable.out
--- a/sql/test/BugTracker-2015/Tests/null.Bug-3833.stable.out
+++ b/sql/test/BugTracker-2015/Tests/null.Bug-3833.stable.out
@@ -43,8 +43,8 @@ Ready.
 #SELECT (1 = NULL);
 % .L2 # table_name
 % L2 # name
-% tinyint # type
-% 1 # length
+% boolean # type
+% 5 # length
 [ NULL ]
 #SELECT (TRUE OR NULL);
 % .L2 # table_name
diff --git a/sql/test/BugTracker-2016/Tests/null_in_null.Bug-3900.stable.out 
b/sql/test/BugTracker-2016/Tests/null_in_null.Bug-3900.stable.out
--- a/sql/test/BugTracker-2016/Tests/null_in_null.Bug-3900.stable.out
+++ b/sql/test/BugTracker-2016/Tests/null_in_null.Bug-3900.stable.out
@@ -38,8 +38,8 @@ Ready.
 #select null in (1);
 % .L3 # table_name
 % L3 # name
-% tinyint # type
-% 1 # length
+% boolean # type
+% 5 # length
 [ NULL ]
 #select null between null and null;
 % .L2 # table_name
diff --git a/sql/test/BugTracker-2018/Tests/All 
b/sql/test/BugTracker-2018/Tests/All
--- a/sql/test/BugTracker-2018/Tests/All
+++ b/sql/test/BugTracker-2018/Tests/All
@@ -42,3 +42,6 @@ sqlitelogictest-groupby-having-in-cast.B
 sqlitelogictest-groupby-having-not-null-not-in.Bug-6562
 sqlitelogictest-complex-case-nullif-coalesce.Bug-6565
 sqlitelogictest-mal-calc-undefined.Bug-6566
+sqlitelogictest-complex-case.Bug-6568
+sqlitelogictest-not-between-wrong.Bug-6569
+sqlitelogictest-undefined-calc.Bug-6570
diff --git 
a/sql/test/BugTracker-2018/Tests/sqlitelogictest-complex-case-nullif-coalesce.Bug-6565.stable.err
 
b/sql/test/BugTracker-2018/Tests/sqlitelogictest-complex-case-nullif-coalesce.Bug-6565.stable.err
new file mode 100644
--- /dev/null
+++ 
b/sql/test/BugTracker-2018/Tests/sqlitelogictest-complex-case-nullif-coalesce.Bug-6565.stable.err
@@ -0,0 +1,35 @@
+stderr of test 'sqlitelogictest-complex-case-nullif-coalesce.Bug-6565` in 
directory 'sql/test/BugTracker-2018` itself:
+
+
+# 11:19:51 >  
+# 11:19:51 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=32042" "--set" 
"mapi_usock=/var/tmp/mtest-29502/.s.monetdb.32042" "--set" "monet_prompt=" 
"--forcemito" 
"--dbpath=/home/niels/scratch/rc-old/Linux-x86_64/var/MonetDB/mTests_sql_test_BugTracker-2018"
 "--set" "embedded_c=true"
+# 11:19:51 >  
+
+# builtin opt  gdk_dbpath = 
/home/niels/scratch/rc-old/Linux-x86_64/var/monetdb5/dbfarm/demo
+# builtin opt  gdk_debug = 0
+# builtin opt  gdk_vmtrim = no
+# builtin opt  monet_prompt = >
+# builtin opt  monet_daemon = no
+# builtin opt  mapi_port = 50000
+# builtin opt  mapi_open = 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 = 32042
+# cmdline opt  mapi_usock = /var/tmp/mtest-29502/.s.monetdb.32042
+# cmdline opt  monet_prompt = 
+# cmdline opt  gdk_dbpath = 
/home/niels/scratch/rc-old/Linux-x86_64/var/MonetDB/mTests_sql_test_BugTracker-2018
+# cmdline opt  embedded_c = true
+# cmdline opt  gdk_debug = 553648138
+
+# 11:19:51 >  
+# 11:19:51 >  "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-29502" "--port=32042"
+# 11:19:51 >  
+
+
+# 11:19:51 >  
+# 11:19:51 >  "Done."
+# 11:19:51 >  
+
diff --git 
a/sql/test/BugTracker-2018/Tests/sqlitelogictest-complex-case-nullif-coalesce.Bug-6565.stable.out
 
b/sql/test/BugTracker-2018/Tests/sqlitelogictest-complex-case-nullif-coalesce.Bug-6565.stable.out
new file mode 100644
--- /dev/null
+++ 
b/sql/test/BugTracker-2018/Tests/sqlitelogictest-complex-case-nullif-coalesce.Bug-6565.stable.out
@@ -0,0 +1,39 @@
+stdout of test 'sqlitelogictest-complex-case-nullif-coalesce.Bug-6565` in 
directory 'sql/test/BugTracker-2018` itself:
+
+
+# 11:19:51 >  
+# 11:19:51 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=32042" "--set" 
"mapi_usock=/var/tmp/mtest-29502/.s.monetdb.32042" "--set" "monet_prompt=" 
"--forcemito" 
"--dbpath=/home/niels/scratch/rc-old/Linux-x86_64/var/MonetDB/mTests_sql_test_BugTracker-2018"
 "--set" "embedded_c=true"
+# 11:19:51 >  
+
+# MonetDB 5 server v11.29.2
+# This is an unreleased version
+# Serving database 'mTests_sql_test_BugTracker-2018', using 8 threads
+# Compiled for x86_64-unknown-linux-gnu/64bit
+# Found 15.387 GiB available main-memory.
+# Copyright (c) 1993 - July 2008 CWI.
+# Copyright (c) August 2008 - 2018 MonetDB B.V., all rights reserved
+# Visit https://www.monetdb.org/ for further information
+# Listening for connection requests on mapi:monetdb://xps13:32042/
+# Listening for UNIX domain connection requests on 
mapi:monetdb:///var/tmp/mtest-29502/.s.monetdb.32042
+# MonetDB/GIS module loaded
+# MonetDB/SQL module loaded
+
+Ready.
+
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to