Palash Chauhan created PHOENIX-7406:
---------------------------------------

             Summary: Index creation fails when creating a partial index on a 
table which was created with column names in double quotes
                 Key: PHOENIX-7406
                 URL: https://issues.apache.org/jira/browse/PHOENIX-7406
             Project: Phoenix
          Issue Type: Bug
            Reporter: Palash Chauhan


{code:java}
CREATE TABLE TESTGLOBALINDEXWITHSORTKEY1 ("attr_0" VARCHAR NOT NULL, COL BSON 
CONSTRAINT pk PRIMARY KEY ("attr_0"))  {code}
{code:java}
CREATE INDEX G_IDX_TESTGLOBALINDEXWITHSORTKEY1 ON TESTGLOBALINDEXWITHSORTKEY1 
(BSON_VALUE(COL,'IdS','VARCHAR'),BSON_VALUE(COL,'Id2','DOUBLE')) INCLUDE (COL) 
WHERE BSON_VALUE(COL,'IdS','VARCHAR') IS NOT NULL AND 
BSON_VALUE(COL,'Id2','VARCHAR') IS NOT NULL
{code}
{code:java}
org.apache.phoenix.schema.ColumnNotFoundException: ERROR 504 (42703): Undefined 
column. columnName=TESTGLOBALINDEXWITHSORTKEY1.ATTR_0
 at 
org.apache.phoenix.schema.PTableImpl.getColumnForColumnName(PTableImpl.java:1416)
 at 
org.apache.phoenix.compile.FromCompiler$SingleTableColumnResolver.resolveColumn(FromCompiler.java:541)
 at org.apache.phoenix.compile.UpsertCompiler.compile(UpsertCompiler.java:511)
 at 
org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:1110)
 at 
org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:1096)
 at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:612)
 at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:593)
 at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
 at 
org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:592)
 at 
org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:580)
 at 
org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:181)
 at 
org.apache.phoenix.compile.CreateIndexCompiler.verifyIndexWhere(CreateIndexCompiler.java:196)
 at 
org.apache.phoenix.compile.CreateIndexCompiler.compile(CreateIndexCompiler.java:236)
 at 
org.apache.phoenix.jdbc.PhoenixStatement$ExecutableCreateIndexStatement.compilePlan(PhoenixStatement.java:1504)
 at 
org.apache.phoenix.jdbc.PhoenixStatement$ExecutableCreateIndexStatement.compilePlan(PhoenixStatement.java:1486)
 at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:612)
 at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:593)
 at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
 at 
org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:592)
 at 
org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:580)
 at 
org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:2406) 
{code}
We should always use double quotes when forming the upsert query as part of 
WHERE clause verification during partial index creation. 



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

Reply via email to