You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by km...@apache.org on 2007/05/11 20:06:17 UTC
svn commit: r537252 - in /db/derby/code/trunk/java:
client/org/apache/derby/client/am/DateTime.java
testing/org/apache/derbyTesting/functionTests/tests/lang/TimeHandlingTest.java
Author: kmarsden
Date: Fri May 11 11:06:16 2007
New Revision: 537252
URL: http://svn.apache.org/viewvc?view=rev&rev=537252
Log:
DERBY-889 with client getTimestamp on a TIME column will print the date 1900-01-01 instead of the current date
Committed Bryan's fix unchanged and enabled test cases in TimeHandlingTest
Contributed by Bryan Pendleton
Modified:
db/derby/code/trunk/java/client/org/apache/derby/client/am/DateTime.java
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/TimeHandlingTest.java
Modified: db/derby/code/trunk/java/client/org/apache/derby/client/am/DateTime.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/client/org/apache/derby/client/am/DateTime.java?view=diff&rev=537252&r1=537251&r2=537252
==============================================================================
--- db/derby/code/trunk/java/client/org/apache/derby/client/am/DateTime.java (original)
+++ db/derby/code/trunk/java/client/org/apache/derby/client/am/DateTime.java Fri May 11 11:06:16 2007
@@ -477,18 +477,21 @@
10 * (((int) time.charAt(6)) - zeroBase) +
(((int) time.charAt(7)) - zeroBase);
+ // The SQL standard specifies that the date portion of the returned
+ // timestamp should be set to the current date. See DERBY-889 for
+ // more details.
+ java.util.Date today = new java.util.Date();
if (recyclableTimestamp == null) {
- return new java.sql.Timestamp(0, 0, 1, hour, minute, second, 0);
- } else {
- recyclableTimestamp.setYear(0);
- recyclableTimestamp.setMonth(0);
- recyclableTimestamp.setDate(1);
- recyclableTimestamp.setHours(hour);
- recyclableTimestamp.setMinutes(minute);
- recyclableTimestamp.setSeconds(second);
- recyclableTimestamp.setNanos(0);
- return recyclableTimestamp;
+ recyclableTimestamp = new java.sql.Timestamp(today.getTime());
}
+ else {
+ recyclableTimestamp.setTime(today.getTime());
+ }
+ recyclableTimestamp.setHours(hour);
+ recyclableTimestamp.setMinutes(minute);
+ recyclableTimestamp.setSeconds(second);
+ recyclableTimestamp.setNanos(0);
+ return recyclableTimestamp;
}
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/TimeHandlingTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/TimeHandlingTest.java?view=diff&rev=537252&r1=537251&r2=537252
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/TimeHandlingTest.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/TimeHandlingTest.java Fri May 11 11:06:16 2007
@@ -75,11 +75,6 @@
{
TestSuite suite = new TestSuite(TimeHandlingTest.class);
- // Once DERBY-889 is fixed the methods should be renamed
- // and these lines removed so they are added under the default mechanism.
- suite.addTest(new TimeHandlingTest("derby889testInertTime"));
- suite.addTest(new TimeHandlingTest("derby889testCurrentTime"));
-
suite.addTest(TestConfiguration.clientServerSuite(TimeHandlingTest.class));
return new CleanDatabaseTestSetup(suite) {
@@ -149,13 +144,11 @@
* The returned values are fetched using checkTimeValue thus inheriting
* all the checks within that method.
* <BR>
- * Once DERBY-889 is fixed this test should be renamed so that it
- * loses the prefix derby889 (and the specific adding of this test
- * in the suite() method removed.
+ *
* @throws SQLException
* @throws UnsupportedEncodingException
*/
- public void derby889testInertTime() throws SQLException, UnsupportedEncodingException
+ public void testInertTime() throws SQLException, UnsupportedEncodingException
{
getConnection().setAutoCommit(false);
// Insert a set of time values,
@@ -252,13 +245,11 @@
* is correctly between the start time of the statement
* execution and the first fetch or completion.
* <BR>
- * Once DERBY-889 is fixed this test should be renamed so that it
- * loses the prefix derby889 (and the specific adding of this test
- * in the suite() method removed.
+ *
* @throws SQLException
* @throws InterruptedException
*/
- public void derby889testCurrentTime() throws SQLException, InterruptedException
+ public void testCurrentTime() throws SQLException, InterruptedException
{
currentFunctionTests(Types.TIME, CURRENT_TIME_FUNCTIONS);
}