deniskuzZ commented on code in PR #5722:
URL: https://github.com/apache/hive/pull/5722#discussion_r2024462817


##########
iceberg/iceberg-handler/src/test/java/org/apache/iceberg/mr/hive/TestHiveIcebergStatistics.java:
##########
@@ -130,6 +130,28 @@ public void testStatsWithInsert() {
     checkColStatMinMaxValue(identifier.name(), "customer_id", 0, 5);
   }
 
+  @Test
+  public void testStatsWithPessimisticLockInsert() {
+    TableIdentifier identifier = TableIdentifier.of("default", "customers");
+
+    shell.setHiveSessionValue(HiveConf.ConfVars.HIVE_STATS_AUTOGATHER.varname, 
true);
+    
shell.setHiveSessionValue(HiveConf.ConfVars.HIVE_TXN_EXT_LOCKING_ENABLED.varname,
 true);
+    testTables.createTable(shell, identifier.name(), 
HiveIcebergStorageHandlerTestUtils.CUSTOMER_SCHEMA,
+        PartitionSpec.unpartitioned(), fileFormat, ImmutableList.of(), 1,
+        ImmutableMap.of(TableProperties.HIVE_LOCK_ENABLED, "false"));

Review Comment:
   ````
     public LockType getLockType(WriteEntity writeEntity) {
       // Materialized views stored by Iceberg and the MV metadata is stored in 
HMS doesn't need write locking because
       // the locking is done by 
DbTxnManager.acquireMaterializationRebuildLock()
       if (TableType.MATERIALIZED_VIEW == 
writeEntity.getTable().getTableType()) {
         return LockType.SHARED_READ;
       }
       if 
(HiveTableOperations.hiveLockEnabled(writeEntity.getTable().getParameters(), 
conf)) {
         LOG.warn("Pessimistic locking cannot be enabled, set 
HIVE_LOCK_ENABLED=false");
         return LockType.SHARED_READ;
       }
       if (WriteEntity.WriteType.INSERT_OVERWRITE == 
writeEntity.getWriteType()) {
         return LockType.EXCL_WRITE;
       }
       return LockType.SHARED_WRITE;
     }
   
   --------
   
     private static boolean hiveLockEnabled(TableMetadata metadata, 
Configuration conf) {
       return hiveLockEnabled(metadata != null ? metadata.properties() : null, 
conf);
     }
     
     public static boolean hiveLockEnabled(Map<String, String> properties, 
Configuration conf) {
       if (properties != null && 
properties.containsKey(TableProperties.HIVE_LOCK_ENABLED)) {
         // We know that the property is set, so default value will not be used,
         return PropertyUtil.propertyAsBoolean(properties, 
TableProperties.HIVE_LOCK_ENABLED, false);
       }
   
       return conf.getBoolean(
           ConfigProperties.LOCK_HIVE_ENABLED, 
TableProperties.HIVE_LOCK_ENABLED_DEFAULT);
     }
   ````



-- 
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: gitbox-unsubscr...@hive.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: gitbox-unsubscr...@hive.apache.org
For additional commands, e-mail: gitbox-h...@hive.apache.org

Reply via email to