Changeset: 3a51583dfc84 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=3a51583dfc84
Modified Files:
        gdk/gdk_bbp.c
        sql/storage/store.c
Branch: properties
Log Message:

Merged with default


diffs (truncated from 312 to 300 lines):

diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -982,8 +982,14 @@ BBPreadEntries(FILE *fp, unsigned bbpver
                BBP_physical(bid)[sizeof(BBP_physical(bid)) - 1] = 0;
 #endif
                BBP_options(bid) = NULL;
-               if (options)
+               if (options) {
                        BBP_options(bid) = GDKstrdup(options);
+                       if (BBP_options(bid) == NULL) {
+                               BATdestroy(bn);
+                               TRC_CRITICAL(GDK, "GDKstrdup failed\n");
+                               return GDK_FAIL;
+                       }
+               }
                BBP_refs(bid) = 0;
                BBP_lrefs(bid) = 1;     /* any BAT we encounter here is 
persistent, so has a logical reference */
                BBP_desc(bid) = bn;
diff --git a/gdk/gdk_join.c b/gdk/gdk_join.c
--- a/gdk/gdk_join.c
+++ b/gdk/gdk_join.c
@@ -2400,8 +2400,10 @@ mergejoin(BAT **r1p, BAT **r2p, BAT *l, 
                        nr = 0;                                         \
                        if ((!nil_matches || not_in) && is_##TYPE##_nil(v)) { \
                                /* no match */                          \
-                               if (not_in)                             \
+                               if (not_in) {                           \
+                                       lskipped = BATcount(r1) > 0;    \
                                        continue;                       \
+                               }                                       \
                        } else if (hash_cand) {                         \
                                for (rb = HASHget(hsh, hash_##TYPE(hsh, &v)); \
                                     rb != HASHnil(hsh);                \
@@ -2673,8 +2675,10 @@ hashjoin(BAT **r1p, BAT **r2p, BAT *l, B
                        nr = 0;
                        if ((!nil_matches || not_in) && cmp(v, nil) == 0) {
                                /* no match */
-                               if (not_in)
+                               if (not_in) {
+                                       lskipped = BATcount(r1) > 0;
                                        continue;
+                               }
                        } else if (hash_cand) {
                                for (rb = HASHget(hsh, HASHprobe(hsh, v));
                                     rb != HASHnil(hsh);
diff --git a/sql/backends/monet5/sql_rank.c b/sql/backends/monet5/sql_rank.c
--- a/sql/backends/monet5/sql_rank.c
+++ b/sql/backends/monet5/sql_rank.c
@@ -66,10 +66,8 @@ SQLdiff(Client cntxt, MalBlkPtr mb, MalS
                                gdk_code = GDKanalyticaldiff(r, b, c, b->ttype);
                        } else { /* the input is a constant, so the output is 
the previous sql.diff output */
                                assert(b->ttype == TYPE_bit);
-                               if (!(r = COLcopy(b, TYPE_bit, false, 
TRANSIENT))) {
-                                       msg = createException(SQL, "sql.diff", 
SQLSTATE(HY013) MAL_MALLOC_FAIL);
-                                       goto bailout;
-                               }
+                               BBPkeepref(*res = b->batCacheid);
+                               return MAL_SUCCEED;
                        }
                } else {
                        if (!(r = COLnew(b->hseqbase, TYPE_bit, BATcount(b), 
TRANSIENT))) {
diff --git a/sql/test/SQLancer/Tests/sqlancer10.test 
b/sql/test/SQLancer/Tests/sqlancer10.test
--- a/sql/test/SQLancer/Tests/sqlancer10.test
+++ b/sql/test/SQLancer/Tests/sqlancer10.test
@@ -388,18 +388,171 @@ query T rowsort
 select t2.c3 from t2 left join (select distinct least(lower('䙕<x?L!'), 
substr(t2.c3, t2.c2, t2.c4)) from t2, t1 where (t2.c0) = false) as sub0 on 
t2.c0 where
 case when true then t2.c3 when t2.c0 then t2.c3 when t2.c0 then t2.c3 end <> 
all(values (greatest('jG', '}')), (splitpart('薍噥', '', 6)), (greatest('', 
'n8駞Rr')))
 ----
-*F᢬#W\t7.#
-苌RM2o>+Ꮉ
-TRUE
-0.6612383260040383
-1.0
+*F@#W@7.#
+.9E'G.F_&
 0.27948064932943084
 0.27948064932943084
 0.27948064932943084
 0.27948064932943084
+0.6612383260040383
+1.0
+@RM2o>+@
 CB
-.9E'G.F_&
+TRUE
 
 statement ok
 ROLLBACK
 
+statement ok
+START TRANSACTION
+
+statement ok
+CREATE TABLE "t0" ("c0" INTEGER,"c1" BOOLEAN NOT NULL,"c3" CHARACTER LARGE 
OBJECT,CONSTRAINT "t0_c1_pkey" PRIMARY KEY ("c1"))
+
+statement ok
+COPY 2 RECORDS INTO "t0" FROM stdin USING DELIMITERS E'\t',E'\n','"'
+<COPY_INTO_DATA>
+0      false   ""
+NULL   true    "A8TW"
+
+statement ok
+CREATE TABLE "t1" ("c1" BOOLEAN,"c3" BOOLEAN)
+
+statement ok
+COPY 18 RECORDS INTO "t1" FROM stdin USING DELIMITERS E'\t',E'\n','"'
+<COPY_INTO_DATA>
+false  false
+false  false
+NULL   false
+true   NULL
+true   true
+false  false
+false  false
+true   NULL
+true   false
+false  false
+false  false
+NULL   NULL
+NULL   true
+NULL   true
+NULL   true
+NULL   false
+NULL   true
+NULL   false
+
+statement ok
+CREATE TABLE "t2" ("c3" DECIMAL(18,3),"c2" TINYINT)
+
+statement ok
+COPY 15 RECORDS INTO "t2" FROM stdin USING DELIMITERS E'\t',E'\n','"'
+<COPY_INTO_DATA>
+0.046  9
+0.046  9
+0.046  9
+0.046  9
+0.046  9
+0.046  9
+0.046  9
+0.046  9
+0.046  9
+NULL   0
+0.046  9
+0.046  9
+0.046  9
+0.046  9
+NULL   2
+
+query I rowsort
+SELECT 1 FROM t1 RIGHT OUTER JOIN (SELECT 2) AS sub0 ON least((SELECT true 
WHERE FALSE), true) WHERE NOT EXISTS ((SELECT 'b' WHERE FALSE) UNION ALL 
(SELECT 'a'))
+----
+
+
+query T rowsort
+SELECT ALL t1.c1 FROM t0, t1 RIGHT OUTER JOIN ((SELECT DISTINCT ((least(6, 
529595761))-(least(4, 1032827696))), least(-859534381, 
0.01807380825433357873777140412130393087863922119140625)
+FROM t0, t1 WHERE t0.c1 GROUP BY t1.c3) EXCEPT ALL (SELECT ALL - (COALESCE(2, 
0.78330755, 0.6467953977457632230851913845981471240520477294921875, 1)), - 
(0.24474563528854787) FROM t0, t1 WHERE t1.c3)) AS sub0 ON 
+least(((SELECT ALL l2t0.c1 FROM t0 AS l2t0, t2 AS l2t2, t1 AS l2t1 WHERE 
FALSE) UNION ALL (SELECT DISTINCT l2t0.c1 FROM t0 AS l2t0 WHERE l2t0.c1)), 
(t1.c3) BETWEEN ASYMMETRIC (t1.c1) AND (t1.c1)) WHERE
+NOT EXISTS ((SELECT DISTINCT NULLIF('0.9825037007815074', 'sqR]&'), 20 WHERE 
FALSE) UNION ALL (SELECT DISTINCT NULLIF(l1t0.c3, l1t0.c3), - (4) FROM t0 AS 
l1t0 WHERE l1t0.c1))
+----
+
+
+query I rowsort
+SELECT CAST(SUM(count) AS BIGINT) FROM (SELECT CAST(NOT EXISTS ((SELECT 
DISTINCT NULLIF('0.9825037007815074', 'sqR]&'), 20 WHERE FALSE) UNION ALL 
(SELECT DISTINCT NULLIF(l1t0.c3, l1t0.c3), - (4) FROM
+t0 AS l1t0 WHERE l1t0.c1)) AS INT) as count FROM t0, t1 RIGHT OUTER JOIN 
((SELECT DISTINCT ((least(6, 529595761))-(least(4, 1032827696))), 
least(-859534381, 0.01807380825433357873777140412130393087863922119140625)
+FROM t0, t1 WHERE t0.c1 GROUP BY t1.c3) EXCEPT ALL (SELECT ALL - (COALESCE(2, 
0.78330755, 0.6467953977457632230851913845981471240520477294921875, 1)), - 
(0.24474563528854787) FROM t0, t1 WHERE t1.c3)) AS sub0
+ON least(((SELECT l2t0.c1 FROM t0 AS l2t0, t2 AS l2t2, t1 AS l2t1 WHERE FALSE) 
UNION ALL (SELECT DISTINCT l2t0.c1 FROM t0 AS l2t0 WHERE l2t0.c1)), (t1.c3) 
BETWEEN ASYMMETRIC (t1.c1) AND (t1.c1))) as res
+----
+0
+
+statement ok
+ROLLBACK
+
+statement ok
+START TRANSACTION
+
+statement ok
+CREATE TABLE "sys"."t0" ("c0" VARCHAR(335),"c2" DECIMAL(18,3),"c3" CHARACTER 
LARGE OBJECT)
+
+statement ok
+COPY 12 RECORDS INTO "sys"."t0" FROM stdin USING DELIMITERS E'\t',E'\n','"'
+<COPY_INTO_DATA>
+NULL   NULL    "9"
+"-5733674980"  NULL    "9"
+NULL   2055375593.000  "9"
+NULL   0.993   "9"
+NULL   0.413   "9"
+NULL   NULL    "9"
+NULL   NULL    "9"
+"zDON唄"        NULL    NULL
+NULL   1.000   NULL
+NULL   0.000   NULL
+NULL   0.002   NULL
+NULL   5.000   NULL
+
+statement ok
+CREATE TABLE "sys"."t1" ("c0" VARCHAR(335),"c1" BIGINT,"c3" DECIMAL(18,3),"c4" 
BOOLEAN,"c5" BOOLEAN)
+
+statement ok
+COPY 11 RECORDS INTO "sys"."t1" FROM stdin USING DELIMITERS E'\t',E'\n','"'
+<COPY_INTO_DATA>
+NULL   NULL    0.707   NULL    NULL
+NULL   NULL    0.265   NULL    NULL
+NULL   NULL    0.888   NULL    NULL
+NULL   NULL    0.026   NULL    NULL
+"8"    NULL    NULL    false   false
+"'"    404410629       NULL    false   false
+"FxH델洓H"       6       NULL    true    true
+"E"    1426753368      NULL    NULL    false
+NULL   NULL    NULL    NULL    false
+NULL   NULL    NULL    NULL    true
+NULL   NULL    NULL    NULL    true
+
+statement ok
+CREATE TABLE "sys"."t2" ("c1" BIGINT NOT NULL)
+
+statement ok
+COPY 5 RECORDS INTO "sys"."t2" FROM stdin USING DELIMITERS E'\t',E'\n','"'
+<COPY_INTO_DATA>
+1
+1
+8
+1
+0
+
+query I rowsort
+SELECT 1 FROM t0, t1 WHERE least(CASE WHEN t1.c4 THEN t1.c4 WHEN t1.c5 THEN 
t1.c5 END, true)
+---
+132 rows in the output. After getting the right result I will approve the hash
+
+query T rowsort
+SELECT t1.c3 FROM t2, t0, t1 WHERE least(CASE WHEN t1.c4 THEN t1.c4 WHEN t1.c5 
THEN t1.c5 WHEN t1.c5 THEN t1.c4 ELSE t1.c4 END, ((t1.c0)NOT LIKE(t1.c0)))
+----
+120 rows in the output. After getting the right result I will approve the hash
+
+query I rowsort
+SELECT CAST(SUM(count) AS BIGINT) FROM (SELECT CAST(least(CASE WHEN t1.c4 THEN 
t1.c4 WHEN t1.c5 THEN t1.c5 WHEN t1.c5 THEN t1.c4 ELSE t1.c4 END, ((t1.c0)NOT 
LIKE(t1.c0))) AS INT) as count FROM t2, t0, t1) as res
+----
+120
+
+statement ok
+ROLLBACK
+
diff --git a/tools/merovingian/daemon/merovingian.c 
b/tools/merovingian/daemon/merovingian.c
--- a/tools/merovingian/daemon/merovingian.c
+++ b/tools/merovingian/daemon/merovingian.c
@@ -655,14 +655,9 @@ main(int argc, char *argv[])
        }
        host = kv->val;
 
-       if (strncmp(host, "127.0.0.1", strlen("127.0.0.1")) == 0 ||
-               strncmp(host, "0.0.0.0", strlen("0.0.0.0")) == 0) {
-               use_ipv6 = false;
-       } else {
-               use_ipv6 = true;
-       }
+       use_ipv6 = (strcmp(host, "127.0.0.1") != 0 && strcmp(host, "0.0.0.0") 
!= 0);
 
-       if (strncmp(host, "all", strlen("all")) == 0) {
+       if (strcmp(host, "all") == 0) {
                host = NULL;
        }
 
diff --git a/tools/merovingian/daemon/monetdbd.1.in 
b/tools/merovingian/daemon/monetdbd.1.in
--- a/tools/merovingian/daemon/monetdbd.1.in
+++ b/tools/merovingian/daemon/monetdbd.1.in
@@ -176,16 +176,36 @@ This property specifies which TCP port
 .I monetdbd
 should listen to for connection requests.  Defaults to 50000.
 .TP
-.B ipv6
-This property forces
-.I monetdbd
-to bind connections on IPv6 addresses only.
-Defaults to false.
+.B listenaddr
+This property specifies an address that is allowed to connect to the
+server.
+The following possibilities exist:
+.RS
+.TP
+.B localhost
+The server only listens on the IPv4 and IPv6 loopback interface (if
+available).  This is the default.
+.TP
+.B 127.0.0.1
+The server only listens on the IPv4 loopback interface.
 .TP
-.B listenaddr
-This property specifies an address that is allowed to connect to the server.
-The user can specify one IP(v6) address, or use the 0.0.0.0 notation to allow
-connections from everywhere. Defaults to localhost (127.0.0.1).
+.B ::1
+The server only listens on the IPv6 loopback interface.
+.TP
+.B all
+The server listens on all available IPv4 and IPv6 interfaces.
+.TP
+.B 0.0.0.0
+The server listens on all available IPv4 interfaces.
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to