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