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 2006/01/30 20:09:02 UTC

svn commit: r373569 - in /db/derby/code/trunk/java: engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java testing/org/apache/derbyTesting/functionTests/master/functions.out testing/org/apache/derbyTesting/functionTests/tests/lang/functions.sql

Author: djd
Date: Mon Jan 30 11:08:54 2006
New Revision: 373569

URL: http://svn.apache.org/viewcvs?rev=373569&view=rev
Log:
DERBY-475 Switch the new maths functions to use java.lang.StrictMath to ensure
consistent results across Java Virtual Machines. Added a natual log function
LOG which is identical to LN() but will aid DERBY-592, adding a match for 
the escaped function {fn log(value)}

Modified:
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/functions.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/functions.sql

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java?rev=373569&r1=373568&r2=373569&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java Mon Jan 30 11:08:54 2006
@@ -201,19 +201,20 @@
 	*
 	*/
 	private static final String[][] SYSFUN_FUNCTIONS = {
-			{"ACOS", "DOUBLE", "java.lang.Math", "acos(double)", "DOUBLE"},
-			{"ASIN", "DOUBLE", "java.lang.Math", "asin(double)", "DOUBLE"},
-			{"ATAN", "DOUBLE", "java.lang.Math", "atan(double)", "DOUBLE"},
-			{"COS", "DOUBLE", "java.lang.Math", "cos(double)", "DOUBLE"},
-			{"SIN", "DOUBLE", "java.lang.Math", "sin(double)", "DOUBLE"},
-			{"TAN", "DOUBLE", "java.lang.Math", "tan(double)", "DOUBLE"},
-			{"DEGREES", "DOUBLE", "java.lang.Math", "toDegrees(double)", "DOUBLE"},
-			{"RADIANS", "DOUBLE", "java.lang.Math", "toRadians(double)", "DOUBLE"},
-			{"LN", "DOUBLE", "java.lang.Math", "log(double)", "DOUBLE"},
-			{"EXP", "DOUBLE", "java.lang.Math", "exp(double)", "DOUBLE"},
-			{"CEIL", "DOUBLE", "java.lang.Math", "ceil(double)", "DOUBLE"},
-			{"CEILING", "DOUBLE", "java.lang.Math", "ceil(double)", "DOUBLE"},
-			{"FLOOR", "DOUBLE", "java.lang.Math", "floor(double)", "DOUBLE"},			
+			{"ACOS", "DOUBLE", "java.lang.StrictMath", "acos(double)", "DOUBLE"},
+			{"ASIN", "DOUBLE", "java.lang.StrictMath", "asin(double)", "DOUBLE"},
+			{"ATAN", "DOUBLE", "java.lang.StrictMath", "atan(double)", "DOUBLE"},
+			{"COS", "DOUBLE", "java.lang.StrictMath", "cos(double)", "DOUBLE"},
+			{"SIN", "DOUBLE", "java.lang.StrictMath", "sin(double)", "DOUBLE"},
+			{"TAN", "DOUBLE", "java.lang.StrictMath", "tan(double)", "DOUBLE"},
+			{"DEGREES", "DOUBLE", "java.lang.StrictMath", "toDegrees(double)", "DOUBLE"},
+			{"RADIANS", "DOUBLE", "java.lang.StrictMath", "toRadians(double)", "DOUBLE"},
+			{"LN", "DOUBLE", "java.lang.StrictMath", "log(double)", "DOUBLE"},
+			{"LOG", "DOUBLE", "java.lang.StrictMath", "log(double)", "DOUBLE"}, // Same as LN
+			{"EXP", "DOUBLE", "java.lang.StrictMath", "exp(double)", "DOUBLE"},
+			{"CEIL", "DOUBLE", "java.lang.StrictMath", "ceil(double)", "DOUBLE"},
+			{"CEILING", "DOUBLE", "java.lang.StrictMath", "ceil(double)", "DOUBLE"}, // Same as CEIL
+			{"FLOOR", "DOUBLE", "java.lang.StrictMath", "floor(double)", "DOUBLE"},			
 	};
 	
 	/**

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/functions.out
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/functions.out?rev=373569&r1=373568&r2=373569&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/functions.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/functions.out Mon Jan 30 11:08:54 2006
@@ -631,12 +631,14 @@
 NULL     
 0.011    
 0.023    
-ij> select cast (LN(d) as DECIMAL(6,3)) AS LN FROM SYSFUN_MATH_TEST;
-LN       
----------
-NULL     
--0.400   
-0.292    
+ij> select cast (LN(d) as DECIMAL(6,3)) AS LN,
+       cast (LOG(d) as DECIMAL(6,3)) AS LOG
+                       FROM SYSFUN_MATH_TEST;
+LN       |LOG      
+-------------------
+NULL     |NULL     
+-0.400   |-0.400   
+0.292    |0.292    
 ij> select cast (EXP(d) as DECIMAL(6,3)) AS EXP FROM SYSFUN_MATH_TEST;
 EXP      
 ---------

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/functions.sql
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/functions.sql?rev=373569&r1=373568&r2=373569&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/functions.sql (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/functions.sql Mon Jan 30 11:08:54 2006
@@ -285,7 +285,9 @@
 select cast (DEGREES(d) as DECIMAL(6,3)) AS DEGREES FROM SYSFUN_MATH_TEST;
 select cast (RADIANS(d) as DECIMAL(6,3)) AS RADIANS FROM SYSFUN_MATH_TEST;
 
-select cast (LN(d) as DECIMAL(6,3)) AS LN FROM SYSFUN_MATH_TEST;
+select cast (LN(d) as DECIMAL(6,3)) AS LN,
+       cast (LOG(d) as DECIMAL(6,3)) AS LOG
+                       FROM SYSFUN_MATH_TEST;
 select cast (EXP(d) as DECIMAL(6,3)) AS EXP FROM SYSFUN_MATH_TEST;
 
 select cast (CEIL(d) as DECIMAL(6,3)) AS CEIL FROM SYSFUN_MATH_TEST;