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 <[email protected]>
+- 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 <[email protected]>
- 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
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list