Index: java/engine/org/apache/derby/impl/jdbc/metadata.properties =================================================================== --- java/engine/org/apache/derby/impl/jdbc/metadata.properties (revision 179384) +++ java/engine/org/apache/derby/impl/jdbc/metadata.properties (working copy) @@ -615,10 +615,10 @@ CAST (NULL AS INTEGER)), \ ('DATE',91,10,'DATE''','''',CAST (NULL AS CHAR), \ 1,FALSE,2,TRUE,FALSE,FALSE,0,0,10),\ - ('TIME',92,0,'TIME''','''',CAST (NULL AS CHAR), \ + ('TIME',92,8,'TIME''','''',CAST (NULL AS CHAR), \ 1,FALSE,2,TRUE,FALSE,FALSE,0,0,10),\ - ('TIMESTAMP',93,0,'TIMESTAMP''','''',CAST (NULL AS CHAR), \ - 1,FALSE,2,TRUE,FALSE,FALSE,0,0,10),\ + ('TIMESTAMP',93,26,'TIMESTAMP''','''',CAST (NULL AS CHAR), \ + 1,FALSE,2,TRUE,FALSE,FALSE,0,6,10),\ ('BLOB',2004,2147483647,CAST (NULL AS CHAR),CAST (NULL AS CHAR),'length', \ 1,FALSE,1,CAST (NULL AS BOOLEAN),FALSE,CAST (NULL AS BOOLEAN), \ CAST (NULL AS INTEGER),CAST (NULL AS INTEGER),CAST (NULL AS INTEGER)),\ Index: java/engine/org/apache/derby/iapi/types/DataTypeUtilities.java =================================================================== --- java/engine/org/apache/derby/iapi/types/DataTypeUtilities.java (revision 179384) +++ java/engine/org/apache/derby/iapi/types/DataTypeUtilities.java (working copy) @@ -53,8 +53,6 @@ return dtd.getMaximumWidth(); case Types.SMALLINT: return 5; - case Types.DATE: - return 10; case JDBC30Translation.SQL_TYPES_BOOLEAN: return 1; } Index: java/engine/org/apache/derby/iapi/types/TypeId.java =================================================================== --- java/engine/org/apache/derby/iapi/types/TypeId.java (revision 179384) +++ java/engine/org/apache/derby/iapi/types/TypeId.java (working copy) @@ -115,10 +115,23 @@ public static final int CLOB_MAXWIDTH = Integer.MAX_VALUE; // to change long public static final int NCLOB_MAXWIDTH = Integer.MAX_VALUE; // to change long - public static final int DATE_MAXWIDTH = 4; - public static final int TIME_MAXWIDTH = 8; - public static final int TIMESTAMP_MAXWIDTH = 12; + // Max width for datetime values is the length of the + // string returned from a call to "toString()" on the + // java.sql.Date, java.sql.Time, and java.sql.Timestamp + // classes (the result of toString() on those classes + // is defined by the JDBC API). This value is also + // used as the "precision" for those types. + public static final int DATE_MAXWIDTH = 10; // yyyy-mm-dd + public static final int TIME_MAXWIDTH = 8; // hh:mm:ss + public static final int TIMESTAMP_MAXWIDTH = 26; // yyyy-mm-dd hh:mm:ss.ffffff + // Scale DOES exist for time values. For a TIMESTAMP value, + // it's 6 ('ffffff'); for a TIME value, it's 0 (because there + // are no fractional seconds). Note that date values do + // not have a scale. + public static final int TIME_SCALE = 0; + public static final int TIMESTAMP_SCALE = 6; + /* These define all the type names for SQL92 and JDBC * NOTE: boolean is SQL3 */ @@ -714,10 +727,8 @@ case StoredFormatIds.DATE_TYPE_ID: typePrecedence = DATE_PRECEDENCE; javaTypeName = "java.sql.Date"; - /* this is used in ResultSetMetaData.getPrecision - * undefined for datetime types - */ - maxMaxWidth = -1; + maxMaxWidth = TypeId.DATE_MAXWIDTH; + maxPrecision = TypeId.DATE_MAXWIDTH; isDateTimeTimeStampTypeId = true; break; @@ -830,20 +841,18 @@ case StoredFormatIds.TIME_TYPE_ID: typePrecedence = TIME_PRECEDENCE; javaTypeName = "java.sql.Time"; - /* this is used in ResultSetMetaData.getPrecision - * undefined for datetime types - */ - maxMaxWidth = -1; + maxScale = TypeId.TIME_SCALE; + maxMaxWidth = TypeId.TIME_MAXWIDTH; + maxPrecision = TypeId.TIME_MAXWIDTH; isDateTimeTimeStampTypeId = true; break; case StoredFormatIds.TIMESTAMP_TYPE_ID: typePrecedence = TIMESTAMP_PRECEDENCE; javaTypeName = "java.sql.Timestamp"; - /* this is used in ResultSetMetaData.getPrecision - * undefined for datetime types - */ - maxMaxWidth = -1; + maxScale = TypeId.TIMESTAMP_SCALE; + maxMaxWidth = TypeId.TIMESTAMP_MAXWIDTH; + maxPrecision = TypeId.TIMESTAMP_MAXWIDTH; isDateTimeTimeStampTypeId = true; break; Index: java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/metadata.out =================================================================== --- java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/metadata.out (revision 179384) +++ java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/metadata.out (working copy) @@ -163,9 +163,9 @@ null,APP,GETPCTEST1,G,1,-5,BIGINT,19,8,0,10,1,null,12,6 null,APP,GETPCTEST1,H,1,8,DOUBLE,52,8,null,2,1,null,12,7 null,APP,GETPCTEST1,I,1,8,DOUBLE,52,8,null,2,1,null,12,8 -null,APP,GETPCTEST1,K,1,91,DATE,10,-1,0,10,1,null,12,9 -null,APP,GETPCTEST1,L,1,92,TIME,8,-1,0,10,1,null,12,10 -null,APP,GETPCTEST1,T,1,93,TIMESTAMP,26,-1,0,10,1,null,12,11 +null,APP,GETPCTEST1,K,1,91,DATE,10,10,0,10,1,null,12,9 +null,APP,GETPCTEST1,L,1,92,TIME,8,8,0,10,1,null,12,10 +null,APP,GETPCTEST1,T,1,93,TIMESTAMP,26,26,6,10,1,null,12,11 null,APP,GETPCTEST2,PA,1,4,INTEGER,10,4,0,10,1,null,2,0 null,APP,GETPCTEST2,PB,1,-5,BIGINT,19,8,0,10,1,null,2,1 null,APP,GETPCTEST3A,STRING1,1,12,VARCHAR,5,5,null,null,1,null,2,0 @@ -386,8 +386,8 @@ VARCHAR,12,32672,',',length,1,1,3,1,0,0,VARCHAR,null,null,null,null,null NATIONAL CHAR VARYING,12,2147483647,',',length,1,1,3,1,0,0,NATIONAL CHAR VARYING,null,null,null,null,null DATE,91,10,DATE',',null,1,0,2,1,0,0,DATE,0,0,null,null,10 -TIME,92,0,TIME',',null,1,0,2,1,0,0,TIME,0,0,null,null,10 -TIMESTAMP,93,0,TIMESTAMP',',null,1,0,2,1,0,0,TIMESTAMP,0,0,null,null,10 +TIME,92,8,TIME',',null,1,0,2,1,0,0,TIME,0,0,null,null,10 +TIMESTAMP,93,26,TIMESTAMP',',null,1,0,2,1,0,0,TIMESTAMP,0,6,null,null,10 BLOB,2004,2147483647,null,null,length,1,0,1,null,0,null,BLOB,null,null,null,null,null CLOB,2005,2147483647,',',length,1,1,1,null,0,null,CLOB,null,null,null,null,null getIndexInfo(): Index: java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/odbc_metadata.out =================================================================== --- java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/odbc_metadata.out (revision 179384) +++ java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/odbc_metadata.out (working copy) @@ -193,9 +193,9 @@ null,APP,GETPCTEST1,G,1,-5,BIGINT,19,8,0,10,1,null,null,-5,null,null,7,YES,12,6 null,APP,GETPCTEST1,H,1,8,DOUBLE,52,8,null,2,1,null,null,8,null,null,8,YES,12,7 null,APP,GETPCTEST1,I,1,8,DOUBLE,52,8,null,2,1,null,null,8,null,null,9,YES,12,8 -null,APP,GETPCTEST1,K,1,91,DATE,10,-1,null,2,1,null,null,9,1,null,10,YES,12,9 -null,APP,GETPCTEST1,L,1,92,TIME,8,-1,0,2,1,null,null,9,2,null,11,YES,12,10 -null,APP,GETPCTEST1,T,1,93,TIMESTAMP,26,-1,0,2,1,null,null,9,3,null,12,YES,12,11 +null,APP,GETPCTEST1,K,1,91,DATE,10,10,null,2,1,null,null,9,1,null,10,YES,12,9 +null,APP,GETPCTEST1,L,1,92,TIME,8,8,0,2,1,null,null,9,2,null,11,YES,12,10 +null,APP,GETPCTEST1,T,1,93,TIMESTAMP,26,26,6,2,1,null,null,9,3,null,12,YES,12,11 null,APP,GETPCTEST2,PA,1,4,INTEGER,10,4,0,10,1,null,null,4,null,null,1,YES,2,0 null,APP,GETPCTEST2,PB,1,-5,BIGINT,19,8,0,10,1,null,null,-5,null,null,2,YES,2,1 null,APP,GETPCTEST3A,STRING1,1,12,VARCHAR,5,5,null,null,1,null,null,12,null,5,1,YES,2,0 @@ -416,8 +416,8 @@ VARCHAR,12,32672,',',length,1,1,3,null,0,null,VARCHAR,null,null,12,null,null,null NATIONAL CHAR VARYING,12,2147483647,',',length,1,1,3,null,0,null,NATIONAL CHAR VARYING,null,null,12,null,null,null DATE,91,10,DATE',',null,1,0,2,1,0,0,DATE,0,0,9,1,2,null -TIME,92,0,TIME',',null,1,0,2,1,0,0,TIME,0,0,9,2,2,null -TIMESTAMP,93,0,TIMESTAMP',',null,1,0,2,1,0,0,TIMESTAMP,0,0,9,3,2,null +TIME,92,8,TIME',',null,1,0,2,1,0,0,TIME,0,0,9,2,2,null +TIMESTAMP,93,26,TIMESTAMP',',null,1,0,2,1,0,0,TIMESTAMP,0,6,9,3,2,null BLOB,2004,2147483647,null,null,length,1,0,1,null,0,null,BLOB,null,null,2004,null,null,null CLOB,2005,2147483647,',',length,1,1,1,null,0,null,CLOB,null,null,2005,null,null,null getIndexInfo(): Index: java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/metadata.out =================================================================== --- java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/metadata.out (revision 179384) +++ java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/metadata.out (working copy) @@ -163,9 +163,9 @@ null,APP,GETPCTEST1,G,1,-5,BIGINT,19,8,0,10,1,null,12,6 null,APP,GETPCTEST1,H,1,8,DOUBLE,52,8,null,2,1,null,12,7 null,APP,GETPCTEST1,I,1,8,DOUBLE,52,8,null,2,1,null,12,8 -null,APP,GETPCTEST1,K,1,91,DATE,10,-1,0,10,1,null,12,9 -null,APP,GETPCTEST1,L,1,92,TIME,8,-1,0,10,1,null,12,10 -null,APP,GETPCTEST1,T,1,93,TIMESTAMP,26,-1,0,10,1,null,12,11 +null,APP,GETPCTEST1,K,1,91,DATE,10,10,0,10,1,null,12,9 +null,APP,GETPCTEST1,L,1,92,TIME,8,8,0,10,1,null,12,10 +null,APP,GETPCTEST1,T,1,93,TIMESTAMP,26,26,6,10,1,null,12,11 null,APP,GETPCTEST2,PA,1,4,INTEGER,10,4,0,10,1,null,2,0 null,APP,GETPCTEST2,PB,1,-5,BIGINT,19,8,0,10,1,null,2,1 null,APP,GETPCTEST3A,STRING1,1,12,VARCHAR,5,5,null,null,1,null,2,0 @@ -386,8 +386,8 @@ VARCHAR,12,32672,',',length,1,1,3,1,0,0,VARCHAR,null,null,null,null,null NATIONAL CHAR VARYING,12,2147483647,',',length,1,1,3,1,0,0,NATIONAL CHAR VARYING,null,null,null,null,null DATE,91,10,DATE',',null,1,0,2,1,0,0,DATE,0,0,null,null,10 -TIME,92,0,TIME',',null,1,0,2,1,0,0,TIME,0,0,null,null,10 -TIMESTAMP,93,0,TIMESTAMP',',null,1,0,2,1,0,0,TIMESTAMP,0,0,null,null,10 +TIME,92,8,TIME',',null,1,0,2,1,0,0,TIME,0,0,null,null,10 +TIMESTAMP,93,26,TIMESTAMP',',null,1,0,2,1,0,0,TIMESTAMP,0,6,null,null,10 BLOB,2004,2147483647,null,null,length,1,0,1,null,0,null,BLOB,null,null,null,null,null CLOB,2005,2147483647,',',length,1,1,1,null,0,null,CLOB,null,null,null,null,null getIndexInfo(): Index: java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/odbc_metadata.out =================================================================== --- java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/odbc_metadata.out (revision 179384) +++ java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/odbc_metadata.out (working copy) @@ -193,9 +193,9 @@ null,APP,GETPCTEST1,G,1,-5,BIGINT,19,8,0,10,1,null,null,-5,null,null,7,YES,12,6 null,APP,GETPCTEST1,H,1,8,DOUBLE,52,8,null,2,1,null,null,8,null,null,8,YES,12,7 null,APP,GETPCTEST1,I,1,8,DOUBLE,52,8,null,2,1,null,null,8,null,null,9,YES,12,8 -null,APP,GETPCTEST1,K,1,91,DATE,10,-1,null,2,1,null,null,9,1,null,10,YES,12,9 -null,APP,GETPCTEST1,L,1,92,TIME,8,-1,0,2,1,null,null,9,2,null,11,YES,12,10 -null,APP,GETPCTEST1,T,1,93,TIMESTAMP,26,-1,0,2,1,null,null,9,3,null,12,YES,12,11 +null,APP,GETPCTEST1,K,1,91,DATE,10,10,null,2,1,null,null,9,1,null,10,YES,12,9 +null,APP,GETPCTEST1,L,1,92,TIME,8,8,0,2,1,null,null,9,2,null,11,YES,12,10 +null,APP,GETPCTEST1,T,1,93,TIMESTAMP,26,26,6,2,1,null,null,9,3,null,12,YES,12,11 null,APP,GETPCTEST2,PA,1,4,INTEGER,10,4,0,10,1,null,null,4,null,null,1,YES,2,0 null,APP,GETPCTEST2,PB,1,-5,BIGINT,19,8,0,10,1,null,null,-5,null,null,2,YES,2,1 null,APP,GETPCTEST3A,STRING1,1,12,VARCHAR,5,5,null,null,1,null,null,12,null,5,1,YES,2,0 @@ -416,8 +416,8 @@ VARCHAR,12,32672,',',length,1,1,3,null,0,null,VARCHAR,null,null,12,null,null,null NATIONAL CHAR VARYING,12,2147483647,',',length,1,1,3,null,0,null,NATIONAL CHAR VARYING,null,null,12,null,null,null DATE,91,10,DATE',',null,1,0,2,1,0,0,DATE,0,0,9,1,2,null -TIME,92,0,TIME',',null,1,0,2,1,0,0,TIME,0,0,9,2,2,null -TIMESTAMP,93,0,TIMESTAMP',',null,1,0,2,1,0,0,TIMESTAMP,0,0,9,3,2,null +TIME,92,8,TIME',',null,1,0,2,1,0,0,TIME,0,0,9,2,2,null +TIMESTAMP,93,26,TIMESTAMP',',null,1,0,2,1,0,0,TIMESTAMP,0,6,9,3,2,null BLOB,2004,2147483647,null,null,length,1,0,1,null,0,null,BLOB,null,null,2004,null,null,null CLOB,2005,2147483647,',',length,1,1,1,null,0,null,CLOB,null,null,2005,null,null,null getIndexInfo(): Index: java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/parameterMapping.out =================================================================== --- java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/parameterMapping.out (revision 179384) +++ java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/parameterMapping.out (working copy) @@ -1680,7 +1680,7 @@ setLong() IC JDBC MATCH (INVALID) setFloat() IC JDBC MATCH (INVALID) setDouble() IC JDBC MATCH (INVALID) - setBigDecimal() (?????):BigDecimal conversion exception [converters] Overflow occurred during numeric data type conversion of "99".. See attached Throwable. JDBC MATCH (INVALID) + setBigDecimal() IC JDBC MATCH (INVALID) setBigDecimal(null) getTime=null was null true CLOUD EXT (OK) setBoolean() IC JDBC MATCH (INVALID) setString() (22007):The syntax of the string representation of a datetime value is incorrect. JDBC FAIL TIME @@ -1707,7 +1707,7 @@ setUnicodeStream(null) getTime=null was null true CLOUD EXT (OK) setObject(null) OK Invalid data conversion: Parameter object type is invalid for requested conversion. setObject(java.lang.String) (22007):The syntax of the string representation of a datetime value is incorrect. JDBC FAIL TIME - setObject(java.math.BigDecimal) (?????):BigDecimal conversion exception [converters] Overflow occurred during numeric data type conversion of "72".. See attached Throwable. JDBC MATCH (INVALID) + setObject(java.math.BigDecimal) IC JDBC MATCH (INVALID) setObject(java.lang.Boolean) IC JDBC MATCH (INVALID) setObject(java.lang.Integer) IC JDBC MATCH (INVALID) setObject(java.lang.Long) IC JDBC MATCH (INVALID) @@ -1811,7 +1811,7 @@ setLong() IC JDBC MATCH (INVALID) setFloat() IC JDBC MATCH (INVALID) setDouble() IC JDBC MATCH (INVALID) - setBigDecimal() (?????):BigDecimal conversion exception [converters] Overflow occurred during numeric data type conversion of "99".. See attached Throwable. JDBC MATCH (INVALID) + setBigDecimal() IC JDBC MATCH (INVALID) setBigDecimal(null) getTimestamp=null was null true CLOUD EXT (OK) setBoolean() IC JDBC MATCH (INVALID) setString() (22007):The syntax of the string representation of a datetime value is incorrect. JDBC FAIL TIMESTAMP @@ -1838,7 +1838,7 @@ setUnicodeStream(null) getTimestamp=null was null true CLOUD EXT (OK) setObject(null) OK Invalid data conversion: Parameter object type is invalid for requested conversion. setObject(java.lang.String) (22007):The syntax of the string representation of a datetime value is incorrect. JDBC FAIL TIMESTAMP - setObject(java.math.BigDecimal) (?????):BigDecimal conversion exception [converters] Overflow occurred during numeric data type conversion of "72".. See attached Throwable. JDBC MATCH (INVALID) + setObject(java.math.BigDecimal) IC JDBC MATCH (INVALID) setObject(java.lang.Boolean) IC JDBC MATCH (INVALID) setObject(java.lang.Integer) IC JDBC MATCH (INVALID) setObject(java.lang.Long) IC JDBC MATCH (INVALID) Index: java/testing/org/apache/derbyTesting/functionTests/master/resultset.out =================================================================== --- java/testing/org/apache/derbyTesting/functionTests/master/resultset.out (revision 179384) +++ java/testing/org/apache/derbyTesting/functionTests/master/resultset.out (working copy) @@ -108,7 +108,7 @@ getSchemaName(6): APP getCatalogName(6): getColumnType(6): 92 -getPrecision(6): 0 +getPrecision(6): 8 getScale(6): 0 getColumnTypeName(6): TIME isReadOnly(6): false @@ -127,8 +127,8 @@ getSchemaName(7): APP getCatalogName(7): getColumnType(7): 93 -getPrecision(7): 0 -getScale(7): 0 +getPrecision(7): 26 +getScale(7): 6 getColumnTypeName(7): TIMESTAMP isReadOnly(7): false isWritable(7): Expected isWritable value Index: java/testing/org/apache/derbyTesting/functionTests/master/metadata.out =================================================================== --- java/testing/org/apache/derbyTesting/functionTests/master/metadata.out (revision 179384) +++ java/testing/org/apache/derbyTesting/functionTests/master/metadata.out (working copy) @@ -163,9 +163,9 @@ null,APP,GETPCTEST1,G,1,-5,BIGINT,19,8,0,10,1,null,12,6 null,APP,GETPCTEST1,H,1,8,DOUBLE,52,8,null,2,1,null,12,7 null,APP,GETPCTEST1,I,1,8,DOUBLE,52,8,null,2,1,null,12,8 -null,APP,GETPCTEST1,K,1,91,DATE,10,-1,0,10,1,null,12,9 -null,APP,GETPCTEST1,L,1,92,TIME,8,-1,0,10,1,null,12,10 -null,APP,GETPCTEST1,T,1,93,TIMESTAMP,26,-1,0,10,1,null,12,11 +null,APP,GETPCTEST1,K,1,91,DATE,10,10,0,10,1,null,12,9 +null,APP,GETPCTEST1,L,1,92,TIME,8,8,0,10,1,null,12,10 +null,APP,GETPCTEST1,T,1,93,TIMESTAMP,26,26,6,10,1,null,12,11 null,APP,GETPCTEST2,PA,1,4,INTEGER,10,4,0,10,1,null,2,0 null,APP,GETPCTEST2,PB,1,-5,BIGINT,19,8,0,10,1,null,2,1 null,APP,GETPCTEST3A,STRING1,1,12,VARCHAR,5,5,null,null,1,null,2,0 @@ -386,8 +386,8 @@ VARCHAR,12,32672,',',length,1,true,3,true,false,false,VARCHAR,null,null,null,null,null NATIONAL CHAR VARYING,12,2147483647,',',length,1,true,3,true,false,false,NATIONAL CHAR VARYING,null,null,null,null,null DATE,91,10,DATE',',null,1,false,2,true,false,false,DATE,0,0,null,null,10 -TIME,92,0,TIME',',null,1,false,2,true,false,false,TIME,0,0,null,null,10 -TIMESTAMP,93,0,TIMESTAMP',',null,1,false,2,true,false,false,TIMESTAMP,0,0,null,null,10 +TIME,92,8,TIME',',null,1,false,2,true,false,false,TIME,0,0,null,null,10 +TIMESTAMP,93,26,TIMESTAMP',',null,1,false,2,true,false,false,TIMESTAMP,0,6,null,null,10 BLOB,2004,2147483647,null,null,length,1,false,1,null,false,null,BLOB,null,null,null,null,null CLOB,2005,2147483647,',',length,1,true,1,null,false,null,CLOB,null,null,null,null,null getIndexInfo(): Index: java/testing/org/apache/derbyTesting/functionTests/master/coalesceTests.out =================================================================== --- java/testing/org/apache/derbyTesting/functionTests/master/coalesceTests.out (revision 179384) +++ java/testing/org/apache/derbyTesting/functionTests/master/coalesceTests.out (working copy) @@ -491,40 +491,40 @@ ------------------------------------------------ expected exception because char value does not match a time/timestamp format The syntax of the string representation of a datetime value is incorrect. SELECT COALESCE(TIMECOL,CHARCOL) from AllDataTypesTable - COL1(datatype : TIME, precision : 0, scale : 0) + COL1(datatype : TIME, precision : 8, scale : 0) ----------------------------------------------- {null} {15:30:20} {15:30:20} {null} SELECT COALESCE(TIMECOL,CHARCOL,VARCHARCOL) from AllDataTypesTable - COL1(datatype : TIME, precision : 0, scale : 0) + COL1(datatype : TIME, precision : 8, scale : 0) ----------------------------------------------- {null} {15:30:20} {15:30:20} {15:30:20} SELECT COALESCE(TIMECOL,CHARCOL,VARCHARCOL,TIMECOL) from AllDataTypesTable - COL1(datatype : TIME, precision : 0, scale : 0) + COL1(datatype : TIME, precision : 8, scale : 0) ----------------------------------------------- {null} {15:30:20} {15:30:20} {15:30:20} SELECT COALESCE(TIMESTAMPCOL,CHARCOL) from AllDataTypesTable - COL1(datatype : TIMESTAMP, precision : 0, scale : 0) - ---------------------------------------------------- + COL1(datatype : TIMESTAMP, precision : 26, scale : 6) + ----------------------------------------------------- {null} {xxxxxxFILTERED-TIMESTAMPxxxxx} {xxxxxxFILTERED-TIMESTAMPxxxxx} {null} SELECT COALESCE(TIMESTAMPCOL,CHARCOL,VARCHARCOL) from AllDataTypesTable - COL1(datatype : TIMESTAMP, precision : 0, scale : 0) - ---------------------------------------------------- + COL1(datatype : TIMESTAMP, precision : 26, scale : 6) + ----------------------------------------------------- expected exception because char value does not match a time/timestamp format The syntax of the string representation of a datetime value is incorrect. SELECT COALESCE(TIMESTAMPCOL,CHARCOL,VARCHARCOL,TIMESTAMPCOL) from AllDataTypesTable - COL1(datatype : TIMESTAMP, precision : 0, scale : 0) - ---------------------------------------------------- + COL1(datatype : TIMESTAMP, precision : 26, scale : 6) + ----------------------------------------------------- expected exception because char value does not match a time/timestamp format The syntax of the string representation of a datetime value is incorrect. SELECT COALESCE(BLOBCOL,BLOBCOL) from AllDataTypesTable COL1(datatype : BLOB, precision : 1024, scale : 0) @@ -1642,23 +1642,23 @@ {null} SELECT COALESCE(CHARCOL,TIMECOL) from AllDataTypesTable Coalesc/Value with operands CHAR(60) , TIME will have result data type of TIME - COL1(datatype : TIME, precision : 0, scale : 0) + COL1(datatype : TIME, precision : 8, scale : 0) ----------------------------------------------- expected exception because char value does not match a time/timestamp format The syntax of the string representation of a datetime value is incorrect. SELECT VALUE(CHARCOL,TIMECOL) from AllDataTypesTable Coalesc/Value with operands CHAR(60) , TIME will have result data type of TIME - COL1(datatype : TIME, precision : 0, scale : 0) + COL1(datatype : TIME, precision : 8, scale : 0) ----------------------------------------------- expected exception because char value does not match a time/timestamp format The syntax of the string representation of a datetime value is incorrect. SELECT COALESCE(CHARCOL,TIMESTAMPCOL) from AllDataTypesTable Coalesc/Value with operands CHAR(60) , TIMESTAMP will have result data type of TIMESTAMP - COL1(datatype : TIMESTAMP, precision : 0, scale : 0) - ---------------------------------------------------- + COL1(datatype : TIMESTAMP, precision : 26, scale : 6) + ----------------------------------------------------- expected exception because char value does not match a time/timestamp format The syntax of the string representation of a datetime value is incorrect. SELECT VALUE(CHARCOL,TIMESTAMPCOL) from AllDataTypesTable Coalesc/Value with operands CHAR(60) , TIMESTAMP will have result data type of TIMESTAMP - COL1(datatype : TIMESTAMP, precision : 0, scale : 0) - ---------------------------------------------------- + COL1(datatype : TIMESTAMP, precision : 26, scale : 6) + ----------------------------------------------------- expected exception because char value does not match a time/timestamp format The syntax of the string representation of a datetime value is incorrect. SELECT COALESCE(CHARCOL,BLOBCOL) from AllDataTypesTable Operands CHAR(60) , BLOB(1k) are incompatible for Coalesce/Value function @@ -1796,23 +1796,23 @@ expected exception because char value does not match a time/timestamp format The syntax of the string representation of a datetime value is incorrect. SELECT COALESCE(VARCHARCOL,TIMECOL) from AllDataTypesTable Coalesc/Value with operands VARCHAR(60) , TIME will have result data type of TIME - COL1(datatype : TIME, precision : 0, scale : 0) + COL1(datatype : TIME, precision : 8, scale : 0) ----------------------------------------------- expected exception because char value does not match a time/timestamp format The syntax of the string representation of a datetime value is incorrect. SELECT VALUE(VARCHARCOL,TIMECOL) from AllDataTypesTable Coalesc/Value with operands VARCHAR(60) , TIME will have result data type of TIME - COL1(datatype : TIME, precision : 0, scale : 0) + COL1(datatype : TIME, precision : 8, scale : 0) ----------------------------------------------- expected exception because char value does not match a time/timestamp format The syntax of the string representation of a datetime value is incorrect. SELECT COALESCE(VARCHARCOL,TIMESTAMPCOL) from AllDataTypesTable Coalesc/Value with operands VARCHAR(60) , TIMESTAMP will have result data type of TIMESTAMP - COL1(datatype : TIMESTAMP, precision : 0, scale : 0) - ---------------------------------------------------- + COL1(datatype : TIMESTAMP, precision : 26, scale : 6) + ----------------------------------------------------- expected exception because char value does not match a time/timestamp format The syntax of the string representation of a datetime value is incorrect. SELECT VALUE(VARCHARCOL,TIMESTAMPCOL) from AllDataTypesTable Coalesc/Value with operands VARCHAR(60) , TIMESTAMP will have result data type of TIMESTAMP - COL1(datatype : TIMESTAMP, precision : 0, scale : 0) - ---------------------------------------------------- + COL1(datatype : TIMESTAMP, precision : 26, scale : 6) + ----------------------------------------------------- expected exception because char value does not match a time/timestamp format The syntax of the string representation of a datetime value is incorrect. SELECT COALESCE(VARCHARCOL,BLOBCOL) from AllDataTypesTable Operands VARCHAR(60) , BLOB(1k) are incompatible for Coalesce/Value function @@ -2664,7 +2664,7 @@ expected exception The data type, length or value of arguments 'TIME' and 'DOUBLE' is incompatible. SELECT COALESCE(TIMECOL,CHARCOL) from AllDataTypesTable Coalesc/Value with operands TIME , CHAR(60) will have result data type of TIME - COL1(datatype : TIME, precision : 0, scale : 0) + COL1(datatype : TIME, precision : 8, scale : 0) ----------------------------------------------- {null} {15:30:20} @@ -2672,7 +2672,7 @@ {null} SELECT VALUE(TIMECOL,CHARCOL) from AllDataTypesTable Coalesc/Value with operands TIME , CHAR(60) will have result data type of TIME - COL1(datatype : TIME, precision : 0, scale : 0) + COL1(datatype : TIME, precision : 8, scale : 0) ----------------------------------------------- {null} {15:30:20} @@ -2680,7 +2680,7 @@ {null} SELECT COALESCE(TIMECOL,VARCHARCOL) from AllDataTypesTable Coalesc/Value with operands TIME , VARCHAR(60) will have result data type of TIME - COL1(datatype : TIME, precision : 0, scale : 0) + COL1(datatype : TIME, precision : 8, scale : 0) ----------------------------------------------- {null} {15:30:20} @@ -2688,7 +2688,7 @@ {15:30:20} SELECT VALUE(TIMECOL,VARCHARCOL) from AllDataTypesTable Coalesc/Value with operands TIME , VARCHAR(60) will have result data type of TIME - COL1(datatype : TIME, precision : 0, scale : 0) + COL1(datatype : TIME, precision : 8, scale : 0) ----------------------------------------------- {null} {15:30:20} @@ -2732,7 +2732,7 @@ expected exception The data type, length or value of arguments 'TIME' and 'DATE' is incompatible. SELECT COALESCE(TIMECOL,TIMECOL) from AllDataTypesTable Coalesc/Value with operands TIME , TIME will have result data type of TIME - COL1(datatype : TIME, precision : 0, scale : 0) + COL1(datatype : TIME, precision : 8, scale : 0) ----------------------------------------------- {null} {15:30:20} @@ -2740,7 +2740,7 @@ {null} SELECT VALUE(TIMECOL,TIMECOL) from AllDataTypesTable Coalesc/Value with operands TIME , TIME will have result data type of TIME - COL1(datatype : TIME, precision : 0, scale : 0) + COL1(datatype : TIME, precision : 8, scale : 0) ----------------------------------------------- {null} {15:30:20} @@ -2796,29 +2796,29 @@ expected exception The data type, length or value of arguments 'TIMESTAMP' and 'DOUBLE' is incompatible. SELECT COALESCE(TIMESTAMPCOL,CHARCOL) from AllDataTypesTable Coalesc/Value with operands TIMESTAMP , CHAR(60) will have result data type of TIMESTAMP - COL1(datatype : TIMESTAMP, precision : 0, scale : 0) - ---------------------------------------------------- + COL1(datatype : TIMESTAMP, precision : 26, scale : 6) + ----------------------------------------------------- {null} {xxxxxxFILTERED-TIMESTAMPxxxxx} {xxxxxxFILTERED-TIMESTAMPxxxxx} {null} SELECT VALUE(TIMESTAMPCOL,CHARCOL) from AllDataTypesTable Coalesc/Value with operands TIMESTAMP , CHAR(60) will have result data type of TIMESTAMP - COL1(datatype : TIMESTAMP, precision : 0, scale : 0) - ---------------------------------------------------- + COL1(datatype : TIMESTAMP, precision : 26, scale : 6) + ----------------------------------------------------- {null} {xxxxxxFILTERED-TIMESTAMPxxxxx} {xxxxxxFILTERED-TIMESTAMPxxxxx} {null} SELECT COALESCE(TIMESTAMPCOL,VARCHARCOL) from AllDataTypesTable Coalesc/Value with operands TIMESTAMP , VARCHAR(60) will have result data type of TIMESTAMP - COL1(datatype : TIMESTAMP, precision : 0, scale : 0) - ---------------------------------------------------- + COL1(datatype : TIMESTAMP, precision : 26, scale : 6) + ----------------------------------------------------- expected exception because char value does not match a time/timestamp format The syntax of the string representation of a datetime value is incorrect. SELECT VALUE(TIMESTAMPCOL,VARCHARCOL) from AllDataTypesTable Coalesc/Value with operands TIMESTAMP , VARCHAR(60) will have result data type of TIMESTAMP - COL1(datatype : TIMESTAMP, precision : 0, scale : 0) - ---------------------------------------------------- + COL1(datatype : TIMESTAMP, precision : 26, scale : 6) + ----------------------------------------------------- expected exception because char value does not match a time/timestamp format The syntax of the string representation of a datetime value is incorrect. SELECT COALESCE(TIMESTAMPCOL,LONGVARCHARCOL) from AllDataTypesTable Operands TIMESTAMP , LONG VARCHAR are incompatible for Coalesce/Value function @@ -2864,16 +2864,16 @@ expected exception The data type, length or value of arguments 'TIMESTAMP' and 'TIME' is incompatible. SELECT COALESCE(TIMESTAMPCOL,TIMESTAMPCOL) from AllDataTypesTable Coalesc/Value with operands TIMESTAMP , TIMESTAMP will have result data type of TIMESTAMP - COL1(datatype : TIMESTAMP, precision : 0, scale : 0) - ---------------------------------------------------- + COL1(datatype : TIMESTAMP, precision : 26, scale : 6) + ----------------------------------------------------- {null} {xxxxxxFILTERED-TIMESTAMPxxxxx} {xxxxxxFILTERED-TIMESTAMPxxxxx} {null} SELECT VALUE(TIMESTAMPCOL,TIMESTAMPCOL) from AllDataTypesTable Coalesc/Value with operands TIMESTAMP , TIMESTAMP will have result data type of TIMESTAMP - COL1(datatype : TIMESTAMP, precision : 0, scale : 0) - ---------------------------------------------------- + COL1(datatype : TIMESTAMP, precision : 26, scale : 6) + ----------------------------------------------------- {null} {xxxxxxFILTERED-TIMESTAMPxxxxx} {xxxxxxFILTERED-TIMESTAMPxxxxx} @@ -3066,164 +3066,164 @@ expected exception The syntax of the string representation of a datetime value is incorrect. TestG - focus on time datatypes TestG1a - coalesce(timeCol,timeCol) - COL1(datatype : TIME, precision : 0, scale : 0) + COL1(datatype : TIME, precision : 8, scale : 0) ----------------------------------------------- {null} {12:30:30} TestG1b - value(timeCol,timeCol) - COL1(datatype : TIME, precision : 0, scale : 0) + COL1(datatype : TIME, precision : 8, scale : 0) ----------------------------------------------- {null} {12:30:30} TestG2a - coalesce(timeCol,charCol) - COL1(datatype : TIME, precision : 0, scale : 0) + COL1(datatype : TIME, precision : 8, scale : 0) ----------------------------------------------- {null} {12:30:30} TestG2b - value(timeCol,charCol) - COL1(datatype : TIME, precision : 0, scale : 0) + COL1(datatype : TIME, precision : 8, scale : 0) ----------------------------------------------- {null} {12:30:30} TestG3a - coalesce(charCol,timeCol) - COL1(datatype : TIME, precision : 0, scale : 0) + COL1(datatype : TIME, precision : 8, scale : 0) ----------------------------------------------- {null} {12:30:31} TestG3b - value(charCol,timeCol) - COL1(datatype : TIME, precision : 0, scale : 0) + COL1(datatype : TIME, precision : 8, scale : 0) ----------------------------------------------- {null} {12:30:31} TestG4a - coalesce(timeCol,varcharCol) - COL1(datatype : TIME, precision : 0, scale : 0) + COL1(datatype : TIME, precision : 8, scale : 0) ----------------------------------------------- {null} {12:30:30} TestG4b - value(timeCol,varcharCol) - COL1(datatype : TIME, precision : 0, scale : 0) + COL1(datatype : TIME, precision : 8, scale : 0) ----------------------------------------------- {null} {12:30:30} TestG5a - coalesce(varcharCol,timeCol) - COL1(datatype : TIME, precision : 0, scale : 0) + COL1(datatype : TIME, precision : 8, scale : 0) ----------------------------------------------- {null} {12:30:31} TestG5b - value(varcharCol,timeCol) - COL1(datatype : TIME, precision : 0, scale : 0) + COL1(datatype : TIME, precision : 8, scale : 0) ----------------------------------------------- {null} {12:30:31} TestG - Try invalid string representation of time into chars and varchars and then use them in coalesce function with time datatype TestG6a - coalesce(charCol,timeCol) will fail because one row has invalid string representation of time in the char column - COL1(datatype : TIME, precision : 0, scale : 0) + COL1(datatype : TIME, precision : 8, scale : 0) ----------------------------------------------- expected exception The syntax of the string representation of a datetime value is incorrect. TestG6b - value(charCol,timeCol) will fail because one row has invalid string representation of time in the char column - COL1(datatype : TIME, precision : 0, scale : 0) + COL1(datatype : TIME, precision : 8, scale : 0) ----------------------------------------------- expected exception The syntax of the string representation of a datetime value is incorrect. TestG7a - coalesce(varcharCol,timeCol) will fail because one row has invalid string representation of time in the varchar column - COL1(datatype : TIME, precision : 0, scale : 0) + COL1(datatype : TIME, precision : 8, scale : 0) ----------------------------------------------- expected exception The syntax of the string representation of a datetime value is incorrect. TestG7b - value(varcharCol,timeCol) will fail because one row has invalid string representation of time in the varchar column - COL1(datatype : TIME, precision : 0, scale : 0) + COL1(datatype : TIME, precision : 8, scale : 0) ----------------------------------------------- expected exception The syntax of the string representation of a datetime value is incorrect. TestG - Following will work fine with invalid string representation of time because timeCol is not null and hence we don't look at invalid time string in char/varchar columns TestG8a - coalesce(timeCol,charCol) will pass because timeCol is non-null for all rows in table TG and hence we don't look at charCol's invalid time string - COL1(datatype : TIME, precision : 0, scale : 0) + COL1(datatype : TIME, precision : 8, scale : 0) ----------------------------------------------- {null} {12:30:30} {12:30:33} TestG8b - value(timeCol,charCol) will pass because timeCol is non-null for all rows in table TG and hence we don't look at charCol's invalid time string - COL1(datatype : TIME, precision : 0, scale : 0) + COL1(datatype : TIME, precision : 8, scale : 0) ----------------------------------------------- {null} {12:30:30} {12:30:33} TestG9a - coalesce(timeCol,varcharCol) will pass because timeCol is non-null for all rows in table TG and hence we don't look at varcharCol's invalid time string - COL1(datatype : TIME, precision : 0, scale : 0) + COL1(datatype : TIME, precision : 8, scale : 0) ----------------------------------------------- {null} {12:30:30} {12:30:33} TestG9b - value(timeCol,varcharCol) will pass because timeCol is non-null for all rows in table TG and hence we don't look at varcharCol's invalid time string - COL1(datatype : TIME, precision : 0, scale : 0) + COL1(datatype : TIME, precision : 8, scale : 0) ----------------------------------------------- {null} {12:30:30} {12:30:33} TestH - focus on timestamp datatypes TestH1a - coalesce(timestampCol,timestampCol) - COL1(datatype : TIMESTAMP, precision : 0, scale : 0) - ---------------------------------------------------- + COL1(datatype : TIMESTAMP, precision : 26, scale : 6) + ----------------------------------------------------- {null} {xxxxxxFILTERED-TIMESTAMPxxxxx} TestH1b - value(timestampCol,timestampCol) - COL1(datatype : TIMESTAMP, precision : 0, scale : 0) - ---------------------------------------------------- + COL1(datatype : TIMESTAMP, precision : 26, scale : 6) + ----------------------------------------------------- {null} {xxxxxxFILTERED-TIMESTAMPxxxxx} TestH2a - coalesce(timestampCol,charCol) - COL1(datatype : TIMESTAMP, precision : 0, scale : 0) - ---------------------------------------------------- + COL1(datatype : TIMESTAMP, precision : 26, scale : 6) + ----------------------------------------------------- {null} {xxxxxxFILTERED-TIMESTAMPxxxxx} TestH2b - value(timestampCol,charCol) - COL1(datatype : TIMESTAMP, precision : 0, scale : 0) - ---------------------------------------------------- + COL1(datatype : TIMESTAMP, precision : 26, scale : 6) + ----------------------------------------------------- {null} {xxxxxxFILTERED-TIMESTAMPxxxxx} TestH3a - coalesce(charCol,timestampCol) - COL1(datatype : TIMESTAMP, precision : 0, scale : 0) - ---------------------------------------------------- + COL1(datatype : TIMESTAMP, precision : 26, scale : 6) + ----------------------------------------------------- {null} {xxxxxxFILTERED-TIMESTAMPxxxxx} TestH3b - value(charCol,timestampCol) - COL1(datatype : TIMESTAMP, precision : 0, scale : 0) - ---------------------------------------------------- + COL1(datatype : TIMESTAMP, precision : 26, scale : 6) + ----------------------------------------------------- {null} {xxxxxxFILTERED-TIMESTAMPxxxxx} TestH4a - coalesce(timestampCol,varcharCol) - COL1(datatype : TIMESTAMP, precision : 0, scale : 0) - ---------------------------------------------------- + COL1(datatype : TIMESTAMP, precision : 26, scale : 6) + ----------------------------------------------------- {null} {xxxxxxFILTERED-TIMESTAMPxxxxx} TestH4b - value(timestampCol,varcharCol) - COL1(datatype : TIMESTAMP, precision : 0, scale : 0) - ---------------------------------------------------- + COL1(datatype : TIMESTAMP, precision : 26, scale : 6) + ----------------------------------------------------- {null} {xxxxxxFILTERED-TIMESTAMPxxxxx} TestH5a - coalesce(varcharCol,timestampCol) - COL1(datatype : TIMESTAMP, precision : 0, scale : 0) - ---------------------------------------------------- + COL1(datatype : TIMESTAMP, precision : 26, scale : 6) + ----------------------------------------------------- {null} {xxxxxxFILTERED-TIMESTAMPxxxxx} TestH5b - value(varcharCol,timestampCol) - COL1(datatype : TIMESTAMP, precision : 0, scale : 0) - ---------------------------------------------------- + COL1(datatype : TIMESTAMP, precision : 26, scale : 6) + ----------------------------------------------------- {null} {xxxxxxFILTERED-TIMESTAMPxxxxx} TestH - Try invalid string representation of timestamp into chars and varchars and then use them in coalesce function with timestamp datatype TestH6a - coalesce(charCol,timestampCol) will fail because one row has invalid string representation of timestamp in the char column - COL1(datatype : TIMESTAMP, precision : 0, scale : 0) - ---------------------------------------------------- + COL1(datatype : TIMESTAMP, precision : 26, scale : 6) + ----------------------------------------------------- expected exception The syntax of the string representation of a datetime value is incorrect. TestH6b - value(charCol,timestampCol) will fail because one row has invalid string representation of timestamp in the char column - COL1(datatype : TIMESTAMP, precision : 0, scale : 0) - ---------------------------------------------------- + COL1(datatype : TIMESTAMP, precision : 26, scale : 6) + ----------------------------------------------------- expected exception The syntax of the string representation of a datetime value is incorrect. TestH7a - coalesce(varcharCol,timestampCol) will fail because one row has invalid string representation of timestamp in the varchar column - COL1(datatype : TIMESTAMP, precision : 0, scale : 0) - ---------------------------------------------------- + COL1(datatype : TIMESTAMP, precision : 26, scale : 6) + ----------------------------------------------------- expected exception The syntax of the string representation of a datetime value is incorrect. TestH7b - value(varcharCol,timestampCol) will fail because one row has invalid string representation of timestamp in the varchar column - COL1(datatype : TIMESTAMP, precision : 0, scale : 0) - ---------------------------------------------------- + COL1(datatype : TIMESTAMP, precision : 26, scale : 6) + ----------------------------------------------------- expected exception The syntax of the string representation of a datetime value is incorrect. TestE - focus on smallint datatypes TestE1 - coalesce(smallintCol,smallintCol) Index: java/testing/org/apache/derbyTesting/functionTests/master/odbc_metadata.out =================================================================== --- java/testing/org/apache/derbyTesting/functionTests/master/odbc_metadata.out (revision 179384) +++ java/testing/org/apache/derbyTesting/functionTests/master/odbc_metadata.out (working copy) @@ -193,9 +193,9 @@ null,APP,GETPCTEST1,G,1,-5,BIGINT,19,8,0,10,1,null,null,-5,null,null,7,YES,12,6 null,APP,GETPCTEST1,H,1,8,DOUBLE,52,8,null,2,1,null,null,8,null,null,8,YES,12,7 null,APP,GETPCTEST1,I,1,8,DOUBLE,52,8,null,2,1,null,null,8,null,null,9,YES,12,8 -null,APP,GETPCTEST1,K,1,91,DATE,10,-1,null,2,1,null,null,9,1,null,10,YES,12,9 -null,APP,GETPCTEST1,L,1,92,TIME,8,-1,0,2,1,null,null,9,2,null,11,YES,12,10 -null,APP,GETPCTEST1,T,1,93,TIMESTAMP,26,-1,0,2,1,null,null,9,3,null,12,YES,12,11 +null,APP,GETPCTEST1,K,1,91,DATE,10,10,null,2,1,null,null,9,1,null,10,YES,12,9 +null,APP,GETPCTEST1,L,1,92,TIME,8,8,0,2,1,null,null,9,2,null,11,YES,12,10 +null,APP,GETPCTEST1,T,1,93,TIMESTAMP,26,26,6,2,1,null,null,9,3,null,12,YES,12,11 null,APP,GETPCTEST2,PA,1,4,INTEGER,10,4,0,10,1,null,null,4,null,null,1,YES,2,0 null,APP,GETPCTEST2,PB,1,-5,BIGINT,19,8,0,10,1,null,null,-5,null,null,2,YES,2,1 null,APP,GETPCTEST3A,STRING1,1,12,VARCHAR,5,5,null,null,1,null,null,12,null,5,1,YES,2,0 @@ -416,8 +416,8 @@ VARCHAR,12,32672,',',length,1,1,3,null,0,null,VARCHAR,null,null,12,null,null,null NATIONAL CHAR VARYING,12,2147483647,',',length,1,1,3,null,0,null,NATIONAL CHAR VARYING,null,null,12,null,null,null DATE,91,10,DATE',',null,1,0,2,1,0,0,DATE,0,0,9,1,2,null -TIME,92,0,TIME',',null,1,0,2,1,0,0,TIME,0,0,9,2,2,null -TIMESTAMP,93,0,TIMESTAMP',',null,1,0,2,1,0,0,TIMESTAMP,0,0,9,3,2,null +TIME,92,8,TIME',',null,1,0,2,1,0,0,TIME,0,0,9,2,2,null +TIMESTAMP,93,26,TIMESTAMP',',null,1,0,2,1,0,0,TIMESTAMP,0,6,9,3,2,null BLOB,2004,2147483647,null,null,length,1,0,1,null,0,null,BLOB,null,null,2004,null,null,null CLOB,2005,2147483647,',',length,1,1,1,null,0,null,CLOB,null,null,2005,null,null,null getIndexInfo():