[ 
https://issues.apache.org/jira/browse/PHOENIX-7917?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kyle Purtell updated PHOENIX-7917:
-----------------------------------------
    Description: 
Replace the {{EXPLAIN [WITH REGIONS]}} grammar with a comma-separated option 
list {{EXPLAIN [(<opt> [, <opt>]*)] <stmt>}} accepting {{REGIONS}}, 
{{VERBOSE}}, {{FORMAT TEXT}}, and {{FORMAT JSON}}, preserving {{EXPLAIN WITH 
REGIONS}} as a backward compatible alias.

Update {{PhoenixSQL.g}} {{explain_node}} rule to accept either {{LPAREN id 
(COMMA id)* RPAREN}} or {{WITH REGIONS}} between {{EXPLAIN}} and the inner 
{{oneStatement}}, with {{FORMAT TEXT|JSON}} parsed as {{FORMAT}} followed by an 
identifier.  {{VERBOSE}}, {{FORMAT}}, {{TEXT}}, and {{JSON}} are matched as 
{{identifier}} inside {{explain_node}} and validated against a closed set in 
the action block. 

{{ExplainStatement}} replaces {{ExplainType}} with {{ExplainOptions { boolean 
regions; boolean verbose; Format format; }}}. {{ParseNodeFactory}} gains a 
{{factory.explain(stmt, ExplainOptions)}} overload. 
{{PhoenixStatement#ExecutableExplainStatement}} takes {{ExplainOptions}} and 
propagates {{regions}} through to {{BaseResultIterators.explainUtil}}.

Region locator lookup still happens unconditionally.

  was:
Replace the {{EXPLAIN [WITH REGIONS]}} grammar with a comma-separated option 
list {{EXPLAIN [(<opt> [, <opt>]*)] <stmt>}} accepting {{REGIONS}}, 
{{VERBOSE}}, {{FORMAT TEXT}}, and {{FORMAT JSON}}, preserving {{EXPLAIN WITH 
REGIONS}} as a backward compatible alias.

Update {{PhoenixSQL.g}} {{explain_node}} rule to accept either {{LPAREN id 
(COMMA id)* RPAREN}} or {{WITH REGIONS}} between {{EXPLAIN}} and the inner 
{{oneStatement}}, with {{FORMAT TEXT|JSON}} parsed as {{FORMAT}} followed by an 
identifier.  {{VERBOSE}}, {{FORMAT}}, {{TEXT}}, and {{JSON}} are matched as 
{{identifier}} inside {{explain_node}} and validated against a closed set in 
the action block. 

{{ExplainStatement}} replaces {{ExplainType}} with {{ExplainOptions { boolean 
regions; boolean verbose; Format format; } }}. {{ParseNodeFactory}} gains a 
{{factory.explain(stmt, ExplainOptions)}} overload. 
{{PhoenixStatement#ExecutableExplainStatement}} takes {{ExplainOptions}} and 
propagates {{regions}} through to {{BaseResultIterators.explainUtil}}.

Region locator lookup still happens unconditionally.


> Expand the EXPLAIN WITH options list grammar
> --------------------------------------------
>
>                 Key: PHOENIX-7917
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-7917
>             Project: Phoenix
>          Issue Type: Sub-task
>            Reporter: Andrew Kyle Purtell
>            Assignee: Andrew Kyle Purtell
>            Priority: Major
>             Fix For: PHOENIX-7876-feature
>
>
> Replace the {{EXPLAIN [WITH REGIONS]}} grammar with a comma-separated option 
> list {{EXPLAIN [(<opt> [, <opt>]*)] <stmt>}} accepting {{REGIONS}}, 
> {{VERBOSE}}, {{FORMAT TEXT}}, and {{FORMAT JSON}}, preserving {{EXPLAIN WITH 
> REGIONS}} as a backward compatible alias.
> Update {{PhoenixSQL.g}} {{explain_node}} rule to accept either {{LPAREN id 
> (COMMA id)* RPAREN}} or {{WITH REGIONS}} between {{EXPLAIN}} and the inner 
> {{oneStatement}}, with {{FORMAT TEXT|JSON}} parsed as {{FORMAT}} followed by 
> an identifier.  {{VERBOSE}}, {{FORMAT}}, {{TEXT}}, and {{JSON}} are matched 
> as {{identifier}} inside {{explain_node}} and validated against a closed set 
> in the action block. 
> {{ExplainStatement}} replaces {{ExplainType}} with {{ExplainOptions { boolean 
> regions; boolean verbose; Format format; }}}. {{ParseNodeFactory}} gains a 
> {{factory.explain(stmt, ExplainOptions)}} overload. 
> {{PhoenixStatement#ExecutableExplainStatement}} takes {{ExplainOptions}} and 
> propagates {{regions}} through to {{BaseResultIterators.explainUtil}}.
> Region locator lookup still happens unconditionally.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to