Changeset: ddf15f063d69 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ddf15f063d69
Added Files:
sql/test/BugTracker-2018/Tests/singleton-stddev.Bug-6627.sql
sql/test/BugTracker-2018/Tests/singleton-stddev.Bug-6627.stable.err
sql/test/BugTracker-2018/Tests/singleton-stddev.Bug-6627.stable.out
Modified Files:
gdk/gdk.h
gdk/gdk_aggr.c
gdk/gdk_join.c
gdk/gdk_private.h
sql/test/BugTracker-2018/Tests/All
testing/Mfilter.py
Branch: default
Log Message:
Merge with Mar2018 branch.
diffs (truncated from 341 to 300 lines):
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -1277,7 +1277,7 @@ bat_iterator(BAT *b)
* the association dimension are not permitted.
*
* The persistency indicator tells the retention period of BATs. The
- * system support three modes: PERSISTENT and TRANSIENT.
+ * system support two modes: PERSISTENT and TRANSIENT.
* The PERSISTENT BATs are automatically saved upon session boundary
* or transaction commit. TRANSIENT BATs are removed upon transaction
* boundary. All BATs are initially TRANSIENT unless their mode is
diff --git a/gdk/gdk_aggr.c b/gdk/gdk_aggr.c
--- a/gdk/gdk_aggr.c
+++ b/gdk/gdk_aggr.c
@@ -3108,7 +3108,8 @@ dogroupstdev(BAT **avgb, BAT *b, BAT *g,
if ((e == NULL ||
(BATcount(e) == BATcount(b) && e->hseqbase == b->hseqbase)) &&
- (BATtdense(g) || (g->tkey && g->tnonil))) {
+ (BATtdense(g) || (g->tkey && g->tnonil)) &&
+ (issample || b->tnonil)) {
/* trivial: singleton groups, so all results are equal
* to zero (population) or nil (sample) */
dbl v = issample ? dbl_nil : 0;
@@ -3193,7 +3194,8 @@ dogroupstdev(BAT **avgb, BAT *b, BAT *g,
} else {
GDKfree(mean);
}
- nils += nils2;
+ if (issample)
+ nils += nils2;
GDKfree(delta);
GDKfree(m2);
GDKfree(cnts);
diff --git a/gdk/gdk_join.c b/gdk/gdk_join.c
--- a/gdk/gdk_join.c
+++ b/gdk/gdk_join.c
@@ -3874,6 +3874,23 @@ BATjoin(BAT **r1p, BAT **r2p, BAT *l, BA
rsize = (BUN) (BATcount(r) * (Tsize(r)) + (r->tvheap ? r->tvheap->size
: 0) + 2 * sizeof(BUN));
mem_size = GDK_mem_maxsize / (GDKnr_threads ? GDKnr_threads : 1);
+ if (lcount == 1 || (BATordered(l) && BATordered_rev(l))) {
+ /* single value to join, use select */
+ return selectjoin(r1, r2, l, r, sl, sr, nil_matches, t0, false);
+ } else if (rcount == 1 || (BATordered(r) && BATordered_rev(r))) {
+ /* single value to join, use select */
+ return selectjoin(r2, r1, r, l, sr, sl, nil_matches, t0, true);
+ } else if (BATtdense(r) && (sr == NULL || BATtdense(sr))) {
+ /* use special implementation for dense right-hand side */
+ return mergejoin_void(r1, r2, l, r, sl, sr, false, false, t0,
false);
+ } else if (BATtdense(l) && (sl == NULL || BATtdense(sl))) {
+ /* use special implementation for dense right-hand side */
+ return mergejoin_void(r2, r1, r, l, sr, sl, false, false, t0,
true);
+ } else if ((BATordered(l) || BATordered_rev(l)) &&
+ (BATordered(r) || BATordered_rev(r))) {
+ /* both sorted */
+ return mergejoin(r1, r2, l, r, sl, sr, nil_matches, false,
false, false, maxsize, t0, false);
+ }
if (sl == NULL) {
lhash = BATcheckhash(l);
if (!lhash && (parent = VIEWtparent(l)) != 0) {
@@ -3906,23 +3923,7 @@ BATjoin(BAT **r1p, BAT **r2p, BAT *l, BA
} else if (BATtdense(sr) && BATcheckhash(r)) {
rhash = BATcount(r) / ((size_t *) r->thash->heap.base)[5] *
lcount < lcount + rcount;
}
- if (lcount == 1 || (BATordered(l) && BATordered_rev(l))) {
- /* single value to join, use select */
- return selectjoin(r1, r2, l, r, sl, sr, nil_matches, t0, false);
- } else if (rcount == 1 || (BATordered(r) && BATordered_rev(r))) {
- /* single value to join, use select */
- return selectjoin(r2, r1, r, l, sr, sl, nil_matches, t0, true);
- } else if (BATtdense(r) && (sr == NULL || BATtdense(sr))) {
- /* use special implementation for dense right-hand side */
- return mergejoin_void(r1, r2, l, r, sl, sr, false, false, t0,
false);
- } else if (BATtdense(l) && (sl == NULL || BATtdense(sl))) {
- /* use special implementation for dense right-hand side */
- return mergejoin_void(r2, r1, r, l, sr, sl, false, false, t0,
true);
- } else if ((BATordered(l) || BATordered_rev(l)) &&
- (BATordered(r) || BATordered_rev(r))) {
- /* both sorted */
- return mergejoin(r1, r2, l, r, sl, sr, nil_matches, false,
false, false, maxsize, t0, false);
- } else if (lhash && rhash) {
+ if (lhash && rhash) {
/* both have hash, smallest on right */
swap = lcount < rcount;
reason = "both have hash";
diff --git a/gdk/gdk_private.h b/gdk/gdk_private.h
--- a/gdk/gdk_private.h
+++ b/gdk/gdk_private.h
@@ -229,10 +229,11 @@ void BBPdump(void); /* never called: fo
__attribute__((__visibility__("hidden")));
/* some macros to help print info about BATs when using ALGODEBUG */
-#define ALGOBATFMT "%s#" BUNFMT "[%s]%s%s%s%s%s%s%s%s"
+#define ALGOBATFMT "%s#" BUNFMT "[%s]%s%s%s%s%s%s%s%s%s"
#define ALGOBATPAR(b) BATgetId(b), \
BATcount(b), \
ATOMname(b->ttype), \
+ b->batPersistence == PERSISTENT ? "P" : isVIEW(b) ? "V"
: "T", \
BATtdense(b) ? "D" : "", \
b->tsorted ? "S" : "", \
b->trevsorted ? "R" : "", \
@@ -242,7 +243,7 @@ void BBPdump(void); /* never called: fo
b->torderidx ? "O" : "", \
b->timprints ? "I" : ""
/* use ALGOOPTBAT* when BAT is optional (can be NULL) */
-#define ALGOOPTBATFMT "%s%s" BUNFMT "%s%s%s%s%s%s%s%s%s%s%s"
+#define ALGOOPTBATFMT "%s%s" BUNFMT "%s%s%s%s%s%s%s%s%s%s%s%s"
#define ALGOOPTBATPAR(b) \
b ? BATgetId(b) : "", \
b ? "#" : "", \
@@ -250,6 +251,7 @@ void BBPdump(void); /* never called: fo
b ? "[" : "", \
b ? ATOMname(b->ttype) : "", \
b ? "]" : "", \
+ b ? b->batPersistence == PERSISTENT ? "P" : isVIEW(b) ?
"V" : "T" : "", \
b && BATtdense(b) ? "D" : "", \
b && b->tsorted ? "S" : "", \
b && b->trevsorted ? "R" : "", \
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
@@ -74,4 +74,5 @@ remote-table-where-not-equal.Bug-6621
groupby_having_orderby_count.Bug-6624
or_in_subselect.Bug-6625
strptime.Bug-6626
+singleton-stddev.Bug-6627
create_table_if_not_exists_returns_42000.Bug-6629
diff --git a/sql/test/BugTracker-2018/Tests/singleton-stddev.Bug-6627.sql
b/sql/test/BugTracker-2018/Tests/singleton-stddev.Bug-6627.sql
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2018/Tests/singleton-stddev.Bug-6627.sql
@@ -0,0 +1,23 @@
+START TRANSACTION;
+
+CREATE TABLE "sys"."unitTestDontDelete" (
+ "A" VARCHAR(255),
+ "B" BIGINT,
+ "C" DOUBLE,
+ "D" TIMESTAMP
+);
+INSERT INTO "sys"."unitTestDontDelete" VALUES (NULL, NULL, NULL, NULL);
+INSERT INTO "sys"."unitTestDontDelete" VALUES ('Cat1', 0, 0.5, '2013-06-10
11:10:10.000000');
+INSERT INTO "sys"."unitTestDontDelete" VALUES ('Cat2', 1, 1.5, '2013-06-11
12:11:11.000000');
+INSERT INTO "sys"."unitTestDontDelete" VALUES ('Cat1', 2, 2.5, '2013-06-12
13:12:12.000000');
+INSERT INTO "sys"."unitTestDontDelete" VALUES ('Cat2', 3, 3.5, '2013-06-13
14:13:13.000000');
+INSERT INTO "sys"."unitTestDontDelete" VALUES ('Cat1', 4, 4.5, '2013-06-14
15:14:14.000000');
+INSERT INTO "sys"."unitTestDontDelete" VALUES ('Cat2', 5, 5.5, '2013-06-15
16:15:15.000000');
+INSERT INTO "sys"."unitTestDontDelete" VALUES ('Cat1', 6, 6.5, '2013-06-16
17:16:16.000000');
+INSERT INTO "sys"."unitTestDontDelete" VALUES ('Cat2', 7, 7.5, '2013-06-17
18:17:17.000000');
+INSERT INTO "sys"."unitTestDontDelete" VALUES ('Cat1', 8, 8.5, '2013-06-18
19:18:18.000000');
+
+select stddev_pop("C"), "A" from "unitTestDontDelete" group by "A";
+select stddev_pop("C"), "A", "B" from "unitTestDontDelete" group by "A", "B";
+
+ROLLBACK;
diff --git
a/sql/test/BugTracker-2018/Tests/singleton-stddev.Bug-6627.stable.err
b/sql/test/BugTracker-2018/Tests/singleton-stddev.Bug-6627.stable.err
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2018/Tests/singleton-stddev.Bug-6627.stable.err
@@ -0,0 +1,37 @@
+stderr of test 'singleton-stddev.Bug-6627` in directory
'sql/test/BugTracker-2018` itself:
+
+
+# 14:32:41 >
+# 14:32:41 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set"
"mapi_open=true" "--set" "mapi_port=39510" "--set"
"mapi_usock=/var/tmp/mtest-3396/.s.monetdb.39510" "--set" "monet_prompt="
"--forcemito"
"--dbpath=/ufs/sjoerd/@Monet-stable/var/MonetDB/mTests_sql_test_BugTracker-2018"
"--set" "embedded_r=yes" "--set" "embedded_py=true" "--set" "embedded_c=true"
+# 14:32:41 >
+
+# builtin opt gdk_dbpath = /ufs/sjoerd/@Monet-stable/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 = 39510
+# cmdline opt mapi_usock = /var/tmp/mtest-3396/.s.monetdb.39510
+# cmdline opt monet_prompt =
+# cmdline opt gdk_dbpath =
/ufs/sjoerd/@Monet-stable/var/MonetDB/mTests_sql_test_BugTracker-2018
+# cmdline opt embedded_r = yes
+# cmdline opt embedded_py = true
+# cmdline opt embedded_c = true
+# cmdline opt gdk_debug = 553648138
+
+# 14:32:41 >
+# 14:32:41 > "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e"
"--host=/var/tmp/mtest-3396" "--port=39510"
+# 14:32:41 >
+
+
+# 14:32:42 >
+# 14:32:42 > "Done."
+# 14:32:42 >
+
diff --git
a/sql/test/BugTracker-2018/Tests/singleton-stddev.Bug-6627.stable.out
b/sql/test/BugTracker-2018/Tests/singleton-stddev.Bug-6627.stable.out
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2018/Tests/singleton-stddev.Bug-6627.stable.out
@@ -0,0 +1,125 @@
+stdout of test 'singleton-stddev.Bug-6627` in directory
'sql/test/BugTracker-2018` itself:
+
+
+# 14:32:41 >
+# 14:32:41 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set"
"mapi_open=true" "--set" "mapi_port=39510" "--set"
"mapi_usock=/var/tmp/mtest-3396/.s.monetdb.39510" "--set" "monet_prompt="
"--forcemito"
"--dbpath=/ufs/sjoerd/@Monet-stable/var/MonetDB/mTests_sql_test_BugTracker-2018"
"--set" "embedded_r=yes" "--set" "embedded_py=true" "--set" "embedded_c=true"
+# 14:32:41 >
+
+# MonetDB 5 server v11.29.8
+# This is an unreleased version
+# Serving database 'mTests_sql_test_BugTracker-2018', using 8 threads
+# Compiled for x86_64-pc-linux-gnu/64bit with 128bit integers
+# Found 62.694 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://methuselah.da.cwi.nl:39510/
+# Listening for UNIX domain connection requests on
mapi:monetdb:///var/tmp/mtest-3396/.s.monetdb.39510
+# MonetDB/GIS module loaded
+# MonetDB/SQL module loaded
+# MonetDB/Python2 module loaded
+# MonetDB/R module loaded
+
+Ready.
+# SQL catalog created, loading sql scripts once
+# loading sql script: 09_like.sql
+# loading sql script: 10_math.sql
+# loading sql script: 11_times.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_functions.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: 26_sysmon.sql
+# loading sql script: 27_rejects.sql
+# loading sql script: 39_analytics.sql
+# loading sql script: 39_analytics_hge.sql
+# loading sql script: 40_geom.sql
+# loading sql script: 40_json.sql
+# loading sql script: 40_json_hge.sql
+# loading sql script: 41_md5sum.sql
+# loading sql script: 45_uuid.sql
+# loading sql script: 46_profiler.sql
+# loading sql script: 51_sys_schema_extension.sql
+# loading sql script: 60_wlcr.sql
+# loading sql script: 72_fits.sql
+# loading sql script: 74_netcdf.sql
+# loading sql script: 75_lidar.sql
+# loading sql script: 75_shp.sql
+# loading sql script: 75_storagemodel.sql
+# loading sql script: 80_statistics.sql
+# loading sql script: 80_udf.sql
+# loading sql script: 80_udf_hge.sql
+# loading sql script: 85_bam.sql
+# loading sql script: 90_generator.sql
+# loading sql script: 90_generator_hge.sql
+# loading sql script: 99_system.sql
+
+# 14:32:41 >
+# 14:32:41 > "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e"
"--host=/var/tmp/mtest-3396" "--port=39510"
+# 14:32:41 >
+
+#START TRANSACTION;
+#CREATE TABLE "sys"."unitTestDontDelete" (
+# "A" VARCHAR(255),
+# "B" BIGINT,
+# "C" DOUBLE,
+# "D" TIMESTAMP
+#);
+#INSERT INTO "sys"."unitTestDontDelete" VALUES (NULL, NULL, NULL, NULL);
+[ 1 ]
+#INSERT INTO "sys"."unitTestDontDelete" VALUES ('Cat1', 0, 0.5, '2013-06-10
11:10:10.000000');
+[ 1 ]
+#INSERT INTO "sys"."unitTestDontDelete" VALUES ('Cat2', 1, 1.5, '2013-06-11
12:11:11.000000');
+[ 1 ]
+#INSERT INTO "sys"."unitTestDontDelete" VALUES ('Cat1', 2, 2.5, '2013-06-12
13:12:12.000000');
+[ 1 ]
+#INSERT INTO "sys"."unitTestDontDelete" VALUES ('Cat2', 3, 3.5, '2013-06-13
14:13:13.000000');
+[ 1 ]
+#INSERT INTO "sys"."unitTestDontDelete" VALUES ('Cat1', 4, 4.5, '2013-06-14
15:14:14.000000');
+[ 1 ]
+#INSERT INTO "sys"."unitTestDontDelete" VALUES ('Cat2', 5, 5.5, '2013-06-15
16:15:15.000000');
+[ 1 ]
+#INSERT INTO "sys"."unitTestDontDelete" VALUES ('Cat1', 6, 6.5, '2013-06-16
17:16:16.000000');
+[ 1 ]
+#INSERT INTO "sys"."unitTestDontDelete" VALUES ('Cat2', 7, 7.5, '2013-06-17
18:17:17.000000');
+[ 1 ]
+#INSERT INTO "sys"."unitTestDontDelete" VALUES ('Cat1', 8, 8.5, '2013-06-18
19:18:18.000000');
+[ 1 ]
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list