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

ASF GitHub Bot commented on PHOENIX-6142:
-----------------------------------------

ChinmaySKulkarni commented on pull request #903:
URL: https://github.com/apache/phoenix/pull/903#issuecomment-710732902


   None of the tests that failed in the build above are failing locally. 
   Re-running the preCommit manually to get another run.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


> Make DDL operations resilient to orphan parent->child linking rows in 
> SYSTEM.CHILD_LINK
> ---------------------------------------------------------------------------------------
>
>                 Key: PHOENIX-6142
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-6142
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 5.0.0, 4.15.0
>            Reporter: Chinmay Kulkarni
>            Assignee: Chinmay Kulkarni
>            Priority: Blocker
>             Fix For: 5.1.0, 4.16.0
>
>         Attachments: PHOENIX-6142-4.x-v1.patch, PHOENIX-6142.4.x.v2.patch, 
> PHOENIX-6142.4.x.v3.patch, PHOENIX-6142.4.x.v4.patch
>
>
> We are targeting PHOENIX-6141 for 4.17. Until we have it, we should aim at 
> making DDL operations resilient to orphan parent->child linking rows. DDL 
> operations identified which can fail due to orphan rows are:
>  # Any ALTER TABLE ADD/DROP/SET calls on the base table T will fail if there 
> are orphan links from T to some already dropped view. This happens because 
> the call to 
> [MetaDataEndpointImpl.findAllChildViews()|https://github.com/apache/phoenix/blob/fece8e69b9c03c80db7a0801d99e5de31fe15ffa/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java#L2142]
>  from 
> [MetaDataEndpointImpl.mutateColumn()|https://github.com/apache/phoenix/blob/fece8e69b9c03c80db7a0801d99e5de31fe15ffa/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java#L2592]
>  fails with a TableNotFoundException.
>  # Any DROP TABLE/VIEW call without CASCADE will fail even though there are 
> actually no child views since the orphan rows wrongly indicate that there are 
> child views.
>  # During the upgrade path for UpgradeUtil.syncUpdateCacheFreqAllIndexes(), 
> we will just ignore any orphan views (for ex, see 
> [this|https://github.com/apache/phoenix/blob/fece8e69b9c03c80db7a0801d99e5de31fe15ffa/phoenix-core/src/main/java/org/apache/phoenix/util/UpgradeUtil.java#L1368-L1374]),
>  but the call to UpgradeUtil.upgradeTable() will fail with a 
> TableNotFoundException for each orphan view.
> # During a CREATE TABLE/VIEW, we try to drop any views from the previous life 
> of that table/view, however we might end up dropping a legitimate view (with 
> the same name) which is on another table/view because of this.
> Before dropping any views that we see from a parent->child link, we need to 
> ensure that the view is in fact a child view of the same table/view we think 
> it is an orphan of.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to