[ http://issues.apache.org/jira/browse/DERBY-2202?page=all ]
Yip Ng updated DERBY-2202:
--------------------------
Attachment: derby2202-trunk-stat01.txt
derby2202-trunk-diff01.txt
Attaching patch derby2202-trunk-diff01.txt and additional testcases for
DERBY-2202.
The symptom of this jira is the same as those described in DERBY-1304 for DROP
VIEW except that it applies to DROP PROCEDURE, DROP FUNCTION and DROP SYNONYM
statements. (Their bind logic are centralized in DropAliasNode.) The
DropAliasNode's bindStatement() should have created a dependency on the
statement, so when its associated alias descriptor gets dropped, the statement
can be invalidated accordingly. This explains why subsequent DROP PROCEDURE
statement fails.
derbyall and junit suite passes successfully. Appreciate if someone can review
this patch. Thanks.
> DROP PROCEDURE depends on SET SCHEMA
> ------------------------------------
>
> Key: DERBY-2202
> URL: http://issues.apache.org/jira/browse/DERBY-2202
> Project: Derby
> Issue Type: Bug
> Components: SQL
> Affects Versions: 10.2.2.0
> Environment: Sun Solaris;
> java version "1.4.1_06"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_06-b01)
> Java HotSpot(TM) Client VM (build 1.4.1_06-b01, mixed mode)
> Reporter: Bernhard Bodenstorfer
> Assigned To: Yip Ng
> Priority: Minor
> Attachments: 2202_repro.sql, derby2202-trunk-diff01.txt,
> derby2202-trunk-stat01.txt
>
>
> This is possibly related to Bug
> https://issues.apache.org/jira/browse/DERBY-1304.
> Use ij to execute the following statements:
> CREATE SCHEMA datamgmt;
> CREATE PROCEDURE datamgmt.exit ( IN value INTEGER )
> MODIFIES SQL DATA
> PARAMETER STYLE JAVA
> LANGUAGE JAVA
> EXTERNAL NAME 'java.lang.System.exit'
> ;
> DROP PROCEDURE datamgmt.exit;
> DROP SCHEMA datamgmt RESTRICT;
> Then execute exactly the same lines once again. Then statement "DROP
> PROCEDURE datamgmt.exit" yields:
> ERROR 42X94: PROCEDURE 'EXIT' does not exist.
> However, if the DROP works if a default schema (SET SCHEMA) is used instead
> of the prefixed schemaName. That is, the following lines can be executed more
> than once in a row:
> CREATE SCHEMA datamgmt;
> CREATE PROCEDURE datamgmt.exit ( IN value INTEGER )
> MODIFIES SQL DATA
> PARAMETER STYLE JAVA
> LANGUAGE JAVA
> EXTERNAL NAME 'java.lang.System.exit'
> ;
> SET SCHEMA datamgmt;
> DROP PROCEDURE exit;
> DROP SCHEMA datamgmt RESTRICT;
> Therefore, SET SCHEMA can be used as a workaround, hence minor importance.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira