Changeset: 0ae4a6d06972 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=0ae4a6d06972 Modified Files: Branch: default Log Message:
Merge with default diffs (truncated from 13906 to 300 lines): diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -419,6 +419,10 @@ fi Summary: MonetDB5 SQL server modules Group: Applications/Databases Requires: MonetDB5-server = %{version}-%{release} +%if (0%{?fedora} > 14) +# for systemd-tmpfiles +Requires: systemd-units +%endif Obsoletes: MonetDB-SQL-devel Obsoletes: %{name}-SQL @@ -431,12 +435,24 @@ accelerators, SQL- and XML- frontends. This package contains the SQL frontend for MonetDB5. If you want to use SQL with MonetDB, you will need to install this package. +%if (0%{?fedora} > 14) +%post SQL-server5 +systemd-tmpfiles --create %{_sysconfdir}/tmpfiles.d/monetdbd.conf +%endif + %files SQL-server5 %defattr(-,root,root) %{_bindir}/monetdb %{_bindir}/monetdbd %dir %attr(775,monetdb,monetdb) %{_localstatedir}/log/monetdb +%if (0%{?fedora} > 14) +# Fedora 15 and newer +%{_sysconfdir}/tmpfiles.d/monetdbd.conf +%else +# Fedora 14 and older %dir %attr(775,monetdb,monetdb) %{_localstatedir}/run/monetdb +%exclude %{_sysconfdir}/tmpfiles.d/monetdbd.conf +%endif %config(noreplace) %{_localstatedir}/monetdb5/dbfarm/.merovingian_properties %{_libdir}/monetdb5/autoload/*_sql.mal %{_libdir}/monetdb5/lib_sql.so 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 @@ -600,8 +600,6 @@ /* Define to 1 if you have the timezone and daylight variables. */ #define HAVE_TIMEZONE 1 -#define timezone _timezone -#define daylight _daylight /* Define to 1 if you have the `trunc' function. */ /* #undef HAVE_TRUNC */ diff --git a/buildtools/ChangeLog.Aug2011 b/buildtools/ChangeLog.Aug2011 --- a/buildtools/ChangeLog.Aug2011 +++ b/buildtools/ChangeLog.Aug2011 @@ -1,6 +1,10 @@ # ChangeLog file for buildtools # This file is updated with Maddlog +* Sat Aug 6 2011 Sjoerd Mullender <sjo...@acm.org> +- Fixed Fedora 15 (and presumably later) configuration that uses a tmpfs + file system for /var/run. This fixes bug 2850. + * Wed Jul 20 2011 Sjoerd Mullender <sjo...@acm.org> - The default OID size for 64-bit Windows is now 64 bits. Databases with 32 bit OIDs are converted automatically. diff --git a/buildtools/conf/Makefile.ag b/buildtools/conf/Makefile.ag --- a/buildtools/conf/Makefile.ag +++ b/buildtools/conf/Makefile.ag @@ -50,4 +50,11 @@ headers_html = { SOURCES = website.html } +headers_systemd = { + COND = NOT_WIN32 + HEADERS = conf + DIR = sysconfdir/tmpfiles.d + SOURCES = monetdbd.conf +} + EXTRA_DIST = rules.mk diff --git a/buildtools/conf/monetdbd.conf b/buildtools/conf/monetdbd.conf new file mode 100644 --- /dev/null +++ b/buildtools/conf/monetdbd.conf @@ -0,0 +1,3 @@ +# this file is for systemd +# monetdbd needs a directory in /var/run that is owned by monetdb:monetdb +d /run/monetdb 0775 monetdb monetdb - diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c --- a/clients/mapiclient/mclient.c +++ b/clients/mapiclient/mclient.c @@ -2362,6 +2362,11 @@ static void set_timezone(Mapi mid) { #ifdef HAVE_TIMEZONE +#ifdef _MSC_VER +#define timezone _timezone +#define daylight _daylight +#define tzset _tzset +#endif char buf[128]; long tzone; MapiHdl hdl; diff --git a/clients/odbc/driver/ODBCConvert.c b/clients/odbc/driver/ODBCConvert.c --- a/clients/odbc/driver/ODBCConvert.c +++ b/clients/odbc/driver/ODBCConvert.c @@ -1199,7 +1199,7 @@ ODBCFetch(ODBCStmt *stmt, case SQL_BINARY: case SQL_VARBINARY: case SQL_LONGVARBINARY: { - size_t i; + size_t k; int n; unsigned char c = 0; SQLLEN j = 0; @@ -1214,13 +1214,13 @@ ODBCFetch(ODBCStmt *stmt, #endif return SQL_ERROR; } - for (i = 0; i < datalen; i++) { - if ('0' <= data[i] && data[i] <= '9') - n = data[i] - '0'; - else if ('A' <= data[i] && data[i] <= 'F') - n = data[i] - 'A' + 10; - else if ('a' <= data[i] && data[i] <= 'f') - n = data[i] - 'a' + 10; + for (k = 0; k < datalen; k++) { + if ('0' <= data[k] && data[k] <= '9') + n = data[k] - '0'; + else if ('A' <= data[k] && data[k] <= 'F') + n = data[k] - 'A' + 10; + else if ('a' <= data[k] && data[k] <= 'f') + n = data[k] - 'a' + 10; else { /* should not happen */ /* General error */ @@ -1231,7 +1231,7 @@ ODBCFetch(ODBCStmt *stmt, #endif return SQL_ERROR; } - if (i & 1) { + if (k & 1) { c |= n; if (j < buflen) p[j] = c; diff --git a/clients/odbc/driver/ODBCDbc.c b/clients/odbc/driver/ODBCDbc.c --- a/clients/odbc/driver/ODBCDbc.c +++ b/clients/odbc/driver/ODBCDbc.c @@ -34,7 +34,7 @@ * This file contains the functions which operate on * ODBC connection structures/objects (see ODBCDbc.h). * - * Author: Martin van Dinther + * Author: Martin van Dinther, Sjoerd Mullender * Date : 30 aug 2002 * **********************************************/ diff --git a/clients/odbc/driver/ODBCDbc.h b/clients/odbc/driver/ODBCDbc.h --- a/clients/odbc/driver/ODBCDbc.h +++ b/clients/odbc/driver/ODBCDbc.h @@ -34,7 +34,7 @@ * This file contains the ODBC connection structure * and function prototypes on this structure. * - * Author: Martin van Dinther + * Author: Martin van Dinther, Sjoerd Mullender * Date : 30 aug 2002 * **********************************************/ diff --git a/clients/odbc/driver/ODBCDesc.c b/clients/odbc/driver/ODBCDesc.c --- a/clients/odbc/driver/ODBCDesc.c +++ b/clients/odbc/driver/ODBCDesc.c @@ -231,8 +231,9 @@ addODBCDescRec(ODBCDesc *desc, SQLSMALLI return &desc->descRec[recno]; } +/* Return either the column size or display size for a column or parameter. */ SQLULEN -ODBCDisplaySize(ODBCDescRec *rec) +ODBCLength(ODBCDescRec *rec, int display) { switch (rec->sql_desc_concise_type) { case SQL_CHAR: @@ -247,67 +248,121 @@ ODBCDisplaySize(ODBCDescRec *rec) return rec->sql_desc_length; case SQL_DECIMAL: case SQL_NUMERIC: - return rec->sql_desc_length; + return rec->sql_desc_length + (display ? 2 : 0); case SQL_BIT: return 1; case SQL_TINYINT: - return 3; + return 3 + (display && !rec->sql_desc_unsigned); case SQL_SMALLINT: - return 5; + return 5 + (display && !rec->sql_desc_unsigned); case SQL_INTEGER: - return 10; + return 10 + (display && !rec->sql_desc_unsigned); case SQL_BIGINT: - return rec->sql_desc_unsigned ? 20 : 19; + return display || rec->sql_desc_unsigned ? 20 : 19; case SQL_REAL: - return 7; + /* display: sign, 7 digits, decimal point, E, sign, 2 digits */ + return display ? 14 : 7; case SQL_FLOAT: case SQL_DOUBLE: - return 15; + /* display: sign, 15 digits, decimal point, E, sign, 3 digits */ + return display ? 24 : 15; case SQL_TYPE_DATE: - return 10; /* strlen("yyyy-mm-dd") */ + /* strlen("yyyy-mm-dd") */ + return 10; case SQL_TYPE_TIME: - return 12; /* strlen("hh:mm:ss.fff") */ + /* strlen("hh:mm:ss.fff") */ + return 12; case SQL_TYPE_TIMESTAMP: - return 23; /* strlen("yyyy-mm-dd hh:mm:ss.fff") */ + /* strlen("yyyy-mm-dd hh:mm:ss.fff") */ + return 23; case SQL_INTERVAL_SECOND: /* strlen("INTERVAL -'sss[.fff]' SECOND(p,q)") */ - return 11 + 13 + (rec->sql_desc_datetime_interval_precision > 10) + (rec->sql_desc_precision > 10) + rec->sql_desc_datetime_interval_precision + (rec->sql_desc_precision > 0 ? rec->sql_desc_precision + 1 : 0); + return 11 + 13 + + (rec->sql_desc_datetime_interval_precision > 10) + + (rec->sql_desc_precision > 10) + + rec->sql_desc_datetime_interval_precision + + (rec->sql_desc_precision > 0 ? + rec->sql_desc_precision + 1 : + 0); case SQL_INTERVAL_DAY_TO_SECOND: /* strlen("INTERVAL -'ddd hh:mm:ss[.fff]' DAY(p) TO SECOND(q)") */ - return 11 + 21 + (rec->sql_desc_datetime_interval_precision > 10) + (rec->sql_desc_precision > 10) + rec->sql_desc_datetime_interval_precision + 9 + (rec->sql_desc_precision > 0 ? rec->sql_desc_precision + 1 : 0); + return 11 + 21 + + (rec->sql_desc_datetime_interval_precision > 10) + + (rec->sql_desc_precision > 10) + + rec->sql_desc_datetime_interval_precision + + 9 + + (rec->sql_desc_precision > 0 ? + rec->sql_desc_precision + 1 : + 0); case SQL_INTERVAL_HOUR_TO_SECOND: /* strlen("INTERVAL -'hhh:mm:ss[.fff]' HOUR(p) TO SECOND(q)") */ - return 11 + 22 + (rec->sql_desc_datetime_interval_precision > 10) + (rec->sql_desc_precision > 10) + rec->sql_desc_datetime_interval_precision + 6 + (rec->sql_desc_precision > 0 ? rec->sql_desc_precision + 1 : 0); + return 11 + 22 + + (rec->sql_desc_datetime_interval_precision > 10) + + (rec->sql_desc_precision > 10) + + rec->sql_desc_datetime_interval_precision + + 6 + + (rec->sql_desc_precision > 0 ? + rec->sql_desc_precision + 1 : + 0); case SQL_INTERVAL_MINUTE_TO_SECOND: /* strlen("INTERVAL -'mmm:ss[.fff]' MINUTE(p) TO SECOND(q)") */ - return 11 + 24 + (rec->sql_desc_datetime_interval_precision > 10) + (rec->sql_desc_precision > 10) + rec->sql_desc_datetime_interval_precision + 3 + (rec->sql_desc_precision > 0 ? rec->sql_desc_precision + 1 : 0); + return 11 + 24 + + (rec->sql_desc_datetime_interval_precision > 10) + + (rec->sql_desc_precision > 10) + + rec->sql_desc_datetime_interval_precision + + 3 + + (rec->sql_desc_precision > 0 ? + rec->sql_desc_precision + 1 : + 0); case SQL_INTERVAL_YEAR: /* strlen("INTERVAL -'yyy' YEAR(p)") */ - return 11 + 9 + (rec->sql_desc_datetime_interval_precision > 10) + rec->sql_desc_datetime_interval_precision; + return 11 + 9 + + (rec->sql_desc_datetime_interval_precision > 10) + + rec->sql_desc_datetime_interval_precision; case SQL_INTERVAL_MONTH: /* strlen("INTERVAL -'yyy' MONTH(p)") */ - return 11 + 10 + (rec->sql_desc_datetime_interval_precision > 10) + rec->sql_desc_datetime_interval_precision; + return 11 + 10 + + (rec->sql_desc_datetime_interval_precision > 10) + + rec->sql_desc_datetime_interval_precision; case SQL_INTERVAL_DAY: /* strlen("INTERVAL -'yyy' DAY(p)") */ - return 11 + 8 + (rec->sql_desc_datetime_interval_precision > 10) + rec->sql_desc_datetime_interval_precision; + return 11 + 8 + + (rec->sql_desc_datetime_interval_precision > 10) + + rec->sql_desc_datetime_interval_precision; case SQL_INTERVAL_HOUR: /* strlen("INTERVAL -'yyy' HOUR(p)") */ - return 11 + 9 + (rec->sql_desc_datetime_interval_precision > 10) + rec->sql_desc_datetime_interval_precision; + return 11 + 9 + + (rec->sql_desc_datetime_interval_precision > 10) + + rec->sql_desc_datetime_interval_precision; case SQL_INTERVAL_MINUTE: /* strlen("INTERVAL -'yyy' MINUTE(p)") */ - return 11 + 11 + (rec->sql_desc_datetime_interval_precision > 10) + rec->sql_desc_datetime_interval_precision; + return 11 + 11 + + (rec->sql_desc_datetime_interval_precision > 10) + + rec->sql_desc_datetime_interval_precision; case SQL_INTERVAL_YEAR_TO_MONTH: /* strlen("INTERVAL -'yyy' YEAR(p) TO MONTH") */ - return 11 + 18 + (rec->sql_desc_datetime_interval_precision > 10) + rec->sql_desc_datetime_interval_precision + 3; _______________________________________________ Checkin-list mailing list Checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list