Changeset: 7e81fdc840d4 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/7e81fdc840d4
Modified Files:
        sql/server/rel_select.c
Branch: default
Log Message:

Merge with Jun2023.


diffs (84 lines):

diff --git a/clients/mapiclient/dump.c b/clients/mapiclient/dump.c
--- a/clients/mapiclient/dump.c
+++ b/clients/mapiclient/dump.c
@@ -810,7 +810,7 @@ dump_type(Mapi mid, stream *toConsole, c
                        space = mnstr_printf(toConsole, "INTERVAL MONTH");
                else
                        fprintf(stderr, "Internal error: unrecognized month 
interval %s\n", c_type_digits);
-       } else if (strlen(c_type) > 4 && strcmp(c_type+3, "_interval") == 0) {
+       } else if (strcmp(c_type, "day_interval") == 0 || strcmp(c_type, 
"sec_interval") == 0) {
                if (strcmp(c_type_digits, "4") == 0)
                        space = mnstr_printf(toConsole, "INTERVAL DAY");
                else if (strcmp(c_type_digits, "5") == 0)
@@ -1874,7 +1874,7 @@ dump_table_data(Mapi mid, const char *sc
                        if (s == NULL)
                                mnstr_printf(toConsole, "NULL");
                        else if (useInserts) {
-                               if (strlen(tp) > 4 && strcmp(tp+3, "_interval") 
== 0) {
+                               if (strcmp(tp, "day_interval") == 0 || 
strcmp(tp, "sec_interval") == 0) {
                                        const char *p = strchr(s, '.');
                                        if (p == NULL)
                                                p = s + strlen(s);
diff --git a/gdk/gdk_posix.c b/gdk/gdk_posix.c
--- a/gdk/gdk_posix.c
+++ b/gdk/gdk_posix.c
@@ -301,22 +301,17 @@ MT_getrss(void)
        /* get RSS on Linux */
        int fd;
 
-       fd = open("/proc/self/stat", O_RDONLY | O_CLOEXEC);
+       fd = open("/proc/self/statm", O_RDONLY | O_CLOEXEC);
        if (fd >= 0) {
-               char buf[1024], *r = buf;
-               ssize_t i, sz = read(fd, buf, 1024);
+               char buf[1024];
+               ssize_t sz = read(fd, buf, sizeof(buf) - 1);
 
                close(fd);
                if (sz > 0) {
-                       for (i = 0; i < 23; i++) {
-                               while (*r && (*r == ' ' || *r == '\t'))
-                                       r++;
-                               while (*r && (*r != ' ' && *r != '\t'))
-                                       r++;
-                       }
-                       while (*r && (*r == ' ' || *r == '\t'))
-                               r++;
-                       return ((size_t) atol(r)) * MT_pagesize();
+                       buf[sz] = 0;
+                       long rss;
+                       if (sscanf(buf, "%*d %ld", &rss) >= 1)
+                               return (size_t) rss * MT_pagesize();
                }
        }
 #endif
diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -2447,6 +2447,8 @@ rel_logical_value_exp(sql_query *query, 
                rs = rel_value_exp(query, rel, ro, f|sql_farg, ek);
                if (!rs)
                        return NULL;
+               if (rs->type == e_atom)
+                       quantifier = 0;
 
                if (!exp_is_rel(ls) && !exp_is_rel(rs) && ls->card < rs->card) {
                        sql_exp *swap = ls; /* has to swap parameters like in 
the rel_logical_exp case */
diff --git a/sql/test/BugTracker-2023/Tests/misc-crashes-7390.test 
b/sql/test/BugTracker-2023/Tests/misc-crashes-7390.test
--- a/sql/test/BugTracker-2023/Tests/misc-crashes-7390.test
+++ b/sql/test/BugTracker-2023/Tests/misc-crashes-7390.test
@@ -163,5 +163,13 @@ SELECT * FROM v0 ORDER BY (SELECT -1)
 statement ok
 drop table v0
 
--- TODO: add remaining 10.sql to 40.sql tests and fix bugs
+-- 10.sql
+statement ok
+CREATE TABLE v0 (v1 INT PRIMARY KEY)
 
+query I
+SELECT DISTINCT (SELECT v1 WHERE (5)) >= ANY(9223372036854775807) FROM v0
+----
+
+
+-- TODO: add remaining 11.sql to 40.sql tests and fix bugs
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to