db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (DERBY-6370) dblook doesn't schema-qualify identifiers in trigger actions
Date Tue, 06 May 2014 09:42:14 GMT

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

Knut Anders Hatlen updated DERBY-6370:
--------------------------------------

    Attachment: d6370-2a.diff

The attached patch [^d6370-2a.diff] removes the no longer needed fields whenOffset and actionOffset
from CreateTriggerNode, since the offsets can be found by calling getBeginOffset() and getEndOffset()
on the QueryTreeNodes after the parser changes in the 1a patch. Regression tests passed with
the patch.

> dblook doesn't schema-qualify identifiers in trigger actions
> ------------------------------------------------------------
>
>                 Key: DERBY-6370
>                 URL: https://issues.apache.org/jira/browse/DERBY-6370
>             Project: Derby
>          Issue Type: Bug
>          Components: Tools
>    Affects Versions: 10.10.1.1
>            Reporter: Knut Anders Hatlen
>            Assignee: Knut Anders Hatlen
>         Attachments: d6370-1a.diff, d6370-2a.diff
>
>
> dblook doesn't qualify identifiers in the trigger action if they weren't explicitly qualified
in the original CREATE TRIGGER statement.
> Example:
> ij version 10.10
> ij> connect 'jdbc:derby:db;create=true';  
> ij> create table s1.t1(x int);
> 0 rows inserted/updated/deleted
> ij> create table s2.t2(x int);
> 0 rows inserted/updated/deleted
> ij> set schema s1;
> 0 rows inserted/updated/deleted
> ij> create trigger tr1 after insert on t1 insert into s2.t2 select * from t1;
> 0 rows inserted/updated/deleted
> ij> set schema s2;
> 0 rows inserted/updated/deleted
> ij> create trigger tr2 after insert on s1.t1 insert into t2 select * from s1.t1;
> 0 rows inserted/updated/deleted
> ij> exit;
> Then run dblook on the created database:
> -- Timestamp: 2013-10-04 12:46:14.974
> -- Source database is: db
> -- Connection URL is: jdbc:derby:db
> -- appendLogs: false
> -- ----------------------------------------------
> -- DDL Statements for schemas
> -- ----------------------------------------------
> CREATE SCHEMA "S1";
> CREATE SCHEMA "S2";
> -- ----------------------------------------------
> -- DDL Statements for tables
> -- ----------------------------------------------
> CREATE TABLE "S1"."T1" ("X" INTEGER);
> CREATE TABLE "S2"."T2" ("X" INTEGER);
> -- ----------------------------------------------
> -- DDL Statements for triggers
> -- ----------------------------------------------
> CREATE TRIGGER "S1"."TR1" AFTER INSERT ON "S1"."T1" FOR EACH STATEMENT insert into s2.t2
select * from t1;
> CREATE TRIGGER "S2"."TR2" AFTER INSERT ON "S1"."T1" FOR EACH STATEMENT insert into t2
select * from s1.t1;
> dblook should either qualify all identifiers in the trigger actions, or contain SET SCHEMA
statements before each of the CREATE TRIGGER statements to ensure the correct implicit schema
is chosen.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message