BinShi-SecularBird commented on a change in pull request #419: PHOENIX-4009 Run
UPDATE STATISTICS command by using MR integration on…
URL: https://github.com/apache/phoenix/pull/419#discussion_r246230713
##########
File path:
phoenix-core/src/main/java/org/apache/phoenix/mapreduce/PhoenixInputFormat.java
##########
@@ -180,23 +179,39 @@ private QueryPlan getQueryPlan(final JobContext context,
final Configuration con
try (final Connection connection =
ConnectionUtil.getInputConnection(configuration, overridingProps);
final Statement statement = connection.createStatement()) {
- final String selectStatement =
PhoenixConfigurationUtil.getSelectStatement(configuration);
+ SchemaType schemaType =
PhoenixConfigurationUtil.getSchemaType(configuration);
+
+ String selectStatement;
+ switch (schemaType) {
+ case UPDATE_STATS:
+ // This select statement indicates MR job for full table
scan for stats collection
+ selectStatement = "SELECT * FROM " +
PhoenixConfigurationUtil.getInputTableName(configuration);
+ break;
+ default:
+ selectStatement =
PhoenixConfigurationUtil.getSelectStatement(configuration);
+ }
Preconditions.checkNotNull(selectStatement);
final PhoenixStatement pstmt =
statement.unwrap(PhoenixStatement.class);
// Optimize the query plan so that we potentially use secondary
indexes
final QueryPlan queryPlan = pstmt.optimizeQuery(selectStatement);
final Scan scan = queryPlan.getContext().getScan();
+
+ if (schemaType == SchemaType.UPDATE_STATS) {
+ StatisticsUtil.setScanAttributes(scan, null);
Review comment:
Could you check whether you need to set
"scan.setAttribute(RUN_UPDATE_STATS_ASYNC_ATTRIB, FALSE_BYTES);" here?
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services