You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Rick Hillegas (JIRA)" <ji...@apache.org> on 2012/12/05 18:47:59 UTC

[jira] [Updated] (DERBY-3069) Derby does not resolve functions bound to methods with varargs.

     [ https://issues.apache.org/jira/browse/DERBY-3069?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rick Hillegas updated DERBY-3069:
---------------------------------

    Attachment: derby-3069-03-aa-varargsSyntax.diff

Attaching derby-3069-03-aa-varargsSyntax.diff. This patch adds DDL support for vararg routines. I am running regression tests now.

This patch adds support for declaring vararg functions and procedures. Syntax like the following is supported:

  create procedure varargsderbystyle ( a int ... )
  language java parameter style derby no sql external name 'Foo.foo' ;

  create function varargsderbystyle ( a int ... ) returns integer
  language java parameter style derby no sql external name 'Foo.foo' ;

  create function varargstablefunction ( a int ... )
  returns table ( b int )
  language java parameter style derby_jdbc_result_set no sql external name 'Foo.foo' ;

Invocations of these routines aren't bound to actual varargs methods yet. That will happen in a follow-on patch.



Touches the following files:

-------------

M       java/engine/org/apache/derby/catalog/types/RoutineAliasInfo.java

Metadata changes to support vararg routines and the new DERBY parameter style.

-------------

M       java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java

Data dictionary changes to declare existing functions/procedures as non-vararg routines.

-------------


M       java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj
M       java/engine/org/apache/derby/impl/sql/compile/CreateAliasNode.java

Parse- and bind-time support for declaring vararg routines.

-------------

M       java/engine/org/apache/derby/loc/messages.xml
M       java/shared/org/apache/derby/shared/common/reference/SQLState.java

New error messages.

-------------

M       java/testing/org/apache/derbyTesting/functionTests/tests/lang/_Suite.java
A       java/testing/org/apache/derbyTesting/functionTests/tests/lang/VarargsTest.java

Syntax tests for declaring vararg routines.

-------------

M       java/testing/org/apache/derbyTesting/functionTests/tests/tools/dblook_makeDB.sql
M       java/testing/org/apache/derbyTesting/functionTests/master/dblook_test.out

Test to verify that dblook turns out the correct DDL for vararg routines.

-------------

M       java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/Changes10_10.java

Upgrade tests.

                
> Derby does not resolve functions bound to methods with varargs.
> ---------------------------------------------------------------
>
>                 Key: DERBY-3069
>                 URL: https://issues.apache.org/jira/browse/DERBY-3069
>             Project: Derby
>          Issue Type: Improvement
>          Components: SQL
>    Affects Versions: 10.0.2.0, 10.0.2.1, 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: Rick Hillegas
>              Labels: derby_triage10_10
>         Attachments: derby-3069-01-varargs-aa.diff, derby-3069-01-varargs-ab.diff, derby-3069-02-backout.diff, derby-3069-03-aa-varargsSyntax.diff, Varargs.html, z.java, z.sql
>
>
> Varargs were added in Java 5. It would be nice if Derby let you invoke a function bound to a method with a variable length argument list. The Reference Guide states a small number of restrictions for methods which can be invoked as Derby functions: They must be public, static, and not have arguments which are long datatypes. I see no reason that Derby shouldn't be able to resolve and invoke functions which are bound to methods which don't suffer these limitations but which have variable argument lists.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira