[ 
https://issues.apache.org/jira/browse/DERBY-4433?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12779709#action_12779709
 ] 

Knut Anders Hatlen commented on DERBY-4433:
-------------------------------------------

I think the root cause of failure (1) is DERBY-4448, which can also be seen on 
a clean trunk if the query is modified. With the prn.diff patch, 
RCL.forbidOverrides() is called on UnionNodes and RowResultSetNodes, whereas on 
a clean trunk it is called on all ResultSetNodes except UnionNodes and 
RowResultSetNodes, which is probably why the patch exposed the problem in these 
other queries.

> 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
>
>
> 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