db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rick Hillegas (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (DERBY-6036) If you wrap a SELECT * view around a table, all of the columns are read from the base row even when you SELECT only a subset of the view columns.
Date Tue, 08 Jan 2013 19:48:12 GMT

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

Rick Hillegas edited comment on DERBY-6036 at 1/8/13 7:47 PM:
--------------------------------------------------------------

If you wrap a base table in a view, it appears that the projection is not passed through to
the base table. I am attaching derbyAST.xml, which is the printout of parse(), bind(), and
optimize() ASTs produced by the following script when you use the XmlASTPrinter attached to
DERBY-4415. From the printout, you can see the following:

1) For the SELECT from a base table (select s_nr from t where ns_r = 3000), the optimizer
wraps the base table in a ProjectRestrict node which projects out only two columns.

2) However, for the SELECT from a view on that base table (select s_nr from vt where ns_r
= 3000), the optimizer wraps the base table in a ProjectRestrict node which projects out ALL
four columns in the table.

                
      was (Author: rhillegas):
    The problem may be more general. If you wrap a base table in a view, it appears that the
projection is not passed through to the base table either. I am attaching derbyAST.xml, which
is the printout of parse(), bind(), and optimize() ASTs produced by the following script when
you use the XmlASTPrinter attached to DERBY-4415. From the printout, you can see the following:

1) For the SELECT from a base table (select s_nr from t where ns_r = 3000), the optimizer
wraps the base table in a ProjectRestrict node which projects out only two columns.

2) However, for the SELECT from a view on that base table (select s_nr from vt where ns_r
= 3000), the optimizer wraps the base table in a ProjectRestrict node which projects out ALL
four columns in the table.

                  
> If you wrap a SELECT * view around a table, all of the columns are read from the base
row even when you SELECT only a subset of the view columns.
> -------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-6036
>                 URL: https://issues.apache.org/jira/browse/DERBY-6036
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.10.0.0
>            Reporter: Rick Hillegas
>         Attachments: derby-6036.sql, derbyAST.xml
>
>
> This also affects SELECTs from views wrapping RestrictedVTIs. Restrictions are pushed
into a restricted VTI if you wrap it in a view. However, projections are not. I will attach
a script showing this problem.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message