Details
Description
Currently, https://issues.apache.org/jira/browse/PHOENIX-3534 just makes sure that SYSTEM.CATALOG does not split and continues writing parent column metadata with view metadata. Clients that want 4.15/4.x features without needing SYSTEM.CATALOG to be splittable can already just provide phoenix.system.catalog.splittable=false. We should extend the phoenix.allow.system.catalog.rollback config so that when it is true, it will include the following:
- Continue writing parent->child links to SYSTEM.CATALOG instead of using SYSTEM.CHILD_LINK
- Not use SYSTEM.TASK for dropping child views but directly issue the drop view commands since SYSTEM.CATALOG is on a single region anyways
- In the upgrade path for 4.16, if this config is on, we will have to reliably also do the following:
- Move all parent->child links from SYSTEM.CHILD_LINK to SYSTEM.CATALOG
- Clean the SYSTEM.TASK table and execute all unscheduled DropChildViewsTask tasks
Basically, for a 4.15 client with phoenix.allow.system.catalog.rollback=true, at the end of their upgrade to 4.16, the SYSTEM.CHILD_LINK table should be empty and unused henceforth and the SYSTEM.TASK table should not contain any DropChildViewsTask tasks and should be unused for the purpose of DROP TABLE/VIEW <parent table/view name> CASCADE DDLs henceforth.
Attachments
Issue Links
- is a parent of
-
PHOENIX-6036 Introduce a new statement to rollback Splittable SYSTEM.CATALOG changes when phoenix.allow.system.catalog.rollback=true
- Open