Changeset: 679770191fbf for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/679770191fbf Modified Files: clients/odbc/driver/SQLProcedureColumns.c clients/odbc/tests/ODBCmetadata.c Branch: default Log Message:
Correcting datatype for result column COLUMN_TYPE as returned by SQLProcedureColumns(). It must be SMALLINT instead of TINYINT. Correcting datatype for result column ORDINAL_POSITION as returned by SQLProcedureColumns(). It must be INTEGER instead of BIGINT. diffs (70 lines): diff --git a/clients/odbc/driver/SQLProcedureColumns.c b/clients/odbc/driver/SQLProcedureColumns.c --- a/clients/odbc/driver/SQLProcedureColumns.c +++ b/clients/odbc/driver/SQLProcedureColumns.c @@ -153,10 +153,10 @@ MNDBProcedureColumns(ODBCStmt *stmt, "s.name as \"PROCEDURE_SCHEM\", " "p.name as \"PROCEDURE_NAME\", " "a.name as \"COLUMN_NAME\", " - "case when a.inout = 1 then %d " + "cast(case when a.inout = 1 then %d " "when p.type = %d then %d " "else %d " - "end as \"COLUMN_TYPE\", " + "end as smallint) as \"COLUMN_TYPE\", " DATA_TYPE(a) ", " TYPE_NAME(a) ", " COLUMN_SIZE(a) ", " @@ -169,12 +169,12 @@ MNDBProcedureColumns(ODBCStmt *stmt, SQL_DATA_TYPE(a) ", " SQL_DATETIME_SUB(a) ", " CHAR_OCTET_LENGTH(a) ", " - "case when p.type = 5 and a.inout = 0 then a.number + 1 " + "cast(case when p.type = 5 and a.inout = 0 then a.number + 1 " "when p.type = 5 and a.inout = 1 then a.number - x.maxout " "when p.type = 2 and a.inout = 1 then a.number + 1 " "when a.inout = 0 then 0 " "else a.number " - "end as \"ORDINAL_POSITION\", " + "end as integer) as \"ORDINAL_POSITION\", " "'' as \"IS_NULLABLE\", " /* Only the id value uniquely identifies a specific procedure. Include it to be able to differentiate between multiple 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 @@ -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 INTEGER BIGINT WCHAR WVARCHAR(10)\n" + "WVARCHAR(1) WVARCHAR(1024) WVARCHAR(256) WVARCHAR(256) SMALLINT SMALLINT WCHAR(25) INTEGER INTEGER SMALLINT SMALLINT SMALLINT WVARCHAR(65000) WVARCHAR(1) SMALLINT SMALLINT INTEGER INTEGER 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 INTEGER BIGINT WCHAR WVARCHAR(10)\n" + "WVARCHAR(1) WVARCHAR(1024) WVARCHAR(256) WVARCHAR(256) SMALLINT SMALLINT WCHAR(25) INTEGER INTEGER SMALLINT SMALLINT SMALLINT WVARCHAR(65000) WVARCHAR(1) SMALLINT SMALLINT INTEGER INTEGER 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 INTEGER BIGINT WCHAR WVARCHAR(10)\n" + "WVARCHAR(1) WVARCHAR(1024) WVARCHAR(256) WVARCHAR(256) SMALLINT SMALLINT WCHAR(25) INTEGER INTEGER SMALLINT SMALLINT SMALLINT WVARCHAR(65000) WVARCHAR(1) SMALLINT SMALLINT INTEGER INTEGER 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 INTEGER BIGINT WCHAR WVARCHAR(10)\n" + "WVARCHAR(1) WVARCHAR(1024) WVARCHAR(256) WVARCHAR(256) SMALLINT SMALLINT WCHAR(25) INTEGER INTEGER SMALLINT SMALLINT SMALLINT WVARCHAR(65000) WVARCHAR(1) SMALLINT SMALLINT INTEGER INTEGER 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 -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org