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/02/02 20:35:02 UTC
svn commit: r374471 - in /db/derby/code/trunk/java:
engine/org/apache/derby/catalog/ engine/org/apache/derby/impl/jdbc/
engine/org/apache/derby/impl/sql/catalog/
engine/org/apache/derby/impl/sql/compile/
testing/org/apache/derbyTesting/functionTests/ma...
Author: djd
Date: Thu Feb 2 11:34:54 2006
New Revision: 374471
URL: http://svn.apache.org/viewcvs?rev=374471&view=rev
Log:
DERBY-475 DEBRY-592 Expand the builtin function table to handle zero parameter
functions and add the functions PI and LOG10 as builting and JDBC escaped functions.
Modified:
db/derby/code/trunk/java/engine/org/apache/derby/catalog/SystemProcedures.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedDatabaseMetaData.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/metadata.out
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/odbc_metadata.out
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/jdk14/metadata.out
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/metadata.out
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/odbc_metadata.out
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/functions.out
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/metadata.out
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/odbc_metadata.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/catalog/SystemProcedures.java
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/engine/org/apache/derby/catalog/SystemProcedures.java?rev=374471&r1=374470&r2=374471&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/catalog/SystemProcedures.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/catalog/SystemProcedures.java Thu Feb 2 11:34:54 2006
@@ -54,6 +54,10 @@
These procedures are built-in to the SYSIBM schema which match the DB2 SYSIBM procedures.
Currently information on those can be found at url:
ftp://ftp.software.ibm.com/ps/products/db2/info/vr8/pdf/letter/db2l2e80.pdf
+
+ <P>
+ Also used for builtin-routines, such as SYSFUN functions, when direct calls
+ into Java libraries cannot be made.
*/
public class SystemProcedures {
@@ -1176,4 +1180,33 @@
ps.close();
}
+ /**
+ * Method to return the constant PI.
+ * SYSFUN.PI().
+ * @return PI
+ */
+ public static double PI()
+ {
+ return StrictMath.PI;
+ }
+
+ /**
+ * Constant for natural log(10).
+ */
+ private static final double LOG10 = StrictMath.log(10.0d);
+
+ /**
+ * Base 10 log function. SYSFUN.LOG10
+ * Calculated by
+ * <code>
+ * log(value) / log(10)
+ * </code>
+ * where log is the natural log.
+ * @param value
+ * @return
+ */
+ public static double LOG10(double value)
+ {
+ return StrictMath.log(value) / LOG10;
+ }
}
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedDatabaseMetaData.java
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedDatabaseMetaData.java?rev=374471&r1=374470&r2=374471&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedDatabaseMetaData.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedDatabaseMetaData.java Thu Feb 2 11:34:54 2006
@@ -426,7 +426,7 @@
* @return the list
*/
public String getNumericFunctions() {
- return "ABS,ACOS,ASIN,ATAN,CEILING,COS,DEGREES,EXP,FLOOR,LOG,MOD,RADIANS,SIN,SQRT,TAN";
+ return "ABS,ACOS,ASIN,ATAN,CEILING,COS,DEGREES,EXP,FLOOR,LOG,LOG10,MOD,PI,RADIANS,SIN,SQRT,TAN";
}
/**
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=374471&r1=374470&r2=374471&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 Thu Feb 2 11:34:54 2006
@@ -190,14 +190,32 @@
/**
* SYSFUN functions. Table of functions that automatically appear
- * in the SYSFUN schema. This simple table assumes a single parameter
+ * in the SYSFUN schema. These functions are resolved to directly
+ * if no schema name is given, e.g.
+ *
+ * <code>
+ * SELECT COS(angle) FROM ROOM_WALLS
+ * </code>
+ *
+ * Adding a function here is suitable when the function defintion
+ * can have a single return type and fixed parameter types.
+ *
+ * Functions that need to have a return type based upon the
+ * input type(s) are not supported here. Typically those are
+ * added into the parser and methods added into the DataValueDescriptor interface.
+ * Examples are character based functions whose return type
+ * length is based upon the passed in type, e.g. passed a CHAR(10)
+ * returns a CHAR(10).
+ *
+ *
+ * This simple table assumes zero or a single parameter
* and RETURNS NULL ON NULL INPUT. The scheme could be expanded
* to handle other function options such as other parameters if needed.
*[0] = FUNCTION name
*[1] = RETURNS type
*[2] = Java class
*[3] = method name and signature
- *[4] = parameter type (single parameter)
+ *[4] = parameter type (single parameter) or null for no parameters.
*
*/
private static final String[][] SYSFUN_FUNCTIONS = {
@@ -207,10 +225,12 @@
{"COS", "DOUBLE", "java.lang.StrictMath", "cos(double)", "DOUBLE"},
{"SIN", "DOUBLE", "java.lang.StrictMath", "sin(double)", "DOUBLE"},
{"TAN", "DOUBLE", "java.lang.StrictMath", "tan(double)", "DOUBLE"},
+ {"PI", "DOUBLE", "org.apache.derby.catalog.SystemProcedures", "PI()", null},
{"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
+ {"LOG10", "DOUBLE", "org.apache.derby.catalog.SystemProcedures", "LOG10(double)", "DOUBLE"},
{"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
@@ -5714,15 +5734,34 @@
TypeDescriptor rt =
DataTypeDescriptor.getBuiltInDataTypeDescriptor(details[1]);
- // details[4] - single argument type
- TypeDescriptor[] pt = new TypeDescriptor[1];
- pt[0] =
- DataTypeDescriptor.getBuiltInDataTypeDescriptor(details[4]);
+ // details[4] - zero or single argument type
+ String paramType = details[4];
+ TypeDescriptor[] pt;
+ String[] paramNames;
+ int[] paramModes;
+ int paramCount;
+ if (paramType != null)
+ {
+ paramNames = DataDictionaryImpl.SYSFUN_PNAME;
+ paramCount = 1;
+ paramModes = DataDictionaryImpl.SYSFUN_PMODE;
+ pt = new TypeDescriptor[1];
+ pt[0] =
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(paramType);
+ }
+ else
+ {
+ // no parameters
+ paramNames = null;
+ pt = null;
+ paramCount = 0;
+ paramModes = null;
+ }
// details[3] = java method
RoutineAliasInfo ai = new RoutineAliasInfo(details[3],
- 1, DataDictionaryImpl.SYSFUN_PNAME,
- pt, DataDictionaryImpl.SYSFUN_PMODE, 0,
+ paramCount, paramNames,
+ pt, paramModes, 0,
RoutineAliasInfo.PS_JAVA, RoutineAliasInfo.NO_SQL,
false, rt);
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj?rev=374471&r1=374470&r2=374471&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj Thu Feb 2 11:34:54 2006
@@ -998,8 +998,8 @@
a function in the SYSFUN schema.
*/
private static final String[] ESCAPED_SYSFUN_FUNCTIONS =
- {"ACOS", "ASIN", "ATAN", "COS", "SIN", "TAN",
- "DEGREES", "RADIANS", "EXP", "LOG", "CEILING", "FLOOR" };
+ {"ACOS", "ASIN", "ATAN", "COS", "SIN", "TAN", "PI",
+ "DEGREES", "RADIANS", "EXP", "LOG", "LOG10", "CEILING", "FLOOR" };
/**
Convert a JDBC escaped function name to a function
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/metadata.out
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/metadata.out?rev=374471&r1=374470&r2=374471&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/metadata.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/metadata.out Thu Feb 2 11:34:54 2006
@@ -75,7 +75,7 @@
storesLowerCaseQuotedIdentifiers(): false
storesMixedCaseQuotedIdentifiers(): true
getIdentifierQuoteString(): "
-getNumericFunctions(): ABS,ACOS,ASIN,ATAN,CEILING,COS,DEGREES,EXP,FLOOR,LOG,MOD,RADIANS,SIN,SQRT,TAN
+getNumericFunctions(): ABS,ACOS,ASIN,ATAN,CEILING,COS,DEGREES,EXP,FLOOR,LOG,LOG10,MOD,PI,RADIANS,SIN,SQRT,TAN
getStringFunctions(): CONCAT,LENGTH,LCASE,LOCATE,LTRIM,RTRIM,SUBSTRING,UCASE
getSystemFunctions(): USER
getTimeDateFunctions(): CURDATE,CURTIME,HOUR,MINUTE,MONTH,SECOND,TIMESTAMPADD,TIMESTAMPDIFF,YEAR
@@ -467,7 +467,9 @@
Executing VALUES { fn EXP(2.3) } -- = >9.97< <<
Executing VALUES { fn FLOOR(3.22) } -- = >3.0< <<
Executing VALUES { fn LOG(34.1) } -- = >3.52< <<
+Executing VALUES { fn LOG10(18.7) } -- = >1.27< <<
Executing VALUES { fn MOD(124, 7) } -- = >5< <<
+Executing VALUES { fn PI() } -- = >3.14< <<
Executing VALUES { fn RADIANS(54) } -- = >0.94< <<
Executing VALUES { fn SIN(0.32) } -- = >0.31< <<
Executing VALUES { fn SQRT(6.22) } -- = >2.49< <<
@@ -477,10 +479,6 @@
SQLSTATE(42X01): Syntax error: Encountered "ATAN2" at line 1, column 13.
Executing VALUES { fn COT(3.4) } --
SQLSTATE(42X01): Syntax error: Encountered "COT" at line 1, column 13.
-Executing VALUES { fn LOG10(18.7) } --
-SQLSTATE(42X01): Syntax error: Encountered "LOG10" at line 1, column 13.
-Executing VALUES { fn PI() } --
-SQLSTATE(42X01): Syntax error: Encountered "PI" at line 1, column 13.
Executing VALUES { fn POWER(2, 3) } --
SQLSTATE(42X01): Syntax error: Encountered "POWER" at line 1, column 13.
Executing VALUES { fn RAND(17) } --
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/odbc_metadata.out
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/odbc_metadata.out?rev=374471&r1=374470&r2=374471&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/odbc_metadata.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/odbc_metadata.out Thu Feb 2 11:34:54 2006
@@ -105,7 +105,7 @@
storesLowerCaseQuotedIdentifiers(): false
storesMixedCaseQuotedIdentifiers(): true
getIdentifierQuoteString(): "
-getNumericFunctions(): ABS,ACOS,ASIN,ATAN,CEILING,COS,DEGREES,EXP,FLOOR,LOG,MOD,RADIANS,SIN,SQRT,TAN
+getNumericFunctions(): ABS,ACOS,ASIN,ATAN,CEILING,COS,DEGREES,EXP,FLOOR,LOG,LOG10,MOD,PI,RADIANS,SIN,SQRT,TAN
getStringFunctions(): CONCAT,LENGTH,LCASE,LOCATE,LTRIM,RTRIM,SUBSTRING,UCASE
getSystemFunctions(): USER
getTimeDateFunctions(): CURDATE,CURTIME,HOUR,MINUTE,MONTH,SECOND,TIMESTAMPADD,TIMESTAMPDIFF,YEAR
@@ -498,7 +498,9 @@
Executing VALUES { fn EXP(2.3) } -- = >9.97< <<
Executing VALUES { fn FLOOR(3.22) } -- = >3.0< <<
Executing VALUES { fn LOG(34.1) } -- = >3.52< <<
+Executing VALUES { fn LOG10(18.7) } -- = >1.27< <<
Executing VALUES { fn MOD(124, 7) } -- = >5< <<
+Executing VALUES { fn PI() } -- = >3.14< <<
Executing VALUES { fn RADIANS(54) } -- = >0.94< <<
Executing VALUES { fn SIN(0.32) } -- = >0.31< <<
Executing VALUES { fn SQRT(6.22) } -- = >2.49< <<
@@ -508,10 +510,6 @@
SQLSTATE(42X01): Syntax error: Encountered "ATAN2" at line 1, column 13.
Executing VALUES { fn COT(3.4) } --
SQLSTATE(42X01): Syntax error: Encountered "COT" at line 1, column 13.
-Executing VALUES { fn LOG10(18.7) } --
-SQLSTATE(42X01): Syntax error: Encountered "LOG10" at line 1, column 13.
-Executing VALUES { fn PI() } --
-SQLSTATE(42X01): Syntax error: Encountered "PI" at line 1, column 13.
Executing VALUES { fn POWER(2, 3) } --
SQLSTATE(42X01): Syntax error: Encountered "POWER" at line 1, column 13.
Executing VALUES { fn RAND(17) } --
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/jdk14/metadata.out
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/jdk14/metadata.out?rev=374471&r1=374470&r2=374471&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/jdk14/metadata.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/jdk14/metadata.out Thu Feb 2 11:34:54 2006
@@ -75,7 +75,7 @@
storesLowerCaseQuotedIdentifiers(): false
storesMixedCaseQuotedIdentifiers(): true
getIdentifierQuoteString(): "
-getNumericFunctions(): ABS,ACOS,ASIN,ATAN,CEILING,COS,DEGREES,EXP,FLOOR,LOG,MOD,RADIANS,SIN,SQRT,TAN
+getNumericFunctions(): ABS,ACOS,ASIN,ATAN,CEILING,COS,DEGREES,EXP,FLOOR,LOG,LOG10,MOD,PI,RADIANS,SIN,SQRT,TAN
getStringFunctions(): CONCAT,LENGTH,LCASE,LOCATE,LTRIM,RTRIM,SUBSTRING,UCASE
getSystemFunctions(): USER
getTimeDateFunctions(): CURDATE,CURTIME,HOUR,MINUTE,MONTH,SECOND,TIMESTAMPADD,TIMESTAMPDIFF,YEAR
@@ -467,7 +467,9 @@
Executing VALUES { fn EXP(2.3) } -- = >9.97< <<
Executing VALUES { fn FLOOR(3.22) } -- = >3.0< <<
Executing VALUES { fn LOG(34.1) } -- = >3.52< <<
+Executing VALUES { fn LOG10(18.7) } -- = >1.27< <<
Executing VALUES { fn MOD(124, 7) } -- = >5< <<
+Executing VALUES { fn PI() } -- = >3.14< <<
Executing VALUES { fn RADIANS(54) } -- = >0.94< <<
Executing VALUES { fn SIN(0.32) } -- = >0.31< <<
Executing VALUES { fn SQRT(6.22) } -- = >2.49< <<
@@ -477,10 +479,6 @@
SQLSTATE(42X01): Syntax error: Encountered "ATAN2" at line 1, column 13.
Executing VALUES { fn COT(3.4) } --
SQLSTATE(42X01): Syntax error: Encountered "COT" at line 1, column 13.
-Executing VALUES { fn LOG10(18.7) } --
-SQLSTATE(42X01): Syntax error: Encountered "LOG10" at line 1, column 13.
-Executing VALUES { fn PI() } --
-SQLSTATE(42X01): Syntax error: Encountered "PI" at line 1, column 13.
Executing VALUES { fn POWER(2, 3) } --
SQLSTATE(42X01): Syntax error: Encountered "POWER" at line 1, column 13.
Executing VALUES { fn RAND(17) } --
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/metadata.out
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/metadata.out?rev=374471&r1=374470&r2=374471&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/metadata.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/metadata.out Thu Feb 2 11:34:54 2006
@@ -75,7 +75,7 @@
storesLowerCaseQuotedIdentifiers(): false
storesMixedCaseQuotedIdentifiers(): true
getIdentifierQuoteString(): "
-getNumericFunctions(): ABS,ACOS,ASIN,ATAN,CEILING,COS,DEGREES,EXP,FLOOR,LOG,MOD,RADIANS,SIN,SQRT,TAN
+getNumericFunctions(): ABS,ACOS,ASIN,ATAN,CEILING,COS,DEGREES,EXP,FLOOR,LOG,LOG10,MOD,PI,RADIANS,SIN,SQRT,TAN
getStringFunctions(): CONCAT,LENGTH,LCASE,LOCATE,LTRIM,RTRIM,SUBSTRING,UCASE
getSystemFunctions(): USER
getTimeDateFunctions(): CURDATE,CURTIME,HOUR,MINUTE,MONTH,SECOND,TIMESTAMPADD,TIMESTAMPDIFF,YEAR
@@ -467,7 +467,9 @@
Executing VALUES { fn EXP(2.3) } -- = >9.97< <<
Executing VALUES { fn FLOOR(3.22) } -- = >3.0< <<
Executing VALUES { fn LOG(34.1) } -- = >3.52< <<
+Executing VALUES { fn LOG10(18.7) } -- = >1.27< <<
Executing VALUES { fn MOD(124, 7) } -- = >5< <<
+Executing VALUES { fn PI() } -- = >3.14< <<
Executing VALUES { fn RADIANS(54) } -- = >0.94< <<
Executing VALUES { fn SIN(0.32) } -- = >0.31< <<
Executing VALUES { fn SQRT(6.22) } -- = >2.49< <<
@@ -477,10 +479,6 @@
SQLSTATE(42X01): Syntax error: Encountered "ATAN2" at line 1, column 13.
Executing VALUES { fn COT(3.4) } --
SQLSTATE(42X01): Syntax error: Encountered "COT" at line 1, column 13.
-Executing VALUES { fn LOG10(18.7) } --
-SQLSTATE(42X01): Syntax error: Encountered "LOG10" at line 1, column 13.
-Executing VALUES { fn PI() } --
-SQLSTATE(42X01): Syntax error: Encountered "PI" at line 1, column 13.
Executing VALUES { fn POWER(2, 3) } --
SQLSTATE(42X01): Syntax error: Encountered "POWER" at line 1, column 13.
Executing VALUES { fn RAND(17) } --
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/odbc_metadata.out
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/odbc_metadata.out?rev=374471&r1=374470&r2=374471&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/odbc_metadata.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/odbc_metadata.out Thu Feb 2 11:34:54 2006
@@ -105,7 +105,7 @@
storesLowerCaseQuotedIdentifiers(): false
storesMixedCaseQuotedIdentifiers(): true
getIdentifierQuoteString(): "
-getNumericFunctions(): ABS,ACOS,ASIN,ATAN,CEILING,COS,DEGREES,EXP,FLOOR,LOG,MOD,RADIANS,SIN,SQRT,TAN
+getNumericFunctions(): ABS,ACOS,ASIN,ATAN,CEILING,COS,DEGREES,EXP,FLOOR,LOG,LOG10,MOD,PI,RADIANS,SIN,SQRT,TAN
getStringFunctions(): CONCAT,LENGTH,LCASE,LOCATE,LTRIM,RTRIM,SUBSTRING,UCASE
getSystemFunctions(): USER
getTimeDateFunctions(): CURDATE,CURTIME,HOUR,MINUTE,MONTH,SECOND,TIMESTAMPADD,TIMESTAMPDIFF,YEAR
@@ -498,7 +498,9 @@
Executing VALUES { fn EXP(2.3) } -- = >9.97< <<
Executing VALUES { fn FLOOR(3.22) } -- = >3.0< <<
Executing VALUES { fn LOG(34.1) } -- = >3.52< <<
+Executing VALUES { fn LOG10(18.7) } -- = >1.27< <<
Executing VALUES { fn MOD(124, 7) } -- = >5< <<
+Executing VALUES { fn PI() } -- = >3.14< <<
Executing VALUES { fn RADIANS(54) } -- = >0.94< <<
Executing VALUES { fn SIN(0.32) } -- = >0.31< <<
Executing VALUES { fn SQRT(6.22) } -- = >2.49< <<
@@ -508,10 +510,6 @@
SQLSTATE(42X01): Syntax error: Encountered "ATAN2" at line 1, column 13.
Executing VALUES { fn COT(3.4) } --
SQLSTATE(42X01): Syntax error: Encountered "COT" at line 1, column 13.
-Executing VALUES { fn LOG10(18.7) } --
-SQLSTATE(42X01): Syntax error: Encountered "LOG10" at line 1, column 13.
-Executing VALUES { fn PI() } --
-SQLSTATE(42X01): Syntax error: Encountered "PI" at line 1, column 13.
Executing VALUES { fn POWER(2, 3) } --
SQLSTATE(42X01): Syntax error: Encountered "POWER" at line 1, column 13.
Executing VALUES { fn RAND(17) } --
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=374471&r1=374470&r2=374471&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 Thu Feb 2 11:34:54 2006
@@ -583,7 +583,11 @@
1 row inserted/updated/deleted
ij> -- cast result to DECIMAL to reduce possible diffs
-- with different vms and double values.;
-select cast (ACOS(d) as DECIMAL(6,3)) AS ACOS FROM SYSFUN_MATH_TEST;
+VALUES PI();
+1
+----------------------
+3.141592653589793
+ij> select cast (ACOS(d) as DECIMAL(6,3)) AS ACOS FROM SYSFUN_MATH_TEST;
ACOS
---------
NULL
@@ -645,6 +649,12 @@
NULL
1.954
3.819
+ij> select cast (LOG10(d) as DECIMAL(6,3)) AS LOG10 FROM SYSFUN_MATH_TEST;
+LOG10
+---------
+NULL
+-0.173
+0.127
ij> select cast (CEIL(d) as DECIMAL(6,3)) AS CEIL FROM SYSFUN_MATH_TEST;
CEIL
---------
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/metadata.out
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/metadata.out?rev=374471&r1=374470&r2=374471&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/metadata.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/metadata.out Thu Feb 2 11:34:54 2006
@@ -75,7 +75,7 @@
storesLowerCaseQuotedIdentifiers(): false
storesMixedCaseQuotedIdentifiers(): true
getIdentifierQuoteString(): "
-getNumericFunctions(): ABS,ACOS,ASIN,ATAN,CEILING,COS,DEGREES,EXP,FLOOR,LOG,MOD,RADIANS,SIN,SQRT,TAN
+getNumericFunctions(): ABS,ACOS,ASIN,ATAN,CEILING,COS,DEGREES,EXP,FLOOR,LOG,LOG10,MOD,PI,RADIANS,SIN,SQRT,TAN
getStringFunctions(): CONCAT,LENGTH,LCASE,LOCATE,LTRIM,RTRIM,SUBSTRING,UCASE
getSystemFunctions(): USER
getTimeDateFunctions(): CURDATE,CURTIME,HOUR,MINUTE,MONTH,SECOND,TIMESTAMPADD,TIMESTAMPDIFF,YEAR
@@ -467,7 +467,9 @@
Executing VALUES { fn EXP(2.3) } -- = >9.97< <<
Executing VALUES { fn FLOOR(3.22) } -- = >3.0< <<
Executing VALUES { fn LOG(34.1) } -- = >3.52< <<
+Executing VALUES { fn LOG10(18.7) } -- = >1.27< <<
Executing VALUES { fn MOD(124, 7) } -- = >5< <<
+Executing VALUES { fn PI() } -- = >3.14< <<
Executing VALUES { fn RADIANS(54) } -- = >0.94< <<
Executing VALUES { fn SIN(0.32) } -- = >0.31< <<
Executing VALUES { fn SQRT(6.22) } -- = >2.49< <<
@@ -477,10 +479,6 @@
SQLSTATE(42X01): Syntax error: Encountered "ATAN2" at line 1, column 13.
Executing VALUES { fn COT(3.4) } --
SQLSTATE(42X01): Syntax error: Encountered "COT" at line 1, column 13.
-Executing VALUES { fn LOG10(18.7) } --
-SQLSTATE(42X01): Syntax error: Encountered "LOG10" at line 1, column 13.
-Executing VALUES { fn PI() } --
-SQLSTATE(42X01): Syntax error: Encountered "PI" at line 1, column 13.
Executing VALUES { fn POWER(2, 3) } --
SQLSTATE(42X01): Syntax error: Encountered "POWER" at line 1, column 13.
Executing VALUES { fn RAND(17) } --
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/odbc_metadata.out
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/odbc_metadata.out?rev=374471&r1=374470&r2=374471&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/odbc_metadata.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/odbc_metadata.out Thu Feb 2 11:34:54 2006
@@ -105,7 +105,7 @@
storesLowerCaseQuotedIdentifiers(): false
storesMixedCaseQuotedIdentifiers(): true
getIdentifierQuoteString(): "
-getNumericFunctions(): ABS,ACOS,ASIN,ATAN,CEILING,COS,DEGREES,EXP,FLOOR,LOG,MOD,RADIANS,SIN,SQRT,TAN
+getNumericFunctions(): ABS,ACOS,ASIN,ATAN,CEILING,COS,DEGREES,EXP,FLOOR,LOG,LOG10,MOD,PI,RADIANS,SIN,SQRT,TAN
getStringFunctions(): CONCAT,LENGTH,LCASE,LOCATE,LTRIM,RTRIM,SUBSTRING,UCASE
getSystemFunctions(): USER
getTimeDateFunctions(): CURDATE,CURTIME,HOUR,MINUTE,MONTH,SECOND,TIMESTAMPADD,TIMESTAMPDIFF,YEAR
@@ -498,7 +498,9 @@
Executing VALUES { fn EXP(2.3) } -- = >9.97< <<
Executing VALUES { fn FLOOR(3.22) } -- = >3.0< <<
Executing VALUES { fn LOG(34.1) } -- = >3.52< <<
+Executing VALUES { fn LOG10(18.7) } -- = >1.27< <<
Executing VALUES { fn MOD(124, 7) } -- = >5< <<
+Executing VALUES { fn PI() } -- = >3.14< <<
Executing VALUES { fn RADIANS(54) } -- = >0.94< <<
Executing VALUES { fn SIN(0.32) } -- = >0.31< <<
Executing VALUES { fn SQRT(6.22) } -- = >2.49< <<
@@ -508,10 +510,6 @@
SQLSTATE(42X01): Syntax error: Encountered "ATAN2" at line 1, column 13.
Executing VALUES { fn COT(3.4) } --
SQLSTATE(42X01): Syntax error: Encountered "COT" at line 1, column 13.
-Executing VALUES { fn LOG10(18.7) } --
-SQLSTATE(42X01): Syntax error: Encountered "LOG10" at line 1, column 13.
-Executing VALUES { fn PI() } --
-SQLSTATE(42X01): Syntax error: Encountered "PI" at line 1, column 13.
Executing VALUES { fn POWER(2, 3) } --
SQLSTATE(42X01): Syntax error: Encountered "POWER" at line 1, column 13.
Executing VALUES { fn RAND(17) } --
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=374471&r1=374470&r2=374471&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 Thu Feb 2 11:34:54 2006
@@ -274,6 +274,8 @@
-- cast result to DECIMAL to reduce possible diffs
-- with different vms and double values.;
+VALUES PI();
+
select cast (ACOS(d) as DECIMAL(6,3)) AS ACOS FROM SYSFUN_MATH_TEST;
select cast (ASIN(d) as DECIMAL(6,3)) AS ASIN FROM SYSFUN_MATH_TEST;
select cast (ATAN(d) as DECIMAL(6,3)) AS ATAN FROM SYSFUN_MATH_TEST;
@@ -289,6 +291,8 @@
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 (LOG10(d) as DECIMAL(6,3)) AS LOG10 FROM SYSFUN_MATH_TEST;
select cast (CEIL(d) as DECIMAL(6,3)) AS CEIL FROM SYSFUN_MATH_TEST;
select cast (CEILING(d) as DECIMAL(6,3)) AS CEILING FROM SYSFUN_MATH_TEST;