You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Dag H. Wanvik (JIRA)" <ji...@apache.org> on 2014/08/07 00:13:13 UTC
[jira] [Updated] (DERBY-6690) ROW_NUMBER should not be allowed in
generation clause
[ https://issues.apache.org/jira/browse/DERBY-6690?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dag H. Wanvik updated DERBY-6690:
---------------------------------
Attachment: derby-6690.diff
Uploading patch [^derby-6690.diff] which makes this illegal by adding a check in TableElementList#bindAndValidateGeneration. I had to add an acceptChildren method to GenerationClauseNode for the visitor to reach down into the generation clause. Added a test to OLAPTest#testBasicOperations for both CREATE TABLE and ALTER TABLE ADD COLUMN.
Regressions passed.
> ROW_NUMBER should not be allowed in generation clause
> -----------------------------------------------------
>
> Key: DERBY-6690
> URL: https://issues.apache.org/jira/browse/DERBY-6690
> Project: Derby
> Issue Type: Bug
> Components: SQL
> Affects Versions: 10.10.2.0
> Reporter: Knut Anders Hatlen
> Attachments: derby-6690.diff
>
>
> The generation clause is allowed to have a call to the ROW_NUMBER function. But it fails when a new row is inserted. It should be disallowed in CREATE TABLE and ALTER TABLE ADD COLUMN.
> {noformat}
> ij> create table t (x int generated always as (row_number() over ()));
> 0 rows inserted/updated/deleted
> ij> insert into t values default;
> ERROR XJ001: Java exception: 'ASSERT FAILED cannot get interface without operand: org.apache.derby.shared.common.sanity.AssertFailure'.
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.2#6252)