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 dj...@apache.org on 2007/04/04 18:13:44 UTC

svn commit: r525549 - in /db/derby/code/trunk/java/engine/org/apache/derby: iapi/types/SQLTimestamp.java impl/sql/compile/TernaryOperatorNode.java

Author: djd
Date: Wed Apr  4 09:13:43 2007
New Revision: 525549

URL: http://svn.apache.org/viewvc?view=rev&rev=525549
Log:
DERBY-2386 Change {fn timestampdiff} to return a BIGINT.
Contributed by Mayuresh Nirhali Mayuresh.Nirhali@Sun.COM

Modified:
    db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/SQLTimestamp.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/TernaryOperatorNode.java

Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/SQLTimestamp.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/SQLTimestamp.java?view=diff&rev=525549&r1=525548&r2=525549
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/SQLTimestamp.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/SQLTimestamp.java Wed Apr  4 09:13:43 2007
@@ -1170,7 +1170,7 @@
         throws StandardException
     {
         if( resultHolder == null)
-            resultHolder = new SQLInteger();
+            resultHolder = new SQLLongint();
  
        if( isNull() || time1.isNull())
         {
@@ -1206,8 +1206,6 @@
         switch( intervalType)
         {
         case FRAC_SECOND_INTERVAL:
-            if( secondsDiff > Integer.MAX_VALUE/ONE_BILLION || secondsDiff < Integer.MIN_VALUE/ONE_BILLION)
-                throw StandardException.newException(SQLState.LANG_OUTSIDE_RANGE_FOR_DATATYPE, "INTEGER");
             ldiff = secondsDiff*ONE_BILLION + nanosDiff;
             break;
             
@@ -1308,9 +1306,7 @@
                                                   ReuseFactory.getInteger( intervalType),
                                                   "TIMESTAMPDIFF");
         }
-		if (ldiff > Integer.MAX_VALUE || ldiff < Integer.MIN_VALUE)
-			throw StandardException.newException(SQLState.LANG_OUTSIDE_RANGE_FOR_DATATYPE, "INTEGER");
-        resultHolder.setValue( (int) ldiff);
+        resultHolder.setValue(ldiff);
         return resultHolder;
     } // end of timestampDiff
 

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/TernaryOperatorNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/TernaryOperatorNode.java?view=diff&rev=525549&r1=525548&r2=525549
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/TernaryOperatorNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/TernaryOperatorNode.java Wed Apr  4 09:13:43 2007
@@ -823,7 +823,7 @@
 	{
         bindDateTimeArg( rightOperand, 2);
         bindDateTimeArg( receiver, 3);
-        setType(DataTypeDescriptor.getBuiltInDataTypeDescriptor( Types.INTEGER));
+        setType(DataTypeDescriptor.getBuiltInDataTypeDescriptor( Types.BIGINT));
         return this;
     } // End of timestampDiffBind