Andrew Kyle Purtell created PHOENIX-8051:
--------------------------------------------
Summary: Row projectors lose the values of IN lists
Key: PHOENIX-8051
URL: https://issues.apache.org/jira/browse/PHOENIX-8051
Project: Phoenix
Issue Type: Bug
Components: core
Affects Versions: 5.3.2
Reporter: Andrew Kyle Purtell
Assignee: Andrew Kyle Purtell
Fix For: 5.4.0, 5.3.3
{{InListExpression}} treats only the left-hand operand as an AST child node,
maintaining the candidate values of the {{IN}} list as internal state.
Expression cloning previously only looked at child nodes. Because the literal
values were omitted from this traversal, the resulting clone lacked its target
set and evaluated to false for every row.
This failure emerges in execution paths where {{RowProjectors}} create local
expression copies to isolate per-invocation functions likeĀ {{{}RAND(){}}}.
Components such as {{UPSERT SELECT}} and {{PhoenixRecordReader}} consume these
cloned projections, causing queries with projected, non-deterministic {{IN}}
expressions to consistently resolve to false.
The fix is for expression cloning to explicitly carry forward the source list's
literal values alongside the cloned operand.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)