Correct the rgbInfoValue returned by SQLGetInfo(.., SQL_NUMERIC_FUNCTIONS(SQL_SYSTEM_...
authorHiroshi Inoue <h-inoue@dream.email.ne.jp>
Wed, 15 May 2019 11:58:08 +0000 (20:58 +0900)
committerHiroshi Inoue <h-inoue@dream.email.ne.jp>
Wed, 15 May 2019 12:02:08 +0000 (21:02 +0900)
Pointed out by Grant Shirreffs.

info.c

diff --git a/info.c b/info.c
index c2c4ff0985121758b3c7cff00926bc71a648aea5..452dabfb9cfd8c1fc61b1abdf7e0ddfbedb656fb 100644 (file)
--- a/info.c
+++ b/info.c
@@ -454,7 +454,12 @@ MYLOG(0, "CONVERT_FUNCTIONS=" FORMAT_ULEN "\n", value);
 
        case SQL_NUMERIC_FUNCTIONS:     /* ODBC 1.0 */
            len = 4;
-           value = 0;
+           value = SQL_FN_NUM_ABS | SQL_FN_NUM_ACOS | SQL_FN_NUM_ASIN | SQL_FN_NUM_ATAN |
+               SQL_FN_NUM_ATAN2 | SQL_FN_NUM_CEILING | SQL_FN_NUM_COS | SQL_FN_NUM_COT |
+               SQL_FN_NUM_DEGREES | SQL_FN_NUM_EXP | SQL_FN_NUM_FLOOR | SQL_FN_NUM_LOG |
+               SQL_FN_NUM_LOG10 | SQL_FN_NUM_MOD | SQL_FN_NUM_PI | SQL_FN_NUM_POWER |
+               SQL_FN_NUM_RADIANS | SQL_FN_NUM_RAND | SQL_FN_NUM_ROUND | SQL_FN_NUM_SIGN |
+               SQL_FN_NUM_SIN | SQL_FN_NUM_SQRT | SQL_FN_NUM_TAN | SQL_FN_NUM_TRUNCATE;
            break;
 
        case SQL_ODBC_API_CONFORMANCE:  /* ODBC 1.0 */
@@ -613,14 +618,11 @@ MYLOG(0, "CONVERT_FUNCTIONS=" FORMAT_ULEN "\n", value);
 
        case SQL_STRING_FUNCTIONS:      /* ODBC 1.0 */
            len = 4;
-           value = (SQL_FN_STR_CONCAT |
-                    SQL_FN_STR_LCASE |
-                    SQL_FN_STR_LENGTH |
-                    SQL_FN_STR_LOCATE |
-                    SQL_FN_STR_LTRIM |
-                    SQL_FN_STR_RTRIM |
-                    SQL_FN_STR_SUBSTRING |
-                    SQL_FN_STR_UCASE);
+           value = SQL_FN_STR_ASCII | SQL_FN_STR_CHAR | SQL_FN_STR_CONCAT |
+               SQL_FN_STR_INSERT | SQL_FN_STR_LCASE | SQL_FN_STR_LEFT |
+               SQL_FN_STR_LENGTH | SQL_FN_STR_LOCATE | SQL_FN_STR_LOCATE_2 |
+               SQL_FN_STR_LTRIM | SQL_FN_STR_REPEAT | SQL_FN_STR_RIGHT |
+               SQL_FN_STR_RTRIM | SQL_FN_STR_SPACE | SQL_FN_STR_SUBSTRING | SQL_FN_STR_UCASE;
            break;
 
        case SQL_SUBQUERIES:    /* ODBC 2.0 */
@@ -634,7 +636,7 @@ MYLOG(0, "CONVERT_FUNCTIONS=" FORMAT_ULEN "\n", value);
 
        case SQL_SYSTEM_FUNCTIONS:      /* ODBC 1.0 */
            len = 4;
-           value = 0;
+           value = SQL_FN_SYS_IFNULL | SQL_FN_SYS_USERNAME;
            break;
 
        case SQL_TABLE_TERM:    /* ODBC 1.0 */