[ 
http://issues.apache.org/jira/browse/DERBY-1094?page=comments#action_12371102 ] 

A B commented on DERBY-1094:
----------------------------

> I have come to the conclusion that neither the ODBC nor the JDBC query is 
> correct. 

I think the radix is "2" for ODBC metadata because we're returning ODBC 3.0 
result sets and there is the following paragraph from the ODBC API site:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odbcdatetime_data_types.asp

<begin quote>

An ODBC 3.x driver processes the function calls listed in the previous 
paragraph according to the setting of the SQL_ATTR_ODBC_VERSION environment 
attribute. For SQLColumns, SQLGetTypeInfo, SQLProcedureColumns, 
SQLSpecialColumns, and SQLStatistics, if SQL_ATTR_ODBC_VERSION is set to 
SQL_OV_ODBC3, the functions return SQL_TYPE_DATE, SQL_TYPE_TIME, and 
SQL_TYPE_TIMESTAMP in the DATA_TYPE field. The COLUMN_SIZE column (in the 
result set returned by SQLColumns, SQLGetTypeInfo, SQLProcedureColumns, and 
SQLSpecialColumns) contains the binary precision for the approximate numeric 
type. The NUM_PREC_RADIX column (in the result set returned by SQLColumns, 
SQLGetTypeInfo, and SQLProcedureColumns) contains a value of 2. If 
SQL_ATTR_ODBC_VERSION is set to SQL_OV_ODBC2, then the functions return 
SQL_DATE, SQL_TIME, and SQL_TIMESTAMP in the DATA_TYPE field, the COLUMN_SIZE 
column contains the decimal precision for the approximate numeric type, and the 
NUM_PREC_RADIX column contains a value
  of 10.

<end quote>

So since we're (attempting to) return ODBC 3 result sets, radix should be 2 for 
date, time, and timestamp.

> SCALE/DECIMAL_DIGITS should be null for DATE, and a non-zero, non-negative 
> number 
> equal to the number of digits to the right of the the decimal point 
> (fractional seconds) for
> TIME and TIMESTAMP. 

This agrees with the ODBC values you give above, with the exception of 
"non-zero".  Why does decimal_digits have to be non-zero for time?  The site 
that you point to says the following:

<begin quote>

The number of digits to the right of the decimal point in the seconds part of 
the value (fractional seconds). This number cannot be negative.

<end quote>

I.e. it must be non-negative, but I don't see anything about non-zero...Or am I 
just overlooking it?

> Make DatabaseMetaData.getProcedureColumns() JDBC4 compliant
> -----------------------------------------------------------
>
>          Key: DERBY-1094
>          URL: http://issues.apache.org/jira/browse/DERBY-1094
>      Project: Derby
>         Type: Sub-task
>   Components: JDBC
>     Versions: 10.2.0.0
>     Reporter: Dyre Tjeldvoll
>     Assignee: Dyre Tjeldvoll
>      Fix For: 10.2.0.0
>  Attachments: derby-1094.preliminary.diff
>
> The result set returned by getProcedureColumns() must be extended with 7 
> additional columns in JDBC 4.0; COLUMN_DEF, SQL_DATA_TYPE, SQL_DATETIME_SUB, 
> CHAR_OCTET_LENGTH, ORDINAL_POSITION, IS_NULLABLE and SPECIFIC_NAME. The 
> returned result set should be ordered by PROCEDURE_SCHEMA, PROCEDURE_NAME and 
> SPECIFIC_NAME

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to