[
https://issues.apache.org/jira/browse/DERBY-1585?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Daniel John Debrunner updated DERBY-1585:
-----------------------------------------
Attachment: derby1585_diff.txt
Patch that closes dynamic result sets in the CallStatementResultSet.close(),
thus encapsulating the logic rather than putting CALL specific code in the
general trigger path. Code will also work for any other situations where a CALL
statement will be executed and the dynamic results inaccessible (ie. potential
future changes).
CallStatementResultSet.close() ensures all dynamic ResultSets for the current
connection are closed and thus mimics the logic when dynamic results sets are
processed in EmbedStatement (through code sharing).
Patch does close result sets in ProcedureInTrigger test that were not closed
before, so I assume it will fix the bug, but I haven't be able to make the test
fail without the change.
Will run tests on the patch before any commit
> derbylang/procedureInTrigger: not able to create trigger due to an open
> ResultSet
> ---------------------------------------------------------------------------------
>
> Key: DERBY-1585
> URL: https://issues.apache.org/jira/browse/DERBY-1585
> Project: Derby
> Issue Type: Bug
> Components: SQL
> Affects Versions: 10.2.1.6
> Environment: ------------------ Java Information ------------------
> Java Version: 1.6.0-rc
> Java Vendor: Sun Microsystems Inc.
> Java home: /usr/local/java/jdk1.6.0_b91/jre
> Java classpath:
> test/junit.jar:test/dbprocedures.jar:test/jmxremote.jar:test/javadbtests.jar:
> test/Dots.jar:test/mail.jar:test/activation.jar:test/Perfmon.jar:
> test/jakarta-oro-2.0.8.jar:test/commons-logging.jar:test/jagops.jar:
> test/jdmkrt.jar:test/db2jcc_license_c.jar:test/jet.jar:test/jetbatch.jar:
> test/db2jcc.jar:test/jag.jar:test/jagclient.jar:test/jagutils.jar:test/GenCfg.jar:
>
> test/jmxremote_optional.jar:test/jmx.jar:test/hadbjdbc4.jar:derbyTesting.jar:
> derby.jar:derbyLocale_zh_TW.jar:derbytools.jar:derbyLocale_ko_KR.jar:
> derbyLocale_zh_CN.jar:derbyLocale_es.jar:derbyLocale_de_DE.jar:derbyLocale_ja_JP.jar:
>
> derbynet.jar:derbyLocale_pt_BR.jar:derbyclient.jar:derbyLocale_fr.jar:derbyrun.jar:
> derbyLocale_it.jar:
> OS name: Linux
> OS architecture: i386
> OS version: 2.6.9-34.ELsmp
> java.specification.name: Java Platform API Specification
> java.specification.version: 1.6
> --------- Derby Information --------
> JRE - JDBC: Java SE 6 - JDBC 4.0
> [/export/home/tmp/jagtmp/autoderbyN_regression/install/lib/derby.jar]
> 10.2.0.4 alpha - (423199)
> [/export/home/tmp/jagtmp/autoderbyN_regression/install/lib/derbytools.jar]
> 10.2.0.4 alpha - (423199)
> [/export/home/tmp/jagtmp/autoderbyN_regression/install/lib/derbynet.jar]
> 10.2.0.4 alpha - (423199)
> [/export/home/tmp/jagtmp/autoderbyN_regression/install/lib/derbyclient.jar]
> 10.2.0.4 alpha - (423199)
> [/export/home/tmp/jagtmp/autoderbyN_regression/install/lib/test/db2jcc_license_c.jar]
> 2.4 - (17)
> [/export/home/tmp/jagtmp/autoderbyN_regression/install/lib/test/db2jcc.jar]
> 2.4 - (17)
> ------------------------------------------------------
> ----------------- Locale Information -----------------
> Current Locale : [English/United States [en_US]]
> Found support for locale: [de_DE]
> version: 10.2.0.4 alpha - (423199)
> Found support for locale: [es]
> version: 10.2.0.4 alpha - (423199)
> Found support for locale: [fr]
> version: 10.2.0.4 alpha - (423199)
> Found support for locale: [it]
> version: 10.2.0.4 alpha - (423199)
> Found support for locale: [ja_JP]
> version: 10.2.0.4 alpha - (423199)
> Found support for locale: [ko_KR]
> version: 10.2.0.4 alpha - (423199)
> Found support for locale: [pt_BR]
> version: 10.2.0.4 alpha - (423199)
> Found support for locale: [zh_CN]
> version: 10.2.0.4 alpha - (423199)
> Found support for locale: [zh_TW]
> version: 10.2.0.4 alpha - (423199)
> ------------------------------------------------------
> Reporter: Henri van de Scheur
> Assignee: Daniel John Debrunner
> Attachments: close.diff, derby1585_diff.txt, derby1585_v1.diff,
> derby1585_v1.status
>
>
> ********* Diff file derbyall/derbylang/procedureInTrigger.diff
> *** Start: procedureInTrigger jdk1.6.0-rc derbyall:derbylang 2006-07-19
> 13:52:20 ***
> 714a715,730
> > ERROR X0X95: Operation 'CREATE TRIGGER' cannot be performed on object 'T1'
> > because there is an open ResultSet dependent on that object.
> > ij> --- delete a row. check that trigger is fired - procedure should be
> > called once
> > delete from t1 where i=10;
> > 1 row inserted/updated/deleted
> > ij> --- check delete is successful
> > select * from t1;
> > I |B
> > ---------------------------
> > 5 |two
> > 6 |four
> > 8 |eight
> > ij> drop trigger select_from_trig_table;
> > ERROR 42X94: TRIGGER 'SELECT_FROM_TRIG_TABLE' does not exist.
> > ij> --- use procedures which alter/drop trigger table and some other table
> > create trigger alter_table_trig AFTER delete on t1
> > for each STATEMENT mode db2sql call alter_table_proc();
> 716,732d731
> < ij> --- delete a row. check that trigger is fired - procedure should be
> called once
> < delete from t1 where i=10;
> < selectRows - 1 arg - 1 rs
> < 1 row inserted/updated/deleted
> < ij> --- check delete is successful
> < select * from t1;
> < I |B
> < ---------------------------
> < 5 |two
> < 6 |four
> < 8 |eight
> < ij> drop trigger select_from_trig_table;
> < 0 rows inserted/updated/deleted
> < ij> --- use procedures which alter/drop trigger table and some other table
> < create trigger alter_table_trig AFTER delete on t1
> < for each STATEMENT mode db2sql call alter_table_proc();
> < 0 rows inserted/updated/deleted
> Test Failed.
> *** End: procedureInTrigger jdk1.6.0-rc derbyall:derbylang 2006-07-19
> 13:52:34 ***
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.