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