You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2014/09/18 09:53:33 UTC
[jira] [Commented] (PHOENIX-1259) Perform partial scan for ANALYZE
when table salted or local index
[ https://issues.apache.org/jira/browse/PHOENIX-1259?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14138659#comment-14138659 ]
ASF GitHub Bot commented on PHOENIX-1259:
-----------------------------------------
Github user JamesRTaylor commented on a diff in the pull request:
https://github.com/apache/phoenix/pull/12#discussion_r17713508
--- Diff: phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java ---
@@ -462,6 +471,59 @@ public MutationState createTable(CreateTableStatement statement, byte[][] splits
return connection.getQueryServices().updateData(plan);
}
+ public MutationState updateStatistics(UpdateStatisticsStatement updateStatisticsStmt) throws SQLException {
+ TableName tableNameNode = updateStatisticsStmt.getTable().getName();
+ String tableName = tableNameNode.getTableName();
+ // Check before updating the stats if we have reached the configured time to reupdate the stats once again
+ long minTimeForStatsUpdate = connection.getQueryServices().getProps()
+ .getLong(StatisticsConstants.MIN_STATS_FREQ_UPDATION, StatisticsConstants.DEFAULT_STATS_FREQ_UPDATION);
+ ColumnResolver resolver = FromCompiler.getResolver(updateStatisticsStmt, connection);
+ PTable table = resolver.getTables().get(0).getTable();
+ PName physicalName = table.getPhysicalName();
+ byte[] tenantIdBytes = ByteUtil.EMPTY_BYTE_ARRAY;
+ KeyRange analyzeRange = KeyRange.EVERYTHING_RANGE;
+ if (connection.getTenantId() != null && table.getBucketNum() == null) {
+ tenantIdBytes = connection.getTenantId().getBytes();
--- End diff --
Then here if (table.getBucketNum() == null && table.getIndexType() != IndexType.LOCAL)
We need to set tenantIdBytes correctly, even if salted or local. We just don't want to setup a start/stop range.
Once PHOENIX-1259 is fixed, we can remove this special case.
> Perform partial scan for ANALYZE when table salted or local index
> -----------------------------------------------------------------
>
> Key: PHOENIX-1259
> URL: https://issues.apache.org/jira/browse/PHOENIX-1259
> Project: Phoenix
> Issue Type: Bug
> Reporter: James Taylor
> Assignee: ramkrishna.s.vasudevan
>
> If the table is salted or a local index, we can tweak our logic slightly for the start/stop range of the scan we're doing to analyze the table. We should pass three new parameters over:
> - the start key/stop key for the scan
> - a boolean for isSalted (table.getBucketNum() != null)
> - a boolean for isLocalIndex (table.getIndexType() == IndexType.LOCAL)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)