[ 
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)

Reply via email to