[
https://issues.apache.org/jira/browse/PHOENIX-7879?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrew Kyle Purtell resolved PHOENIX-7879.
------------------------------------------
Fix Version/s: 5.4.0
5.3.2
Resolution: Fixed
> Tests for EXPLAIN text and ExplainPlanAttributes serialization compatibility
> ----------------------------------------------------------------------------
>
> Key: PHOENIX-7879
> URL: https://issues.apache.org/jira/browse/PHOENIX-7879
> Project: Phoenix
> Issue Type: Sub-task
> Reporter: Andrew Kyle Purtell
> Assignee: Andrew Kyle Purtell
> Priority: Major
> Fix For: 5.4.0, 5.3.2
>
>
> Add a backward compatibility test harness that freezes Phoenix's EXPLAIN
> output and makes any future change to the grammar an explicit, reviewable act.
> {{ExplainPlanAttributes}} gains a {{@JsonPropertyOrder}} annotation, and
> {{RegionLocationsListSerializer}} and {{ServerMergeColumnsSerializer}} handle
> the two attributes that aren't cleanly serializable.
> New test package {{org.apache.phoenix.query.explain package}} implements the
> EXPLAIN compatibility checks. {{ExplainOracle}} compiles each query against a
> connectionless Phoenix driver and compares both the textual and JSON
> representations of the plan against an expected baseline, producing
> line-by-line and JSON-pointer diffs on mismatch. Normalizers strip
> environment-specific noise before comparison. {{ExplainTextNormalizer}}
> collapses parallelism/chunk counts to <N>, removes row/byte stats and
> region-location lines, and {{ExplainJsonNormalizer}} nulls out region
> locations, lookup counts, split chunks, and row/size estimates and recurses
> into nested join plans.
> {{ExplainChangeRule}} supports future PRs that intentionally change the
> grammar. New rules can be appended that transform the frozen baseline into
> its new expected shape. Every change is intentional and reviewable. The diff
> in the rule itself documents exactly what changed. The golden text in
> {{ExplainOracleTest}} should be periodically regenerated with
> ExplainChangeRules dropped.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)