Changeset: 3305f108809f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=3305f108809f
Added Files:
        sql/test/BugTracker-2019/Tests/orderby-alias-expr.Bug-6799.sql
        sql/test/BugTracker-2019/Tests/orderby-alias-expr.Bug-6799.stable.err
        sql/test/BugTracker-2019/Tests/orderby-alias-expr.Bug-6799.stable.out
        
sql/test/BugTracker-2019/Tests/prepared-select-with-error-causes-hang.Bug-6761.sql
        
sql/test/BugTracker-2019/Tests/prepared-select-with-error-causes-hang.Bug-6761.stable.err
        
sql/test/BugTracker-2019/Tests/prepared-select-with-error-causes-hang.Bug-6761.stable.out
        sql/test/miscellaneous/Tests/deallocate.sql
        sql/test/miscellaneous/Tests/deallocate.stable.err
        sql/test/miscellaneous/Tests/deallocate.stable.out
Modified Files:
        .hgtags
        MonetDB.spec
        NT/monetdb_config.h.in
        NT/rules.msc
        clients/mapiclient/ReadlineTools.c
        clients/mapiclient/mclient.c
        clients/mapiclient/mhelp.c
        clients/mapilib/mapi.rc
        clients/odbc/driver/ODBCConvert.c
        clients/odbc/driver/driver.rc
        clients/odbc/winsetup/setup.rc
        configure.ag
        debian/changelog
        gdk/libbat.rc
        geom/monetdb5/geom.c
        libversions
        monetdb5/mal/mal_dataflow.c
        monetdb5/mal/mal_instruction.h
        monetdb5/mal/mal_listing.c
        monetdb5/mal/mal_module.c
        monetdb5/mal/mal_parser.c
        monetdb5/modules/mal/orderidx.c
        monetdb5/optimizer/opt_aliases.c
        monetdb5/optimizer/opt_candidates.c
        monetdb5/optimizer/opt_coercion.c
        monetdb5/optimizer/opt_commonTerms.c
        monetdb5/optimizer/opt_constants.c
        monetdb5/optimizer/opt_costModel.c
        monetdb5/optimizer/opt_dataflow.c
        monetdb5/optimizer/opt_deadcode.c
        monetdb5/optimizer/opt_emptybind.c
        monetdb5/optimizer/opt_evaluate.c
        monetdb5/optimizer/opt_garbageCollector.c
        monetdb5/optimizer/opt_generator.c
        monetdb5/optimizer/opt_inline.c
        monetdb5/optimizer/opt_jit.c
        monetdb5/optimizer/opt_json.c
        monetdb5/optimizer/opt_macro.c
        monetdb5/optimizer/opt_matpack.c
        monetdb5/optimizer/opt_mergetable.c
        monetdb5/optimizer/opt_mitosis.c
        monetdb5/optimizer/opt_multiplex.c
        monetdb5/optimizer/opt_oltp.c
        monetdb5/optimizer/opt_postfix.c
        monetdb5/optimizer/opt_profiler.c
        monetdb5/optimizer/opt_projectionpath.c
        monetdb5/optimizer/opt_pushselect.c
        monetdb5/optimizer/opt_querylog.c
        monetdb5/optimizer/opt_reduce.c
        monetdb5/optimizer/opt_remap.c
        monetdb5/optimizer/opt_remoteQueries.c
        monetdb5/optimizer/opt_reorder.c
        monetdb5/optimizer/opt_volcano.c
        monetdb5/optimizer/opt_wlc.c
        monetdb5/tools/libmonetdb5.rc
        sql/ChangeLog
        sql/backends/monet5/sql_execute.c
        sql/backends/monet5/sql_scenario.c
        sql/backends/monet5/sql_upgrades.c
        sql/include/sql_relation.h
        sql/scripts/51_sys_schema_extension.sql
        sql/server/rel_unnest.c
        sql/server/sql_mvc.c
        sql/server/sql_mvc.h
        sql/server/sql_parser.y
        sql/server/sql_qc.c
        sql/server/sql_qc.h
        sql/server/sql_scan.c
        sql/test/BugTracker-2019/Tests/All
        sql/test/BugTracker-2019/Tests/date_trunc.sql
        sql/test/BugTracker-2019/Tests/date_trunc.stable.out
        sql/test/BugTracker-2019/Tests/date_trunc_bulk.sql
        sql/test/BugTracker-2019/Tests/date_trunc_bulk.stable.out
        sql/test/mergetables/Tests/sqlsmith-exists.sql
        sql/test/mergetables/Tests/sqlsmith-exists.stable.out
        sql/test/miscellaneous/Tests/All
        vertoo.data
