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
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to