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)