Changeset: b578cca12939 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b578cca12939 Added Files: sql/test/miscellaneous/Tests/table_udf_missing_var.py sql/test/miscellaneous/Tests/table_udf_missing_var.stable.err sql/test/miscellaneous/Tests/table_udf_missing_var.stable.out sql/test/subquery/Tests/subquery5.stable.err sql/test/subquery/Tests/subquery5.stable.out Removed Files: debian/fix-deb.sh Modified Files: clients/Tests/exports.stable.out clients/mapiclient/mclient.c clients/mapiclient/stethoscope.c clients/mapilib/mapi.c clients/mapilib/monetdb-mapi.pc.in common/stream/stream.c common/stream/stream.h common/utils/mcrypt.h common/utils/mutils.h configure.ag debian/monetdb5-sql.install gdk/Makefile.ag gdk/gdk.h gdk/gdk_aggr.c gdk/gdk_bat.c gdk/gdk_batop.c gdk/gdk_calc.c gdk/gdk_group.c gdk/gdk_join.c gdk/gdk_private.h gdk/gdk_time.h gdk/gdk_unique.c gdk/gdk_utils.c gdk/gdk_utils.h monetdb5/modules/atoms/json.c sql/backends/monet5/UDF/capi/capi.c sql/backends/monet5/UDF/pyapi3/conversion3.c sql/backends/monet5/rel_bin.c sql/backends/monet5/sql_cat.c sql/backends/monet5/sql_gencode.c sql/backends/monet5/sql_statement.c sql/server/rel_exp.c sql/server/rel_optimizer.c sql/server/rel_psm.c sql/server/rel_schema.c sql/server/rel_select.c sql/server/rel_unnest.c sql/server/rel_updates.c sql/server/sql_mvc.c sql/server/sql_query.c sql/server/sql_query.h sql/storage/store.c sql/test/BugTracker-2017/Tests/side-effect.Bug-6397.stable.out.single sql/test/miscellaneous/Tests/All sql/test/miscellaneous/Tests/declared_tables.sql sql/test/miscellaneous/Tests/declared_tables.stable.err sql/test/miscellaneous/Tests/declared_tables.stable.out sql/test/miscellaneous/Tests/groupby_error.sql sql/test/miscellaneous/Tests/groupby_error.stable.out sql/test/miscellaneous/Tests/simple_selects.sql sql/test/miscellaneous/Tests/simple_selects.stable.err sql/test/miscellaneous/Tests/simple_selects.stable.out sql/test/subquery/Tests/subquery3.sql sql/test/subquery/Tests/subquery3.stable.err sql/test/subquery/Tests/subquery3.stable.out sql/test/subquery/Tests/subquery5.sql tools/merovingian/daemon/forkmserver.c tools/merovingian/daemon/handlers.h Branch: unlock Log Message:
Merge with default branch. diffs (truncated from 5415 to 300 lines): 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 @@ -9,7 +9,7 @@ stdout of test 'exports` in directory 'c int ALIGNsynced(BAT *b1, BAT *b2); int ATOMallocate(const char *nme); void *ATOMdup(int id, const void *val); -uint8_t ATOMelmshift(int sz); +uint8_t ATOMelmshift(int sz) __attribute__((__const__)); char *ATOMformat(int id, const void *val); int ATOMindex(const char *nme); size_t ATOMlen(int id, const void *v); @@ -319,7 +319,7 @@ size_t GDKuniqueid(size_t offset); gdk_return GDKupgradevarheap(BAT *b, var_t v, bool copyall, bool mayshare) __attribute__((__warn_unused_result__)); lng GDKusec(void); int GDKverbose; -const char *GDKversion(void); +const char *GDKversion(void) __attribute__((__const__)); size_t GDKvm_cursize(void); void *GDKzalloc(size_t size) __attribute__((__malloc__)) __attribute__((__alloc_size__(1))) __attribute__((__warn_unused_result__)); void HASHdestroy(BAT *b); @@ -441,33 +441,33 @@ BAT *canditer_slice(struct canditer *ci, BAT *canditer_slice2(struct canditer *ci, BUN lo1, BUN hi1, BUN lo2, BUN hi2); int closedir(DIR *dir); char *ctime_r(const time_t *restrict, char *restrict); -date date_add_day(date dt, int days); -date date_add_month(date dt, int months); -int date_century(date dt); -date date_create(int year, int month, int day); -int date_day(date dt); -int date_dayofweek(date dt); -int date_dayofyear(date dt); -int date_decade(date dt); -int date_diff(date d1, date d2); +date date_add_day(date dt, int days) __attribute__((__const__)); +date date_add_month(date dt, int months) __attribute__((__const__)); +int date_century(date dt) __attribute__((__const__)); +date date_create(int year, int month, int day) __attribute__((__const__)); +int date_day(date dt) __attribute__((__const__)); +int date_dayofweek(date dt) __attribute__((__const__)); +int date_dayofyear(date dt) __attribute__((__const__)); +int date_decade(date dt) __attribute__((__const__)); +int date_diff(date d1, date d2) __attribute__((__const__)); ssize_t date_fromstr(const char *buf, size_t *len, date **d, bool external); -int date_month(date dt); -int date_quarter(date dt); +int date_month(date dt) __attribute__((__const__)); +int date_quarter(date dt) __attribute__((__const__)); ssize_t date_tostr(str *buf, size_t *len, const date *val, bool external); -int date_weekofyear(date dt); -int date_year(date dt); -daytime daytime_add_usec(daytime tm, lng usec); -daytime daytime_add_usec_modulo(daytime tm, lng usec); -daytime daytime_create(int hour, int minute, int second, int usec); +int date_weekofyear(date dt) __attribute__((__const__)); +int date_year(date dt) __attribute__((__const__)); +daytime daytime_add_usec(daytime tm, lng usec) __attribute__((__const__)); +daytime daytime_add_usec_modulo(daytime tm, lng usec) __attribute__((__const__)); +daytime daytime_create(int hour, int minute, int second, int usec) __attribute__((__const__)); ssize_t daytime_fromstr(const char *buf, size_t *len, daytime **d, bool external); -int daytime_hour(daytime tm); -int daytime_min(daytime tm); +int daytime_hour(daytime tm) __attribute__((__const__)); +int daytime_min(daytime tm) __attribute__((__const__)); ssize_t daytime_precision_tostr(str *buf, size_t *len, const daytime dt, int precision, bool external); -int daytime_sec(daytime tm); -int daytime_sec_usec(daytime tm); +int daytime_sec(daytime tm) __attribute__((__const__)); +int daytime_sec_usec(daytime tm) __attribute__((__const__)); ssize_t daytime_tostr(str *buf, size_t *len, const daytime *val, bool external); ssize_t daytime_tz_fromstr(const char *buf, size_t *len, daytime **d, bool external); -int daytime_usec(daytime tm); +int daytime_usec(daytime tm) __attribute__((__const__)); ssize_t dblFromStr(const char *src, size_t *len, dbl **dst, bool external); ssize_t dblToStr(str *dst, size_t *len, const dbl *src, bool external); const dbl dbl_nil; @@ -524,7 +524,7 @@ int logger_sequence(logger *lg, int seq, gdk_return logger_upgrade_bat(logger *lg, const char *name, char tpe, oid id) __attribute__((__warn_unused_result__)); void logger_with_ids(logger *lg); void *mdlopen(const char *library, int mode); -const char *mercurial_revision(void); +const char *mercurial_revision(void) __attribute__((__const__)); int mo_add_option(opt **Set, int setlen, opt_kind kind, const char *name, const char *value); int mo_builtin_settings(opt **Set); char *mo_find_option(opt *set, int setlen, const char *name); @@ -545,17 +545,17 @@ const sht sht_nil; ssize_t strFromStr(const char *restrict src, size_t *restrict len, str *restrict dst, bool external); const char str_nil[2]; int strerror_r(int errnum, char *buf, size_t buflen); -timestamp timestamp_add_month(timestamp t, int m); -timestamp timestamp_add_usec(timestamp t, lng usec); -timestamp timestamp_create(date dt, daytime tm); +timestamp timestamp_add_month(timestamp t, int m) __attribute__((__const__)); +timestamp timestamp_add_usec(timestamp t, lng usec) __attribute__((__const__)); +timestamp timestamp_create(date dt, daytime tm) __attribute__((__const__)); timestamp timestamp_current(void); -date timestamp_date(timestamp t); -daytime timestamp_daytime(timestamp t); -lng timestamp_diff(timestamp t1, timestamp t2); -timestamp timestamp_fromdate(date dt); +date timestamp_date(timestamp t) __attribute__((__const__)); +daytime timestamp_daytime(timestamp t) __attribute__((__const__)); +lng timestamp_diff(timestamp t1, timestamp t2) __attribute__((__const__)); +timestamp timestamp_fromdate(date dt) __attribute__((__const__)); ssize_t timestamp_fromstr(const char *buf, size_t *len, timestamp **d, bool external); -timestamp timestamp_fromtime(time_t timeval); -timestamp timestamp_fromusec(lng usec); +timestamp timestamp_fromtime(time_t timeval) __attribute__((__const__)); +timestamp timestamp_fromusec(lng usec) __attribute__((__const__)); ssize_t timestamp_precision_tostr(str *buf, size_t *len, timestamp val, int precision, bool external); ssize_t timestamp_tostr(str *buf, size_t *len, const timestamp *val, bool external); ssize_t timestamp_tz_fromstr(const char *buf, size_t *len, timestamp **ret, bool external); @@ -669,7 +669,7 @@ char *mcrypt_SHA224Sum(const char *strin char *mcrypt_SHA256Sum(const char *string, size_t len); char *mcrypt_SHA384Sum(const char *string, size_t len); char *mcrypt_SHA512Sum(const char *string, size_t len); -const char *mcrypt_getHashAlgorithms(void); +const char *mcrypt_getHashAlgorithms(void) __attribute__((__const__)); char *mcrypt_hashPassword(const char *algo, const char *password, const char *challenge); int mo_add_option(opt **Set, int setlen, opt_kind kind, const char *name, const char *value); int mo_builtin_settings(opt **Set); @@ -2677,22 +2677,22 @@ int getFileNo(stream *s); size_t getFileSize(stream *s); stream *iconv_rstream(stream *restrict ss, const char *restrict charset, const char *restrict name); stream *iconv_wstream(stream *restrict ss, const char *restrict charset, const char *restrict name); -bool isa_block_stream(stream *s); +bool isa_block_stream(const stream *s); void mnstr_clearerr(stream *s); void mnstr_close(stream *s); void mnstr_destroy(stream *s); -int mnstr_errnr(stream *s); -char *mnstr_error(stream *s); +int mnstr_errnr(const stream *s); +char *mnstr_error(const stream *s); int mnstr_fgetpos(stream *restrict s, fpos_t *restrict p); int mnstr_flush(stream *s); int mnstr_fsetpos(stream *restrict s, fpos_t *restrict p); int mnstr_fsync(stream *s); buffer *mnstr_get_buffer(stream *s); -bool mnstr_get_swapbytes(stream *s); +bool mnstr_get_swapbytes(const stream *s); int mnstr_init(void); -int mnstr_isalive(stream *s); -bool mnstr_isbinary(stream *s); -char *mnstr_name(stream *s); +int mnstr_isalive(const stream *s); +bool mnstr_isbinary(const stream *s); +char *mnstr_name(const stream *s); int mnstr_printf(stream *restrict s, _In_z_ _Printf_format_string_ const char *restrict format, ...) __attribute__((__format__(__printf__, 2, 3))); ssize_t mnstr_read(stream *restrict s, void *restrict buf, size_t elmsize, size_t cnt); int mnstr_readBte(stream *restrict s, int8_t *restrict val); diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c --- a/clients/mapiclient/mclient.c +++ b/clients/mapiclient/mclient.c @@ -687,7 +687,7 @@ SQLrow(int *len, int *numeric, char **re mnstr_printf(toConsole, "\\%03o", (unsigned char) *p); else if (*p == '\302' && (p[1] & 0xE0) == 0x80) { - mnstr_printf(toConsole, "\\u%04x", (p[1] & 0x3F) | 0x80); + mnstr_printf(toConsole, "\\u%04x", (unsigned) ((p[1] & 0x3F) | 0x80)); p++; } else mnstr_write(toConsole, p, 1, 1); @@ -705,7 +705,7 @@ SQLrow(int *len, int *numeric, char **re mnstr_printf(toConsole, "\\%03o", (unsigned char) *p); else if (*p == '\302' && (p[1] & 0xE0) == 0x80) { - mnstr_printf(toConsole, "\\u%04x", (p[1] & 0x3F) | 0x80); + mnstr_printf(toConsole, "\\u%04x", (unsigned) ((p[1] & 0x3F) | 0x80)); p++; } else mnstr_write(toConsole, p, 1, 1); @@ -753,7 +753,7 @@ SQLrow(int *len, int *numeric, char **re mnstr_printf(toConsole, "\\%03o", (unsigned char) *p); else if (*p == '\302' && (p[1] & 0xE0) == 0x80) { - mnstr_printf(toConsole, "\\u%04x", (p[1] & 0x3F) | 0x80); + mnstr_printf(toConsole, "\\u%04x", (unsigned) ((p[1] & 0x3F) | 0x80)); p++; } else mnstr_write(toConsole, p, 1, 1); diff --git a/clients/mapiclient/stethoscope.c b/clients/mapiclient/stethoscope.c --- a/clients/mapiclient/stethoscope.c +++ b/clients/mapiclient/stethoscope.c @@ -79,7 +79,7 @@ static FILE *trace ; * Tuple level reformatting */ -static void +static _Noreturn void usageStethoscope(void) { fprintf(stderr, "stethoscope [options] \n"); @@ -210,20 +210,14 @@ main(int argc, char **argv) break; case '?': usageStethoscope(); - /* a bit of a hack: look at the option that the - current `c' is based on and see if we recognize - it: if -? or --help, exit with 0, else with -1 */ - exit(strcmp(argv[optind - 1], "-?") == 0 || strcmp(argv[optind - 1], "--help") == 0 ? 0 : -1); default: usageStethoscope(); - exit(-1); } } if(dbname == NULL){ usageStethoscope(); - exit(-1); } if(debug) diff --git a/clients/mapilib/mapi.c b/clients/mapilib/mapi.c --- a/clients/mapilib/mapi.c +++ b/clients/mapilib/mapi.c @@ -1248,6 +1248,8 @@ void mapi_noexplain(Mapi mid, const char *errorprefix) { assert(mid); + if (mid->noexplain) + free(mid->noexplain); mid->noexplain = errorprefix ? strdup(errorprefix) : NULL; } diff --git a/clients/mapilib/monetdb-mapi.pc.in b/clients/mapilib/monetdb-mapi.pc.in --- a/clients/mapilib/monetdb-mapi.pc.in +++ b/clients/mapilib/monetdb-mapi.pc.in @@ -4,15 +4,15 @@ # # Copyright 1997 - July 2008 CWI, August 2008 - 2020 MonetDB B.V. -prefix=@CMAKE_INSTALL_PREFIX@ -exec_prefix=${exec_prefix} -libdir=${libdir} -includedir=${includedir} +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ Name: monetdb-mapi Description: MonetDB MAPI C-client libary -Version: @MONETDB_VERSION@ +Version: @PACKAGE_VERSION@ Requires: monetdb-stream openssl -Libs: -L${libdir} -lmapi +Libs: -L${libdir} -lmapi @SOCKET_LIBS@ Cflags: -I${includedir}/monetdb diff --git a/common/stream/stream.c b/common/stream/stream.c --- a/common/stream/stream.c +++ b/common/stream/stream.c @@ -202,14 +202,14 @@ struct stream { ssize_t (*write)(stream *restrict s, const void *restrict buf, size_t elmsize, size_t cnt); void (*close)(stream *s); void (*clrerr)(stream *s); - char *(*error)(stream *s); + char *(*error)(const stream *s); void (*destroy)(stream *s); int (*flush)(stream *s); int (*fsync)(stream *s); int (*fgetpos)(stream *restrict s, fpos_t *restrict p); int (*fsetpos)(stream *restrict s, fpos_t *restrict p); void (*update_timeout)(stream *s); - int (*isalive)(stream *s); + int (*isalive)(const stream *s); }; int @@ -485,7 +485,7 @@ mnstr_destroy(stream *s) } char * -mnstr_error(stream *s) +mnstr_error(const stream *s) { if (s == NULL) return "Connection terminated"; @@ -558,7 +558,7 @@ mnstr_fsetpos(stream *restrict s, fpos_t } int -mnstr_isalive(stream *s) +mnstr_isalive(const stream *s) { if (s == NULL) return 0; @@ -570,7 +570,7 @@ mnstr_isalive(stream *s) } char * -mnstr_name(stream *s) +mnstr_name(const stream *s) { if (s == NULL) return "connection terminated"; @@ -578,7 +578,7 @@ mnstr_name(stream *s) } _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list