[ https://issues.apache.org/jira/browse/PHOENIX-2639?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15123025#comment-15123025 ]
ramkrishna.s.vasudevan commented on PHOENIX-2639: ------------------------------------------------- {code} boolean_expression returns [ParseNode ret] : l=value_expression ((op=comparison_op (r=value_expression | (LPAREN r=subquery_expression RPAREN) | ((all=ALL | any=ANY) LPAREN r=value_expression RPAREN) | ((all=ALL | any=ANY) LPAREN r=subquery_expression RPAREN)) {$ret = all != null ? factory.wrapInAll(op, l, r) : any != null ? factory.wrapInAny(op, l, r) : factory.comparison(op,l,r); } ) | (IS n=NOT? NULL {$ret = factory.isNull(l,n!=null); } ) | ( n=NOT? ((LIKE r=value_expression {$ret = factory.like(l,r,n!=null,LikeType.CASE_SENSITIVE); } ) {code} Is that a problem due to this rule we have? Because LIKE seems to have been handled after ALL/ANY operator right? > LIKE query against ARRAY of VARCHAR > ----------------------------------- > > Key: PHOENIX-2639 > URL: https://issues.apache.org/jira/browse/PHOENIX-2639 > Project: Phoenix > Issue Type: Bug > Affects Versions: 4.5.2 > Reporter: Tony Winingham > Fix For: 4.8.0 > > > LIKE query against individual array elements works as expected: > 0: jdbc:phoenix:xxx.xxx.com:5> select > src_ip_legacy,dst_ip_legacy,app_protocol_details from ironflows WHERE > app_protocol_details[1] LIKE '%espn%' limit 10; > +------------------------------------------+------------------------------------------+------------------------------------------+ > | SRC_IP_LEGACY | DST_IP_LEGACY > | APP_PROTOCOL_DETAILS | > +------------------------------------------+------------------------------------------+------------------------------------------+ > ((OUTPUT REMOVED)) > LIKE query against ANY() or ALL() array elements fails: > 0: jdbc:phoenix:cloud1.crucible.irondev.net:5> select > src_ip_legacy,dst_ip_legacy,app_protocol_details from ironflows WHERE > '%espn%' LIKE ANY(app_protocol_details) limit 10; > Error: ERROR 602 (42P00): Syntax error. Missing "LPAREN" at line 1, column > 78. (state=42P00,code=602) > org.apache.phoenix.exception.PhoenixParserException: ERROR 602 (42P00): > Syntax error. Missing "LPAREN" at line 1, column 78. > at > org.apache.phoenix.exception.PhoenixParserException.newException(PhoenixParserException.java:33) > at org.apache.phoenix.parse.SQLParser.parseStatement(SQLParser.java:111) > at > org.apache.phoenix.jdbc.PhoenixStatement$PhoenixStatementParser.parseStatement(PhoenixStatement.java:1225) > at > org.apache.phoenix.jdbc.PhoenixStatement.parseStatement(PhoenixStatement.java:1306) > at > org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1369) > at sqlline.Commands.execute(Commands.java:822) > at sqlline.Commands.sql(Commands.java:732) > at sqlline.SqlLine.dispatch(SqlLine.java:808) > at sqlline.SqlLine.begin(SqlLine.java:681) > at sqlline.SqlLine.start(SqlLine.java:398) > at sqlline.SqlLine.main(SqlLine.java:292) > Caused by: MissingTokenException(inserted [@-1,0:0='<missing > LPAREN>',<90>,1:77] at %espn%) > at > org.apache.phoenix.parse.PhoenixSQLParser.recoverFromMismatchedToken(PhoenixSQLParser.java:347) > at org.antlr.runtime.BaseRecognizer.match(BaseRecognizer.java:115) > at > org.apache.phoenix.parse.PhoenixSQLParser.not_expression(PhoenixSQLParser.java:6364) > at > org.apache.phoenix.parse.PhoenixSQLParser.and_expression(PhoenixSQLParser.java:6184) > at > org.apache.phoenix.parse.PhoenixSQLParser.or_expression(PhoenixSQLParser.java:6121) > at > org.apache.phoenix.parse.PhoenixSQLParser.expression(PhoenixSQLParser.java:6086) > at > org.apache.phoenix.parse.PhoenixSQLParser.single_select(PhoenixSQLParser.java:4289) > at > org.apache.phoenix.parse.PhoenixSQLParser.unioned_selects(PhoenixSQLParser.java:4371) > at > org.apache.phoenix.parse.PhoenixSQLParser.select_node(PhoenixSQLParser.java:4436) > at > org.apache.phoenix.parse.PhoenixSQLParser.oneStatement(PhoenixSQLParser.java:755) > at > org.apache.phoenix.parse.PhoenixSQLParser.statement(PhoenixSQLParser.java:497) > at org.apache.phoenix.parse.SQLParser.parseStatement(SQLParser.java:108) > ... 9 more -- This message was sent by Atlassian JIRA (v6.3.4#6332)