Revision: 6385
http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=6385&view=rev
Author: manningr
Date: 2011-09-02 00:25:12 +0000 (Fri, 02 Sep 2011)
Log Message:
-----------
Patch #3401315 (Derby Object tree trigger). The problem is that the type of the SYS.SYSTRIGGERS.REFERENCINGOLD and SYS.SYSTRIGGERS.REFERENCINGNEW no longer accept 1 and 0 as values for comparison. Now an actual boolean data type is used.
Modified Paths:
--------------
trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/tab/TriggerSourceTab.java
Modified: trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/tab/TriggerSourceTab.java
===================================================================
--- trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/tab/TriggerSourceTab.java 2011-08-30 21:20:19 UTC (rev 6384)
+++ trunk/sql12/plugins/derby/src/main/java/net/sourceforge/squirrel_sql/plugins/derby/tab/TriggerSourceTab.java 2011-09-02 00:25:12 UTC (rev 6385)
@@ -36,25 +36,46 @@
public class TriggerSourceTab extends BaseSourceTab
{
/** SQL that retrieves the source of a stored procedure. */
- private static String SQL = "select 'CREATE TRIGGER ' || t.TRIGGERNAME||' \n' " + " ||(select "
- + " CASE " + " WHEN t3.FIRINGTIME='B' THEN 'BEFORE' "
- + " WHEN t3.FIRINGTIME='A' THEN 'AFTER' " + " END "
- + " from SYS.SYSTRIGGERS t3 " + " where t.TRIGGERID = t3.TRIGGERID) " + " || ' ' "
- + " ||(select CASE " + " WHEN t2.EVENT='U' THEN 'UPDATE' "
- + " WHEN t2.EVENT='D' THEN 'DELETE' " + " WHEN t2.EVENT='I' THEN 'INSERT' "
- + " END " + " from SYS.SYSTRIGGERS t2 " + " where t.TRIGGERID = t2.TRIGGERID) "
- + " ||' ON ' " + " || ta.TABLENAME || ' \n'" + " ||(select " + " CASE "
- + " WHEN t4.REFERENCINGOLD = 0 THEN '' " + " WHEN t4.REFERENCINGOLD = 1 "
- + " THEN ' REFERENCING OLD AS ' || t4.OLDREFERENCINGNAME || ' \n'" + " END "
- + " from SYS.SYSTRIGGERS t4 " + " where t.TRIGGERID = t4.TRIGGERID) "
- + " ||(select " + " CASE " + " WHEN t5.REFERENCINGNEW = 0 THEN '' "
- + " WHEN t5.REFERENCINGNEW = 1 "
- + " THEN ' REFERENCING NEW AS ' || t5.NEWREFERENCINGNAME || ' \n'" + " END "
- + " from SYS.SYSTRIGGERS t5 " + " where t.TRIGGERID = t5.TRIGGERID) "
- + " ||' FOR EACH ROW MODE DB2SQL \n' " + " || t.triggerdefinition "
- + "from SYS.SYSTRIGGERS t, SYS.SYSTABLES ta, SYS.SYSSCHEMAS s " + "where t.TABLEID = ta.TABLEID "
- + "and s.SCHEMAID = t.SCHEMAID " + "and t.TRIGGERNAME = ? " + "and s.SCHEMANAME = ? ";
-
+ private static String SQL = "select 'CREATE TRIGGER ' || t.TRIGGERNAME||' \n' "
+ + " ||(select "
+ + " CASE "
+ + " WHEN t3.FIRINGTIME='B' THEN 'BEFORE' "
+ + " WHEN t3.FIRINGTIME='A' THEN 'AFTER' "
+ + " END "
+ + " from SYS.SYSTRIGGERS t3 "
+ + " where t.TRIGGERID = t3.TRIGGERID) "
+ + " || ' ' "
+ + " ||(select CASE "
+ + " WHEN t2.EVENT='U' THEN 'UPDATE' "
+ + " WHEN t2.EVENT='D' THEN 'DELETE' "
+ + " WHEN t2.EVENT='I' THEN 'INSERT' "
+ + " END "
+ + " from SYS.SYSTRIGGERS t2 "
+ + " where t.TRIGGERID = t2.TRIGGERID) "
+ + " ||' ON ' " + " || ta.TABLENAME || ' \n'"
+ + " ||(select " + " CASE "
+ + " WHEN t4.REFERENCINGOLD = false THEN '' "
+ + " WHEN t4.REFERENCINGOLD = true "
+ + " THEN ' REFERENCING OLD AS ' || t4.OLDREFERENCINGNAME || ' \n'"
+ + " END "
+ + " from SYS.SYSTRIGGERS t4 "
+ + " where t.TRIGGERID = t4.TRIGGERID) "
+ + " ||(select " + " CASE "
+ + " WHEN t5.REFERENCINGNEW = false THEN '' "
+ + " WHEN t5.REFERENCINGNEW = true "
+ + " THEN ' REFERENCING NEW AS ' || t5.NEWREFERENCINGNAME || ' \n'"
+ + " END "
+ + " from SYS.SYSTRIGGERS t5 "
+ + " where t.TRIGGERID = t5.TRIGGERID) "
+ + " ||' FOR EACH ROW MODE DB2SQL \n' "
+ + " || t.triggerdefinition "
+ + "from SYS.SYSTRIGGERS t, SYS.SYSTABLES ta, SYS.SYSSCHEMAS s "
+ + "where t.TABLEID = ta.TABLEID "
+ + "and s.SCHEMAID = t.SCHEMAID "
+ + "and t.TRIGGERNAME = ? "
+ + "and s.SCHEMANAME = ? ";
+
+
/** Logger for this class. */
private final static ILogger s_log = LoggerController.createLogger(TriggerSourceTab.class);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|