MonetDB: scoping2 - Merged with default
Changeset: f5f76b464455 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f5f76b464455 Modified Files: clients/Tests/MAL-signatures.stable.out clients/Tests/MAL-signatures.stable.out.int128 sql/backends/monet5/sql.c sql/server/rel_optimizer.c sql/server/rel_propagate.c sql/storage/sql_catalog.c Branch: scoping2 Log Message: Merged with default diffs (truncated from 3051 to 300 lines): diff --git a/clients/Tests/MAL-signatures.stable.out b/clients/Tests/MAL-signatures.stable.out --- a/clients/Tests/MAL-signatures.stable.out +++ b/clients/Tests/MAL-signatures.stable.out @@ -6638,6 +6638,7 @@ stdout of test 'MAL-signatures` in direc [ "batstr","unicodeAt","pattern batstr.unicodeAt(X_1:str, X_2:bat[:int], X_3:bat[:oid]):bat[:int] ", "STRbatWChrAt_strcst;", "" ] [ "batstr","unicodeAt","pattern batstr.unicodeAt(X_1:bat[:str], X_2:int):bat[:int] ", "STRbatWChrAtcst;", "" ] [ "batstr","unicodeAt","pattern batstr.unicodeAt(X_1:bat[:str], X_2:int, X_3:bat[:oid]):bat[:int] ", "STRbatWChrAtcst;", "" ] +[ "battxtsim", "similarity", "command battxtsim.similarity(X_1:bat[:str], X_2:bat[:str]):bat[:dbl] ","fstrcmp0_impl_bulk;", "" ] [ "batudf","fuse", "command batudf.fuse(X_1:bat[:bte], X_2:bat[:bte]):bat[:sht] ", "UDFBATfuse;", "" ] [ "batudf","fuse", "command batudf.fuse(X_1:bat[:int], X_2:bat[:int]):bat[:lng] ", "UDFBATfuse;", "" ] [ "batudf","fuse", "command batudf.fuse(X_1:bat[:sht], X_2:bat[:sht]):bat[:int] ", "UDFBATfuse;", "" ] @@ -9429,20 +9430,6 @@ stdout of test 'MAL-signatures` in direc [ "sql", "sessions", "pattern sql.sessions() (X_0:bat[:int], X_1:bat[:str], X_2:bat[:timestamp], X_3:bat[:timestamp], X_4:bat[:str], X_5:bat[:int], X_6:bat[:int], X_7:bat[:int], X_8:bat[:int]) ", "sql_sessions_wrap;", "" ] [ "sql", "setVariable", "unsafe pattern sql.setVariable(X_1:int, X_2:str, X_3:str, X_4:any_1):int ","setVariable;", "" ] [ "sql", "set_protocol", "unsafe pattern sql.set_protocol(X_1:int):int ","SQLset_protocol;", "" ] -[ "sql", "setmemorylimit", "unsafe pattern sql.setmemorylimit(X_1:int):void ", "SQLsetmemorylimit;", "" ] -[ "sql", "setmemorylimit", "unsafe pattern sql.setmemorylimit(X_1:sht, X_2:int):void ","SQLsetmemorylimit;", "" ] -[ "sql", "setoptimizer", "unsafe pattern sql.setoptimizer(X_1:int, X_2:str):void ", "SQLsetoptimizer;", "" ] -[ "sql", "setoptimizer", "unsafe pattern sql.setoptimizer(X_1:str):void ", "SQLsetoptimizer;", "" ] -[ "sql", "setquerytimeout", "unsafe pattern sql.setquerytimeout(X_1:bte, X_2:int):void ", "SQLqueryTimeout;", "" ] -[ "sql", "setquerytimeout", "unsafe pattern sql.setquerytimeout(X_1:int):void ","SQLqueryTimeout;", "" ] -[ "sql", "setquerytimeout", "unsafe pattern sql.setquerytimeout(X_1:int, X_2:int):void ", "SQLqueryTimeout;", "" ] -[ "sql", "setquerytimeout", "unsafe pattern sql.setquerytimeout(X_1:sht, X_2:int):void ", "SQLqueryTimeout;", "" ] -[ "sql", "setsessiontimeout","unsafe pattern sql.setsessiontimeout(X_1:bte, X_2:int):void ", "SQLsessionTimeout;", "" ] -[ "sql", "setsessiontimeout","unsafe pattern sql.setsessiontimeout(X_1:int):void ", "SQLsessionTimeout;", "" ] -[ "sql", "setsessiontimeout","unsafe pattern sql.setsessiontimeout(X_1:int, X_2:int):void ", "SQLsessionTimeout;", "" ] -[ "sql", "setsessiontimeout","unsafe pattern sql.setsessiontimeout(X_1:sht, X_2:int):void ", "SQLsessionTimeout;", "" ] -[ "sql", "setworkerlimit", "unsafe pattern sql.setworkerlimit(X_1:int):void ", "SQLsetworkerlimit;", "" ] -[ "sql", "setworkerlimit", "unsafe pattern sql.setworkerlimit(X_1:int, X_2:int):void ","SQLsetworkerlimit;", "" ] [ "sql", "shrink", "unsafe pattern sql.shrink(X_1:str, X_2:str):void ","SQLshrink;", "" ] [ "sql", "shutdown", "pattern sql.shutdown(X_1:bte):str ", "SQLshutdown_wrap;","" ] [ "sql", "shutdown", "pattern sql.shutdown(X_1:bte, X_2:bit):str ", "SQLshutdown_wrap;","" ] diff --git a/clients/Tests/MAL-signatures.stable.out.int128 b/clients/Tests/MAL-signatures.stable.out.int128 --- a/clients/Tests/MAL-signatures.stable.out.int128 +++ b/clients/Tests/MAL-signatures.stable.out.int128 @@ -9197,6 +9197,7 @@ stdout of test 'MAL-signatures` in direc [ "batstr","unicodeAt","pattern batstr.unicodeAt(X_1:str, X_2:bat[:int], X_3:bat[:oid]):bat[:int] ", "STRbatWChrAt_strcst;", "" ] [ "batstr","unicodeAt","pattern batstr.unicodeAt(X_1:bat[:str], X_2:int):bat[:int] ", "STRbatWChrAtcst;", "" ] [
MonetDB: scoping2 - Merged with default
Changeset: 29651bfcd8be for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=29651bfcd8be Modified Files: sql/backends/monet5/rel_bin.c sql/backends/monet5/sql.c sql/backends/monet5/sql_cat.c sql/backends/monet5/sql_statement.c sql/backends/monet5/sql_upgrades.c sql/server/rel_exp.c sql/server/rel_optimizer.c sql/server/rel_rel.c sql/server/rel_rel.h sql/server/rel_select.c sql/server/rel_unnest.c sql/server/sql_mvc.c sql/server/sql_mvc.h tools/monetdbe/monetdbe.c Branch: scoping2 Log Message: Merged with default diffs (truncated from 4619 to 300 lines): diff --git a/README.rst b/README.rst --- a/README.rst +++ b/README.rst @@ -131,10 +131,16 @@ Bugs We of course hope there aren't any, but if you do find one, you can -report bugs in our `bugzilla`__ instance. +report bugs in our `github`__ repository. + +Please note that we do not accept github Pull Requests. See the +`developers`__ page for instructions. -.. _bugzilla: https://bugs.monetdb.org -__ bugzilla_ +.. _github: https://github.com/MonetDB/MonetDB/issues +__ github_ + +.. _developers: https://www.monetdb.org/Developers +__ developers_ Copyright Notice diff --git a/buildtools/coverity_model.c b/buildtools/coverity_model.c --- a/buildtools/coverity_model.c +++ b/buildtools/coverity_model.c @@ -156,6 +156,15 @@ createMalException(MalBlkPtr mb, int pc, return p; } +char * +dupError(const char *err) +{ + char *p; + p = __coverity_alloc_nosize__(); + __coverity_mark_as_afm_allocated__(p, "freeException"); + return p; +} + void freeException(char *p) { @@ -164,3 +173,13 @@ freeException(char *p) __coverity_mark_as_afm_freed__(p, "freeException"); } } + +char * +concatErrors(char *err1, const char *err2) +{ + freeException(err1); + char *p; + p = __coverity_alloc_nosize__(); + __coverity_mark_as_afm_allocated__(p, "freeException"); + return p; +} diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out --- a/clients/Tests/exports.stable.out +++ b/clients/Tests/exports.stable.out @@ -516,6 +516,7 @@ gdk_return log_bat_clear(logger *lg, con gdk_return log_bat_persists(logger *lg, BAT *b, const char *n, char tpe, oid id); gdk_return log_bat_transient(logger *lg, const char *n, char tpe, oid id); gdk_return log_delta(logger *lg, BAT *uid, BAT *uval, const char *n, char tpe, oid id); +lng log_save_id(logger *lg); gdk_return log_sequence(logger *lg, int seq, lng id); gdk_return log_tend(logger *lg); gdk_return log_tstart(logger *lg); @@ -525,9 +526,8 @@ gdk_return logger_cleanup(logger *lg); logger *logger_create(int debug, const char *fn, const char *logdir, int version, preversionfix_fptr prefuncp, postversionfix_fptr postfuncp); gdk_return logger_del_bat(logger *lg, log_bid bid) __attribute__((__warn_unused_result__)); void logger_destroy(logger *lg); -gdk_return logger_exit(logger *lg); log_bid logger_find_bat(logger *lg, const char *name, char tpe, oid id); -gdk_return logger_restart(logger *lg); +gdk_return logger_flush(logger *lg, lng save_id); int logger_sequence(logger *lg, int seq, lng *id); gdk_return logger_upgrade_bat(logger *lg, const char *name, char tpe, oid id) __attribute__((__warn_unused_result__)); void logger_with_ids(logger *lg); @@ -1166,6 +1166,7 @@ str connectRef; str contextRef; str convertConstant(malType type, ValPtr vr); InstrPtr copyInstruction(InstrPtr p); +InstrPtr copyInstructionArgs(InstrPtr p, int args); MalBlkPtr copyMalBlk(MalBlkPtr mb); str copyRef; str copy_fromRef; @@ -1467,11 +1468,14 @@ str multicolumnRef; str multiplexRef; str mvcRef; InstrPtr newAssignment(MalBlkPtr mb); +InstrPtr newAssignmentArgs(MalBlkPtr mb, int args); InstrPtr newCatchStmt(MalBlkPtr mb, str nme); InstrPtr newComment(MalBlkPtr mb, const char *val); InstrPtr newExitStmt(MalBlkPtr mb, str nme); InstrPtr newFcnCall(MalBlkPtr mb, char *mod, char *fcn); +InstrPtr newFcnCallArgs(MalBlkPtr mb, char *mod, char *fcn, int args); Symbol newFunction(str mod, str nme, int kind); +Symbol newFunctionArgs(str mod, str nme, int kind, int args); MalStkPtr newGlobalStack(int size); InstrPtr newInstruction(MalBlkPtr mb, str modnme, str fcnnme); InstrPtr newInstructionArgs(MalBlkPtr mb, str modnme, str fcnnme, int args); @@ -1495,7 +1499,6 @@ str not_uniqueRef; str nth_valueRef; str ntileRef; str oidRef; -void oldmoveInstruction(InstrPtr dst, InstrPtr src); str oltpRef; str openProfilerStream(Client cntxt); str openRef; diff --git a/gdk/ChangeLog b/gdk/ChangeLog --- a/gdk/ChangeLog +++ b/gdk/ChangeLog @@ -1,3 +1,6 @@ # ChangeLog file for GDK # This file is updated with Maddlog +* Tue Dec 1 2020 Sjoerd Mullender +- We now save the location of the min and max values when known. + diff --git a/gdk/gdk.h b/gdk/gdk.h --- a/gdk/gdk.h +++ b/gdk/gdk.h
MonetDB: scoping2 - Merged with default
Changeset: 8f4ff4af17c8 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8f4ff4af17c8 Modified Files: sql/backends/monet5/rel_bin.c sql/backends/monet5/sql.c sql/backends/monet5/sql_cat.c sql/backends/monet5/sql_statement.c sql/include/sql_catalog.h sql/server/rel_optimizer.c sql/server/rel_propagate.c sql/server/rel_schema.c sql/server/rel_select.c sql/server/rel_updates.c sql/storage/sql_catalog.c tools/monetdbe/monetdbe.c Branch: scoping2 Log Message: Merged with default diffs (truncated from 4032 to 300 lines): diff --git a/buildtools/coverity_model.c b/buildtools/coverity_model.c new file mode 100644 --- /dev/null +++ b/buildtools/coverity_model.c @@ -0,0 +1,166 @@ +/* + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * Copyright 1997 - July 2008 CWI, August 2008 - 2020 MonetDB B.V. + */ + +/* + * This file contains a model for Coverity Scan. + * This file is not a normal source file. It is not compiled by any + * compiler, but instead it is uploaded to the Coverity site and used + * during any analysis they do on our code. + * + * We model our use of the various allocation functions. + * Things we want to do is model that GDKmalloc and friends are paired + * with GDKfree, and that exceptions created by createException and + * createMalException should be freed with freeException. + * + * author: Sjoerd Mullender + */ + +typedef enum { GDK_FAIL, GDK_SUCCEED } gdk_return; +typedef struct {} *MalBlkPtr; + +void +GDKfree(void *blk) +{ + if (blk) { + __coverity_free__(blk); + __coverity_mark_as_afm_freed__(blk, "GDKfree"); + } +} + +void * +GDKmalloc(size_t size) +{ + int has_memory; + __coverity_negative_sink__(size); + if(has_memory) { + void *p = __coverity_alloc__(size); + __coverity_mark_as_afm_allocated__(p, "GDKfree"); + __coverity_mark_as_uninitialized_buffer__(p); + return p; + } + return 0; +} + +void * +GDKzalloc(size_t size) +{ + void *p = GDKmalloc(size); + if (p) { + for (size_t i = 0; i < size; i++) + ((char *) p)[i] = 0; + } + return p; +} + +char * +GDKstrdup(const char *s) +{ + char *p; + size_t i; + int has_memory; + if (s == 0) + return 0; + __coverity_string_null_sink__(s); + __coverity_string_size_sink__(s); + if (has_memory) { + p = __coverity_alloc_nosize__(); + __coverity_mark_as_afm_allocated__(p, "GDKfree"); + for (i = 0; (p[i] = s[i]); i++) + ; + return p; + } + return 0; +} + +char * +GDKstrndup(const char *s, size_t size) +{ + char *p; + size_t i; + __coverity_negative_sink__(size); + if (s == 0) + return 0; + p = GDKmalloc(size + 1); + if (p) { + for (i = 0; i < size && (p[i] = s[i]); i++) + ; + p[i] = 0; + } + return p; +} + +void * +GDKrealloc(void *blk, size_t size) +{ + void *p = GDKmalloc(size); + if (p != 0) + GDKfree(blk); + return p; +} + +void * +GDKmmap(const char *path, int mode, size_t size) +{ + int has_memory; + __coverity_negative_sink__(size); + if (has_memory) { + void *p = __coverity_alloc__(size); + __coverity_mark_as_afm_allocated__(p, "GDKmunmap"); + __coverity_writeall__(p); + return p; + } + return 0; +} + +gdk_return +GDKmunmap(void *p, size_t size) +{ + int failed; + __coverity_free__(p); + __coverity_mark_as_afm_freed__(p, "GDKmunmap"); + return failed ? GDK_FAIL : GDK_SUCCEED; +} + +void * +GDKmremap(const char *path, int mode, void *old_address, size_t old_size, size_t *new_size) +{ + void *p = GDKmmap(path, mode, new_size); + if (p) { + (void) GDKmunmap(old_address, old_size); + } + return p; +} + +char * +createException(enum malexception type, const char *fcn, const char *format, ...) +{ + char *p; + __coverity_format_string_sink__(format); + p = __coverity_alloc_nosize__(); + __coverity_mark_as_afm_allocated__(p, "freeException"); + return p; +} + +char * +createMalException(MalBlkPtr mb, int pc, enum malexception type, const char *format, ...) +{ + char *p; + __coverity_format_string_sink__(format); + p = __coverity_alloc_nosize__(); + __coverity_mark_as_afm_allocated__(p, "freeException"); + return p; +} + +void +freeException(char *p) +{ + if (p) { +
MonetDB: scoping2 - Merged with default
Changeset: d1b768b571ab for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d1b768b571ab Modified Files: clients/Tests/MAL-signatures.stable.out clients/Tests/MAL-signatures.stable.out.int128 sql/common/sql_types.c sql/server/rel_psm.c sql/test/miscellaneous/Tests/simple_selects.stable.err tools/monetdbe/monetdbe.c Branch: scoping2 Log Message: Merged with default diffs (truncated from 33641 to 300 lines): diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -161,16 +161,13 @@ BuildRequires: pkgconfig(libR) BuildRequires: texlive-obsolete %endif %endif -# if we were to compile with cmocka support (-DWITH_CMOCKA=ON): -# BuildRequires: pkgconfig(cmocka) -# if we were to compile with NetCDF support (-DNETCDF=ON): -# BuildRequires: pkgconfig(netcdf) -# if we were to compile with proj support (-DWITH_PROJ=ON): -# BuildRequires: pkgconfig(proj) -# if we were to compile with snappy support (-DWITH_SNAPPY=ON): -# BuildRequires: pkgconfig(snappy) -# if we were to compile with valgrind support (-DWITH_VALGRIND=ON): -# BuildRequires: pkgconfig(valgrind) +# optional packages: +# BuildRequires: pkgconfig(cmocka) # -DWITH_CMOCKA=ON +# BuildRequires: pkgconfig(gdal) # -DSHP=ON +# BuildRequires: pkgconfig(netcdf) # -DNETCDF=ON +# BuildRequires: pkgconfig(proj) # -DWITH_PROJ=ON +# BuildRequires: pkgconfig(snappy) # -DWITH_SNAPPY=ON +# BuildRequires: pkgconfig(valgrind) # -DWITH_VALGRIND=ON %if (0%{?fedora} >= 22) Recommends: %{name}-SQL-server5%{?_isa} = %{version}-%{release} diff --git a/clients/Tests/MAL-signatures.stable.out b/clients/Tests/MAL-signatures.stable.out --- a/clients/Tests/MAL-signatures.stable.out +++ b/clients/Tests/MAL-signatures.stable.out @@ -6259,6 +6259,8 @@ stdout of test 'MAL-signatures` in direc [ "batmtime", "timestamp_to_str", "pattern batmtime.timestamp_to_str(X_1:timestamp, X_2:bat[:str], X_3:bat[:oid]):bat[:str] ","MTIMEtimestamp_to_str_bulk_p1;", "" ] [ "batmtime", "timestamp_to_str", "pattern batmtime.timestamp_to_str(X_1:bat[:timestamp], X_2:str):bat[:str] ", "MTIMEtimestamp_to_str_bulk_p2;", "" ] [ "batmtime", "timestamp_to_str", "pattern batmtime.timestamp_to_str(X_1:bat[:timestamp], X_2:str, X_3:bat[:oid]):bat[:str] ","MTIMEtimestamp_to_str_bulk_p2;", "" ] +[ "batmtime", "usweekofyear", "pattern batmtime.usweekofyear(X_1:bat[:date]):bat[:int] ", "MTIMEdate_extract_usweekofyear_bulk;", "" ] +[ "batmtime", "usweekofyear", "pattern batmtime.usweekofyear(X_1:bat[:date], X_2:bat[:oid]):bat[:int] ", "MTIMEdate_extract_usweekofyear_bulk;", "" ] [ "batmtime", "weekofyear", "pattern batmtime.weekofyear(X_1:bat[:date]):bat[:int] ", "MTIMEdate_extract_weekofyear_bulk;", "" ] [ "batmtime", "weekofyear", "pattern batmtime.weekofyear(X_1:bat[:date], X_2:bat[:oid]):bat[:int] ","MTIMEdate_extract_weekofyear_bulk;", "" ] [ "batmtime", "year", "pattern batmtime.year(X_1:bat[:date]):bat[:int] ", "MTIMEdate_extract_year_bulk;", "" ] @@ -9089,6 +9091,7 @@ stdout of test 'MAL-signatures` in direc [ "mtime", "timestamp_sub_month_interval", "command mtime.timestamp_sub_month_interval(X_1:timestamp, X_2:int):timestamp ", "MTIMEtimestamp_sub_month_interval;", "" ] [ "mtime", "timestamp_sub_msec_interval", "command mtime.timestamp_sub_msec_interval(X_1:timestamp, X_2:lng):timestamp ", "MTIMEtimestamp_sub_msec_interval;","" ] [ "mtime", "timestamp_to_str", "command mtime.timestamp_to_str(X_1:timestamp, X_2:str):str ", "MTIMEtimestamp_to_str;", "" ] +[ "mtime", "usweekofyear", "command mtime.usweekofyear(X_1:date):int ", "MTIMEdate_extract_usweekofyear;", "" ] [ "mtime", "weekofyear", "command mtime.weekofyear(X_1:date):int ", "MTIMEdate_extract_weekofyear;","" ] [ "mtime", "year", "command mtime.year(X_1:date):int ", "MTIMEdate_extract_year;", "" ] [ "mtime", "year", "command mtime.year(X_1:int):int ", "MTIMEsql_year;", "" ] diff --git a/clients/Tests/MAL-signatures.stable.out.int128 b/clients/Tests/MAL-signatures.stable.out.int128 --- a/clients/Tests/MAL-signatures.stable.out.int128 +++ b/clients/Tests/MAL-signatures.stable.out.int128 @@ -8789,6 +8789,8 @@ stdout of test 'MAL-signatures` in direc [ "batmtime", "timestamp_to_str", "pattern batmtime.timestamp_to_str(X_1:timestamp, X_2:bat[:str], X_3:bat[:oid]):bat[:str] ","MTIMEtimestamp_to_str_bulk_p1;", "" ] [ "batmtime", "timestamp_to_str", "pattern batmtime.timestamp_to_str(X_1:bat[:timestamp], X_2:str):bat[:str] ", "MTIMEtimestamp_to_str_bulk_p2;", "" ] [ "batmtime", "timestamp_to_str", "pattern batmtime.timestamp_to_str(X_1:bat[:timestamp], X_2:str, X_3:bat[:oid]):bat[:str] ",
MonetDB: scoping2 - Merged with default
Changeset: 09a1e60d39cf for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=09a1e60d39cf Modified Files: clients/mapiclient/dump.c sql/server/rel_exp.c sql/server/rel_psm.c sql/server/rel_select.c sql/server/sql_parser.y sql/test/miscellaneous/Tests/simple_selects.stable.err tools/monetdbe/monetdbe.c Branch: scoping2 Log Message: Merged with default diffs (truncated from 129852 to 300 lines): diff --git a/NT/mkodbcwxs.py b/NT/mkodbcwxs.py --- a/NT/mkodbcwxs.py +++ b/NT/mkodbcwxs.py @@ -80,9 +80,9 @@ def main(): r'lib\MonetODBC.dll', # r'lib\MonetODBC.pdb', r'lib\MonetODBCs.dll', # r'lib\MonetODBCs.pdb', r'bin\stream.dll', # r'lib\stream.pdb', - vcpkg.format(r'bin\libiconv.dll'), + vcpkg.format(r'bin\iconv-2.dll'), vcpkg.format(r'bin\bz2.dll'), - vcpkg.format(r'bin\libcharset.dll'), # for libiconv.dll + vcpkg.format(r'bin\charset-1.dll'), # for iconv-2.dll vcpkg.format(r'bin\libcrypto-1_1{}.dll'.format(libcrypto)), vcpkg.format(r'bin\zlib1.dll')]) print(r'') diff --git a/NT/mksqlwxs.py b/NT/mksqlwxs.py --- a/NT/mksqlwxs.py +++ b/NT/mksqlwxs.py @@ -145,10 +145,10 @@ def main(): r'bin\monetdb5.dll', r'bin\monetdbsql.dll', r'bin\stream.dll', - vcpkg.format(r'bin\libiconv.dll'), + vcpkg.format(r'bin\iconv-2.dll'), vcpkg.format(r'bin\bz2.dll'), + vcpkg.format(r'bin\charset-1.dll'), # for iconv-2.dll vcpkg.format(r'bin\getopt.dll'), - vcpkg.format(r'bin\libcharset.dll'), # for libiconv.dll vcpkg.format(r'bin\libcrypto-1_1{}.dll'.format(libcrypto)), vcpkg.format(r'bin\libxml2.dll'), vcpkg.format(r'bin\lz4.dll'), @@ -199,10 +199,10 @@ def main(): r'lib\monetdb5.lib', r'lib\monetdbsql.lib', r'lib\stream.lib', - vcpkg.format(r'lib\libiconv.lib'), + vcpkg.format(r'lib\iconv.lib'), vcpkg.format(r'lib\bz2.lib'), + vcpkg.format(r'lib\charset.lib'), vcpkg.format(r'lib\getopt.lib'), - vcpkg.format(r'lib\libcharset.lib'), vcpkg.format(r'lib\libcrypto.lib'), vcpkg.format(r'lib\libxml2.lib'), vcpkg.format(r'lib\lz4.lib'), diff --git a/clients/mapiclient/dump.c b/clients/mapiclient/dump.c --- a/clients/mapiclient/dump.c +++ b/clients/mapiclient/dump.c @@ -46,76 +46,6 @@ #include "msqldump.h" -static const char * -get_with_comments_as_clause(Mapi mid) -{ - const char *query = /* check whether sys.comments exists */ - "SELECT t.id " - "FROM sys._tables t JOIN sys.schemas s ON t.schema_id = s.id " - "WHERE s.name = 'sys' AND t.name = 'comments'"; - const char *new_clause = - "WITH comments AS (SELECT * FROM sys.comments), " -"function_types AS (SELECT * FROM sys.function_types), " -"function_languages AS (SELECT * FROM sys.function_languages)"; - const char *old_clause = - "WITH comments AS (" - "SELECT 42 AS id, 'no comment' AS remark WHERE FALSE" -"), " -"function_types AS (" - "SELECT function_type_id, function_type_name, function_type_keyword " - "FROM sys.function_types, " -"(VALUES " - "(1, 'FUNCTION'), " - "(2, 'PROCEDURE'), " - "(3, 'AGGREGATE'), " - "(4, 'FILTER FUNCTION'), " - "(5, 'FUNCTION'), " - "(6, 'FUNCTION'), " - "(7, 'LOADER')) AS (id, function_type_keyword) " - "WHERE id = function_type_id" -"), " -"function_languages AS (" - "SELECT language_id, language_name, language_keyword " - "FROM sys.function_languages, (VALUES " - "(3, 'R'), " - "(4, 'C'), " - "(6, 'PYTHON'), " - "(7, 'PYTHON_MAP'), " - "(8, 'PYTHON2'), " - "(9, 'PYTHON2_MAP'), " - "(10, 'PYTHON3'), " - "(11, 'PYTHON3_MAP'), " - "(12, 'CPP')) AS (id, language_keyword) " - "WHERE id = language_id" -")"; - - bool has_sys_comments = false; - MapiHdl hdl =
MonetDB: scoping2 - Merged with default
Changeset: 8bff027202e2 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8bff027202e2 Modified Files: sql/server/rel_select.c Branch: scoping2 Log Message: Merged with default diffs (258 lines): diff --git a/monetdb5/optimizer/opt_pushselect.c b/monetdb5/optimizer/opt_pushselect.c --- a/monetdb5/optimizer/opt_pushselect.c +++ b/monetdb5/optimizer/opt_pushselect.c @@ -22,6 +22,7 @@ PushArgument(MalBlkPtr mb, InstrPtr p, i return p; } +#if 0 static InstrPtr PushNil(MalBlkPtr mb, InstrPtr p, int pos, int tpe) { @@ -34,6 +35,7 @@ PushNil(MalBlkPtr mb, InstrPtr p, int po getArg(p, pos) = arg; return p; } +#endif static InstrPtr ReplaceWithNil(MalBlkPtr mb, InstrPtr p, int pos, int tpe) @@ -74,6 +76,7 @@ subselect_add( subselect_t *subselects, return i; } +#if 0 static int subselect_find_tids( subselect_t *subselects, int subselect) { @@ -99,6 +102,7 @@ subselect_find_subselect( subselect_t *s } return -1; } +#endif static int lastbat_arg(MalBlkPtr mb, InstrPtr p) @@ -298,7 +302,7 @@ OPTpushselectImplementation(Client cntxt } } - if (/* DISABLES CODE */ (0) && subselects.nr) { + if (nr_likes || subselects.nr) { if (newMalBlkStmt(mb, mb->ssize) <0 ) { GDKfree(vars); goto wrapup; @@ -309,12 +313,16 @@ OPTpushselectImplementation(Client cntxt for (i = 1; i < limit; i++) { p = old[i]; - /* rewrite batalgebra.like + select -> likeselect */ - if (getModuleId(p) == algebraRef && p->retc == 1 && getFunctionId(p) == selectRef) { + /* rewrite batalgebra.like + [theta]select -> likeselect */ + if (getModuleId(p) == algebraRef && p->retc == 1 && + (getFunctionId(p) == selectRef || getFunctionId(p) == thetaselectRef)) { int var = getArg(p, 1); InstrPtr q = mb->stmt[vars[var]]; /* BEWARE: the optimizer may not add or remove statements ! */ - if (isLikeOp(q)) { /* TODO check if getArg(p, 3) value == TRUE */ + if (isLikeOp(q) && + !isaBatType(getArgType(mb, q, 2)) && /* pattern is a value */ + (q->argc != 4 || !isaBatType(getArgType(mb, q, 3))) /* escape is a value */ + ) { InstrPtr r = newInstruction(mb, algebraRef, likeselectRef); int has_cand = (getArgType(mb, p, 2) == newBatType(TYPE_oid)); int a, anti = (getFunctionId(q)[0] == 'n'), ignore_case = (getFunctionId(q)[anti?4:0] == 'i'); @@ -340,6 +348,7 @@ OPTpushselectImplementation(Client cntxt /* inject table ids into subselect * s = subselect(c, C1..) => subselect(c, t, C1..) */ +#if 0 if (isSelect(p) && p->retc == 1) { int tid = 0; @@ -445,6 +454,7 @@ OPTpushselectImplementation(Client cntxt } } } +#endif pushInstruction(mb,p); } for (; isa); exp_kind ek = {type_value, card_value, TRUE}; - unsigned int card = dlist_length(rowlist) == 1 ? CARD_ATOM : CARD_MULTI; for (dnode *o = rowlist->h; o; o = o->next) { dlist *values = o->data.lval; @@ -823,7 +822,9 @@ rel_values(sql_query *query, symbol *tab } } } + /* loop to check types and cardinality */ + unsigned int card = exps->h && list_length(((sql_exp*)exps->h->data)->f) > 1 ? CARD_MULTI : CARD_ATOM; for (m = exps->h; m; m = m->next) { sql_exp *e = m->data; diff --git a/sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.stable.out b/sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.stable.out --- a/sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.stable.out +++ b/sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.stable.out @@ -263,12 +263,13 @@ function user.main():void; X_44:bat[:int] := bat.pack(0:int, 0:int); X_4:int := sql.mvc(); X_17:bat[:str] := sql.bind(X_4:int, "sys":str, "functions":str, "name":str, 0:int); +C_5:bat[:oid] := sql.tid(X_4:int, "sys":str, "functions":str); +C_131:bat[:oid] := algebra.likeselect(X_17:bat[:str], C_5:bat[:oid], "%optimizers%":str, "":str, false:bit, false:bit); (X_19:bat[:oid], X_20:bat[:str]) :=
MonetDB: scoping2 - Merged with default
Changeset: 90a64a92469f for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=90a64a92469f Modified Files: tools/monetdbe/monetdbe.c Branch: scoping2 Log Message: Merged with default diffs (121 lines): diff --git a/common/utils/msabaoth.c b/common/utils/msabaoth.c --- a/common/utils/msabaoth.c +++ b/common/utils/msabaoth.c @@ -611,6 +611,7 @@ msab_pickSecret(char **generated_secret) if (generated_secret) // do not return an error, just continue without a secret *generated_secret = NULL; + free(secret); return NULL; #endif #endif @@ -629,6 +630,7 @@ msab_pickSecret(char **generated_secret) char err[512]; snprintf(err, sizeof(err), "unable to open '%s': %s", pathbuf, strerror(errno)); + free(secret); return strdup(err); } if ((f = fdopen(fd, "w")) == NULL) { @@ -637,6 +639,7 @@ msab_pickSecret(char **generated_secret) pathbuf, strerror(errno)); close(fd); (void)remove(pathbuf); + free(secret); return strdup(err); } if (fwrite(secret, 1, SECRET_LENGTH, f) < SECRET_LENGTH || fclose(f) < 0) { @@ -645,11 +648,14 @@ msab_pickSecret(char **generated_secret) strerror(errno)); fclose(f); (void)remove(pathbuf); + free(secret); return strdup(err); } if (generated_secret) *generated_secret = (char*)secret; + else + free(secret); return NULL; #endif } diff --git a/tools/monetdbe/monetdbe.c b/tools/monetdbe/monetdbe.c --- a/tools/monetdbe/monetdbe.c +++ b/tools/monetdbe/monetdbe.c @@ -1443,12 +1443,53 @@ cleanup_get_columns_result(size_t column column_types = NULL; } +static char * +escape_identifier(const char *s) /* Escapes a SQL identifier string, ie the " and \ characters */ +{ + char *ret = NULL, *q; + const char *p = s; + + /* At most we will need 2*strlen(s) + 1 characters */ + if (!(ret = (char *)GDKmalloc(2*strlen(s) + 1))) + return NULL; + + for (q = ret; *p; p++, q++) { + *q = *p; + if (*p == '"') + *(++q) = '"'; + else if (*p == '\\') + *(++q) = '\\'; + } + + *q = '\0'; + return ret; +} + static char* monetdbe_get_columns_remote(monetdbe_database_internal *mdbe, const char* schema_name, const char *table_name, size_t *column_count, char ***column_names, int **column_types) { - char buf[140]; - snprintf(buf, 140, "SELECT * FROM %s.%s WHERE FALSE;", schema_name, table_name); + char buf[1024], *escaped_schema_name = NULL, *escaped_table_name = NULL; + + if (schema_name && !(escaped_schema_name = escape_identifier(schema_name))) { + mdbe->msg = createException(MAL, "monetdbe.monetdbe_get_columns", MAL_MALLOC_FAIL); + return mdbe->msg; + } + if (!(escaped_table_name = escape_identifier(table_name))) { + GDKfree(escaped_schema_name); + mdbe->msg = createException(MAL, "monetdbe.monetdbe_get_columns", MAL_MALLOC_FAIL); + return mdbe->msg; + } + + int len = snprintf(buf, 1024, "SELECT * FROM %s%s%s\"%s\" WHERE FALSE;", + escaped_schema_name ? "\"" : "", escaped_schema_name ? escaped_schema_name : "", + escaped_schema_name ? escaped_schema_name : "\".", escaped_table_name); + GDKfree(escaped_schema_name); + GDKfree(escaped_table_name); + if (len == -1 || len >= 1024) { + mdbe->msg = createException(MAL, "monetdbe.monetdbe_get_columns", "Schema and table path is too large"); + return mdbe->msg; + } monetdbe_result* result = NULL; @@ -1721,7 +1762,7 @@ append_create_remote_append_mal_program( a = newFcnCall(mb, sqlRef, appendRef); setArgType(mb, a, 0, TYPE_int); a = pushArgument(mb, a, mvc_id); - a = pushStr(mb, a, schema); + a = pushStr(mb, a, schema ? schema : "sys"); /* TODO this should be better */ a = pushStr(mb, a, table); a = pushStr(mb, a, cnames[i]); a = pushArgument(mb, a, idx); @@ -1770,10 +1811,6 @@ monetdbe_append(monetdbe_database dbhdl, if ((mdbe->msg = getSQLContext(mdbe->c, NULL, , NULL)) != MAL_SUCCEED) goto cleanup; - if (schema == NULL) { - mdbe->msg = createException(MAL, "monetdbe.monetdbe_append", "schema parameter is NULL"); - goto cleanup; - } if (table == NULL) {
MonetDB: scoping2 - Merged with default
Changeset: 75d52fe05398 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=75d52fe05398 Modified Files: sql/backends/monet5/sql_cat.c sql/include/sql_catalog.h sql/server/rel_optimizer.c sql/server/rel_propagate.c sql/server/rel_schema.c sql/storage/sql_catalog.c Branch: scoping2 Log Message: Merged with default diffs (truncated from 1034 to 300 lines): diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -868,6 +868,15 @@ else fi %endif +%if %{?rhel:0}%{!?rhel:1} || 0%{?rhel} >= 7 +# fix up some paths (/var/run -> /run) +# needed because CMAKE_INSTALL_RUNSTATEDIR refers to /var/run +sed -i 's|/var/run|/run|' \ +%{buildroot}%{_tmpfilesdir}/monetdbd.conf \ +%{buildroot}%{_localstatedir}/monetdb5/dbfarm/.merovingian_properties \ +%{buildroot}%{_unitdir}/monetdbd.service +%endif + %post -p /sbin/ldconfig %postun -p /sbin/ldconfig diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out --- a/clients/Tests/exports.stable.out +++ b/clients/Tests/exports.stable.out @@ -664,6 +664,7 @@ MapiHdl mapi_send(Mapi mid, const char * MapiMsg mapi_setAutocommit(Mapi mid, bool autocommit) __attribute__((__nonnull__(1))); MapiMsg mapi_set_columnar_protocol(Mapi mid, bool columnar_protocol) __attribute__((__nonnull__(1))); MapiMsg mapi_set_size_header(Mapi mid, bool value) __attribute__((__nonnull__(1))); +MapiMsg mapi_set_timeout(Mapi mid, unsigned int timeout, bool (*callback)(void *), void *callback_data) __attribute__((__nonnull__(1))); void mapi_setfilecallback(Mapi mid, char *(*getfunc)(void *priv, const char *filename, bool binary, uint64_t offset, size_t *size), char *(*putfunc)(void *priv, const char *filename, const void *data, size_t size), void *priv) __attribute__((__nonnull__(1))); int mapi_split_line(MapiHdl hdl) __attribute__((__nonnull__(1))); @@ -1783,7 +1784,7 @@ int mnstr_readStr(stream *restrict s, ch ssize_t mnstr_read_block(stream *restrict s, void *restrict buf, size_t elmsize, size_t cnt); ssize_t mnstr_readline(stream *restrict s, void *restrict buf, size_t maxcnt); void mnstr_set_bigendian(stream *s, bool bigendian); -void mnstr_settimeout(stream *s, unsigned int ms, bool (*func)(void)); +void mnstr_settimeout(stream *s, unsigned int ms, bool (*func)(void *), void *data); ssize_t mnstr_write(stream *restrict s, const void *restrict buf, size_t elmsize, size_t cnt); int mnstr_writeBte(stream *s, int8_t val); int mnstr_writeBteArray(stream *restrict s, const int8_t *restrict val, size_t cnt); diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c --- a/clients/mapiclient/mclient.c +++ b/clients/mapiclient/mclient.c @@ -3678,8 +3678,9 @@ main(int argc, char **argv) s = open_rastream(arg); } if (s == NULL) { - fprintf(stderr, "%s: cannot open: %s", arg, mnstr_peek_error(NULL)); + fprintf(stderr, "%s: cannot open: %s\n", arg, mnstr_peek_error(NULL)); c |= 1; + optind++; continue; } // doFile closes 's'. diff --git a/clients/mapilib/mapi.c b/clients/mapilib/mapi.c --- a/clients/mapilib/mapi.c +++ b/clients/mapilib/mapi.c @@ -3279,16 +3279,22 @@ prepareQuery(MapiHdl hdl, const char *cm MapiMsg -mapi_timeout(Mapi mid, unsigned int timeout) +mapi_set_timeout(Mapi mid, unsigned int timeout, bool (*callback)(void *), void *callback_data) { mapi_check(mid); if (mid->trace) printf("Set timeout to %u\n", timeout); - mnstr_settimeout(mid->to, timeout, NULL); - mnstr_settimeout(mid->from, timeout, NULL); + mnstr_settimeout(mid->to, timeout, callback, callback_data); + mnstr_settimeout(mid->from, timeout, callback, callback_data); return MOK; } +MapiMsg +mapi_timeout(Mapi mid, unsigned int timeout) +{ + return mapi_set_timeout(mid, timeout, NULL, NULL); +} + static MapiMsg mapi_Xcommand(Mapi mid, const char *cmdname, const char *cmdvalue) { diff --git a/clients/mapilib/mapi.h b/clients/mapilib/mapi.h --- a/clients/mapilib/mapi.h +++ b/clients/mapilib/mapi.h @@ -177,6 +177,8 @@ mapi_export MapiMsg mapi_cache_freeup(Ma mapi_export MapiMsg mapi_seek_row(MapiHdl hdl, int64_t rowne, int whence) __attribute__((__nonnull__(1))); +mapi_export MapiMsg mapi_set_timeout(Mapi mid, unsigned int timeout, bool (*callback)(void *), void *callback_data) + __attribute__((__nonnull__(1))); mapi_export MapiMsg mapi_timeout(Mapi mid, unsigned int time) __attribute__((__nonnull__(1))); mapi_export int mapi_fetch_row(MapiHdl hdl) diff --git a/common/stream/bs2.c b/common/stream/bs2.c --- a/common/stream/bs2.c +++ b/common/stream/bs2.c @@ -594,6 +594,7 @@
MonetDB: scoping2 - Merged with default
Changeset: 06d8e1f8c508 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=06d8e1f8c508 Branch: scoping2 Log Message: Merged with default diffs (223 lines): diff --git a/.hgtags b/.hgtags --- a/.hgtags +++ b/.hgtags @@ -789,3 +789,5 @@ cb4b3f021774b60ffd84c3004d341ec04de736f3 bd91504a03736565fb2dff13cd4c94c738e81aa0 Oct2020_5 cb4b3f021774b60ffd84c3004d341ec04de736f3 Oct2020_release bd91504a03736565fb2dff13cd4c94c738e81aa0 Oct2020_release +ac8254a47e87d0be9df2a623e2c2fcf67c0f982d Oct2020_7 +ac8254a47e87d0be9df2a623e2c2fcf67c0f982d Oct2020_SP1_release diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -97,7 +97,7 @@ Group: Applications/Databases License: MPLv2.0 URL: https://www.monetdb.org/ BugURL: https://bugs.monetdb.org/ -Source: https://www.monetdb.org/downloads/sources/Oct2020/%{name}-%{version}.tar.bz2 +Source: https://www.monetdb.org/downloads/sources/Oct2020-SP1/%{name}-%{version}.tar.bz2 # The Fedora packaging document says we need systemd-rpm-macros for # the _unitdir and _tmpfilesdir macros to exist; however on RHEL 7 @@ -873,6 +873,22 @@ fi %postun -p /sbin/ldconfig %changelog +* Wed Nov 18 2020 Sjoerd Mullender - 11.39.7-20201118 +- Rebuilt. +- BZ#6890: Add support of xz/lzma (de)compression on MS Windows +- BZ#6891: Add support of lz4 (de)compression on MS Windows +- BZ#6971: Parsing table returning function on remote server fails +- BZ#6981: Oct2020: PREPARE DDL statement silently fails +- BZ#6983: monetdb allows to use non-existing optimizer pipe +- BZ#6998: MAL profiler buffer limitations +- BZ#7001: crossproduct generated for a simple (semi-)join +- BZ#7003: Segfault on large chain of constant decimal multiplication +- BZ#7005: Dropping a STREAM TABLE does not remove the associated column + info from sys._columns +- BZ#7010: deallocate results in all prepared statements being + deallocated (not error-related) +- BZ#7011: uuid() called only once when used in projection list + * Tue Oct 13 2020 Sjoerd Mullender - 11.39.5-20201013 - Rebuilt. diff --git a/cmake/monetdb-versions.cmake b/cmake/monetdb-versions.cmake --- a/cmake/monetdb-versions.cmake +++ b/cmake/monetdb-versions.cmake @@ -50,7 +50,7 @@ set(MONETDB_VERSION "${MONETDB_VERSION_M # version of the GDK library (subdirectory gdk; also includes # common/options and common/utils) set(GDK_VERSION_CURRENT "21") -set(GDK_VERSION_REVISION "2") +set(GDK_VERSION_REVISION "3") set(GDK_VERSION_AGE "0") math(EXPR GDK_VERSION_MAJOR "${GDK_VERSION_CURRENT} - ${GDK_VERSION_AGE}") set(GDK_VERSION "${GDK_VERSION_MAJOR}.${GDK_VERSION_AGE}.${GDK_VERSION_REVISION}") @@ -64,21 +64,21 @@ set(MAPI_VERSION "${MAPI_VERSION_MAJOR}. # version of the MONETDB5 library (subdirectory monetdb5, not including extras or sql) set(MONETDB5_VERSION_CURRENT "30") -set(MONETDB5_VERSION_REVISION "1") +set(MONETDB5_VERSION_REVISION "2") set(MONETDB5_VERSION_AGE "0") math(EXPR MONETDB5_VERSION_MAJOR "${MONETDB5_VERSION_CURRENT} - ${MONETDB5_VERSION_AGE}") set(MONETDB5_VERSION "${MONETDB5_VERSION_MAJOR}.${MONETDB5_VERSION_AGE}.${MONETDB5_VERSION_REVISION}") # version of the MONETDBE library (subdirectory tools/monetdbe) set(MONETDBE_VERSION_CURRENT "1") -set(MONETDBE_VERSION_REVISION "0") +set(MONETDBE_VERSION_REVISION "1") set(MONETDBE_VERSION_AGE "0") math(EXPR MONETDBE_VERSION_MAJOR "${MONETDBE_VERSION_CURRENT} - ${MONETDBE_VERSION_AGE}") set(MONETDBE_VERSION "${MONETDBE_VERSION_MAJOR}.${MONETDBE_VERSION_AGE}.${MONETDBE_VERSION_REVISION}") # version of the STREAM library (subdirectory common/stream) set(STREAM_VERSION_CURRENT "14") -set(STREAM_VERSION_REVISION "1") +set(STREAM_VERSION_REVISION "2") set(STREAM_VERSION_AGE "0") math(EXPR STREAM_VERSION_MAJOR "${STREAM_VERSION_CURRENT} - ${STREAM_VERSION_AGE}") set(STREAM_VERSION "${STREAM_VERSION_MAJOR}.${STREAM_VERSION_AGE}.${STREAM_VERSION_REVISION}") diff --git a/debian/changelog b/debian/changelog --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,22 @@ +monetdb (11.39.7) unstable; urgency=low + + * Rebuilt. + * BZ#6890: Add support of xz/lzma (de)compression on MS Windows + * BZ#6891: Add support of lz4 (de)compression on MS Windows + * BZ#6971: Parsing table returning function on remote server fails + * BZ#6981: Oct2020: PREPARE DDL statement silently fails + * BZ#6983: monetdb allows to use non-existing optimizer pipe + * BZ#6998: MAL profiler buffer limitations + * BZ#7001: crossproduct generated for a simple (semi-)join + * BZ#7003: Segfault on large chain of constant decimal multiplication + * BZ#7005: Dropping a STREAM TABLE does not remove the associated column +info from sys._columns + * BZ#7010: deallocate results in all prepared statements being +deallocated (not error-related) + * BZ#7011: uuid() called only once when used in projection list + + -- Sjoerd Mullender Wed, 18 Nov 2020 15:53:30 +0100 + monetdb (11.39.5) unstable; urgency=low * Rebuilt. diff --git
MonetDB: scoping2 - Merged with default
Changeset: c7c9df6cdd8b for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c7c9df6cdd8b Modified Files: sql/backends/monet5/rel_bin.c sql/backends/monet5/sql_upgrades.c sql/backends/monet5/sql_user.c sql/server/rel_optimizer.c sql/server/sql_parser.y sql/test/pg_regress/Tests/numeric.stable.err Branch: scoping2 Log Message: Merged with default diffs (truncated from 2965 to 300 lines): diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -153,6 +153,13 @@ BuildRequires: python3-numpy %endif %if %{with rintegration} BuildRequires: pkgconfig(libR) +%if (0%{?fedora} == 32) +# work around a packaging bug on Fedora 32 (18 Nov 2020) +# problem is things like: +# file /etc/texlive/web2c/updmap.cfg conflicts between attempted installs of texlive-tetex-7:20190410-12.fc32.noarch and texlive-texlive-scripts-7:20200327-16.fc32.noarch +# texlive-tetex is obsoleted by texlive-obsolete +BuildRequires: texlive-obsolete +%endif %endif # if we were to compile with cmocka support (-DWITH_CMOCKA=ON): # BuildRequires: pkgconfig(cmocka) diff --git a/clients/Tests/MAL-signatures.stable.out b/clients/Tests/MAL-signatures.stable.out --- a/clients/Tests/MAL-signatures.stable.out +++ b/clients/Tests/MAL-signatures.stable.out @@ -6064,6 +6064,8 @@ stdout of test 'MAL-signatures` in direc [ "batmmath", "radians", "pattern batmmath.radians(X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl] ","CMDscience_bat_radians;", "" ] [ "batmmath", "radians", "pattern batmmath.radians(X_1:bat[:flt]):bat[:flt] ", "CMDscience_bat_radians;", "" ] [ "batmmath", "radians", "pattern batmmath.radians(X_1:bat[:flt], X_2:bat[:oid]):bat[:flt] ","CMDscience_bat_radians;", "" ] +[ "batmmath", "rand", "unsafe pattern batmmath.rand(X_1:bat[:int]):bat[:int] ", "CMDscience_bat_randintarg;", "" ] +[ "batmmath", "rand", "unsafe pattern batmmath.rand(X_1:bat[:int], X_2:bat[:oid]):bat[:int] ","CMDscience_bat_randintarg;", "" ] [ "batmmath", "sin", "pattern batmmath.sin(X_1:bat[:dbl]):bat[:dbl] ", "CMDscience_bat_sin;", "" ] [ "batmmath", "sin", "pattern batmmath.sin(X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl] ","CMDscience_bat_sin;", "" ] [ "batmmath", "sin", "pattern batmmath.sin(X_1:bat[:flt]):bat[:flt] ", "CMDscience_bat_sin;", "" ] diff --git a/clients/Tests/MAL-signatures.stable.out.int128 b/clients/Tests/MAL-signatures.stable.out.int128 --- a/clients/Tests/MAL-signatures.stable.out.int128 +++ b/clients/Tests/MAL-signatures.stable.out.int128 @@ -8594,6 +8594,8 @@ stdout of test 'MAL-signatures` in direc [ "batmmath", "radians", "pattern batmmath.radians(X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl] ","CMDscience_bat_radians;", "" ] [ "batmmath", "radians", "pattern batmmath.radians(X_1:bat[:flt]):bat[:flt] ", "CMDscience_bat_radians;", "" ] [ "batmmath", "radians", "pattern batmmath.radians(X_1:bat[:flt], X_2:bat[:oid]):bat[:flt] ","CMDscience_bat_radians;", "" ] +[ "batmmath", "rand", "unsafe pattern batmmath.rand(X_1:bat[:int]):bat[:int] ", "CMDscience_bat_randintarg;", "" ] +[ "batmmath", "rand", "unsafe pattern batmmath.rand(X_1:bat[:int], X_2:bat[:oid]):bat[:int] ","CMDscience_bat_randintarg;", "" ] [ "batmmath", "sin", "pattern batmmath.sin(X_1:bat[:dbl]):bat[:dbl] ", "CMDscience_bat_sin;", "" ] [ "batmmath", "sin", "pattern batmmath.sin(X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl] ","CMDscience_bat_sin;", "" ] [ "batmmath", "sin", "pattern batmmath.sin(X_1:bat[:flt]):bat[:flt] ", "CMDscience_bat_sin;", "" ] diff --git a/gdk/gdk_align.c b/gdk/gdk_align.c --- a/gdk/gdk_align.c +++ b/gdk/gdk_align.c @@ -370,8 +370,10 @@ VIEWreset(BAT *b) b->batCapacity = cnt; /* insert all of v in b, and quit */ - if (BATappend2(b, v, NULL, false, false) != GDK_SUCCEED) + if (BATappend2(b, v, NULL, false, false) != GDK_SUCCEED) { + GDKerror("appending view failed"); goto bailout; + } BBPreclaim(v); } return GDK_SUCCEED; diff --git a/gdk/gdk_join.c b/gdk/gdk_join.c --- a/gdk/gdk_join.c +++ b/gdk/gdk_join.c @@ -2831,6 +2831,233 @@ hashjoin(BAT **r1p, BAT **r2p, BAT *l, B return GDK_FAIL; } +/* population count: count number of 1 bits in a value */ +static inline uint32_t __attribute__((__const__)) +pop(uint32_t x) +{ +#if defined(__GNUC__) + return (uint32_t) __builtin_popcount(x); +#elif defined(_MSC_VER) + return (uint32_t) __popcnt((unsigned int) (x)); +#else + /* divide and conquer implementation (the two versions are +* essentially equivalent, but the first version is written a +* bit smarter) */ +#if 1 +
MonetDB: scoping2 - Merged with default
Changeset: 159fe3ae7ecf for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=159fe3ae7ecf Modified Files: sql/backends/monet5/sql_upgrades.c sql/server/rel_optimizer.c sql/server/rel_rel.c sql/server/rel_select.c sql/server/rel_unnest.c Branch: scoping2 Log Message: Merged with default diffs (truncated from 2731 to 300 lines): diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -183,4 +183,5 @@ if(CMAKE_SUMMARY) monetdb_cmake_summary() endif() + # vim: set ts=2:sw=2:et diff --git a/clients/Tests/MAL-signatures.stable.out b/clients/Tests/MAL-signatures.stable.out --- a/clients/Tests/MAL-signatures.stable.out +++ b/clients/Tests/MAL-signatures.stable.out @@ -6639,6 +6639,7 @@ stdout of test 'MAL-signatures` in direc [ "batudf","fuse", "command batudf.fuse(X_1:bat[:sht], X_2:bat[:sht]):bat[:int] ", "UDFBATfuse;", "" ] [ "batudf","reverse", "command batudf.reverse(X_1:bat[:str]):bat[:str] ", "UDFBATreverse;", "" ] [ "batuuid", "isaUUID", "command batuuid.isaUUID(X_1:bat[:str]):bat[:bit] ","UUIDisaUUID_bulk;","" ] +[ "batuuid", "new", "unsafe command batuuid.new(X_1:bat[:int]):bat[:uuid] ","UUIDgenerateUuidInt_bulk;","" ] [ "batxml","attribute","command batxml.attribute(X_1:str, X_2:bat[:str]):bat[:xml] ", "BATXMLattribute;", "" ] [ "batxml","comment", "command batxml.comment(X_1:bat[:str]):bat[:xml] ", "BATXMLcomment;", "" ] [ "batxml","concat", "command batxml.concat(X_1:bat[:xml], X_2:bat[:xml]):bat[:xml] ", "BATXMLconcat;","" ] diff --git a/clients/Tests/MAL-signatures.stable.out.int128 b/clients/Tests/MAL-signatures.stable.out.int128 --- a/clients/Tests/MAL-signatures.stable.out.int128 +++ b/clients/Tests/MAL-signatures.stable.out.int128 @@ -9199,6 +9199,7 @@ stdout of test 'MAL-signatures` in direc [ "batudf","fuse", "command batudf.fuse(X_1:bat[:sht], X_2:bat[:sht]):bat[:int] ", "UDFBATfuse;", "" ] [ "batudf","reverse", "command batudf.reverse(X_1:bat[:str]):bat[:str] ", "UDFBATreverse;", "" ] [ "batuuid", "isaUUID", "command batuuid.isaUUID(X_1:bat[:str]):bat[:bit] ","UUIDisaUUID_bulk;","" ] +[ "batuuid", "new", "unsafe command batuuid.new(X_1:bat[:int]):bat[:uuid] ","UUIDgenerateUuidInt_bulk;","" ] [ "batxml","attribute","command batxml.attribute(X_1:str, X_2:bat[:str]):bat[:xml] ", "BATXMLattribute;", "" ] [ "batxml","comment", "command batxml.comment(X_1:bat[:str]):bat[:xml] ", "BATXMLcomment;", "" ] [ "batxml","concat", "command batxml.concat(X_1:bat[:xml], X_2:bat[:xml]):bat[:xml] ", "BATXMLconcat;","" ] diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out --- a/clients/Tests/exports.stable.out +++ b/clients/Tests/exports.stable.out @@ -301,7 +301,7 @@ int GDKnr_threads; void GDKprepareExit(void); void GDKqsort(void *restrict h, void *restrict t, const void *restrict base, size_t n, int hs, int ts, int tpe, bool reverse, bool nilslast); void *GDKrealloc(void *pold, size_t size) __attribute__((__alloc_size__(2))) __attribute__((__warn_unused_result__)); -gdk_return GDKrebuild_segment_tree(oid ncount, oid data_size, void **segment_tree, oid *tree_capacity, oid **levels_offset, oid *levels_capacity, oid *nlevels); +gdk_return GDKrebuild_segment_tree(oid ncount, oid data_size, void **segment_tree, oid *tree_capacity, oid **levels_offset, oid *nlevels); gdk_return GDKreleasemmap(void *ptr, size_t size, size_t id); gdk_return GDKreleasesem(int sem_id); void GDKreset(int status); diff --git a/clients/mapiclient/ReadlineTools.c b/clients/mapiclient/ReadlineTools.c --- a/clients/mapiclient/ReadlineTools.c +++ b/clients/mapiclient/ReadlineTools.c @@ -88,7 +88,7 @@ sql_tablename_generator(const char *text static char * sql_command_generator(const char *text, int state) { - static int idx, len; + static size_t idx, len; const char *name; if (!state) { @@ -303,20 +303,43 @@ readline_show_error(const char *msg) { #define BUFFER_SIZE 1024 #endif +#ifdef WIN32 +#define unlink _unlink +#endif + static int invoke_editor(int cnt, int key) { - char template[] = "/tmp/mclient_temp_XX"; char editor_command[BUFFER_SIZE]; char *read_buff = NULL; char *editor = NULL; - FILE *fp; + FILE *fp = NULL; size_t content_len; size_t read_bytes, idx; +#ifdef WIN32 + char *mytemp; + char template[] = "mclient_temp_XX"; +#else + int mytemp; + char template[] = "/tmp/mclient_temp_XX"; +#endif (void) cnt; (void) key; - if ((fp = fdopen(mkstemp(template), "r+")) == NULL) { +#ifdef WIN32 + if ((mytemp =
MonetDB: scoping2 - Merged with default
Changeset: bdd9965fd7da for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=bdd9965fd7da Modified Files: sql/backends/monet5/sql.c sql/backends/monet5/sql_upgrades.c sql/common/sql_types.c sql/include/sql_catalog.h sql/server/rel_dump.c sql/server/rel_exp.c sql/server/rel_optimizer.c sql/server/rel_select.c sql/server/rel_unnest.c sql/test/analytics/Tests/analytics02.stable.err sql/test/analytics/Tests/analytics14.stable.out sql/test/subquery/Tests/correlated.stable.out Branch: scoping2 Log Message: Merged with default diffs (truncated from 143022 to 300 lines): diff --git a/clients/Tests/MAL-signatures.stable.out b/clients/Tests/MAL-signatures.stable.out --- a/clients/Tests/MAL-signatures.stable.out +++ b/clients/Tests/MAL-signatures.stable.out @@ -6294,78 +6294,78 @@ stdout of test 'MAL-signatures` in direc [ "batsql","any", "pattern batsql.any(X_1:bit, X_2:bat[:bit], X_3:bat[:bit]):bat[:bit] ", "SQLany_cmp;", "" ] [ "batsql","any", "pattern batsql.any(X_1:bit, X_2:bat[:bit], X_3:bit):bat[:bit] ", "SQLany_cmp;", "" ] [ "batsql","any", "pattern batsql.any(X_1:bit, X_2:bit, X_3:bat[:bit]):bat[:bit] ", "SQLany_cmp;", "" ] -[ "batsql","avg", "pattern batsql.avg(X_1:bat[:bte], X_2:bat[:lng], X_3:bat[:lng]):bat[:dbl] ", "SQLavg;", "" ] -[ "batsql","avg", "pattern batsql.avg(X_1:bat[:dbl], X_2:bat[:lng], X_3:bat[:lng]):bat[:dbl] ", "SQLavg;", "" ] -[ "batsql","avg", "pattern batsql.avg(X_1:bat[:flt], X_2:bat[:lng], X_3:bat[:lng]):bat[:dbl] ", "SQLavg;", "" ] -[ "batsql","avg", "pattern batsql.avg(X_1:bat[:int], X_2:bat[:lng], X_3:bat[:lng]):bat[:dbl] ", "SQLavg;", "" ] -[ "batsql","avg", "pattern batsql.avg(X_1:bat[:lng], X_2:bat[:lng], X_3:bat[:lng]):bat[:dbl] ", "SQLavg;", "" ] -[ "batsql","avg", "pattern batsql.avg(X_1:bat[:sht], X_2:bat[:lng], X_3:bat[:lng]):bat[:dbl] ", "SQLavg;", "" ] -[ "batsql","avg", "pattern batsql.avg(X_1:bat[:bte], X_2:bat[:lng], X_3:bat[:lng]):bat[:bte] ", "SQLavginteger;", "" ] -[ "batsql","avg", "pattern batsql.avg(X_1:bat[:int], X_2:bat[:lng], X_3:bat[:lng]):bat[:int] ", "SQLavginteger;", "" ] -[ "batsql","avg", "pattern batsql.avg(X_1:bat[:lng], X_2:bat[:lng], X_3:bat[:lng]):bat[:lng] ", "SQLavginteger;", "" ] -[ "batsql","avg", "pattern batsql.avg(X_1:bat[:sht], X_2:bat[:lng], X_3:bat[:lng]):bat[:sht] ", "SQLavginteger;", "" ] -[ "batsql","corr", "pattern batsql.corr(X_1:bat[:bte], X_2:bat[:bte], X_3:bat[:lng], X_4:bat[:lng]):bat[:dbl] ", "SQLcorr;", "" ] -[ "batsql","corr", "pattern batsql.corr(X_1:bat[:bte], X_2:bte, X_3:bat[:lng], X_4:bat[:lng]):bat[:dbl] ", "SQLcorr;", "" ] -[ "batsql","corr", "pattern batsql.corr(X_1:bat[:dbl], X_2:bat[:dbl], X_3:bat[:lng], X_4:bat[:lng]):bat[:dbl] ", "SQLcorr;", "" ] -[ "batsql","corr", "pattern batsql.corr(X_1:bat[:dbl], X_2:dbl, X_3:bat[:lng], X_4:bat[:lng]):bat[:dbl] ", "SQLcorr;", "" ] -[ "batsql","corr", "pattern batsql.corr(X_1:bat[:flt], X_2:bat[:flt], X_3:bat[:lng], X_4:bat[:lng]):bat[:dbl] ", "SQLcorr;", "" ] -[ "batsql","corr", "pattern batsql.corr(X_1:bat[:flt], X_2:flt, X_3:bat[:lng], X_4:bat[:lng]):bat[:dbl] ", "SQLcorr;", "" ] -[ "batsql","corr", "pattern batsql.corr(X_1:bat[:int], X_2:bat[:int], X_3:bat[:lng], X_4:bat[:lng]):bat[:dbl] ", "SQLcorr;", "" ] -[ "batsql","corr", "pattern batsql.corr(X_1:bat[:int], X_2:int, X_3:bat[:lng], X_4:bat[:lng]):bat[:dbl] ", "SQLcorr;", "" ] -[ "batsql","corr", "pattern batsql.corr(X_1:bat[:lng], X_2:bat[:lng], X_3:bat[:lng], X_4:bat[:lng]):bat[:dbl] ", "SQLcorr;", "" ] -[ "batsql","corr", "pattern batsql.corr(X_1:bat[:lng], X_2:lng, X_3:bat[:lng], X_4:bat[:lng]):bat[:dbl] ", "SQLcorr;", "" ] -[ "batsql","corr", "pattern batsql.corr(X_1:bat[:sht], X_2:bat[:sht], X_3:bat[:lng], X_4:bat[:lng]):bat[:dbl] ", "SQLcorr;", "" ] -[ "batsql","corr", "pattern batsql.corr(X_1:bat[:sht], X_2:sht, X_3:bat[:lng], X_4:bat[:lng]):bat[:dbl] ", "SQLcorr;", "" ] -[ "batsql","corr", "pattern batsql.corr(X_1:bte, X_2:bat[:bte], X_3:lng, X_4:lng):bat[:dbl] ", "SQLcorr;", "" ] -[ "batsql","corr", "pattern batsql.corr(X_1:dbl, X_2:bat[:dbl], X_3:lng, X_4:lng):bat[:dbl] ", "SQLcorr;", "" ] -[ "batsql","corr", "pattern batsql.corr(X_1:flt, X_2:bat[:flt], X_3:lng, X_4:lng):bat[:dbl] ", "SQLcorr;", "" ] -[ "batsql","corr", "pattern batsql.corr(X_1:int, X_2:bat[:int], X_3:lng, X_4:lng):bat[:dbl] ", "SQLcorr;", "" ] -[ "batsql","corr", "pattern batsql.corr(X_1:lng, X_2:bat[:lng], X_3:lng, X_4:lng):bat[:dbl] ",
MonetDB: scoping2 - Merged with default
Changeset: 4a5ec936f4c8 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4a5ec936f4c8 Modified Files: sql/server/rel_schema.c sql/server/rel_updates.c sql/test/pg_regress/Tests/alter_table.stable.err sql/test/pg_regress/Tests/int8.stable.err sql/test/pg_regress/Tests/int8.stable.out sql/test/pg_regress/Tests/strings.stable.err Branch: scoping2 Log Message: Merged with default diffs (257 lines): diff --git a/clients/odbc/driver/CMakeLists.txt b/clients/odbc/driver/CMakeLists.txt --- a/clients/odbc/driver/CMakeLists.txt +++ b/clients/odbc/driver/CMakeLists.txt @@ -103,7 +103,7 @@ target_sources(MonetODBC SQLTables.c SQLTransact.c driver.rc - ODBC.syms) + ODBC.def) target_include_directories(MonetODBC PRIVATE diff --git a/clients/odbc/driver/ODBC.syms b/clients/odbc/driver/ODBC.def rename from clients/odbc/driver/ODBC.syms rename to clients/odbc/driver/ODBC.def --- a/clients/odbc/driver/ODBC.syms +++ b/clients/odbc/driver/ODBC.def @@ -1,3 +1,4 @@ +EXPORTS DllMain SQLAllocConnect SQLAllocEnv diff --git a/clients/odbc/driver/driver.rc b/clients/odbc/driver/driver.rc --- a/clients/odbc/driver/driver.rc +++ b/clients/odbc/driver/driver.rc @@ -22,10 +22,10 @@ BEGIN VALUE "CompanyName", "MonetDB B.V.\0" VALUE "FileDescription", "MonetDB ODBC Driver DLL\0" VALUE "FileVersion", sversion(11,40,0) - VALUE "InternalName", "libMonetODBC\0" + VALUE "InternalName", "MonetODBC\0" VALUE "LegalCopyright", "Copyright (c) MonetDB B.V. 2008-2020\0" VALUE "LegalTrademarks", "\0" - VALUE "OriginalFilename", "libMonetODBC.dll\0" + VALUE "OriginalFilename", "MonetODBC.dll\0" VALUE "PrivateBuild", "\0" VALUE "ProductName", "MonetDB SQL Server\0" VALUE "ProductVersion", sversion(11,40,0) diff --git a/clients/odbc/winsetup/CMakeLists.txt b/clients/odbc/winsetup/CMakeLists.txt --- a/clients/odbc/winsetup/CMakeLists.txt +++ b/clients/odbc/winsetup/CMakeLists.txt @@ -13,7 +13,7 @@ target_sources(MonetODBCs PRIVATE setup.c setup.rc - setup.syms + setup.def resource.h) target_include_directories(MonetODBCs diff --git a/clients/odbc/winsetup/install.c b/clients/odbc/winsetup/install.c --- a/clients/odbc/winsetup/install.c +++ b/clients/odbc/winsetup/install.c @@ -20,8 +20,8 @@ static char *DriverName = "MonetDB ODBC Driver"; static char *DataSourceName = "MonetDB"; -static char *DriverDLL = "libMonetODBC" DLL; -static char *DriverDLLs = "libMonetODBCs" DLL; +static char *DriverDLL = "MonetODBC" DLL; +static char *DriverDLLs = "MonetODBCs" DLL; /* General error handler for installer functions */ diff --git a/clients/odbc/winsetup/setup.syms b/clients/odbc/winsetup/setup.def rename from clients/odbc/winsetup/setup.syms rename to clients/odbc/winsetup/setup.def --- a/clients/odbc/winsetup/setup.syms +++ b/clients/odbc/winsetup/setup.def @@ -1,3 +1,4 @@ +EXPORTS DllMain ConfigDSN ConfigDriver diff --git a/clients/odbc/winsetup/setup.rc b/clients/odbc/winsetup/setup.rc --- a/clients/odbc/winsetup/setup.rc +++ b/clients/odbc/winsetup/setup.rc @@ -84,9 +84,9 @@ BEGIN VALUE "CompanyName", "MonetDB B.V." VALUE "FileDescription", "MonetDB ODBC Setup DLL" VALUE "FileVersion", sversion(11,40,0) -VALUE "InternalName", "libMonetODBCs.dll" +VALUE "InternalName", "MonetODBCs.dll" VALUE "LegalCopyright", "Copyright (c) MonetDB B.V. 2008-2020" -VALUE "OriginalFilename", "libMonetODBCs.dll" +VALUE "OriginalFilename", "MonetODBCs.dll" VALUE "ProductName", "MonetDB SQL Server" VALUE "ProductVersion", sversion(11,40,0) END diff --git a/sql/test/pg_regress/Tests/int8.stable.err b/sql/test/pg_regress/Tests/int8.stable.err --- a/sql/test/pg_regress/Tests/int8.stable.err +++ b/sql/test/pg_regress/Tests/int8.stable.err @@ -64,74 +64,74 @@ CODE = 22003 MAPI = (monetdb) /var/tmp/mtest-3604/.s.monetdb.35433 QUERY = SELECT '' AS to_char_1, to_char(q1, '9G999G999G999G999G999'), to_char(q2, '9,999,999,999,999,999') FROM INT8_TBL; -ERROR = !SELECT: no such binary operator 'to_char(bigint,char)' +ERROR = !SELECT: no such binary operator 'to_char'(bigint,char) CODE = 42000 MAPI = (monetdb) /var/tmp/mtest-3604/.s.monetdb.35433 QUERY = SELECT '' AS to_char_2, to_char(q1, '9G999G999G999G999G999D999G999'), to_char(q2, '9,999,999,999,999,999.999,999') FROM INT8_TBL; -ERROR = !SELECT: no such binary operator 'to_char(bigint,char)' +ERROR = !SELECT: no such binary operator 'to_char'(bigint,char) CODE = 42000 MAPI = (monetdb) /var/tmp/mtest-3604/.s.monetdb.35433 QUERY = SELECT '' AS to_char_3, to_char( (q1 * -1), 'PR'), to_char( (q2 * -1), '.999PR') FROM INT8_TBL; -ERROR = !SELECT: no such binary operator 'to_char(bigint,char)' +ERROR = !SELECT: no such
MonetDB: scoping2 - Merged with default
Changeset: 6ba95b007411 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6ba95b007411 Modified Files: sql/server/sql_mvc.h Branch: scoping2 Log Message: Merged with default diffs (truncated from 2443 to 300 lines): diff --git a/clients/Tests/MAL-signatures.stable.out b/clients/Tests/MAL-signatures.stable.out --- a/clients/Tests/MAL-signatures.stable.out +++ b/clients/Tests/MAL-signatures.stable.out @@ -8771,6 +8771,7 @@ stdout of test 'MAL-signatures` in direc [ "inspect", "getDefinition","pattern inspect.getDefinition(X_1:str, X_2:str):bat[:str] ", "INSPECTgetDefinition;","" ] [ "inspect", "getEnvironment", "command inspect.getEnvironment() (X_0:bat[:str], X_1:bat[:str]) ", "INSPECTgetEnvironment;", "" ] [ "inspect", "getEnvironment", "command inspect.getEnvironment(X_1:str):str ", "INSPECTgetEnvironmentKey;","" ] +[ "inspect", "getExistence", "pattern inspect.getExistence(X_1:str, X_2:str):bit ", "INSPECTgetExistence;", "" ] [ "inspect", "getFunction", "pattern inspect.getFunction():bat[:str] ", "INSPECTgetAllFunctions;", "" ] [ "inspect", "getKind", "pattern inspect.getKind():bat[:str] ", "INSPECTgetkind;", "" ] [ "inspect", "getModule","pattern inspect.getModule():bat[:str] ", "INSPECTgetAllModules;","" ] @@ -9244,11 +9245,12 @@ stdout of test 'MAL-signatures` in direc [ "remote","exec", "pattern remote.exec(X_1:str, X_2:str, X_3:str, X_4:ptr, X_5:str...):void ","RMTexec;", "" ] [ "remote","exec", "pattern remote.exec(X_1:str, X_2:str, X_3:str, X_4:str...):str ", "RMTexec;", "" ] [ "remote","exec", "pattern remote.exec(X_1:str, X_2:str, X_3:str, X_4:str...):str... ", "RMTexec;", "" ] +[ "remote","exec", "pattern remote.exec(X_1:str, X_2:str, X_3:str, X_4:str...):void ", "RMTexec;", "" ] [ "remote","get", "pattern remote.get(X_1:str, X_2:str):any ", "RMTget;", "" ] [ "remote","isalive", "command remote.isalive(X_1:str):int ", "RMTisalive;", "" ] [ "remote","prelude", "command remote.prelude():void ", "RMTprelude;", "" ] [ "remote","put", "pattern remote.put(X_1:str, X_2:any):str ", "RMTput;", "" ] -[ "remote","register", "pattern remote.register(X_1:str, X_2:str, X_3:str):void ", "RMTregister;", "" ] +[ "remote","register", "pattern remote.register(X_1:str, X_2:str, X_3:str):str ", "RMTregister;", "" ] [ "remote","register_supervisor", "command remote.register_supervisor(X_1:str, X_2:str):int ", "RMTregisterSupervisor;", "" ] [ "remote","resolve", "command remote.resolve(X_1:str):bat[:str] ", "RMTresolve;", "" ] [ "sample","subuniform", "pattern sample.subuniform(X_1:bat[:any], X_2:dbl):bat[:oid] ", "SAMPLEuniform;", "" ] diff --git a/clients/Tests/MAL-signatures.stable.out.int128 b/clients/Tests/MAL-signatures.stable.out.int128 --- a/clients/Tests/MAL-signatures.stable.out.int128 +++ b/clients/Tests/MAL-signatures.stable.out.int128 @@ -12067,6 +12067,7 @@ stdout of test 'MAL-signatures` in direc [ "inspect", "getDefinition","pattern inspect.getDefinition(X_1:str, X_2:str):bat[:str] ", "INSPECTgetDefinition;","" ] [ "inspect", "getEnvironment", "command inspect.getEnvironment() (X_0:bat[:str], X_1:bat[:str]) ", "INSPECTgetEnvironment;", "" ] [ "inspect", "getEnvironment", "command inspect.getEnvironment(X_1:str):str ", "INSPECTgetEnvironmentKey;","" ] +[ "inspect", "getExistence", "pattern inspect.getExistence(X_1:str, X_2:str):bit ", "INSPECTgetExistence;", "" ] [ "inspect", "getFunction", "pattern inspect.getFunction():bat[:str] ", "INSPECTgetAllFunctions;", "" ] [ "inspect", "getKind", "pattern inspect.getKind():bat[:str] ", "INSPECTgetkind;", "" ] [ "inspect", "getModule","pattern inspect.getModule():bat[:str] ", "INSPECTgetAllModules;","" ] @@ -12546,11 +12547,12 @@ stdout of test 'MAL-signatures` in direc [ "remote","exec", "pattern remote.exec(X_1:str, X_2:str, X_3:str, X_4:ptr, X_5:str...):void ","RMTexec;", "" ] [ "remote","exec", "pattern remote.exec(X_1:str, X_2:str, X_3:str, X_4:str...):str ", "RMTexec;", "" ] [ "remote","exec", "pattern remote.exec(X_1:str, X_2:str, X_3:str, X_4:str...):str... ", "RMTexec;", "" ] +[ "remote","exec", "pattern remote.exec(X_1:str, X_2:str, X_3:str, X_4:str...):void ", "RMTexec;", "" ] [ "remote","get", "pattern remote.get(X_1:str, X_2:str):any ", "RMTget;", "" ] [ "remote","isalive", "command remote.isalive(X_1:str):int ", "RMTisalive;", "" ] [ "remote","prelude", "command
MonetDB: scoping2 - Merged with default
Changeset: 8bee0a614f83 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8bee0a614f83 Modified Files: sql/server/rel_schema.c sql/server/rel_select.c sql/server/rel_updates.c Branch: scoping2 Log Message: Merged with default diffs (truncated from 143694 to 300 lines): diff --git a/.editorconfig b/.editorconfig --- a/.editorconfig +++ b/.editorconfig @@ -1,9 +1,11 @@ +root = true + # Unix-style newlines with a newline ending every file [*] end_of_line = lf insert_final_newline = true -[*.{c,h}] +[*.{c,h}{,.in}] indent_style = tab tab_width = 4 indent_size = tab @@ -11,12 +13,13 @@ trim_trailing_whitespace = true charset = utf-8 max_line_length = 120 -[*.py] +[*.py{,.in}] indent_style = space indent_size = 4 trim_trailing_whitespace = true charset = utf-8 -[gdk/*.{c,h}] -tab_width = 8 -max_line_length = 72 +[{CMakeLists.txt,*.cmake}{,.in}] +indent_style = space +indent_size = 2 +trim_trailing_whitespace = true diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -140,6 +140,13 @@ BuildRequires: pkgconfig(openssl) BuildRequires: pkgconfig(libpcre) >= 4.5 %endif BuildRequires: pkgconfig(zlib) +%if %{?rhel:0}%{!?rhel:1} || 0%{?rhel} > 7 +# not on RHEL 7 +BuildRequires: pkgconfig(liblz4) >= 1.8 +%global LZ4 ON +%else +%global LZ4 OFF +%endif %if %{with py3integration} BuildRequires: pkgconfig(python3) >= 3.5 BuildRequires: python3-numpy @@ -149,8 +156,6 @@ BuildRequires: pkgconfig(libR) %endif # if we were to compile with cmocka support (-DWITH_CMOCKA=ON): # BuildRequires: pkgconfig(cmocka) -# if we were to compile with lz4 support (-DWITH_LZ4=ON): -# BuildRequires: pkgconfig(liblz4) # if we were to compile with NetCDF support (-DNETCDF=ON): # BuildRequires: pkgconfig(netcdf) # if we were to compile with proj support (-DWITH_PROJ=ON): @@ -801,7 +806,7 @@ export CFLAGS -DWITH_CMOCKA=OFF \ -DWITH_CRYPTO=ON \ -DWITH_CURL=ON \ - -DWITH_LZ4=OFF \ + -DWITH_LZ4=%{LZ4} \ -DWITH_LZMA=ON \ -DWITH_PCRE=ON \ -DWITH_PROJ=OFF \ diff --git a/NT/mkodbcwxs.py b/NT/mkodbcwxs.py --- a/NT/mkodbcwxs.py +++ b/NT/mkodbcwxs.py @@ -77,8 +77,8 @@ def main(): print(r'') id = comp(features, id, 14, [r'bin\mapi.dll', # r'lib\mapi.pdb', - r'bin\MonetODBC.dll', # r'lib\MonetODBC.pdb', - r'bin\MonetODBCs.dll', # r'lib\MonetODBCs.pdb', + r'lib\MonetODBC.dll', # r'lib\MonetODBC.pdb', + r'lib\MonetODBCs.dll', # r'lib\MonetODBCs.pdb', r'bin\stream.dll', # r'lib\stream.pdb', vcpkg.format(r'bin\libiconv.dll'), vcpkg.format(r'bin\bz2.dll'), diff --git a/clients/mapiclient/dump.c b/clients/mapiclient/dump.c --- a/clients/mapiclient/dump.c +++ b/clients/mapiclient/dump.c @@ -1315,7 +1315,7 @@ describe_table(Mapi mid, const char *sch /* the table is a real table */ mnstr_printf(toConsole, "CREATE %sTABLE ", type == 3 ? "MERGE " : - type == 4 ? "STREAM " : + /*type == 4 ? "STREAM " : */ type == 5 ? "REMOTE " : type == 6 ? "REPLICA " : ""); diff --git a/clients/mapiclient/mhelp.c b/clients/mapiclient/mhelp.c --- a/clients/mapiclient/mhelp.c +++ b/clients/mapiclient/mhelp.c @@ -208,11 +208,6 @@ SQLhelp sqlhelp1[] = { "[MINVALUE intval | NO MINVALUE] [MAXVALUE intval | NO MAXVALUE] [CACHE intval] [[NO] CYCLE]", "seq_int_datatype,intval", "See also https://www.monetdb.org/Documentation/Manuals/SQLreference/SerialTypes"}, - {"CREATE STREAM TABLE", -"Temporary table, locked during updates/ continues query processing", -"CREATE STREAM TABLE [ IF NOT EXISTS ] qname table_source\n", -"table_source", -NULL}, {"CREATE TABLE", "Create a new table", "CREATE TABLE [ IF NOT EXISTS ] qname table_source [STORAGE ident string]\n" diff --git a/clients/odbc/driver/CMakeLists.txt b/clients/odbc/driver/CMakeLists.txt --- a/clients/odbc/driver/CMakeLists.txt +++ b/clients/odbc/driver/CMakeLists.txt @@ -7,7 +7,7 @@ #]] add_library(MonetODBC - SHARED) + MODULE) target_sources(MonetODBC PRIVATE @@ -114,7 +114,7 @@ target_include_directories(MonetODBC $) target_compile_definitions(MonetODBC - PRIVATE + PRIVATE LIBMONETODBCS) target_link_libraries(MonetODBC diff --git a/clients/odbc/setup/CMakeLists.txt b/clients/odbc/setup/CMakeLists.txt --- a/clients/odbc/setup/CMakeLists.txt +++ b/clients/odbc/setup/CMakeLists.txt @@ -7,11 +7,11 @@ #]] add_library(MonetODBCs - SHARED) + MODULE) target_sources(MonetODBCs PRIVATE - drvcfg.c + drvcfg.c drvcfg.h) target_include_directories(MonetODBCs @@ -21,8 +21,8 @@ target_include_directories(MonetODBCs $
MonetDB: scoping2 - Merged with default
Changeset: e131c875ab2c for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e131c875ab2c Branch: scoping2 Log Message: Merged with default diffs (truncated from 19319 to 300 lines): diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -784,8 +784,6 @@ export CFLAGS %endif %cmake3 \ -DRELEASE_VERSION=ON \ - -DRUNDIR=%{_rundir}/monetdb \ - -DLOGDIR=%{_localstatedir}/log/monetdb \ -DASSERT=OFF \ -DCINTEGRATION=%{?with_cintegration:ON}%{!?with_cintegration:OFF} \ -DFITS=%{?with_fits:ON}%{!?with_fits:OFF} \ @@ -817,7 +815,10 @@ export CFLAGS %cmake3_build %install +mkdir -p "%{buildroot}/usr" +for d in etc var; do mkdir "%{buildroot}/$d"; ln -s ../$d "%{buildroot}/usr/$d"; done %cmake3_install +rm "%{buildroot}/usr/var" "%{buildroot}/usr/etc" # move file to correct location %if %{?rhel:0}%{!?rhel:1} || 0%{?rhel} >= 7 diff --git a/buildtools/conf/monetdbd.conf.in b/buildtools/conf/monetdbd.conf.in --- a/buildtools/conf/monetdbd.conf.in +++ b/buildtools/conf/monetdbd.conf.in @@ -1,3 +1,3 @@ # this file is for systemd # monetdbd needs a directory in /run that is owned by monetdb:monetdb -d @RUNDIR@ 0775 monetdb monetdb - +d @CMAKE_INSTALL_FULL_RUNSTATEDIR@/monetdb 0775 monetdb monetdb - diff --git a/clients/Tests/MAL-signatures.stable.out b/clients/Tests/MAL-signatures.stable.out --- a/clients/Tests/MAL-signatures.stable.out +++ b/clients/Tests/MAL-signatures.stable.out @@ -1332,42 +1332,10 @@ stdout of test 'MAL-signatures` in direc [ "batcalc", "*","pattern batcalc.*(X_1:bat[:bte], X_2:bat[:flt], X_3:bat[:oid], X_4:bat[:oid]):bat[:int] ", "CMDbatMULsignal;", "" ] [ "batcalc", "*","pattern batcalc.*(X_1:bat[:bte], X_2:bat[:flt], X_3:bat[:oid], X_4:bat[:oid]):bat[:lng] ", "CMDbatMULsignal;", "" ] [ "batcalc", "*","pattern batcalc.*(X_1:bat[:bte], X_2:bat[:flt], X_3:bat[:oid], X_4:bat[:oid]):bat[:sht] ", "CMDbatMULsignal;", "" ] -[ "batcalc", "*","pattern batcalc.*(X_1:bat[:bte], X_2:bat[:int], X_3:bat[:oid], X_4:bat[:oid]):bat[:bte] ", "CMDbatMULsignal;", "" ] -[ "batcalc", "*","pattern batcalc.*(X_1:bat[:bte], X_2:bat[:int], X_3:bat[:oid], X_4:bat[:oid]):bat[:bte] ", "CMDbatMULsignal;", "" ] [ "batcalc", "*","pattern batcalc.*(X_1:bat[:bte], X_2:bat[:int], X_3:bat[:oid], X_4:bat[:oid]):bat[:int] ", "CMDbatMULsignal;", "" ] -[ "batcalc", "*","pattern batcalc.*(X_1:bat[:bte], X_2:bat[:int], X_3:bat[:oid], X_4:bat[:oid]):bat[:int] ", "CMDbatMULsignal;", "" ] -[ "batcalc", "*","pattern batcalc.*(X_1:bat[:bte], X_2:bat[:int], X_3:bat[:oid], X_4:bat[:oid]):bat[:int] ", "CMDbatMULsignal;", "" ] -[ "batcalc", "*","pattern batcalc.*(X_1:bat[:bte], X_2:bat[:int], X_3:bat[:oid], X_4:bat[:oid]):bat[:lng] ", "CMDbatMULsignal;", "" ] -[ "batcalc", "*","pattern batcalc.*(X_1:bat[:bte], X_2:bat[:int], X_3:bat[:oid], X_4:bat[:oid]):bat[:lng] ", "CMDbatMULsignal;", "" ] -[ "batcalc", "*","pattern batcalc.*(X_1:bat[:bte], X_2:bat[:int], X_3:bat[:oid], X_4:bat[:oid]):bat[:sht] ", "CMDbatMULsignal;", "" ] -[ "batcalc", "*","pattern batcalc.*(X_1:bat[:bte], X_2:bat[:int], X_3:bat[:oid], X_4:bat[:oid]):bat[:sht] ", "CMDbatMULsignal;", "" ] -[ "batcalc", "*","pattern batcalc.*(X_1:bat[:bte], X_2:bat[:lng], X_3:bat[:oid], X_4:bat[:oid]):bat[:bte] ", "CMDbatMULsignal;", "" ] -[ "batcalc", "*","pattern batcalc.*(X_1:bat[:bte], X_2:bat[:lng], X_3:bat[:oid], X_4:bat[:oid]):bat[:bte] ", "CMDbatMULsignal;", "" ] -[ "batcalc", "*","pattern batcalc.*(X_1:bat[:bte], X_2:bat[:lng], X_3:bat[:oid], X_4:bat[:oid]):bat[:int] ", "CMDbatMULsignal;", "" ] -[ "batcalc", "*","pattern batcalc.*(X_1:bat[:bte], X_2:bat[:lng], X_3:bat[:oid], X_4:bat[:oid]):bat[:int] ", "CMDbatMULsignal;", "" ] [ "batcalc", "*","pattern batcalc.*(X_1:bat[:bte], X_2:bat[:lng], X_3:bat[:oid], X_4:bat[:oid]):bat[:lng] ", "CMDbatMULsignal;", "" ] -[ "batcalc", "*","pattern batcalc.*(X_1:bat[:bte], X_2:bat[:lng], X_3:bat[:oid], X_4:bat[:oid]):bat[:lng] ", "CMDbatMULsignal;", "" ] -[ "batcalc", "*","pattern batcalc.*(X_1:bat[:bte], X_2:bat[:lng], X_3:bat[:oid], X_4:bat[:oid]):bat[:lng] ", "CMDbatMULsignal;", "" ] -[ "batcalc", "*","pattern batcalc.*(X_1:bat[:bte], X_2:bat[:lng], X_3:bat[:oid], X_4:bat[:oid]):bat[:sht] ", "CMDbatMULsignal;", "" ] -[ "batcalc", "*","pattern batcalc.*(X_1:bat[:bte], X_2:bat[:lng], X_3:bat[:oid], X_4:bat[:oid]):bat[:sht] ", "CMDbatMULsignal;", "" ] -[ "batcalc", "*","pattern batcalc.*(X_1:bat[:bte], X_2:bat[:sht], X_3:bat[:oid], X_4:bat[:oid]):bat[:bte] ", "CMDbatMULsignal;", "" ] -[ "batcalc", "*",