Changeset: 7fc73728e044 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7fc73728e044 Modified Files: MacOSX/MonetDB.pkgproj MonetDB.spec NT/monetdb_config.h.in clients/mapiclient/ReadlineTools.c clients/mapiclient/Tests/mclient--help.stable.err clients/mapiclient/Tests/mclient--help.stable.err.Windows clients/mapiclient/dump.c clients/mapiclient/stethoscope.c clients/mapiclient/tachograph.c clients/mapiclient/tomograph.c clients/mapilib/mapi.c clients/odbc/driver/SQLExecute.c common/options/monet_options.c common/stream/stream.c common/utils/mutils.c debian/control gdk/gdk_bbp.c testing/Mtest.py.in Branch: default Log Message:
merge diffs (truncated from 842 to 300 lines): diff --git a/MacOSX/MonetDB.pkgproj b/MacOSX/MonetDB.pkgproj --- a/MacOSX/MonetDB.pkgproj +++ b/MacOSX/MonetDB.pkgproj @@ -504,7 +504,7 @@ <key>CONCLUSION_ACTION</key> <integer>0</integer> <key>IDENTIFIER</key> - <string>com.monetdbsolutions.pkg.monetdb</string> + <string>org.monetdb.pkg.monetdb</string> <key>NAME</key> <string>MonetDB</string> <key>OVERWRITE_PERMISSIONS</key> @@ -815,13 +815,6 @@ <key>PATH_TYPE</key> <integer>1</integer> </dict> - <key>CERTIFICATE</key> - <dict> - <key>NAME</key> - <string>Developer ID Installer: MonetDB Solutions B.V. (YEJLE7L8A4)</string> - <key>PATH</key> - <string>/Users/sjoerd/Library/Keychains/login.keychain</string> - </dict> <key>EXCLUDED_FILES</key> <array> <dict> @@ -991,7 +984,7 @@ </dict> </array> <key>NAME</key> - <string>MonetDB</string> + <string>MonetDB-unsigned</string> </dict> </dict> <key>TYPE</key> diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -599,7 +599,9 @@ Requires: %{name}-client%{?_isa} = %{ver Obsoletes: MonetDB5-server-rdf %if (0%{?fedora} >= 22) Recommends: %{name}-SQL-server5 +%if %{bits} == 64 Recommends: MonetDB5-server-hugeint +%endif Suggests: %{name}-client %endif @@ -655,7 +657,9 @@ fi %exclude %{_libdir}/monetdb5/rapi.mal %endif %exclude %{_libdir}/monetdb5/sql*.mal +%if %{bits} == 64 %exclude %{_libdir}/monetdb5/*_hge.mal +%endif %{_libdir}/monetdb5/*.mal %if %{?with_geos:1}%{!?with_geos:0} %exclude %{_libdir}/monetdb5/autoload/*_geom.mal @@ -685,6 +689,7 @@ fi %docdir %{_datadir}/doc/MonetDB %{_datadir}/doc/MonetDB/* +%if %{bits} == 64 %package -n MonetDB5-server-hugeint Summary: MonetDB - 128-bit integer support for MonetDB5-server Group: Application/Databases @@ -704,6 +709,7 @@ MonetDB5-server component. %{_libdir}/monetdb5/*_hge.mal %exclude %{_libdir}/monetdb5/autoload/??_sql_hge.mal %{_libdir}/monetdb5/autoload/*_hge.mal +%endif %package -n MonetDB5-server-devel Summary: MonetDB development files @@ -738,7 +744,9 @@ Requires: %{_bindir}/systemd-tmpfiles Obsoletes: MonetDB-SQL-devel Obsoletes: %{name}-SQL %if (0%{?fedora} >= 22) +%if %{bits} == 64 Recommends: %{name}-SQL-server5-hugeint +%endif Suggests: %{name}-client %endif @@ -781,16 +789,19 @@ systemd-tmpfiles --create %{_sysconfdir} %if %{?with_samtools:1}%{!?with_samtools:0} %exclude %{_libdir}/monetdb5/createdb/*_bam.sql %endif +%{_libdir}/monetdb5/createdb/*.sql +%{_libdir}/monetdb5/sql*.mal +%if %{bits} == 64 %exclude %{_libdir}/monetdb5/createdb/*_hge.sql -%{_libdir}/monetdb5/createdb/*.sql %exclude %{_libdir}/monetdb5/sql*_hge.mal -%{_libdir}/monetdb5/sql*.mal +%endif %doc %{_mandir}/man1/monetdb.1.gz %doc %{_mandir}/man1/monetdbd.1.gz %dir %{_datadir}/doc/MonetDB-SQL %docdir %{_datadir}/doc/MonetDB-SQL %{_datadir}/doc/MonetDB-SQL/* +%if %{bits} == 64 %package SQL-server5-hugeint Summary: MonetDB5 128 bit integer (hugeint) support for SQL Group: Applications/Databases @@ -811,6 +822,7 @@ frontend of MonetDB. %{_libdir}/monetdb5/autoload/??_sql_hge.mal %{_libdir}/monetdb5/createdb/*_hge.sql %{_libdir}/monetdb5/sql*_hge.mal +%endif %package -n python-monetdb Summary: Native MonetDB client Python API diff --git a/NT/monetdb_config.h.in b/NT/monetdb_config.h.in --- a/NT/monetdb_config.h.in +++ b/NT/monetdb_config.h.in @@ -49,6 +49,14 @@ #include <stddef.h> #include <ws2tcpip.h> +#include <sys/types.h> +#include <stdio.h> /* NULL, printf etc. */ +#include <stdlib.h> +#include <errno.h> +#include <stdarg.h> /* va_alist.. */ + +#include <assert.h> + /* indicate to sqltypes.h that windows.h has already been included and that it doesn't have to define Windows constants */ #define ALREADY_HAVE_WINDOWS_TYPE 1 @@ -995,9 +1003,37 @@ /* #undef size_t */ #if _MSC_VER < 1900 -#ifndef snprintf -#define snprintf _snprintf -#endif +#define snprintf c99_snprintf +#define vsnprintf c99_vsnprintf + +/* Microsoft _snprintf returns -1 and does not null-terminate when the + * buffer is too small, so work around that */ + +static inline int +c99_vsnprintf(char *outBuf, size_t size, const char *format, va_list ap) +{ + int count = -1; + + if (size != 0) + count = _vsnprintf_s(outBuf, size, _TRUNCATE, format, ap); + if (count == -1) + count = _vscprintf(format, ap); + + return count; +} + +static inline int +c99_snprintf(char *outBuf, size_t size, const char *format, ...) +{ + int count; + va_list ap; + + va_start(ap, format); + count = c99_vsnprintf(outBuf, size, format, ap); + va_end(ap); + + return count; +} #endif /* type used by connect */ @@ -1020,20 +1056,6 @@ typedef unsigned short uint16_t; typedef unsigned int uint32_t; typedef unsigned __int64 uint64_t; -#if _MSC_VER < 1500 -#ifndef vsnprintf -#define vsnprintf _vsnprintf -#endif -#endif - -#include <sys/types.h> -#include <stdio.h> /* NULL, printf etc. */ -#include <stdlib.h> -#include <errno.h> -#include <stdarg.h> /* va_alist.. */ - -#include <assert.h> - /* normally defined in stdbool.h, but that doesn't exist on Windows */ #define true 1 #define false 0 diff --git a/clients/mapiclient/ReadlineTools.c b/clients/mapiclient/ReadlineTools.c --- a/clients/mapiclient/ReadlineTools.c +++ b/clients/mapiclient/ReadlineTools.c @@ -61,12 +61,16 @@ sql_tablename_generator(const char *text static MapiHdl table_hdl; if (!state) { - char query[512]; + char *query; seekpos = 0; len = strlen(text); - snprintf(query, sizeof(query), "SELECT t.\"name\", s.\"name\" FROM \"sys\".\"tables\" t, \"sys\".\"schemas\" s where t.schema_id = s.id AND t.\"name\" like '%s%%'", text); - if ((table_hdl = mapi_query(_mid, query)) == NULL || mapi_error(_mid)) { + if ((query = malloc(len + 128)) == NULL) + return NULL; + snprintf(query, len + 128, "SELECT t.\"name\", s.\"name\" FROM \"sys\".\"tables\" t, \"sys\".\"schemas\" s where t.schema_id = s.id AND t.\"name\" like '%s%%'", text); + table_hdl = mapi_query(_mid, query); + free(query); + if (table_hdl == NULL || mapi_error(_mid)) { if (table_hdl) { mapi_explain_query(table_hdl, stderr); mapi_close_handle(table_hdl); @@ -176,7 +180,7 @@ static char *mal_commands[] = { static int mal_help(int cnt, int key) { - char *name, *c, buf[512]; + char *name, *c, *buf; int seekpos = 0, rowcount; MapiHdl table_hdl; @@ -188,8 +192,12 @@ mal_help(int cnt, int key) c--; while (c > rl_line_buffer && !isspace(*c)) c--; - snprintf(buf, sizeof(buf), "manual.help(\"%s\");", c); - if ((table_hdl = mapi_query(_mid, buf)) == NULL || mapi_error(_mid)) { + if ((buf = malloc(strlen(c) + 20)) == NULL) + return 0; + snprintf(buf, strlen(c) + 20, "manual.help(\"%s\");", c); + table_hdl = mapi_query(_mid, buf); + free(buf); + if (table_hdl == NULL || mapi_error(_mid)) { if (table_hdl) { mapi_explain_query(table_hdl, stderr); mapi_close_handle(table_hdl); @@ -220,7 +228,7 @@ mal_command_generator(const char *text, static int idx; static int seekpos, len, rowcount; static MapiHdl table_hdl; - char *name, buf[512]; + char *name, *buf; /* we pick our own portion of the linebuffer */ text = rl_line_buffer + strlen(rl_line_buffer) - 1; @@ -250,14 +258,18 @@ mal_command_generator(const char *text, text = c + 2; while (isspace((int) *text)) text++; + if ((buf = malloc(strlen(text) + 32)) == NULL) + return NULL; if (strchr(text, '.') == NULL) - snprintf(buf, sizeof(buf), + snprintf(buf, strlen(text) + 32, "manual.completion(\"%s.*(\");", text); else - snprintf(buf, sizeof(buf), + snprintf(buf, strlen(text) + 32, "manual.completion(\"%s(\");", text); seekpos = 0; - if ((table_hdl = mapi_query(_mid, buf)) == NULL || mapi_error(_mid)) { + table_hdl = mapi_query(_mid, buf); + free(buf); + if (table_hdl == NULL || mapi_error(_mid)) { if (table_hdl) { mapi_explain_query(table_hdl, stderr); mapi_close_handle(table_hdl); diff --git a/clients/mapiclient/Tests/mclient--help.stable.err b/clients/mapiclient/Tests/mclient--help.stable.err --- a/clients/mapiclient/Tests/mclient--help.stable.err +++ b/clients/mapiclient/Tests/mclient--help.stable.err @@ -38,7 +38,6 @@ SQL specific opions -w nr | --width=nr for pagination -D | --dump create an SQL dump -N | --inserts use INSERT INTO statements when dumping - -P | --progress show progress bar The file argument can be - for stdin # 18:57:57 > diff --git a/clients/mapiclient/Tests/mclient--help.stable.err.Windows b/clients/mapiclient/Tests/mclient--help.stable.err.Windows --- a/clients/mapiclient/Tests/mclient--help.stable.err.Windows +++ b/clients/mapiclient/Tests/mclient--help.stable.err.Windows @@ -37,7 +37,6 @@ SQL specific opions -w nr | --width=nr for pagination -D | --dump create an SQL dump -N | --inserts use INSERT INTO statements when dumping - -P | --progress show progress bar The file argument can be - for stdin # 18:57:57 > diff --git a/clients/mapiclient/dump.c b/clients/mapiclient/dump.c --- a/clients/mapiclient/dump.c +++ b/clients/mapiclient/dump.c @@ -212,7 +212,7 @@ dump_foreign_keys(Mapi mid, const char * "fkt.name = '%s' " "ORDER BY fkk.name, nr", schema, tname); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list