phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chinmay Kulkarni (Jira)" <j...@apache.org>
Subject [jira] [Created] (PHOENIX-6142) Make DDL operations resilient to orphan parent->child linking rows in SYSTEM.CHILD_LINK
Date Thu, 17 Sep 2020 18:23:00 GMT
Chinmay Kulkarni created PHOENIX-6142:
-----------------------------------------

             Summary: 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: 4.15.0, 5.0.0
            Reporter: Chinmay Kulkarni
            Assignee: Chinmay Kulkarni
             Fix For: 5.1.0, 4.16.0


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#L259]
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.



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

Mime
View raw message