Istvan Toth created PHOENIX-6969:
------------------------------------
Summary: Hinted uncovered index query with order by projection
error
Key: PHOENIX-6969
URL: https://issues.apache.org/jira/browse/PHOENIX-6969
Project: Phoenix
Issue Type: Bug
Affects Versions: 5.1.3, 5.2.0
Reporter: Istvan Toth
When using order in some hinted uncovered queries, a
ColumnAlreadyExistsException is thrown.
{noformat}
create table dd (k1 integer not null, k2 integer not null, k3 integer not null,
k4 integer not null, v1 integer, v2 integer, v3 integer, v4 integer constraint
pk primary key (k1,k2,k3,k4));
create index ii on dd (k4, k1, k2, k3);
select /*+ index(dd ii) */ k1, k2, k3, k4, v1, v2, v3, v4 from dd where k4=1
and k2=1 order by k1 asc, v1 asc limit 1;{noformat}
{noformat}
Error: ERROR 514 (42892): A duplicate column name was detected in the object
definition or ALTER TABLE/VIEW statement. columnName=II.V1
(state=42892,code=514)
org.apache.phoenix.schema.ColumnAlreadyExistsException: ERROR 514 (42892): A
duplicate column name was detected in the object definition or ALTER TABLE/VIEW
statement. columnName=II.V1
at
org.apache.phoenix.schema.PTableImpl$Builder.initDerivedAttributes(PTableImpl.java:682)
at org.apache.phoenix.schema.PTableImpl$Builder.build(PTableImpl.java:802)
at
org.apache.phoenix.compile.TupleProjectionCompiler.createProjectedTable(TupleProjectionCompiler.java:179)
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:178)
at
org.apache.phoenix.optimize.QueryOptimizer.addPlan(QueryOptimizer.java:348)
at
org.apache.phoenix.optimize.QueryOptimizer.getHintedQueryPlan(QueryOptimizer.java:302)
at
org.apache.phoenix.optimize.QueryOptimizer.getApplicablePlansForSingleFlatQuery(QueryOptimizer.java:230)
at
org.apache.phoenix.optimize.QueryOptimizer.getApplicablePlans(QueryOptimizer.java:138)
at
org.apache.phoenix.optimize.QueryOptimizer.optimize(QueryOptimizer.java:116)
at
org.apache.phoenix.optimize.QueryOptimizer.optimize(QueryOptimizer.java:102)
at
org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:319)
at
org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:301)
at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
at
org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:300)
at
org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:293)
at
org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:2038)
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)
{noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)