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: us...@infra.apache.org