Issue Details (XML | Word | Printable)

Key: DERBY-3948
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: Unassigned
Reporter: Rick Hillegas
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Derby

Don't allow references to generated columns in the NEW transition variables of triggered actions of BEFORE triggers

Created: 14/Nov/08 08:41 PM   Updated: 04/May/09 06:22 PM
Component/s: SQL
Affects Version/s: 10.5.1.1
Fix Version/s: 10.5.1.1

Time Tracking:
Not Specified

File Attachments:
  Size
File Licensed for inclusion in ASF works derby-3948-01-aa-beforeTriggers.diff 2008-11-18 02:12 PM Rick Hillegas 13 kB
Issue Links:
Incorporates
 

Resolution Date: 19/Nov/08 03:34 PM


 Description  « Hide
Thanks to Dag for finding this restriction in the SQL Standard, part 2, section 11.39, SR 12 c) I see this provision:

   12) If BEFORE is specified, then:
     :
     c) The <triggered action> shall not contain a <field reference> that
     references a field in the new transition variable corresponding to a
     generated column of T.

 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Rick Hillegas made changes - 14/Nov/08 08:41 PM
Field Original Value New Value
Link This issue is part of DERBY-481 [ DERBY-481 ]
Rick Hillegas added a comment - 18/Nov/08 02:12 PM
Attaching derby-3948-01-aa-beforeTriggers.diff. This enforces the rule that generated columns can't be mentioned in the NEW variables of actions fired by BEFORE triggers. Tests are running now.

Touches the following files:

M java/engine/org/apache/derby/impl/sql/compile/CreateTriggerNode.java

Adds method to look for the offending references.


M java/engine/org/apache/derby/loc/messages.xml
M java/shared/org/apache/derby/shared/common/reference/SQLState.java

Adds an error message to flag this forbidden condition.


M java/testing/org/apache/derbyTesting/functionTests/tests/lang/GeneratedColumnsTest.java
M java/testing/org/apache/derbyTesting/functionTests/tests/lang/GeneratedColumnsHelper.java

Adds regression tests. Also changes a couple pre-existing test cases because they violated this rule.

Rick Hillegas made changes - 18/Nov/08 02:12 PM
Attachment derby-3948-01-aa-beforeTriggers.diff [ 12394168 ]
Repository Revision Date User Message
ASF #718707 Tue Nov 18 20:32:07 UTC 2008 rhillegas DERBY-3948: Forbid references to generated columns in the NEW variable of BEFORE triggers.
Files Changed
MODIFY /db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/GeneratedColumnsHelper.java
MODIFY /db/derby/code/trunk/java/shared/org/apache/derby/shared/common/reference/SQLState.java
MODIFY /db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CreateTriggerNode.java
MODIFY /db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/GeneratedColumnsTest.java
MODIFY /db/derby/code/trunk/java/engine/org/apache/derby/loc/messages.xml

Rick Hillegas added a comment - 18/Nov/08 08:32 PM
Tests ran cleanly for me. Committed derby-3948-01-aa-beforeTriggers.diff at subversion revision 718707.

Rick Hillegas made changes - 19/Nov/08 03:34 PM
Resolution Fixed [ 1 ]
Status Open [ 1 ] Resolved [ 5 ]
Myrna van Lunteren made changes - 13/Apr/09 11:20 PM
Fix Version/s 10.5.0.0 [ 12313010 ]
Myrna van Lunteren made changes - 04/May/09 06:22 PM
Fix Version/s 10.5.0.0 [ 12313010 ]
Fix Version/s 10.5.1.1 [ 12313771 ]
Affects Version/s 10.5.0.0 [ 12313010 ]
Affects Version/s 10.5.1.1 [ 12313771 ]