db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel John Debrunner (JIRA)" <derby-...@db.apache.org>
Subject [jira] Created: (DERBY-1816) Client's ResultSet.getTime() on a SQL TIMESTAMP column loses the sub-second resolution and always has a milli-second value of zero.
Date Wed, 06 Sep 2006 13:31:22 GMT
Client's ResultSet.getTime() on a SQL TIMESTAMP column loses the sub-second resolution and
always has a milli-second value of zero.
-----------------------------------------------------------------------------------------------------------------------------------

                 Key: DERBY-1816
                 URL: http://issues.apache.org/jira/browse/DERBY-1816
             Project: Derby
          Issue Type: Bug
          Components: JDBC, Network Client
    Affects Versions: 10.1.3.1, 10.1.3.0, 10.1.2.1, 10.1.1.0, 10.2.1.0, 10.3.0.0
            Reporter: Daniel John Debrunner
            Priority: Minor


In embedded the java.sql.Time object returned from ResultSet.getTime() for a SQL TIMESTAMP
object has its millisecond value for the time portion equal to that for the java.sql.Timestamp
value.
In client the millisecond time value for such a value is always set to zero.

Note a Derby SQL TIME value has by definition resolution of only a second so its millisecond
 value is always zero,
but java.sql.Time  is not a direct mapping to the SQL Type, it's a JDBC type, so when converting
from a SQL TIMESTAMP
it should retain the precision.

The new test lang.TimeHandlingTest has this assert code that shows the problem, one of its
calls will be commented out
with a comment with this bug number.

    private void assertTimeEqual(Time tv, Timestamp tsv)
    {
        cal.clear();
        cal.setTime(tv);
                
        int hour = cal.get(Calendar.HOUR_OF_DAY);
        int min = cal.get(Calendar.MINUTE);
        int sec = cal.get(Calendar.SECOND);
        int ms = cal.get(Calendar.MILLISECOND);
                        
        // Check the time portion is set to the same as tv
        cal.clear();
        cal.setTime(tsv);
        assertEquals(hour, cal.get(Calendar.HOUR_OF_DAY));
        assertEquals(min, cal.get(Calendar.MINUTE));
        assertEquals(sec, cal.get(Calendar.SECOND));
        assertEquals(ms, cal.get(Calendar.MILLISECOND));      <<<<<<<<<<<<<
FAILS HERE
    }

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

        

Mime
View raw message