You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Hadoop QA (JIRA)" <ji...@apache.org> on 2017/10/25 04:43:00 UTC

[jira] [Commented] (PHOENIX-4290) Full table scan performed for DELETE with table having immutable indexes

    [ https://issues.apache.org/jira/browse/PHOENIX-4290?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16218081#comment-16218081 ] 

Hadoop QA commented on PHOENIX-4290:
------------------------------------

{color:red}-1 overall{color}.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12893857/PHOENIX-4290_wip1.patch
  against master branch at commit 7cdcb2313b08d2eaeb775f0c989642f8d416cfb6.
  ATTACHMENT ID: 12893857

    {color:green}+1 @author{color}.  The patch does not contain any @author tags.

    {color:green}+1 tests included{color}.  The patch appears to include 3 new or modified tests.

    {color:green}+1 javac{color}.  The applied patch does not increase the total number of javac compiler warnings.

    {color:green}+1 release audit{color}.  The applied patch does not increase the total number of release audit warnings.

    {color:red}-1 lineLengths{color}.  The patch introduces the following lines longer than 100:
    +            PreparedStatement psDelete = con.prepareStatement("DELETE FROM " + tableName + " WHERE (HOST, DOMAIN, FEATURE, \"DATE\") = (?,?,?,?)");
+            rs = con.createStatement().executeQuery("SELECT /*+ NO_INDEX */ count(*) FROM " + tableName);
+    private static MutationState deleteRows(StatementContext context, QueryPlan dataPlan, List<TableRef> indexTableRefs, ResultIterator iterator,
+            RowProjector projector, TableRef sourceTableRef, final Map<ColumnReference, Expression>valueGetterMap) throws SQLException {
+                public ImmutableBytesWritable getLatestValue(ColumnReference ref, long ts) throws IOException {
+                    valuePtr.set(cell.getValueArray(), cell.getValueOffset(), cell.getValueLength());
+                        // Create IndexMaintainer based on projected table (i.e. SELECT expressions) so that client-side
+                        IndexMaintainer maintainer = IndexMaintainer.create(projectedTable, indexTableRefs.get(i).getTable(), connection);
+                        indexPtr.set(maintainer.buildRowKey(getter, indexPtr, null, null, HConstants.LATEST_TIMESTAMP));
+            MutationState state = deleteRows(ctx, dataQueryPlan, indexTableRefs, iterator, projector, sourceTableRef, valueGetterMap);

     {color:red}-1 core tests{color}.  The patch failed these unit tests:
     ./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.join.SubqueryIT
./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.DeleteIT
./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.index.ViewIndexIT
./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.index.GlobalImmutableNonTxIndexIT
./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.tx.TxCheckpointIT
./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.index.GlobalImmutableTxIndexIT
./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.index.IndexMaintenanceIT
./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.ConcurrentMutationsIT
./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.index.ImmutableIndexIT
./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.IndexExtendedIT
./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.TenantSpecificTablesDMLIT

Test results: https://builds.apache.org/job/PreCommit-PHOENIX-Build/1569//testReport/
Console output: https://builds.apache.org/job/PreCommit-PHOENIX-Build/1569//console

This message is automatically generated.

> Full table scan performed for DELETE with table having immutable indexes
> ------------------------------------------------------------------------
>
>                 Key: PHOENIX-4290
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-4290
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: James Taylor
>            Assignee: James Taylor
>             Fix For: 4.13.0, 4.12.1
>
>         Attachments: PHOENIX-4290_wip1.patch
>
>
> If a DELETE command is issued with a partial match for the leading part of the primary key, instead of using the data table, when the table has immutable indexes, a full scan will occur against the index.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)