Mercurial > hg > MonetDB
changeset 86143:051a7803c8b3
Correcting datatype for result column CHAR_OCTET_LENGTH as returned by SQLColumns() and SQLProcedureColumns(). It must be INTEGER instead of BIGINT.
| author | Martin van Dinther <martin.van.dinther@monetdbsolutions.com> |
|---|---|
| date | Thu, 21 Jul 2022 19:36:58 +0200 |
| parents | 11ce4397edec |
| children | 679770191fbf |
| files | clients/odbc/driver/ODBCQueries.h clients/odbc/tests/ODBCmetadata.c |
| diffstat | 2 files changed, 9 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/clients/odbc/driver/ODBCQueries.h +++ b/clients/odbc/driver/ODBCQueries.h @@ -289,10 +289,10 @@ SQL_CODE_TIME #define CHAR_OCTET_LENGTH(t) \ - "case " #t ".type " \ + "cast(case " #t ".type " \ "when 'char' then 2 * " #t ".type_digits " \ "when 'varchar' then 2 * " #t ".type_digits " \ "when 'clob' then 2 * " #t ".type_digits " \ "when 'blob' then " #t ".type_digits " \ "else cast(null as integer) " \ - "end as \"CHAR_OCTET_LENGTH\"" + "end as integer) as \"CHAR_OCTET_LENGTH\""
--- a/clients/odbc/tests/ODBCmetadata.c +++ b/clients/odbc/tests/ODBCmetadata.c @@ -492,7 +492,7 @@ main(int argc, char **argv) "Resultset with 18 columns\n" "Resultset with 7 rows\n" "TABLE_CAT TABLE_SCHEM TABLE_NAME COLUMN_NAME DATA_TYPE TYPE_NAME COLUMN_SIZE BUFFER_LENGTH DECIMAL_DIGITS NUM_PREC_RADIX NULLABLE REMARKS COLUMN_DEF SQL_DATA_TYPE SQL_DATETIME_SUB CHAR_OCTET_LENGTH ORDINAL_POSITION IS_NULLABLE\n" - "WVARCHAR(1) WVARCHAR(1024) WVARCHAR(1024) WVARCHAR(1024) SMALLINT WCHAR(25) INTEGER INTEGER SMALLINT SMALLINT SMALLINT WVARCHAR(65000) WVARCHAR(2048) SMALLINT SMALLINT BIGINT INTEGER WVARCHAR(3)\n" + "WVARCHAR(1) WVARCHAR(1024) WVARCHAR(1024) WVARCHAR(1024) SMALLINT WCHAR(25) INTEGER INTEGER SMALLINT SMALLINT SMALLINT WVARCHAR(65000) WVARCHAR(2048) SMALLINT SMALLINT INTEGER INTEGER WVARCHAR(3)\n" "NULL odbctst nopk_twoucs id2 4 INTEGER 32 11 0 2 0 odbctst.nopk_twoucs.id2 column comment NULL 4 NULL NULL 1 NO\n" "NULL odbctst nopk_twoucs name2 -9 VARCHAR 99 198 NULL NULL 1 odbctst.nopk_twoucs.name2 column comment NULL -9 NULL 198 2 YES\n" "NULL odbctst pk2c pkc1 4 INTEGER 32 11 0 2 0 NULL NULL 4 NULL NULL 1 NO\n" @@ -509,7 +509,7 @@ main(int argc, char **argv) "Resultset with 18 columns\n" "Resultset with 8 rows\n" "TABLE_CAT TABLE_SCHEM TABLE_NAME COLUMN_NAME DATA_TYPE TYPE_NAME COLUMN_SIZE BUFFER_LENGTH DECIMAL_DIGITS NUM_PREC_RADIX NULLABLE REMARKS COLUMN_DEF SQL_DATA_TYPE SQL_DATETIME_SUB CHAR_OCTET_LENGTH ORDINAL_POSITION IS_NULLABLE\n" - "WVARCHAR(1) WVARCHAR(1024) WVARCHAR(1024) WVARCHAR(1024) SMALLINT WCHAR(25) INTEGER INTEGER SMALLINT SMALLINT SMALLINT WVARCHAR(65000) WVARCHAR(2048) SMALLINT SMALLINT BIGINT INTEGER WVARCHAR(3)\n" + "WVARCHAR(1) WVARCHAR(1024) WVARCHAR(1024) WVARCHAR(1024) SMALLINT WCHAR(25) INTEGER INTEGER SMALLINT SMALLINT SMALLINT WVARCHAR(65000) WVARCHAR(2048) SMALLINT SMALLINT INTEGER INTEGER WVARCHAR(3)\n" "NULL tmp glbl_nopk_twoucs id2 4 INTEGER 32 11 0 2 0 NULL NULL 4 NULL NULL 1 NO\n" "NULL tmp glbl_nopk_twoucs name2 -9 VARCHAR 99 198 NULL NULL 1 NULL NULL -9 NULL 198 2 YES\n" "NULL tmp glbl_pk_uc id1 4 INTEGER 32 11 0 2 0 NULL NULL 4 NULL NULL 1 NO\n" @@ -527,7 +527,7 @@ main(int argc, char **argv) "Resultset with 18 columns\n" "Resultset with 4 rows\n" "TABLE_CAT TABLE_SCHEM TABLE_NAME COLUMN_NAME DATA_TYPE TYPE_NAME COLUMN_SIZE BUFFER_LENGTH DECIMAL_DIGITS NUM_PREC_RADIX NULLABLE REMARKS COLUMN_DEF SQL_DATA_TYPE SQL_DATETIME_SUB CHAR_OCTET_LENGTH ORDINAL_POSITION IS_NULLABLE\n" - "WVARCHAR(1) WVARCHAR(1024) WVARCHAR(1024) WVARCHAR(1024) SMALLINT WCHAR(25) INTEGER INTEGER SMALLINT SMALLINT SMALLINT WVARCHAR(65000) WVARCHAR(2048) SMALLINT SMALLINT BIGINT INTEGER WVARCHAR(3)\n" + "WVARCHAR(1) WVARCHAR(1024) WVARCHAR(1024) WVARCHAR(1024) SMALLINT WCHAR(25) INTEGER INTEGER SMALLINT SMALLINT SMALLINT WVARCHAR(65000) WVARCHAR(2048) SMALLINT SMALLINT INTEGER INTEGER WVARCHAR(3)\n" "NULL tmp glbl_nopk_twoucs name2 -9 VARCHAR 99 198 NULL NULL 1 NULL NULL -9 NULL 198 2 YES\n" "NULL tmp glbl_pk_uc name1 -9 VARCHAR 99 198 NULL NULL 1 NULL NULL -9 NULL 198 2 YES\n" "NULL tmp tmp_nopk_twoucs name2 -9 VARCHAR 99 198 NULL NULL 1 NULL NULL -9 NULL 198 2 YES\n" @@ -1116,7 +1116,7 @@ main(int argc, char **argv) "Resultset with 20 columns\n" "Resultset with 6 rows\n" "PROCEDURE_CAT PROCEDURE_SCHEM PROCEDURE_NAME COLUMN_NAME COLUMN_TYPE DATA_TYPE TYPE_NAME COLUMN_SIZE BUFFER_LENGTH DECIMAL_DIGITS NUM_PREC_RADIX NULLABLE REMARKS COLUMN_DEF SQL_DATA_TYPE SQL_DATETIME_SUB CHAR_OCTET_LENGTH ORDINAL_POSITION IS_NULLABLE SPECIFIC_NAME\n" - "WVARCHAR(1) WVARCHAR(1024) WVARCHAR(256) WVARCHAR(256) TINYINT SMALLINT WCHAR(25) INTEGER INTEGER SMALLINT SMALLINT SMALLINT WVARCHAR(65000) WVARCHAR(1) SMALLINT SMALLINT BIGINT BIGINT WCHAR WVARCHAR(10)\n" + "WVARCHAR(1) WVARCHAR(1024) WVARCHAR(256) WVARCHAR(256) TINYINT SMALLINT WCHAR(25) INTEGER INTEGER SMALLINT SMALLINT SMALLINT WVARCHAR(65000) WVARCHAR(1) SMALLINT SMALLINT INTEGER BIGINT WCHAR WVARCHAR(10)\n" "NULL sys analyze sname 1 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 1 replacedId\n" "NULL sys analyze sname 1 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 1 replacedId\n" "NULL sys analyze tname 1 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 2 replacedId\n" @@ -1142,7 +1142,7 @@ main(int argc, char **argv) "Resultset with 20 columns\n" "Resultset with 4 rows\n" "PROCEDURE_CAT PROCEDURE_SCHEM PROCEDURE_NAME COLUMN_NAME COLUMN_TYPE DATA_TYPE TYPE_NAME COLUMN_SIZE BUFFER_LENGTH DECIMAL_DIGITS NUM_PREC_RADIX NULLABLE REMARKS COLUMN_DEF SQL_DATA_TYPE SQL_DATETIME_SUB CHAR_OCTET_LENGTH ORDINAL_POSITION IS_NULLABLE SPECIFIC_NAME\n" - "WVARCHAR(1) WVARCHAR(1024) WVARCHAR(256) WVARCHAR(256) TINYINT SMALLINT WCHAR(25) INTEGER INTEGER SMALLINT SMALLINT SMALLINT WVARCHAR(65000) WVARCHAR(1) SMALLINT SMALLINT BIGINT BIGINT WCHAR WVARCHAR(10)\n" + "WVARCHAR(1) WVARCHAR(1024) WVARCHAR(256) WVARCHAR(256) TINYINT SMALLINT WCHAR(25) INTEGER INTEGER SMALLINT SMALLINT SMALLINT WVARCHAR(65000) WVARCHAR(1) SMALLINT SMALLINT INTEGER BIGINT WCHAR WVARCHAR(10)\n" "NULL sys sin arg_1 1 7 REAL 24 14 7 2 2 NULL NULL 7 NULL NULL 1 replacedId\n" "NULL sys sin res_0 5 7 REAL 24 14 7 2 2 NULL NULL 7 NULL NULL 0 replacedId\n" "NULL sys sin arg_1 1 8 DOUBLE 53 24 15 2 2 NULL NULL 8 NULL NULL 1 replacedId\n" @@ -1165,7 +1165,7 @@ main(int argc, char **argv) "Resultset with 20 columns\n" "Resultset with 2 rows\n" "PROCEDURE_CAT PROCEDURE_SCHEM PROCEDURE_NAME COLUMN_NAME COLUMN_TYPE DATA_TYPE TYPE_NAME COLUMN_SIZE BUFFER_LENGTH DECIMAL_DIGITS NUM_PREC_RADIX NULLABLE REMARKS COLUMN_DEF SQL_DATA_TYPE SQL_DATETIME_SUB CHAR_OCTET_LENGTH ORDINAL_POSITION IS_NULLABLE SPECIFIC_NAME\n" - "WVARCHAR(1) WVARCHAR(1024) WVARCHAR(256) WVARCHAR(256) TINYINT SMALLINT WCHAR(25) INTEGER INTEGER SMALLINT SMALLINT SMALLINT WVARCHAR(65000) WVARCHAR(1) SMALLINT SMALLINT BIGINT BIGINT WCHAR WVARCHAR(10)\n" + "WVARCHAR(1) WVARCHAR(1024) WVARCHAR(256) WVARCHAR(256) TINYINT SMALLINT WCHAR(25) INTEGER INTEGER SMALLINT SMALLINT SMALLINT WVARCHAR(65000) WVARCHAR(1) SMALLINT SMALLINT INTEGER BIGINT WCHAR WVARCHAR(10)\n" "NULL sys env name 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 1 replacedId\n" "NULL sys env value 3 -9 VARCHAR 2048 4096 NULL NULL 2 NULL NULL -9 NULL 4096 2 replacedId\n"); @@ -1189,7 +1189,7 @@ main(int argc, char **argv) "Resultset with 20 columns\n" "Resultset with 58 rows\n" "PROCEDURE_CAT PROCEDURE_SCHEM PROCEDURE_NAME COLUMN_NAME COLUMN_TYPE DATA_TYPE TYPE_NAME COLUMN_SIZE BUFFER_LENGTH DECIMAL_DIGITS NUM_PREC_RADIX NULLABLE REMARKS COLUMN_DEF SQL_DATA_TYPE SQL_DATETIME_SUB CHAR_OCTET_LENGTH ORDINAL_POSITION IS_NULLABLE SPECIFIC_NAME\n" - "WVARCHAR(1) WVARCHAR(1024) WVARCHAR(256) WVARCHAR(256) TINYINT SMALLINT WCHAR(25) INTEGER INTEGER SMALLINT SMALLINT SMALLINT WVARCHAR(65000) WVARCHAR(1) SMALLINT SMALLINT BIGINT BIGINT WCHAR WVARCHAR(10)\n" + "WVARCHAR(1) WVARCHAR(1024) WVARCHAR(256) WVARCHAR(256) TINYINT SMALLINT WCHAR(25) INTEGER INTEGER SMALLINT SMALLINT SMALLINT WVARCHAR(65000) WVARCHAR(1) SMALLINT SMALLINT INTEGER BIGINT WCHAR WVARCHAR(10)\n" // 0 input argument and 13 result columns of sys.statistics() "NULL sys statistics column_id 3 4 INTEGER 32 11 0 2 2 NULL NULL 4 NULL NULL 1 replacedId\n" "NULL sys statistics schema 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 2 replacedId\n"
