[
https://issues.apache.org/jira/browse/DERBY-3119?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dag H. Wanvik updated DERBY-3119:
---------------------------------
Fix Version/s: 10.3.1.5
> Derby does not resolve functions to methods with Integer return type.
> ---------------------------------------------------------------------
>
> Key: DERBY-3119
> URL: https://issues.apache.org/jira/browse/DERBY-3119
> Project: Derby
> Issue Type: Bug
> Components: SQL
> Affects Versions: 10.1.1.0, 10.1.2.1, 10.1.3.1, 10.2.1.6, 10.2.2.0,
> 10.3.1.4
> Reporter: Rick Hillegas
> Assignee: James F. Adams
> Fix For: 10.3.1.5, 10.4.0.0
>
> Attachments: DERBY-3119-10_3.diff, derby-3119-1_diff.txt
>
>
> Derby can bind a function invocation to a method which returns int but not to
> a method which returns Integer. I think that both of these resolutions should
> succeed given the rules in the SQL Standard, part 13, section 8.6, syntax
> rule 5, case a, item ii. Here is some code which shows this problem. First a
> class to declare the methods:
> public class zz
> {
> public static int returnsInt()
> {
> return 1;
> }
>
> public static Integer returnsInteger()
> {
> return new Integer( 2 );
> }
>
> }
> The following ij script shows that the int-returning method is resolved but
> not the Integer-returning method:
> ij version 10.4
> ij> connect 'jdbc:derby:derby10.4;create=true';
> WARNING 01J01: Database 'derby10.4' not created, connection made to existing
> database instead.
> ij> drop function returnsInt;
> 0 rows inserted/updated/deleted
> ij> drop function returnsInteger;
> 0 rows inserted/updated/deleted
> ij> create function returnsInt()
> returns int
> language java
> parameter style java
> no sql
> external name 'zz.returnsInt'
> ;
> 0 rows inserted/updated/deleted
> ij> create function returnsInteger()
> returns int
> language java
> parameter style java
> no sql
> external name 'zz.returnsInteger'
> ;
> 0 rows inserted/updated/deleted
> ij> values ( returnsInt() );
> 1
> -----------
> 1
> 1 row selected
> ij> values ( returnsInteger() );
> ERROR 42X50: No method was found that matched the method call int
> zz.returnsInteger(), tried all combinations of object and primitive types and
> any possible type conversion for any parameters the method call may have.
> The method might exist but it is not public and/or static, or the parameter
> types are not method invocation convertible.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.