Description
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.
Attachments
Attachments
Issue Links
- is related to
-
PHOENIX-6141 Ensure consistency between SYSTEM.CATALOG and SYSTEM.CHILD_LINK
- In Progress
- links to