gjacoby126 commented on a change in pull request #935:
URL: https://github.com/apache/phoenix/pull/935#discussion_r525580079
##########
File path: phoenix-core/src/main/java/org/apache/phoenix/util/ViewUtil.java
##########
@@ -654,10 +654,17 @@ public static PTable addDerivedColumnsFromParent(PTable
view, PTable parentTable
}
long maxTableTimestamp = view.getTimeStamp();
+ long maxDDLTimestamp = view.getLastDDLTimestamp() != null ?
view.getLastDDLTimestamp() : 0L;
int numPKCols = view.getPKColumns().size();
- // set the final table timestamp as the max timestamp of the view/view
index or its
- // ancestors
+ // set the final table timestamp and DDL timestamp as the respective
max timestamps of the
+ // view/view index or its ancestors
maxTableTimestamp = Math.max(maxTableTimestamp,
parentTable.getTimeStamp());
+ //Diverged views no longer inherit ddl timestamps from their ancestors
because they don't
+ // inherit column changes
Review comment:
I'd be more inclined to:
Step 1. Update the last ddl timestamp on either add or drop column, and
accept that in a future JIRA the schema registry will be redundantly updated in
the (hopefully rare) event that a base table of a diverged view adds a column.
Essentially this removes the diverged view check here in ViewUtil. (Easy)
Optional Step 2. Then in a second JIRA change the diverged view logic to
inherit changes on both add column and drop column so the updates aren't really
redundant. (Harder, but leaves us in a better state)
If there's some compelling reason to keep the existing logic, I'm interested
to learn about it, but right now it doesn't seem to justify the enormous
complexity (which just keeps compounding with time!) that it requires.
----------------------------------------------------------------
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]