ranganathg commented on code in PR #1780: URL: https://github.com/apache/phoenix/pull/1780#discussion_r1448796205
########## phoenix-core-client/src/main/java/org/apache/phoenix/compile/ProjectionCompiler.java: ########## @@ -497,42 +502,106 @@ public static RowProjector compile(StatementContext context, SelectStatement sta index++; } - for (int i = arrayProjectedColumnRefs.size() - 1; i >= 0; i--) { - Expression expression = arrayProjectedColumnRefs.get(i); - Integer count = arrayExpressionCounts.get(expression); + for (int i = serverParsedProjectedColumnRefs.size() - 1; i >= 0; i--) { + Expression expression = serverParsedProjectedColumnRefs.get(i); + Integer count = serverParsedExpressionCounts.get(expression); if (count != 0) { - arrayKVRefs.remove(i); - arrayKVFuncs.remove(i); - arrayOldFuncs.remove(i); + serverParsedKVRefs.remove(i); + serverParsedKVFuncs.remove(i); + serverParsedOldFuncs.remove(i); } } - if (arrayKVFuncs.size() > 0 && arrayKVRefs.size() > 0) { - serailizeArrayIndexInformationAndSetInScan(context, arrayKVFuncs, arrayKVRefs); + if (serverParsedKVFuncs.size() > 0 && serverParsedKVRefs.size() > 0) { Review Comment: Sorry I didn't understand : SelectClauseVisitor constructor didn't change - which params passed to the constructor are you referring to? You mean to say instead of using same ServerParsedkvFunctions and Refs - use different variables for arrays and Json and then have different getters for array index and json expressions?. That can be done but these variables are bit spread around for ref counting and other things. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@phoenix.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org