Changeset: 6ea1caeb6147 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6ea1caeb6147
Added Files:
        sql/test/BugTracker-2017/Tests/All
        sql/test/BugTracker-2017/Tests/avggroupbysq.Bug-6178.sql
        sql/test/BugTracker-2017/Tests/avggroupbysq.Bug-6178.stable.err
        sql/test/BugTracker-2017/Tests/avggroupbysq.Bug-6178.stable.out
        sql/test/BugTracker-2017/Tests/shutdown.Bug-6182.sql
        sql/test/BugTracker-2017/Tests/shutdown.Bug-6182.stable.err
        sql/test/BugTracker-2017/Tests/shutdown.Bug-6182.stable.out
Modified Files:
        gdk/gdk_aggr.c
        gdk/gdk_interprocess.c
        gdk/gdk_interprocess.h
        monetdb5/modules/mal/clients.c
        monetdb5/optimizer/opt_mergetable.c
        sql/backends/monet5/UDF/pyapi/connection.c
        sql/backends/monet5/UDF/pyapi/conversion.c
        sql/backends/monet5/UDF/pyapi/emit.c
        sql/backends/monet5/UDF/pyapi/formatinput.c
        sql/backends/monet5/UDF/pyapi/pyapi.c
        sql/backends/monet5/UDF/pyapi/pyapi.h
        sql/backends/monet5/UDF/pyapi/pyheader.h
        sql/backends/monet5/UDF/pyapi/pyloader.c
        sql/backends/monet5/UDF/pyapi/pytypes.c
        sql/backends/monet5/UDF/pyapi/type_conversion.c
        sql/backends/monet5/UDF/pyapi/unicode.c
Branch: default
Log Message:

Merge with Dec2016 branch.


diffs (truncated from 514 to 300 lines):

diff --git a/gdk/gdk_aggr.c b/gdk/gdk_aggr.c
--- a/gdk/gdk_aggr.c
+++ b/gdk/gdk_aggr.c
@@ -1386,7 +1386,8 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT 
                return GDK_SUCCEED;
        }
 
