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

Andrew Kyle Purtell updated PHOENIX-7902:
-----------------------------------------
    Description: Replace the two opaque per-scan markers {{SERVER ARRAY ELEMENT 
PROJECTION}} and {{SERVER JSON FUNCTION PROJECTION}} with per-type clauses 
{{SERVER ARRAY PROJECTION <count>}}, {{SERVER JSON PROJECTION <count>}}, and 
{{SERVER BSON PROJECTION <count>}} emitted only when at least one path 
expression of the corresponding type is pushed server-side, and each followed 
by one indented detail line per expression in the function-call form 
({{Expression.toString()}} indented to the next level). 
{{ProjectionCompiler.compileSelectClause}} stashes the per-attribute expression 
buckets (the {{serverAttributeToFuncExpressionMap}} it already builds before 
scan serialization) on {{StatementContext}} as {{serverParsedProjections : 
Map<String, List<Expression>>}} keyed by scan attribute name. 
{{ExplainTable.explain(...)}} replaces the existing code with new code that 
processes "ARRAY", "JSON", and "BSON" buckets, emits the counted header, and 
the additional indented detail lines. {{ExplainPlanAttributes}} retires the 
{{serverArrayElementProjection}} boolean and adds a {{serverParsedProjections: 
Map<String,List<String>>}} map, with up to three buckets ("ARRAY", "JSON", and 
"BSON" ) each holding a {{List<String>}}, with matching {{ExplainPlanTestUtil}} 
fluent assertion getters, setters, and testers.

> SERVER ARRAY|JSON|BSON PROJECTION counted forms in EXPLAIN
> ----------------------------------------------------------
>
>                 Key: PHOENIX-7902
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-7902
>             Project: Phoenix
>          Issue Type: Sub-task
>            Reporter: Andrew Kyle Purtell
>            Assignee: Andrew Kyle Purtell
>            Priority: Major
>             Fix For: PHOENIX-7876-feature
>
>
> Replace the two opaque per-scan markers {{SERVER ARRAY ELEMENT PROJECTION}} 
> and {{SERVER JSON FUNCTION PROJECTION}} with per-type clauses {{SERVER ARRAY 
> PROJECTION <count>}}, {{SERVER JSON PROJECTION <count>}}, and {{SERVER BSON 
> PROJECTION <count>}} emitted only when at least one path expression of the 
> corresponding type is pushed server-side, and each followed by one indented 
> detail line per expression in the function-call form 
> ({{Expression.toString()}} indented to the next level). 
> {{ProjectionCompiler.compileSelectClause}} stashes the per-attribute 
> expression buckets (the {{serverAttributeToFuncExpressionMap}} it already 
> builds before scan serialization) on {{StatementContext}} as 
> {{serverParsedProjections : Map<String, List<Expression>>}} keyed by scan 
> attribute name. {{ExplainTable.explain(...)}} replaces the existing code with 
> new code that processes "ARRAY", "JSON", and "BSON" buckets, emits the 
> counted header, and the additional indented detail lines. 
> {{ExplainPlanAttributes}} retires the {{serverArrayElementProjection}} 
> boolean and adds a {{serverParsedProjections: Map<String,List<String>>}} map, 
> with up to three buckets ("ARRAY", "JSON", and "BSON" ) each holding a 
> {{List<String>}}, with matching {{ExplainPlanTestUtil}} fluent assertion 
> getters, setters, and testers.



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

Reply via email to