Changeset: 051a7803c8b3 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/051a7803c8b3
Modified Files:
clients/odbc/driver/ODBCQueries.h
clients/odbc/tests/ODBCmetadata.c
Branch: default
Log Message:
Correcting datatype for result column CHAR_OCTET_LENGTH as returned by
SQLColumns() and SQLProcedureColumns(). It must be INTEGER instead of BIGINT.
diffs (82 lines):
diff --git a/clients/odbc/driver/ODBCQueries.h
b/clients/odbc/driver/ODBCQueries.h
--- 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\""
diff --git a/clients/odbc/tests/ODBCmetadata.c
b/clients/odbc/tests/ODBCmetadata.c
--- 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"
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]