-       if ((e == NULL ||
+       if ((!skip_nils || cntsp == NULL || b->tnonil) &&
+           (e == NULL ||
             (BATcount(e) == BATcount(b) && e->hseqbase == b->hseqbase)) &&
            (BATtdense(g) || (g->tkey && g->tnonil))) {
                /* trivial: singleton groups, so all results are equal
diff --git a/gdk/gdk_interprocess.c b/gdk/gdk_interprocess.c
--- a/gdk/gdk_interprocess.c
+++ b/gdk/gdk_interprocess.c
@@ -6,10 +6,11 @@
  * Copyright 1997 - July 2008 CWI, August 2008 - 2017 MonetDB B.V.
  */
 
-#include "gdk_interprocess.h"
+#include "monetdb_config.h"
 
 #ifdef HAVE_FORK
 
+#include "gdk_interprocess.h"
 #include "gdk.h"
 #include "gdk_private.h"
 
diff --git a/gdk/gdk_interprocess.h b/gdk/gdk_interprocess.h
--- a/gdk/gdk_interprocess.h
+++ b/gdk/gdk_interprocess.h
@@ -14,8 +14,6 @@
 #ifndef _GDK_INTERPROCES_H_
 #define _GDK_INTERPROCES_H_
 
-#include "monetdb_config.h"
-
 #ifdef HAVE_FORK
 #include "gdk.h"
 
diff --git a/monetdb5/modules/mal/clients.c b/monetdb5/modules/mal/clients.c
--- a/monetdb5/modules/mal/clients.c
+++ b/monetdb5/modules/mal/clients.c
@@ -540,7 +540,7 @@ str CLTgetUsers(Client cntxt, MalBlkPtr 
 str
 CLTshutdown(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci) {
        str *ret  = getArgReference_str(stk,pci,0);
-       int delay = *getArgReference_int(stk,pci,1);
+       int delay;
        bit force = FALSE;
        int leftover;
        char buf[1024]={"safe to stop last connection"};
@@ -551,11 +551,14 @@ CLTshutdown(Client cntxt, MalBlkPtr mb, 
        (void) mb;
        switch( getArgType(mb,pci,1)){
        case TYPE_bte:
+               delay = *getArgReference_bte(stk,pci,1);
+               break;
        case TYPE_sht:
                delay = *getArgReference_sht(stk,pci,1);
                break;
        default:
                delay = *getArgReference_int(stk,pci,1);
+               break;
        }
 
        if ( cntxt->user != mal_clients[0].user)
diff --git a/monetdb5/optimizer/opt_mergetable.c 
b/monetdb5/optimizer/opt_mergetable.c
--- a/monetdb5/optimizer/opt_mergetable.c
+++ b/monetdb5/optimizer/opt_mergetable.c
@@ -1045,10 +1045,7 @@ mat_group_aggr(MalBlkPtr mb, InstrPtr p,
        ai2 = pushArgument(mb, ai2, getArg(ai1, 0));
        ai2 = pushArgument(mb, ai2, mat[g].mv);
        ai2 = pushArgument(mb, ai2, mat[e].mv);
-       if (isAvg)
-               ai2 = pushBit(mb, ai2, 0); /* do not skip nils */
-       else
-               ai2 = pushBit(mb, ai2, 1); /* skip nils */
+       ai2 = pushBit(mb, ai2, 1); /* skip nils */
        if (getFunctionId(p) != subminRef && getFunctionId(p) != submaxRef)
                ai2 = pushBit(mb, ai2, 1);
        pushInstruction(mb, ai2);
diff --git a/sql/backends/monet5/UDF/pyapi/connection.c 
b/sql/backends/monet5/UDF/pyapi/connection.c
--- a/sql/backends/monet5/UDF/pyapi/connection.c
+++ b/sql/backends/monet5/UDF/pyapi/connection.c
@@ -6,6 +6,7 @@
  * Copyright 1997 - July 2008 CWI, August 2008 - 2017 MonetDB B.V.
  */
 
+#include "monetdb_config.h"
 #include "pyapi.h"
 #include "conversion.h"
 #include "connection.h"
diff --git a/sql/backends/monet5/UDF/pyapi/conversion.c 
b/sql/backends/monet5/UDF/pyapi/conversion.c
--- a/sql/backends/monet5/UDF/pyapi/conversion.c
+++ b/sql/backends/monet5/UDF/pyapi/conversion.c
@@ -1,4 +1,5 @@
 
+#include "monetdb_config.h"
 #include "conversion.h"
 #include "convert_loops.h"
 #include "pytypes.h"
diff --git a/sql/backends/monet5/UDF/pyapi/emit.c 
b/sql/backends/monet5/UDF/pyapi/emit.c
--- a/sql/backends/monet5/UDF/pyapi/emit.c
+++ b/sql/backends/monet5/UDF/pyapi/emit.c
@@ -6,6 +6,7 @@
  * Copyright 1997 - July 2008 CWI, August 2008 - 2017 MonetDB B.V.
  */
 
+#include "monetdb_config.h"
 #include "emit.h"
 #include "conversion.h"
 #include "convert_loops.h"
diff --git a/sql/backends/monet5/UDF/pyapi/formatinput.c 
b/sql/backends/monet5/UDF/pyapi/formatinput.c
--- a/sql/backends/monet5/UDF/pyapi/formatinput.c
+++ b/sql/backends/monet5/UDF/pyapi/formatinput.c
@@ -6,6 +6,7 @@
  * Copyright 1997 - July 2008 CWI, August 2008 - 2017 MonetDB B.V.
  */
 
+#include "monetdb_config.h"
 #include "formatinput.h"
 #include "type_conversion.h"
 
diff --git a/sql/backends/monet5/UDF/pyapi/pyapi.c 
b/sql/backends/monet5/UDF/pyapi/pyapi.c
--- a/sql/backends/monet5/UDF/pyapi/pyapi.c
+++ b/sql/backends/monet5/UDF/pyapi/pyapi.c
@@ -6,6 +6,7 @@
  * Copyright 1997 - July 2008 CWI, August 2008 - 2017 MonetDB B.V.
  */
 
+#include "monetdb_config.h"
 #include "pyapi.h"
 #include "connection.h"
 
diff --git a/sql/backends/monet5/UDF/pyapi/pyheader.h 
b/sql/backends/monet5/UDF/pyapi/pyheader.h
--- a/sql/backends/monet5/UDF/pyapi/pyheader.h
+++ b/sql/backends/monet5/UDF/pyapi/pyheader.h
@@ -16,7 +16,6 @@
 #ifndef _PYHEADER_H_
 #define _PYHEADER_H_
 
-#include "monetdb_config.h"
 #include "mal.h"
 #include "mal_stack.h"
 #include "mal_linker.h"
diff --git a/sql/backends/monet5/UDF/pyapi/pyloader.c 
b/sql/backends/monet5/UDF/pyapi/pyloader.c
--- a/sql/backends/monet5/UDF/pyapi/pyloader.c
+++ b/sql/backends/monet5/UDF/pyapi/pyloader.c
@@ -6,6 +6,7 @@
  * Copyright 1997 - July 2008 CWI, August 2008 - 2017 MonetDB B.V.
  */
 
+#include "monetdb_config.h"
 #include "pyapi.h"
 #include "conversion.h"
 #include "connection.h"
diff --git a/sql/backends/monet5/UDF/pyapi/pytypes.c 
b/sql/backends/monet5/UDF/pyapi/pytypes.c
--- a/sql/backends/monet5/UDF/pyapi/pytypes.c
+++ b/sql/backends/monet5/UDF/pyapi/pytypes.c
@@ -6,6 +6,7 @@
  * Copyright 1997 - July 2008 CWI, August 2008 - 2017 MonetDB B.V.
  */
 
+#include "monetdb_config.h"
 #include "pytypes.h"
 
 bool PyType_IsInteger(int type)
diff --git a/sql/backends/monet5/UDF/pyapi/type_conversion.c 
b/sql/backends/monet5/UDF/pyapi/type_conversion.c
--- a/sql/backends/monet5/UDF/pyapi/type_conversion.c
+++ b/sql/backends/monet5/UDF/pyapi/type_conversion.c
@@ -6,6 +6,7 @@
  * Copyright 1997 - July 2008 CWI, August 2008 - 2017 MonetDB B.V.
  */
 
+#include "monetdb_config.h"
 #include "type_conversion.h"
 #include "unicode.h"
 
diff --git a/sql/backends/monet5/UDF/pyapi/unicode.c 
b/sql/backends/monet5/UDF/pyapi/unicode.c
--- a/sql/backends/monet5/UDF/pyapi/unicode.c
+++ b/sql/backends/monet5/UDF/pyapi/unicode.c
@@ -6,6 +6,7 @@
  * Copyright 1997 - July 2008 CWI, August 2008 - 2017 MonetDB B.V.
  */
 
+#include "monetdb_config.h"
 #include "unicode.h"
 
 #include <string.h>
diff --git a/sql/test/BugTracker-2017/Tests/All 
b/sql/test/BugTracker-2017/Tests/All
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2017/Tests/All
@@ -0,0 +1,2 @@
+shutdown.Bug-6182
+avggroupbysq.Bug-6178
diff --git a/sql/test/BugTracker-2017/Tests/avggroupbysq.Bug-6178.sql 
b/sql/test/BugTracker-2017/Tests/avggroupbysq.Bug-6178.sql
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2017/Tests/avggroupbysq.Bug-6178.sql
@@ -0,0 +1,27 @@
+START TRANSACTION;
+
+CREATE TABLE x (tailnum STRING, arr_delay INTEGER);
+
+COPY 2 RECORDS INTO x FROM STDIN USING DELIMITERS ',','\n','"' NULL as '';
+"N907MQ",
+"N907MQ",191
+
+-- correct result, 191
+SELECT AVG( arr_delay ) FROM x;
+
+-- wrong result, NULL
+SELECT tailnum , AVG( arr_delay ) FROM x GROUP BY tailnum;
+
+-- works fine with MIN
+SELECT tailnum , MIN( arr_delay ) FROM x GROUP BY tailnum;
+
+-- correct again
+SELECT tailnum , AVG( arr_delay ) FROM x WHERE tailnum = 'N907MQ' GROUP BY 
tailnum;
+
+-- wrong again
+SELECT * FROM ( SELECT tailnum , AVG( arr_delay ) FROM x GROUP BY tailnum ) AS 
xxx WHERE tailnum = 'N907MQ';
+
+-- both work fine with MIN
+SELECT tailnum , MIN( arr_delay ) FROM x WHERE tailnum = 'N907MQ' GROUP BY 
tailnum;
+SELECT * FROM ( SELECT tailnum , MIN( arr_delay ) FROM x GROUP BY tailnum ) AS 
xxx WHERE tailnum = 'N907MQ';
+
diff --git a/sql/test/BugTracker-2017/Tests/avggroupbysq.Bug-6178.stable.err 
b/sql/test/BugTracker-2017/Tests/avggroupbysq.Bug-6178.stable.err
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2017/Tests/avggroupbysq.Bug-6178.stable.err
@@ -0,0 +1,35 @@
+stderr of test 'avggroupbysq.Bug-6178` in directory 'sql/test/BugTracker-2017` 
itself:
+
+
+# 18:20:38 >  
+# 18:20:38 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=36572" "--set" 
"mapi_usock=/var/tmp/mtest-8698/.s.monetdb.36572" "--set" "monet_prompt=" 
"--forcemito" 
"--dbpath=/Users/hannes/monetdb-install/var/MonetDB/mTests_sql_test_BugTracker-2017"
 "--set" "embedded_py=true"
+# 18:20:38 >  
+
+# builtin opt  gdk_dbpath = 
/Users/hannes/monetdb-install/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 = 36572
+# cmdline opt  mapi_usock = /var/tmp/mtest-8698/.s.monetdb.36572
+# cmdline opt  monet_prompt = 
+# cmdline opt  gdk_dbpath = 
/Users/hannes/monetdb-install/var/MonetDB/mTests_sql_test_BugTracker-2017
+# cmdline opt  embedded_py = true
+# cmdline opt  gdk_debug = 536870922
+
+# 18:20:38 >  
+# 18:20:38 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-8698" "--port=36572"
+# 18:20:38 >  
+
+
+# 18:20:39 >  
+# 18:20:39 >  "Done."
+# 18:20:39 >  
+
diff --git a/sql/test/BugTracker-2017/Tests/avggroupbysq.Bug-6178.stable.out 
b/sql/test/BugTracker-2017/Tests/avggroupbysq.Bug-6178.stable.out
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2017/Tests/avggroupbysq.Bug-6178.stable.out
@@ -0,0 +1,113 @@
+stdout of test 'avggroupbysq.Bug-6178` in directory 'sql/test/BugTracker-2017` 
itself:
+
+
+# 18:20:38 >  
+# 18:20:38 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=36572" "--set" 
"mapi_usock=/var/tmp/mtest-8698/.s.monetdb.36572" "--set" "monet_prompt=" 
"--forcemito" 
"--dbpath=/Users/hannes/monetdb-install/var/MonetDB/mTests_sql_test_BugTracker-2017"
 "--set" "embedded_py=true"
+# 18:20:38 >  
+
+# MonetDB 5 server v11.25.4
+# This is an unreleased version
+# Serving database 'mTests_sql_test_BugTracker-2017', using 4 threads
+# Compiled for x86_64-apple-darwin16.3.0/64bit with 128bit integers
+# Found 16.000 GiB available main-memory.
+# Copyright (c) 1993-July 2008 CWI.
+# Copyright (c) August 2008-2017 MonetDB B.V., all rights reserved
+# Visit http://www.monetdb.org/ for further information
+# Listening for connection requests on mapi:monetdb://dakar.da.cwi.nl:36572/
+# Listening for UNIX domain connection requests on 
mapi:monetdb:///var/tmp/mtest-8698/.s.monetdb.36572
+# MonetDB/SQL module loaded
+
+
+
+Ready.
+# SQL catalog created, loading sql scripts once
+# loading sql script: 09_like.sql
+# loading sql script: 10_math.sql
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to