Changeset: a969b886cc71 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a969b886cc71
Modified Files:
        clients/odbc/driver/SQLGetInfo.c
Branch: Jan2014
Log Message:

Fix up information about available functions in SQLGetInfo.


diffs (236 lines):

diff --git a/clients/odbc/driver/SQLGetInfo.c b/clients/odbc/driver/SQLGetInfo.c
--- a/clients/odbc/driver/SQLGetInfo.c
+++ b/clients/odbc/driver/SQLGetInfo.c
@@ -183,27 +183,53 @@ SQLGetInfo_(ODBCDbc *dbc,
                /* SQL_CB_NON_NULL */
                len = sizeof(SQLUSMALLINT);
                break;
+       case SQL_CONVERT_TINYINT:
+       case SQL_CONVERT_SMALLINT:
+       case SQL_CONVERT_INTEGER:
        case SQL_CONVERT_BIGINT:
+               nValue = SQL_CVT_BIGINT |
+                       SQL_CVT_BIT |
+                       SQL_CVT_CHAR |
+                       SQL_CVT_DECIMAL |
+                       SQL_CVT_DOUBLE |
+                       SQL_CVT_FLOAT |
+                       SQL_CVT_INTEGER |
+                       SQL_CVT_INTERVAL_DAY_TIME |
+                       SQL_CVT_INTERVAL_YEAR_MONTH |
+                       SQL_CVT_LONGVARCHAR |
+                       SQL_CVT_NUMERIC |
+                       SQL_CVT_REAL |
+                       SQL_CVT_SMALLINT |
+                       SQL_CVT_TINYINT |
+                       SQL_CVT_VARCHAR;
+               len = sizeof(SQLUINTEGER);
+               break;
        case SQL_CONVERT_BINARY:
+       case SQL_CONVERT_LONGVARBINARY:
+       case SQL_CONVERT_VARBINARY:
+               nValue = SQL_CVT_BINARY |
+                       SQL_CVT_CHAR |
+                       SQL_CVT_LONGVARBINARY |
+                       SQL_CVT_LONGVARCHAR |
+                       SQL_CVT_VARBINARY |
+                       SQL_CVT_VARCHAR;
+               /* SQL_CVT_GUID */
+               len = sizeof(SQLUINTEGER);
+               break;
        case SQL_CONVERT_BIT:
+               nValue = SQL_CVT_BIGINT |
+                       SQL_CVT_BIT |
+                       SQL_CVT_CHAR |
+                       SQL_CVT_INTEGER |
+                       SQL_CVT_LONGVARCHAR |
+                       SQL_CVT_SMALLINT |
+                       SQL_CVT_TINYINT |
+                       SQL_CVT_VARCHAR;
+               len = sizeof(SQLUINTEGER);
+               break;
        case SQL_CONVERT_CHAR:
-       case SQL_CONVERT_DATE:
-       case SQL_CONVERT_DECIMAL:
-       case SQL_CONVERT_DOUBLE:
-       case SQL_CONVERT_FLOAT:
-       case SQL_CONVERT_INTEGER:
-       case SQL_CONVERT_INTERVAL_DAY_TIME:
-       case SQL_CONVERT_INTERVAL_YEAR_MONTH:
-       case SQL_CONVERT_LONGVARBINARY:
+       case SQL_CONVERT_VARCHAR:
        case SQL_CONVERT_LONGVARCHAR:
-       case SQL_CONVERT_NUMERIC:
-       case SQL_CONVERT_REAL:
-       case SQL_CONVERT_SMALLINT:
-       case SQL_CONVERT_TIME:
-       case SQL_CONVERT_TIMESTAMP:
-       case SQL_CONVERT_TINYINT:
-       case SQL_CONVERT_VARBINARY:
-       case SQL_CONVERT_VARCHAR:
                nValue = SQL_CVT_BIGINT |
                        SQL_CVT_BINARY |
                        SQL_CVT_BIT |
@@ -228,8 +254,91 @@ SQLGetInfo_(ODBCDbc *dbc,
                /* SQL_CVT_GUID */
                len = sizeof(SQLUINTEGER);
                break;
+       case SQL_CONVERT_DATE:
+               nValue = SQL_CVT_CHAR |
+                       SQL_CVT_DATE |
+                       SQL_CVT_LONGVARCHAR |
+                       SQL_CVT_TIMESTAMP |
+                       SQL_CVT_VARCHAR;
+               len = sizeof(SQLUINTEGER);
+               break;
+       case SQL_CONVERT_DECIMAL:
+       case SQL_CONVERT_NUMERIC:
+               nValue = SQL_CVT_BIGINT |
+                       SQL_CVT_CHAR |
+                       SQL_CVT_DECIMAL |
+                       SQL_CVT_DOUBLE |
+                       SQL_CVT_FLOAT |
+                       SQL_CVT_INTEGER |
+                       SQL_CVT_INTERVAL_DAY_TIME |
+                       SQL_CVT_LONGVARCHAR |
+                       SQL_CVT_NUMERIC |
+                       SQL_CVT_REAL |
+                       SQL_CVT_SMALLINT |
+                       SQL_CVT_TINYINT |
+                       SQL_CVT_VARCHAR;
+               len = sizeof(SQLUINTEGER);
+               break;
+       case SQL_CONVERT_DOUBLE:
+       case SQL_CONVERT_REAL:
+       case SQL_CONVERT_FLOAT:
+               nValue = SQL_CVT_BIGINT |
+                       SQL_CVT_CHAR |
+                       SQL_CVT_DECIMAL |
+                       SQL_CVT_DOUBLE |
+                       SQL_CVT_FLOAT |
+                       SQL_CVT_INTEGER |
+                       SQL_CVT_LONGVARCHAR |
+                       SQL_CVT_NUMERIC |
+                       SQL_CVT_REAL |
+                       SQL_CVT_SMALLINT |
+                       SQL_CVT_TINYINT |
+                       SQL_CVT_VARCHAR;
+               /* SQL_CVT_GUID */
+               len = sizeof(SQLUINTEGER);
+               break;
+       case SQL_CONVERT_INTERVAL_DAY_TIME:
+               nValue = SQL_CVT_BIGINT |
+                       SQL_CVT_CHAR |
+                       SQL_CVT_INTEGER |
+                       SQL_CVT_INTERVAL_DAY_TIME |
+                       SQL_CVT_LONGVARCHAR |
+                       SQL_CVT_SMALLINT |
+                       SQL_CVT_TIME |
+                       SQL_CVT_TINYINT |
+                       SQL_CVT_VARCHAR;
+               len = sizeof(SQLUINTEGER);
+               break;
+       case SQL_CONVERT_INTERVAL_YEAR_MONTH:
+               nValue = SQL_CVT_BIGINT |
+                       SQL_CVT_CHAR |
+                       SQL_CVT_INTEGER |
+                       SQL_CVT_INTERVAL_YEAR_MONTH |
+                       SQL_CVT_LONGVARCHAR |
+                       SQL_CVT_SMALLINT |
+                       SQL_CVT_TINYINT |
+                       SQL_CVT_VARCHAR;
+               /* SQL_CVT_GUID */
+               len = sizeof(SQLUINTEGER);
+               break;
+       case SQL_CONVERT_TIME:
+               nValue = SQL_CVT_CHAR |
+                       SQL_CVT_INTERVAL_DAY_TIME |
+                       SQL_CVT_LONGVARCHAR |
+                       SQL_CVT_TIME |
+                       SQL_CVT_VARCHAR;
+               len = sizeof(SQLUINTEGER);
+               break;
+       case SQL_CONVERT_TIMESTAMP:
+               nValue = SQL_CVT_CHAR |
+                       SQL_CVT_DATE |
+                       SQL_CVT_LONGVARCHAR |
+                       SQL_CVT_TIME |
+                       SQL_CVT_TIMESTAMP |
+                       SQL_CVT_VARCHAR;
+               len = sizeof(SQLUINTEGER);
+               break;
        case SQL_CONVERT_FUNCTIONS:
-               /* No convert function supported */
                nValue = SQL_FN_CVT_CAST | SQL_FN_CVT_CONVERT;
                len = sizeof(SQLUINTEGER);
                break;
@@ -519,13 +628,16 @@ SQLGetInfo_(ODBCDbc *dbc,
                        SQL_FN_NUM_SIGN |
                        SQL_FN_NUM_SIN |
                        SQL_FN_NUM_SQRT |
-                       SQL_FN_NUM_TRUNCATE |
-                       SQL_FN_NUM_TAN;
+                       SQL_FN_NUM_TAN |
+                       SQL_FN_NUM_TRUNCATE;
                len = sizeof(SQLUINTEGER);
                break;
        case SQL_STRING_FUNCTIONS:
                nValue = SQL_FN_STR_ASCII |
+                       SQL_FN_STR_BIT_LENGTH |
                        /* SQL_FN_STR_CHAR | */
+                       SQL_FN_STR_CHAR_LENGTH |
+                       SQL_FN_STR_CHARACTER_LENGTH |
                        SQL_FN_STR_CONCAT |
                        SQL_FN_STR_DIFFERENCE |
                        SQL_FN_STR_INSERT |
@@ -535,35 +647,44 @@ SQLGetInfo_(ODBCDbc *dbc,
                        SQL_FN_STR_LOCATE |
                        SQL_FN_STR_LOCATE_2 |
                        SQL_FN_STR_LTRIM |
+                       SQL_FN_STR_OCTET_LENGTH |
+                       SQL_FN_STR_POSITION |
                        SQL_FN_STR_REPEAT |
                        SQL_FN_STR_REPLACE |
                        SQL_FN_STR_RIGHT |
                        SQL_FN_STR_RTRIM |
                        SQL_FN_STR_SOUNDEX |
                        SQL_FN_STR_SPACE |
+                       SQL_FN_STR_SUBSTRING |
                        SQL_FN_STR_UCASE;
                len = sizeof(SQLUINTEGER);
                break;
        case SQL_SYSTEM_FUNCTIONS:
-               nValue = SQL_FN_SYS_DBNAME | SQL_FN_SYS_USERNAME | 
SQL_FN_SYS_IFNULL;
+               nValue = SQL_FN_SYS_DBNAME |
+                       SQL_FN_SYS_IFNULL |
+                       SQL_FN_SYS_USERNAME;
                len = sizeof(SQLUINTEGER);
                break;
        case SQL_TIMEDATE_FUNCTIONS:
-               nValue = SQL_FN_TD_CURDATE |
+               nValue = SQL_FN_TD_CURRENT_DATE |
+                       SQL_FN_TD_CURRENT_TIME |
+                       SQL_FN_TD_CURRENT_TIMESTAMP |
+                       SQL_FN_TD_CURDATE |
                        SQL_FN_TD_CURTIME |
-                       SQL_FN_TD_DAYNAME |
+                       /* SQL_FN_TD_DAYNAME | */
                        SQL_FN_TD_DAYOFMONTH |
                        SQL_FN_TD_DAYOFWEEK |
                        SQL_FN_TD_DAYOFYEAR |
+                       SQL_FN_TD_EXTRACT |
                        SQL_FN_TD_HOUR |
                        SQL_FN_TD_MINUTE |
                        SQL_FN_TD_MONTH |
-                       SQL_FN_TD_MONTHNAME |
+                       /* SQL_FN_TD_MONTHNAME | */
                        SQL_FN_TD_NOW |
                        SQL_FN_TD_QUARTER |
                        SQL_FN_TD_SECOND |
-                       SQL_FN_TD_TIMESTAMPADD |
-                       SQL_FN_TD_TIMESTAMPDIFF |
+                       /* SQL_FN_TD_TIMESTAMPADD | */
+                       /* SQL_FN_TD_TIMESTAMPDIFF | */
                        SQL_FN_TD_WEEK |
                        SQL_FN_TD_YEAR;
                len = sizeof(SQLUINTEGER);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to