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)