Branch: gdk_tracer
Log Message:

Merge with default


diffs (truncated from 3640 to 300 lines):

diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -742,3 +742,5 @@ 90486f8f87ff0602f3ab143c629ba0aed2153d64
 13efc12c95a279d41dbc4440369defc1d7c21d0f Nov2019_3
 90486f8f87ff0602f3ab143c629ba0aed2153d64 Nov2019_release
 13efc12c95a279d41dbc4440369defc1d7c21d0f Nov2019_release
+fffd3aabeae5e2c5b535179471e5730742962a76 Nov2019_5
+fffd3aabeae5e2c5b535179471e5730742962a76 Nov2019_SP1_release
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -114,7 +114,7 @@ Group: Applications/Databases
 License: MPLv2.0
 URL: https://www.monetdb.org/
 BugURL: https://bugs.monetdb.org/
-Source: 
https://www.monetdb.org/downloads/sources/Nov2019/%{name}-%{version}.tar.bz2
+Source: 
https://www.monetdb.org/downloads/sources/Nov2019-SP1/%{name}-%{version}.tar.bz2
 
 # we need systemd for the _unitdir macro to exist
 # we need checkpolicy and selinux-policy-devel for the SELinux policy
@@ -1061,6 +1061,27 @@ fi
 %postun -p /sbin/ldconfig
 
 %changelog
+* Thu Dec 12 2019 Sjoerd Mullender <sjo...@acm.org> - 11.35.5-20191212
+- Rebuilt.
+- BZ#6723: columns aliases duplicates should not be allowed. automatic
+  aliasing required.
+- BZ#6724: Prepare confuses types when more than one argument is used
+- BZ#6726: Python aggregation does not create aggr_group when aggregating
+  over all rows
+- BZ#6765: GRANT SELECT privilege on a subset of table columns results
+  in access denied error when selecting the same columns from the table
+- BZ#6790: Count distinct giving wrong results
+- BZ#6791: str_to_time('11:40', '%H:%M') creates wrong time value
+- BZ#6792: JSON path compiler accepts invalid input
+- BZ#6793: cast(interval second value to int or decimal) is wrong (by
+  a factor of 1000), cast(interval month value to decimal or floating
+  point) fails
+- BZ#6794: external name fits.listdir not bound (sys.listdir) Fatal
+  error during initialization:
+- BZ#6796: Incorrect crash time reported by monetdb tool after crash
+  of mserver5
+- BZ#6798: json.text off by one error
+
 * Mon Nov 25 2019 Sjoerd Mullender <sjo...@acm.org> - 11.35.3-20191125
 - Rebuilt.
 - BZ#3533: SQL aggregate functions avg(), sum() and median() return an
