Hi Nanda,
This error occurs if your table is immutable, you have an index on the
table, and your WHERE clause is filtering on a column not contained in all
of the indexes. If that's not the case, would you mind posting a complete
end-to-end test as it's possible you're hitting a bug.
Thanks,
James

On Sat, Feb 20, 2016 at 10:25 AM, Nanda <[email protected]> wrote:

> Hi,
>
> I am using Phoenix 4.4 and when executing the below query i get an
> exception as below,
> I have indexes on the below "some_table" on column report_time in all the
> indexes created.
>
> Delete from some_table where TO_NUMBER(report_time) <= 1455937500000
>
>
>
> java.sql.SQLException: ERROR 1027 (42Y86): All columns referenced in a
> WHERE clause must be available in every index for a table with immutable
> rows. tableName=some_table
>         at
> org.apache.phoenix.exception.SQLExceptionCode$Factory$1.newException(SQLExceptionCode.java:386)
>         at
> org.apache.phoenix.exception.SQLExceptionInfo.buildException(SQLExceptionInfo.java:145)
>         at
> org.apache.phoenix.compile.DeleteCompiler.compile(DeleteCompiler.java:389)
>         at
> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableDeleteStatement.compilePlan(PhoenixStatement.java:546)
>         at
> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableDeleteStatement.compilePlan(PhoenixStatement.java:534)
>         at
> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:302)
>         at
> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:295)
>         at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
>         at
> org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:293)
>         at
> org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1247)
>         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)
>
>
>
> Any Idea what that error exactly meant?
>
> Thanks,
> Nanda
>

Reply via email to