Changeset: e54ec833a505 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e54ec833a505
Modified Files:
        
Branch: default
Log Message:

Merge with Dec2011 branch.


diffs (truncated from 2558 to 300 lines):

diff --git a/clients/ChangeLog.Dec2011 b/clients/ChangeLog.Dec2011
--- a/clients/ChangeLog.Dec2011
+++ b/clients/ChangeLog.Dec2011
@@ -1,6 +1,11 @@
 # ChangeLog file for clients
 # This file is updated with Maddlog
 
+* Tue Dec  6 2011 Fabian Groffen <[email protected]>
+- Fixed some bugs in the PHP interface affecting the mapi_ping(),
+  monetdb_insert_id() and auto_commit() functions.  Bugs #2936, #2937,
+  #2938.
+
 * Tue Nov 15 2011 Sjoerd Mullender <[email protected]>
 - ODBC: Fixed SQLNumResultCols and SQLDescribeCol to return useful
   information after a call to SQLPrepare and before any SQLExecute.
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
@@ -1233,9 +1233,12 @@ ODBCFetch(ODBCStmt *stmt,
                if (type == SQL_C_WCHAR) {
                        /* allocate temporary space */
                        buflen = 511; /* should be enough for most types */
-                       if (sql_type == SQL_CHAR && data != NULL)
-                               buflen = (SQLLEN) datalen; /* but this is 
certainly enough for strings */
-                       ptr = malloc(buflen + 1);
+                       if (data != NULL &&
+                           (sql_type == SQL_CHAR ||
+                            sql_type == SQL_VARCHAR ||
+                            sql_type == SQL_LONGVARCHAR))
+                               buflen = (SQLLEN) datalen + 1; /* but this is 
certainly enough for strings */
+                       ptr = malloc(buflen);
 
                        lenp = NULL;
                }
diff --git a/clients/odbc/driver/ODBCGlobal.h b/clients/odbc/driver/ODBCGlobal.h
--- a/clients/odbc/driver/ODBCGlobal.h
+++ b/clients/odbc/driver/ODBCGlobal.h
@@ -141,6 +141,17 @@ extern const char *ODBCdebug;
 extern void ODBCLOG(_In_z_ _Printf_format_string_ const char *fmt, ...)
        __attribute__((__format__(__printf__, 1, 2)));
 #endif
+
+char *translateCType(SQLSMALLINT ValueType);
+char *translateSQLType(SQLSMALLINT ParameterType);
+char *translateFieldIdentifier(SQLSMALLINT FieldIdentifier);
+char *translateFetchOrientation(SQLUSMALLINT FetchOrientation);
+char *translateConnectAttribute(SQLINTEGER Attribute);
+char *translateConnectOption(SQLUSMALLINT Option);
+char *translateEnvAttribute(SQLINTEGER Attribute);
+char *translateStmtAttribute(SQLINTEGER Attribute);
+char *translateStmtOption(SQLUSMALLINT Option);
+char *translateCompletionType(SQLSMALLINT CompletionType);
 #endif
 
 #endif
diff --git a/clients/odbc/driver/ODBCUtil.c b/clients/odbc/driver/ODBCUtil.c
--- a/clients/odbc/driver/ODBCUtil.c
+++ b/clients/odbc/driver/ODBCUtil.c
@@ -547,6 +547,512 @@ struct sql_types ODBC_c_types[] = {
 
 const char *ODBCdebug;
 
+char *
+translateCType(SQLSMALLINT ValueType)
+{
+       switch (ValueType) {
+       case SQL_C_CHAR:
+               return "SQL_C_CHAR";
+       case SQL_C_WCHAR:
+               return "SQL_C_WCHAR";
+       case SQL_C_BINARY:
+               return "SQL_C_BINARY";
+       case SQL_C_BIT:
+               return "SQL_C_BIT";
+       case SQL_C_STINYINT:
+               return "SQL_C_STINYINT";
+       case SQL_C_UTINYINT:
+               return "SQL_C_UTINYINT";
+       case SQL_C_TINYINT:
+               return "SQL_C_TINYINT";
+       case SQL_C_SSHORT:
+               return "SQL_C_SSHORT";
+       case SQL_C_USHORT:
+               return "SQL_C_USHORT";
+       case SQL_C_SHORT:
+               return "SQL_C_SHORT";
+       case SQL_C_SLONG:
+               return "SQL_C_SLONG";
+       case SQL_C_ULONG:
+               return "SQL_C_ULONG";
+       case SQL_C_LONG:
+               return "SQL_C_LONG";
+       case SQL_C_SBIGINT:
+               return "SQL_C_SBIGINT";
+       case SQL_C_UBIGINT:
+               return "SQL_C_UBIGINT";
+       case SQL_C_NUMERIC:
+               return "SQL_C_NUMERIC";
+       case SQL_C_FLOAT:
+               return "SQL_C_FLOAT";
+       case SQL_C_DOUBLE:
+               return "SQL_C_DOUBLE";
+       case SQL_C_TYPE_DATE:
+               return "SQL_C_TYPE_DATE";
+       case SQL_C_TYPE_TIME:
+               return "SQL_C_TYPE_TIME";
+       case SQL_C_TYPE_TIMESTAMP:
+               return "SQL_C_TYPE_TIMESTAMP";
+       case SQL_C_INTERVAL_YEAR:
+               return "SQL_C_INTERVAL_YEAR";
+       case SQL_C_INTERVAL_MONTH:
+               return "SQL_C_INTERVAL_MONTH";
+       case SQL_C_INTERVAL_YEAR_TO_MONTH:
+               return "SQL_C_INTERVAL_YEAR_TO_MONTH";
+       case SQL_C_INTERVAL_DAY:
+               return "SQL_C_INTERVAL_DAY";
+       case SQL_C_INTERVAL_HOUR:
+               return "SQL_C_INTERVAL_HOUR";
+       case SQL_C_INTERVAL_MINUTE:
+               return "SQL_C_INTERVAL_MINUTE";
+       case SQL_C_INTERVAL_SECOND:
+               return "SQL_C_INTERVAL_SECOND";
+       case SQL_C_INTERVAL_DAY_TO_HOUR:
+               return "SQL_C_INTERVAL_DAY_TO_HOUR";
+       case SQL_C_INTERVAL_DAY_TO_MINUTE:
+               return "SQL_C_INTERVAL_DAY_TO_MINUTE";
+       case SQL_C_INTERVAL_DAY_TO_SECOND:
+               return "SQL_C_INTERVAL_DAY_TO_SECOND";
+       case SQL_C_INTERVAL_HOUR_TO_MINUTE:
+               return "SQL_C_INTERVAL_HOUR_TO_MINUTE";
+       case SQL_C_INTERVAL_HOUR_TO_SECOND:
+               return "SQL_C_INTERVAL_HOUR_TO_SECOND";
+       case SQL_C_INTERVAL_MINUTE_TO_SECOND:
+               return "SQL_C_INTERVAL_MINUTE_TO_SECOND";
+       case SQL_C_GUID:
+               return "SQL_C_GUID";
+       case SQL_C_DEFAULT:
+               return "SQL_C_DEFAULT";
+       case SQL_ARD_TYPE:
+               return "SQL_ARD_TYPE";
+       case SQL_DATETIME:
+               return "SQL_DATETIME";
+       case SQL_INTERVAL:
+               return "SQL_INTERVAL";
+       default:
+               return "unknown";
+       }
+}
+
+char *
+translateSQLType(SQLSMALLINT ParameterType)
+{
+       switch (ParameterType) {
+       case SQL_CHAR:
+               return "SQL_CHAR";
+       case SQL_VARCHAR:
+               return "SQL_VARCHAR";
+       case SQL_LONGVARCHAR:
+               return "SQL_LONGVARCHAR";
+       case SQL_BINARY:
+               return "SQL_BINARY";
+       case SQL_VARBINARY:
+               return "SQL_VARBINARY";
+       case SQL_LONGVARBINARY:
+               return "SQL_LONGVARBINARY";
+       case SQL_TYPE_DATE:
+               return "SQL_TYPE_DATE";
+       case SQL_INTERVAL_MONTH:
+               return "SQL_INTERVAL_MONTH";
+       case SQL_INTERVAL_YEAR:
+               return "SQL_INTERVAL_YEAR";
+       case SQL_INTERVAL_YEAR_TO_MONTH:
+               return "SQL_INTERVAL_YEAR_TO_MONTH";
+       case SQL_INTERVAL_DAY:
+               return "SQL_INTERVAL_DAY";
+       case SQL_INTERVAL_HOUR:
+               return "SQL_INTERVAL_HOUR";
+       case SQL_INTERVAL_MINUTE:
+               return "SQL_INTERVAL_MINUTE";
+       case SQL_INTERVAL_DAY_TO_HOUR:
+               return "SQL_INTERVAL_DAY_TO_HOUR";
+       case SQL_INTERVAL_DAY_TO_MINUTE:
+               return "SQL_INTERVAL_DAY_TO_MINUTE";
+       case SQL_INTERVAL_HOUR_TO_MINUTE:
+               return "SQL_INTERVAL_HOUR_TO_MINUTE";
+       case SQL_TYPE_TIME:
+               return "SQL_TYPE_TIME";
+       case SQL_TYPE_TIMESTAMP:
+               return "SQL_TYPE_TIMESTAMP";
+       case SQL_INTERVAL_SECOND:
+               return "SQL_INTERVAL_SECOND";
+       case SQL_INTERVAL_DAY_TO_SECOND:
+               return "SQL_INTERVAL_DAY_TO_SECOND";
+       case SQL_INTERVAL_HOUR_TO_SECOND:
+               return "SQL_INTERVAL_HOUR_TO_SECOND";
+       case SQL_INTERVAL_MINUTE_TO_SECOND:
+               return "SQL_INTERVAL_MINUTE_TO_SECOND";
+       case SQL_DECIMAL:
+               return "SQL_DECIMAL";
+       case SQL_NUMERIC:
+               return "SQL_NUMERIC";
+       case SQL_FLOAT:
+               return "SQL_FLOAT";
+       case SQL_REAL:
+               return "SQL_REAL";
+       case SQL_DOUBLE:
+               return "SQL_DOUBLE";
+       case SQL_WCHAR:
+               return "SQL_WCHAR";
+       case SQL_WVARCHAR:
+               return "SQL_WVARCHAR";
+       case SQL_WLONGVARCHAR:
+               return "SQL_WLONGVARCHAR";
+       case SQL_BIT:
+               return "SQL_BIT";
+       case SQL_TINYINT:
+               return "SQL_TINYINT";
+       case SQL_SMALLINT:
+               return "SQL_SMALLINT";
+       case SQL_INTEGER:
+               return "SQL_INTEGER";
+       case SQL_BIGINT:
+               return "SQL_BIGINT";
+       case SQL_GUID:
+               return "SQL_GUID";
+       case SQL_DATETIME:
+               return "SQL_DATETIME";
+       case SQL_INTERVAL:
+               return "SQL_INTERVAL";
+       default:
+               return "unknown";
+       }
+}
+
+char *
+translateFieldIdentifier(SQLSMALLINT FieldIdentifier)
+{
+       switch (FieldIdentifier) {
+       case SQL_COLUMN_LENGTH:
+               return "SQL_COLUMN_LENGTH";
+       case SQL_COLUMN_PRECISION:
+               return "SQL_COLUMN_PRECISION";
+       case SQL_COLUMN_SCALE:
+               return "SQL_COLUMN_SCALE";
+       case SQL_DESC_AUTO_UNIQUE_VALUE:
+               return "SQL_DESC_AUTO_UNIQUE_VALUE";
+       case SQL_DESC_BASE_COLUMN_NAME:
+               return "SQL_DESC_BASE_COLUMN_NAME";
+       case SQL_DESC_BASE_TABLE_NAME:
+               return "SQL_DESC_BASE_TABLE_NAME";
+       case SQL_DESC_CASE_SENSITIVE:
+               return "SQL_DESC_CASE_SENSITIVE";
+       case SQL_DESC_CATALOG_NAME:
+               return "SQL_DESC_CATALOG_NAME";
+       case SQL_DESC_CONCISE_TYPE:
+               return "SQL_DESC_CONCISE_TYPE";
+       case SQL_DESC_COUNT:
+               return "SQL_DESC_COUNT";
+       case SQL_DESC_DATA_PTR:
+               return "SQL_DESC_DATA_PTR";
+       case SQL_DESC_DATETIME_INTERVAL_CODE:
+               return "SQL_DESC_DATETIME_INTERVAL_CODE";
+       case SQL_DESC_DATETIME_INTERVAL_PRECISION:
+               return "SQL_DESC_DATETIME_INTERVAL_PRECISION";
+       case SQL_DESC_DISPLAY_SIZE:
+               return "SQL_DESC_DISPLAY_SIZE";
+       case SQL_DESC_FIXED_PREC_SCALE:
+               return "SQL_DESC_FIXED_PREC_SCALE";
+       case SQL_DESC_INDICATOR_PTR:
+               return "SQL_DESC_INDICATOR_PTR";
+       case SQL_DESC_LABEL:
+               return "SQL_DESC_LABEL";
+       case SQL_DESC_LENGTH:
+               return "SQL_DESC_LENGTH";
+       case SQL_DESC_LITERAL_PREFIX:
+               return "SQL_DESC_LITERAL_PREFIX";
+       case SQL_DESC_LITERAL_SUFFIX:
+               return "SQL_DESC_LITERAL_SUFFIX";
+       case SQL_DESC_LOCAL_TYPE_NAME:
+               return "SQL_DESC_LOCAL_TYPE_NAME";
+       case SQL_DESC_NAME:
+               return "SQL_DESC_NAME";
+       case SQL_DESC_NULLABLE:
+               return "SQL_DESC_NULLABLE";
+       case SQL_DESC_NUM_PREC_RADIX:
+               return "SQL_DESC_NUM_PREC_RADIX";
+       case SQL_DESC_OCTET_LENGTH:
+               return "SQL_DESC_OCTET_LENGTH";
+       case SQL_DESC_OCTET_LENGTH_PTR:
+               return "SQL_DESC_OCTET_LENGTH_PTR";
+       case SQL_DESC_PARAMETER_TYPE:
+               return "SQL_DESC_PARAMETER_TYPE";
+       case SQL_DESC_PRECISION:
+               return "SQL_DESC_PRECISION";
+       case SQL_DESC_ROWVER:
+               return "SQL_DESC_ROWVER";
+       case SQL_DESC_SCALE:
+               return "SQL_DESC_SCALE";
+       case SQL_DESC_SCHEMA_NAME:
+               return "SQL_DESC_SCHEMA_NAME";
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to