db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Satheesh Bandaram <sathe...@Sourcery.Org>
Subject Re: [PATCH] DERBY-194: Precision/scale for Derby datetime values.
Date Fri, 03 Jun 2005 17:43:08 GMT
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
This patch has been committed. Changes look good. <br>
<br>
Satheesh<br>
<br>
Army wrote:<br>
<blockquote cite="mid429DE738.4040809@sbcglobal.net" type="cite">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.
  <br>
  <br>
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.&nbsp; 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.&nbsp; See the thread here for that discussion:
  <br>
  <br>
<a class="moz-txt-link-freetext" href="http://article.gmane.org/gmane.comp.apache.db.derby.devel/2786">http://article.gmane.org/gmane.comp.apache.db.derby.devel/2786</a>
  <br>
<a class="moz-txt-link-freetext" href="http://article.gmane.org/gmane.comp.apache.db.derby.devel/2787">http://article.gmane.org/gmane.comp.apache.db.derby.devel/2787</a>
  <br>
  <br>
So that said, the attached patch sets precision/scale for datetime
values according to the following ODBC pages:
  <br>
  <br>
[ Precision ]
  <br>
  <br>
<a class="moz-txt-link-freetext" href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odbccolumn_size.asp">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odbccolumn_size.asp</a>
  <br>
  <br>
Pasted from the above link:
  <br>
  <br>
"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."
  <br>
  <br>
[ Scale ]
  <br>
  <br>
<a class="moz-txt-link-freetext" href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odbcdecimal_digits.asp">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odbcdecimal_digits.asp</a>
  <br>
  <br>
Pasted from the above link:
  <br>
  <br>
"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."
  <br>
  <br>
I have run "derbyall" on Windows 2000 with Sun JDK 1.4.2 and have
included all required master updates in the patch.&nbsp; The "svn stat"
output is attached to this email, along with the patch itself.
  <br>
  <br>
Could someone review/commit?
  <br>
  <br>
Many Thanks,
  <br>
Army
  <br>
  <pre wrap="">
<hr size="4" width="90%">
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
  </pre>
  <pre wrap="">
<hr size="4" width="90%">
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():
  </pre>
</blockquote>
</body>
</html>


Mime
View raw message