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

Reply via email to