diff --git a/clients/mapiclient/ReadlineTools.c 
b/clients/mapiclient/ReadlineTools.c
--- a/clients/mapiclient/ReadlineTools.c
+++ b/clients/mapiclient/ReadlineTools.c
@@ -86,7 +86,6 @@ sql_tablename_generator(const char *text
 static char *
 sql_command_generator(const char *text, int state)
 {
-
        static int idx, len;
        const char *name;
 
@@ -95,20 +94,14 @@ sql_command_generator(const char *text, 
                len = strlen(text);
        }
 
-
        while ((name = sql_commands[idx++])) {
-#ifdef HAVE_STRNCASECMP
                if (strncasecmp(name, text, len) == 0)
-#else
-               if (strncmp(name, text, len) == 0)
-#endif
                        return strdup(name);
        }
 
        return NULL;
 }
 
-
 static char **
 sql_completion(const char *text, int start, int end)
 {
@@ -224,11 +217,7 @@ mal_command_generator(const char *text, 
        printf("currentline:%s\n",rl_line_buffer); */
 
        while (mal_commands[idx] && (name = mal_commands[idx++])) {
-#ifdef HAVE_STRNCASECMP
                if (strncasecmp(name, text, len) == 0)
-#else
-               if (strncmp(name, text, len) == 0)
-#endif
                        return strdup(name);
        }
        /* try the server to answer */
diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c
--- a/clients/mapiclient/mclient.c
+++ b/clients/mapiclient/mclient.c
@@ -2451,22 +2451,41 @@ doFile(Mapi mid, stream *fp, bool useins
                        case '\0':
                                break;
                        case 'e':
-                               /* a bit of a hack for prepare/exec
-                                * tests: replace "exec **" with the
-                                * ID of the last prepared
-                                * statement */
-                               if (mode == SQL &&
-                                   formatter == TESTformatter &&
-                                   strncmp(line, "exec **", 7) == 0) {
-                                       line[5] = prepno < 10 ? ' ' : prepno / 
10 + '0';
-                                       line[6] = prepno % 10 + '0';
+                       case 'E':
+                               /* a bit of a hack for prepare/exec/dealloc
+                                * tests: replace "exec[ute] **" with the
+                                * ID of the last prepared statement */
+                               if (mode == SQL && formatter == TESTformatter) {
+                                       if (strncasecmp(line, "exec **", 7) == 
0) {
+                                               line[5] = prepno < 10 ? ' ' : 
prepno / 10 + '0';
+                                               line[6] = prepno % 10 + '0';
+                                       } else if (strncasecmp(line, "execute 
**", 10) == 0) {
+                                               line[8] = prepno < 10 ? ' ' : 
prepno / 10 + '0';
+                                               line[9] = prepno % 10 + '0';
+                                       }
                                }
-                               if (strcmp(line, "exit\n") == 0) {
+                               if (strncasecmp(line, "exit\n", 5) == 0) {
                                        goto bailout;
                                }
                                break;
+                       case 'd':
+                       case 'D':
+                               /* a bit of a hack for prepare/exec/dealloc
+                                * tests: replace "dealloc[ate] **" with the
+                                * ID of the last prepared statement */
+                               if (mode == SQL && formatter == TESTformatter) {
+                                       if (strncasecmp(line, "dealloc **", 10) 
== 0) {
+                                               line[8] = prepno < 10 ? ' ' : 
prepno / 10 + '0';
+                                               line[9] = prepno % 10 + '0';
+                                       } else if (strncasecmp(line, 
"deallocate **", 13) == 0) {
+                                               line[11] = prepno < 10 ? ' ' : 
prepno / 10 + '0';
+                                               line[12] = prepno % 10 + '0';
+                                       }
+                               }
+                               break;
                        case 'q':
-                               if (strcmp(line, "quit\n") == 0) {
+                       case 'Q':
+                               if (strncasecmp(line, "quit\n", 5) == 0) {
                                        goto bailout;
                                }
                                break;
diff --git a/clients/mapiclient/mhelp.c b/clients/mapiclient/mhelp.c
--- a/clients/mapiclient/mhelp.c
+++ b/clients/mapiclient/mhelp.c
@@ -935,27 +935,6 @@ SQLhelp sqlhelp2[] = {
        {NULL, NULL, NULL, NULL, NULL}  /* End of list marker */
 };
 
-#ifndef HAVE_STRNCASECMP
-static int
-strncasecmp(const char *s1, const char *s2, size_t n)
-{
-       int c1, c2;
-
-       while (n > 0) {
-               c1 = (unsigned char) *s1++;
-               c2 = (unsigned char) *s2++;
-               if (c1 == 0)
-                       return -c2;
-               if (c2 == 0)
-                       return c1;
-               if (c1 != c2 && tolower(c1) != tolower(c2))
-                       return tolower(c1) - tolower(c2);
-               n--;
-       }
-       return 0;
-}
-#endif
-
 static const char *
 sql_grammar_rule(const char *word, stream *toConsole)
 {
diff --git a/clients/odbc/driver/ODBCConvert.c 
b/clients/odbc/driver/ODBCConvert.c
--- a/clients/odbc/driver/ODBCConvert.c
+++ b/clients/odbc/driver/ODBCConvert.c
@@ -39,27 +39,6 @@ typedef struct {
 #endif
 } bignum_t;
 
-#ifndef HAVE_STRNCASECMP
-static int
-strncasecmp(const char *s1, const char *s2, size_t n)
-{
-       int c1, c2;
-
-       while (n > 0) {
-               c1 = (unsigned char) *s1++;
-               c2 = (unsigned char) *s2++;
-               if (c1 == 0)
-                       return -c2;
-               if (c2 == 0)
-                       return c1;
-               if (c1 != c2 && tolower(c1) != tolower(c2))
-                       return tolower(c1) - tolower(c2);
-               n--;
-       }
-       return 0;
-}
-#endif
-
 /* Parse a number and store in a bignum_t.
  * 1 is returned if all is well;
  * 2 is returned if there is loss of precision (i.e. overflow of the value);
diff --git a/configure.ag b/configure.ag
--- a/configure.ag
+++ b/configure.ag
@@ -2665,6 +2665,8 @@ typedef enum {
 @%:@include <inttypes.h>
 @%:@include <stdbool.h>
 @%:@include <assert.h>
+@%:@include <string.h>
+@%:@include <ctype.h>
 
 @%:@ifndef static_assert
 /* static_assert is a C11 feature, defined in assert.h which also exists
@@ -2684,6 +2686,35 @@ stpcpy(char *restrict dst, const char *r
 }
 @%:@endif
 
+@%:@ifndef HAVE_STPCPY
+#ifndef HAVE_STRNCASECMP
+#ifdef WIN32
+#ifndef strncasecmp
+#define strncasecmp _strnicmp
+#endif
+#else
+static inline int
+strncasecmp(const char *s1, const char *s2, size_t n)
+{
+       int c1, c2;
+
+       while (n > 0) {
+               c1 = (unsigned char) *s1++;
+               c2 = (unsigned char) *s2++;
+               if (c1 == 0)
+                       return -c2;
+               if (c2 == 0)
+                       return c1;
+               if (c1 != c2 && tolower(c1) != tolower(c2))
+                       return tolower(c1) - tolower(c2);
+               n--;
+       }
+       return 0;
+}
+#endif
+#endif
+@%:@endif
+
 @%:@if defined(HAVE___INT128)
 typedef __int128 hge;
 typedef unsigned __int128 uhge;
diff --git a/debian/changelog b/debian/changelog
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,27 @@
+monetdb (11.35.5) unstable; urgency=low
+
+  * Rebuilt.
+  * BZ#6723: columns aliases duplicates should not be allowed. automatic
+    aliasing required.
+  * BZ#6724: Prepare confuses types when more than one argument is used
+  * BZ#6726: Python aggregation does not create aggr_group when aggregating
+    over all rows
+  * BZ#6765: GRANT SELECT privilege on a subset of table columns results
+    in access denied error when selecting the same columns from the table
+  * BZ#6790: Count distinct giving wrong results
+  * BZ#6791: str_to_time('11:40', '%H:%M') creates wrong time value
+  * BZ#6792: JSON path compiler accepts invalid input
+  * BZ#6793: cast(interval second value to int or decimal) is wrong (by
+    a factor of 1000), cast(interval month value to decimal or floating
+    point) fails
+  * BZ#6794: external name fits.listdir not bound (sys.listdir) Fatal
+    error during initialization:
+  * BZ#6796: Incorrect crash time reported by monetdb tool after crash
+    of mserver5
+  * BZ#6798: json.text off by one error
+
+ -- Sjoerd Mullender <sjo...@acm.org>  Thu, 12 Dec 2019 09:24:08 +0100
+
 monetdb (11.35.3) unstable; urgency=low
 
   * Rebuilt.
diff --git a/geom/monetdb5/geom.c b/geom/monetdb5/geom.c
--- a/geom/monetdb5/geom.c
+++ b/geom/monetdb5/geom.c
@@ -2120,27 +2120,6 @@ wkba_size(int items)
        return size;
 }
 
-#ifndef HAVE_STRNCASECMP
-static int
-strncasecmp(const char *s1, const char *s2, size_t n)
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to