Attached is a patch that modifies the Derby metadata for datetime values so that
the correct "precision" and "scale" for those types will be returned in metadata
calls.
Since the definitions of "precision" and "scale" aren't clearly defined for
datetime values in JDBC, I've set them based on the ODBC specification. It was
agreed in discussion of this issue (and also of DERBY-319) that the "intent" of
JDBC for these values is to mimic ODBC behavior. See the thread here for that
discussion:
http://article.gmane.org/gmane.comp.apache.db.derby.devel/2786
http://article.gmane.org/gmane.comp.apache.db.derby.devel/2787
So that said, the attached patch sets precision/scale for datetime values
according to the following ODBC pages:
[ Precision ]
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odbccolumn_size.asp
Pasted from the above link:
"The column (or parameter) size of numeric data types is defined as the maximum
number of digits used by the data type of the column or parameter, or the
precision of the data. For character types, this is the length in characters of
the data; for binary data types, column size is defined as the length in bytes
of the data. For the time, timestamp, and all interval data types, this is the
number of characters in the character representation of this data."
[ Scale ]
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odbcdecimal_digits.asp
Pasted from the above link:
"The decimal digits of decimal and numeric data types is defined as the maximum
number of digits to the right of the decimal point, or the scale of the data.
For approximate floating-point number columns or parameters, the scale is
undefined because the number of digits to the right of the decimal point is not
fixed. For datetime or interval data that contains a seconds component, the
decimal digits is defined as the number of digits to the right of the decimal
point in the seconds component of the data."
I have run "derbyall" on Windows 2000 with Sun JDK 1.4.2 and have included all
required master updates in the patch. The "svn stat" output is attached to this
email, along with the patch itself.
Could someone review/commit?
Many Thanks,
Army
M java\engine\org\apache\derby\impl\jdbc\metadata.properties
M java\engine\org\apache\derby\iapi\types\DataTypeUtilities.java
M java\engine\org\apache\derby\iapi\types\TypeId.java
M
java\testing\org\apache\derbyTesting\functionTests\master\DerbyNet\metadata.out
M
java\testing\org\apache\derbyTesting\functionTests\master\DerbyNet\odbc_metadata.out
M
java\testing\org\apache\derbyTesting\functionTests\master\DerbyNetClient\metadata.out
M
java\testing\org\apache\derbyTesting\functionTests\master\DerbyNetClient\odbc_metadata.out
M
java\testing\org\apache\derbyTesting\functionTests\master\DerbyNetClient\parameterMapping.out
M java\testing\org\apache\derbyTesting\functionTests\master\resultset.out
M java\testing\org\apache\derbyTesting\functionTests\master\metadata.out
M
java\testing\org\apache\derbyTesting\functionTests\master\coalesceTests.out
M
java\testing\org\apache\derbyTesting\functionTests\master\odbc_metadata.out
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():