phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chinmay Kulkarni (Jira)" <>
Subject [jira] [Updated] (PHOENIX-6142) Make DDL operations resilient to orphan parent->child linking rows in SYSTEM.CHILD_LINK
Date Wed, 30 Sep 2020 19:08:00 GMT


Chinmay Kulkarni updated PHOENIX-6142:
    Attachment: PHOENIX-6142.4.x.v2.patch

> Make DDL operations resilient to orphan parent->child linking rows in SYSTEM.CHILD_LINK
> ---------------------------------------------------------------------------------------
>                 Key: PHOENIX-6142
>                 URL:
>             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
> 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()|]
from [MetaDataEndpointImpl.mutateColumn()|]
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|]),
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

View raw message