Hari Krishna Dara created PHOENIX-7154:
------------------------------------------

             Summary: SELECT query with undefined column on an UNCOVERED INDEX 
results in StringIndexOutOfBoundsException 
                 Key: PHOENIX-7154
                 URL: https://issues.apache.org/jira/browse/PHOENIX-7154
             Project: Phoenix
          Issue Type: Bug
    Affects Versions: 5.1.4
            Reporter: Hari Krishna Dara


If you run a SELECT query directly on an uncovered index with a column name 
that is undefined for that index, you get a 
{{{}java.lang.StringIndexOutOfBoundsException{}}}.  In the below sample, you 
can see that using a valid column, the query worked fine, but an undefined 
column caused the exception.

 

{{0: jdbc:phoenix:localhost> create table t (k INTEGER PRIMARY KEY, v1 
INTEGER);}}
{{No rows affected (0.64 seconds)}}
{{0: jdbc:phoenix:localhost> create uncovered index tuidx on t 
(PHOENIX_ROW_TIMESTAMP());}}
{{No rows affected (5.671 seconds)}}
{{0: jdbc:phoenix:localhost> select abc from tuidx;}}
{{java.lang.StringIndexOutOfBoundsException: String index out of range: -1}}
{{        at java.lang.String.substring(String.java:1967)}}
{{        at 
org.apache.phoenix.util.IndexUtil.getDataColumnFamilyName(IndexUtil.java:200)}}
{{        at 
org.apache.phoenix.schema.IndexUncoveredDataColumnRef.<init>(IndexUncoveredDataColumnRef.java:51)}}
{{        at 
org.apache.phoenix.compile.TupleProjectionCompiler$ColumnRefVisitor.visit(TupleProjectionCompiler.java:269)}}
{{        at 
org.apache.phoenix.compile.TupleProjectionCompiler$ColumnRefVisitor.visit(TupleProjectionCompiler.java:245)}}
{{        at 
org.apache.phoenix.parse.ColumnParseNode.accept(ColumnParseNode.java:56)}}
{{        at 
org.apache.phoenix.compile.TupleProjectionCompiler.createProjectedTable(TupleProjectionCompiler.java:127)}}
{{        at 
org.apache.phoenix.compile.QueryCompiler.compileSingleFlatQuery(QueryCompiler.java:701)}}
{{        at 
org.apache.phoenix.compile.QueryCompiler.compileSingleQuery(QueryCompiler.java:667)}}
{{        at 
org.apache.phoenix.compile.QueryCompiler.compileSelect(QueryCompiler.java:249)}}
{{        at 
org.apache.phoenix.compile.QueryCompiler.compile(QueryCompiler.java:181)}}
{{        at 
org.apache.phoenix.jdbc.PhoenixStatement$ExecutableSelectStatement.compilePlan(PhoenixStatement.java:724)}}
{{        at 
org.apache.phoenix.jdbc.PhoenixStatement$ExecutableSelectStatement.compilePlan(PhoenixStatement.java:687)}}
{{        at 
org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:368)}}
{{        at 
org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:349)}}
{{        at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)}}
{{        at 
org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:349)}}
{{        at 
org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:335)}}
{{        at 
org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:2362)}}
{{        at sqlline.Commands.executeSingleQuery(Commands.java:1054)}}
{{        at sqlline.Commands.execute(Commands.java:1003)}}
{{        at sqlline.Commands.sql(Commands.java:967)}}
{{        at sqlline.SqlLine.dispatch(SqlLine.java:734)}}
{{        at sqlline.SqlLine.begin(SqlLine.java:541)}}
{{        at sqlline.SqlLine.start(SqlLine.java:267)}}
{{        at sqlline.SqlLine.main(SqlLine.java:206)}}
{{0: jdbc:phoenix:localhost> select ":K" from tuidx;}}
{{+----+}}
{{| :K |}}
{{+----+}}
{{+----+}}



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

Reply via email to