vikramahuja1001 commented on code in PR #5814:
URL: https://github.com/apache/hive/pull/5814#discussion_r2094503634
##########
standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HiveAlterHandler.java:
##########
@@ -409,23 +409,39 @@ public List<Void> run(List<Partition> input) throws
Exception {
if (runPartitionMetadataUpdate) {
if (cascade || retainOnColRemoval) {
parts = msdb.getPartitions(catName, dbname, name, -1);
- for (Partition part : parts) {
- Partition oldPart = new Partition(part);
- List<FieldSchema> oldCols = part.getSd().getCols();
- part.getSd().setCols(newt.getSd().getCols());
- List<ColumnStatistics> colStats =
updateOrGetPartitionColumnStats(msdb, catName, dbname, name,
- part.getValues(), oldCols, oldt, part, null, null);
- assert (colStats.isEmpty());
- Deadline.checkTimeout();
- if (cascade) {
- msdb.alterPartition(
- catName, dbname, name, part.getValues(), part,
writeIdList);
- } else {
+ String catalogName = catName;
+ String databaseName = dbname;
+ String tableName = name;
+ Table finalOldt = oldt;
+ int partitionBatchSize =
MetastoreConf.getIntVar(handler.getConf(),
+ MetastoreConf.ConfVars.BATCH_RETRIEVE_MAX);
+ Batchable.runBatched(partitionBatchSize, parts, new
Batchable<Partition, Void>() {
Review Comment:
The previously used msdb.alterPartition was only using JDO. The newly added
msdb.alterPartitions API is based on DirectSql.
So this PR is introducing Batching and also using direct sql based
msdb.alterPartitions API.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]