pvary commented on code in PR #3888:
URL: https://github.com/apache/hive/pull/3888#discussion_r1061829069


##########
standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/client/TestTablesCreateDropAlterTruncate.java:
##########
@@ -1183,6 +1193,90 @@ public void testAlterTableAlreadyExists() throws 
Exception {
     }
   }
 
+  @Test
+  public void testAlterTableExpectedPropertyMatch() throws Exception {
+    Table originalTable = testTables[0];
+
+    EnvironmentContext context = new EnvironmentContext();
+    context.putToProperties(hive_metastoreConstants.EXPECTED_PARAMETER_KEY, 
"transient_lastDdlTime");
+    context.putToProperties(hive_metastoreConstants.EXPECTED_PARAMETER_VALUE,
+            originalTable.getParameters().get("transient_lastDdlTime"));
+
+    client.alter_table(originalTable.getCatName(), originalTable.getDbName(), 
originalTable.getTableName(),
+            originalTable, context);
+  }
+
+  @Test(expected = MetaException.class)
+  public void testAlterTableExpectedPropertyDifferent() throws Exception {
+    Table originalTable = testTables[0];
+
+    EnvironmentContext context = new EnvironmentContext();
+    context.putToProperties(hive_metastoreConstants.EXPECTED_PARAMETER_KEY, 
"transient_lastDdlTime");
+    context.putToProperties(hive_metastoreConstants.EXPECTED_PARAMETER_VALUE, 
"alma");
+
+    client.alter_table(originalTable.getCatName(), originalTable.getDbName(), 
originalTable.getTableName(),
+            originalTable, context);
+  }
+
+  /**
+   * This tests ensures that concurrent Iceberg commits will fail. Acceptable 
as a first sanity check.
+   * <p>
+   * I have not found a good way to check that HMS side database commits are 
parallel in the
+   * {@link 
org.apache.hadoop.hive.metastore.HiveAlterHandler#alterTable(RawStore, 
Warehouse, String, String, String, Table, EnvironmentContext, IHMSHandler, 
String)}
+   * call, but this test could be used to manually ensure that using 
breakpoints.
+   */
+  @Test
+  public void testAlterTableExpectedPropertyConcurrent() throws Exception {
+    Table originalTable = testTables[0];
+
+    originalTable.getParameters().put("snapshot", "1");
+    client.alter_table(originalTable.getCatName(), originalTable.getDbName(), 
originalTable.getTableName(),
+            originalTable, null);
+
+    EnvironmentContext context = new EnvironmentContext();

Review Comment:
   Added a short loop (3), since in Derby the concurrent change causes a 
deadlock and the deadlock timeout causes the test to run slowly.



-- 
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]

Reply via email to