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

Knut Anders Hatlen updated DERBY-4433:
--------------------------------------

    Attachment: prn2.diff

I'm not so sure anymore that failure (1) is an instance of DERBY-4448. The fix 
turned out to be simple, though. Just don't call forbidOverrides() on the 
top-level UnionNode if it's a table constructor. forbidOverrides() is called on 
each child RowResultSetNode in the table constructor, so the check is not 
needed on the UnionNode. The current code on trunk also skips the call to 
forbidOverrides() on UnionNodes that are table constructors (or actually, it 
skips it for all UnionNodes).

The attached prn2.diff includes this change and fixes failure (1). Failure (2) 
is still seen, though.

> Cannot insert from EXCEPT/INTERSECT when target table has more columns than 
> the source
> --------------------------------------------------------------------------------------
>
>                 Key: DERBY-4433
>                 URL: https://issues.apache.org/jira/browse/DERBY-4433
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.6.0.0
>            Reporter: Knut Anders Hatlen
>            Assignee: Knut Anders Hatlen
>         Attachments: prn.diff, prn2.diff
>
>
> If an INSERT statement takes the rows to insert from an EXCEPT query or an 
> INTERSECT query, the statement fails with "Column position 'X' out of range" 
> if the target table contains more columns than the result returned from 
> EXCEPT or INTERSECT.
> Example:
> ij> create table t (x int, y int);
> 0 rows inserted/updated/deleted
> ij> insert into t(x) select x from t except select x from t;
> ERROR 42X77: Column position '2' is out of range for the query expression.
> ij> insert into t(x) select x from t intersect select x from t;
> ERROR 42X77: Column position '2' is out of range for the query expression.
> The corresponding UNION query works:
> ij> insert into t(x) select x from t union select x from t;
> 0 rows inserted/updated/deleted

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to