trafodion-codereview mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From DaveBirdsall <...@git.apache.org>
Subject [GitHub] incubator-trafodion pull request #1316: [TRAFODION-2822] Make [first n] view...
Date Wed, 29 Nov 2017 17:54:10 GMT
GitHub user DaveBirdsall opened a pull request:

    https://github.com/apache/incubator-trafodion/pull/1316

    [TRAFODION-2822] Make [first n] views non-updatable; prevent bad MERGE plans

    This pull request contains two changes:
    
    1. Views defined using [first n] or [any n] are now marked as not updatable and not insertable.
So, when a MERGE statement is attempted on a new view of this type, we will get a compile
time error that the view is not insertable or updatable (instead of getting an incorrect result).
    
    2. MERGE statements that have a WHEN NOT MATCHED INSERT action are prevented from undergoing
a tuple substitution transformation (that is, the TSJRule and TSJFlowRule will not fire on
a merge node possessing a WHEN NOT MATCHED INSERT action). This is necessary because the run-time
implementation of insert actions takes place in the merge node itself; that is, scanning has
to happen in the merge node. These two rules would take the scanning out of the merge node
into a separate scan node.
    
    Note: Existing [first n] / [any n] views remain marked as updatable and insertable. (These
attributes are calculated at CREATE VIEW time and stored in the metadata.) The second change
above will cause MERGE statements having WHEN NOT MATCHED INSERT actions to fail at compile
time against such views with an error 2235 (Optimizer could not produce a plan for the statement).
While this is a non-obvious error from a user perspective it is far better than allowing execution
and getting an incorrect result.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/DaveBirdsall/incubator-trafodion Trafodion2822

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/incubator-trafodion/pull/1316.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1316
    
----

----


---

Mime
View raw message