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