Issue Details (XML | Word | Printable)

Key: DERBY-3631
Type: Bug Bug
Status: Resolved Resolved
Resolution: Duplicate
Priority: Major Major
Assignee: Unassigned
Reporter: Donald Munro
Votes: 0
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
Derby

UDF used with aggregate arguments results in error 30000

Created: 18/Apr/08 09:52 AM   Updated: 04/May/09 06:21 PM
Return to search
Component/s: SQL
Affects Version/s: 10.3.2.1
Fix Version/s: 10.3.3.0, 10.4.1.3, 10.5.1.1

Time Tracking:
Not Specified

Environment: Linux, Derby-10.3.2.1
Issue Links:
Duplicate
 

Urgency: Normal
Resolution Date: 19/Nov/08 05:31 PM


 Description  « Hide
UDF used with aggregate arguments results in error 30000: The SELECT list of a grouped query contains at least one invalid expression.
CREATE FUNCTION MAXOF2(ONE DOUBLE, TWO DOUBLE) RETURNS DOUBLE
PARAMETER STYLE JAVA NO SQL LANGUAGE JAVA
EXTERNAL NAME 'java.lang.Math.max'

CREATE TABLE Test( GroupCol INT, Value1 INT, Value2 INT )
INSERT INTO Test VALUES (1, 1, 5)
INSERT INTO Test VALUES (2, -7, 2)
INSERT INTO Test VALUES (2, 1, -5)

Using a built in function works:
SELECT GroupCol, MOD(SUM(Value1), SUM(Value2)) AS ModOf2 FROM Test GROUP BY GroupCol

But using the UDF does not:
Both
SELECT GroupCol, MAXOF2(CAST(SUM(Value1) AS DOUBLE), CAST(SUM(Value2) AS DOUBLE)) AS MaxOf2 FROM Test GROUP BY GroupCol

and

SELECT GroupCol, MAXOF2(SUM(Value1), SUM(Value2)) AS MaxOf2 FROM Test GROUP BY GroupCol
fail



 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Repository Revision Date User Message
ASF #719015 Wed Nov 19 17:30:58 UTC 2008 kmarsden DERBY-3631 UDF used with aggregate arguments results in error 30000

Add test case. Actual issue fixed with DERBY-3649
Files Changed
MODIFY /db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/GroupByTest.java