|
|
Choosing A Webhost: |
[jira] Created: (DERBY-6) Trigger of the form: create trigger ... values my: msg#00288apache.db.derby.devel
Message: A new issue has been created in JIRA. --------------------------------------------------------------------- View the issue: http://issues.apache.org/jira/browse/DERBY-6 Here is an overview of the issue: --------------------------------------------------------------------- Key: DERBY-6 Summary: Trigger of the form: create trigger ... values myFunction(); has no effect. Type: Bug Status: Unassigned Priority: Minor Project: Derby Components: SQL Fix Fors: 10.0.2.0 Versions: 10.0.2.0 Assignee: Reporter: Tulika Agrawal Created: Mon, 27 Sep 2004 5:37 PM Updated: Mon, 27 Sep 2004 5:37 PM Description: Reporting for Jack Klebanoff, filed on derby-dev list. > Jack Klebanoff wrote: > > | I would like to submit a fix for a bug in triggers. > | > | The bug is that a trigger of the form: > | create trigger ... values myFunction(); > | has no effect. MyFunction is not called even if the trigger is fired. > | Side effects of myFunction do not happen. Derby does not allow a "CALL" > | statement inside a trigger action so a values statement is the only way > | to call a function/procedure in a trigger action. > | > | The cause of the bug is that since the values are not actually used by > | the trigger, the trigger code does not fetch the row(s) returned by the > | trigger action. The fix is simple: change class > | org.apache.derby.impl.sql.execute.GenericTriggerExecutor to fetch (and > | discard) the rows returned by a trigger action. > | > | Please review the change. The diff file is attached. > > > I think you need to close the ResultSet (rs). Other locations in the > code where a ResultSet is processed terminate with an rs.close(). Eg. > see DeleteCascadeResultSet, ConstraintConstantAction. > > Dan. > I changed the code to close the ResultSet. The diff file is attached. Jack Index: java/engine/org/apache/derby/impl/sql/execute/GenericTriggerExecutor.java =================================================================== --- java/engine/org/apache/derby/impl/sql/execute/GenericTriggerExecutor.java (revision 37092) +++ java/engine/org/apache/derby/impl/sql/execute/GenericTriggerExecutor.java (working copy) @@ -157,7 +157,18 @@ */ try { - ps.execute(spsActivation, false, false, false); + ResultSet rs = ps.execute(spsActivation, false, false, false); + if( rs.returnsRows()) + { + // Fetch all the data to ensure that functions in the select list or values statement will + // be evaluated and side effects will happen. Why else would the trigger action return + // rows, but for side effects? + // The result set was opened in ps.execute() + while( rs.getNextRow() != null) + { + } + } + rs.close(); } catch (StandardException e) { --------------------------------------------------------------------- JIRA INFORMATION: 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 If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | [jira] Created: (DERBY-5) Network Server Protocol error when select fails and "order by" is specified, derby-dev-PvNy6fhA98DNLxjTenLetw |
|---|---|
| Next by Date: | [jira] Created: (DERBY-7) Bug in NULLIF Function, derby-dev-PvNy6fhA98DNLxjTenLetw |
| Previous by Thread: | [jira] Created: (DERBY-5) Network Server Protocol error when select fails and "order by" is specified, derby-dev-PvNy6fhA98DNLxjTenLetw |
| Next by Thread: | [jira] Created: (DERBY-7) Bug in NULLIF Function, derby-dev-PvNy6fhA98DNLxjTenLetw |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
Free MagazinesCisco NewsReceive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business. subscribe Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field. subscribe The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business. subscribe Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company. subscribe Total Telecom Total Telecom is "The Economist of the communications industry". subscribe |