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-6543) Syntax error when reference to transition variable has whitespace around it
Date Wed, 16 Apr 2014 10:28:14 GMT

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

Knut Anders Hatlen updated DERBY-6543:
--------------------------------------

    Attachment: d6543-1a.diff

The attached patch, d6543-1a.diff, fixes the problem and adds a regression test case for it.

The patch changes how we calculate the next offset (the start variable). Instead of basing
the calculation on the offset of the token before the period sign and adding the length of
the period token and the column name token, it now uses the offset of the column name token
directly. This simplifies the calculation, and removes the source of confusion (the length
of the period token) from equation.

TriggerTest passed with the patch. I'm running the rest of the regression tests now.

> Syntax error when reference to transition variable has whitespace around it
> ---------------------------------------------------------------------------
>
>                 Key: DERBY-6543
>                 URL: https://issues.apache.org/jira/browse/DERBY-6543
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.10.2.0
>            Reporter: Knut Anders Hatlen
>            Assignee: Knut Anders Hatlen
>         Attachments: d6543-1a.diff
>
>
> If a trigger action references a transition variable and has whitespace around the period
sign that separates the transition variable name from the column name, it fails with a syntax
error.
> For example:
> {noformat}
> ij> create table t1(x int);
> 0 rows inserted/updated/deleted
> ij> create table t2(x int);
> 0 rows inserted/updated/deleted
> ij> --fails
> create trigger tr1 after insert on t1 referencing new as new
> for each row insert into t1 select x from t2 where x = new . x;
> ERROR 42X01: Syntax error: Encountered "x" at line 1, column 150.
> Issue the 'help' command for general information on IJ command syntax.
> Any unrecognized commands are treated as potential SQL commands and executed directly.
> Consult your DBMS server reference documentation for details of the SQL syntax supported
by your server.
> ij> --succeeds
> create trigger tr2 after insert on t1 referencing new as new
> for each row insert into t1 select x from t2 where x = new.x;
> 0 rows inserted/updated/deleted
> {noformat}
> The only difference between the failing trigger definition and the successful one, is
that the former says "new . x" and the latter "new.x".
> Both should succeed.



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

Mime
View raw message