zabetak commented on code in PR #5974:
URL: https://github.com/apache/hive/pull/5974#discussion_r2206749502


##########
ql/src/test/org/apache/hadoop/hive/ql/parse/TestSemanticAnalyzer.java:
##########
@@ -493,4 +494,44 @@ private void checkTablesUsed(String query, Set<String> 
tables) throws Exception
 
     Assert.assertEquals(new TreeSet<>(tables), new TreeSet<>(result));
   }
+
+  @Test
+  public void testValidateJDBCTablePropertiesAreNonAmbiguous() {

Review Comment:
   The method seems to contain three tests and not just one so it would be 
better to split and name them accordingly so that when something fails we know 
exactly where the problem is.



##########
ql/src/test/org/apache/hadoop/hive/ql/parse/TestSemanticAnalyzer.java:
##########
@@ -493,4 +494,44 @@ private void checkTablesUsed(String query, Set<String> 
tables) throws Exception
 
     Assert.assertEquals(new TreeSet<>(tables), new TreeSet<>(result));
   }
+
+  @Test
+  public void testValidateJDBCTablePropertiesAreNonAmbiguous() {

Review Comment:
   Additionally, I am not sure if this is the best class to put these new tests 
but let's revisit this once we agree on the prod changes.



##########
ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java:
##########
@@ -13875,6 +13875,8 @@ private Map<String, String> 
validateAndAddDefaultProperties(
       boolean isTemporaryTable, boolean isTransactional, boolean isManaged, 
String[] qualifiedTabName, boolean isTableTypeChanged) throws SemanticException 
{
     Map<String, String> retValue = 
Optional.ofNullable(tblProp).orElseGet(HashMap::new);
 
+    validateJDBCTablePropertiesAreNonAmbiguous(isExt, storageFormat, retValue);

Review Comment:
   This verification check seems to be specific to the JDBC storage handler so 
it would fit better if the checks were delegated there (or to some other JDBC 
related class). If we start adding storage handler specific behavior here the 
class will start getting tightly coupled with storage that we probably don't 
want.



##########
ql/src/test/org/apache/hadoop/hive/ql/parse/TestSemanticAnalyzer.java:
##########
@@ -493,4 +494,44 @@ private void checkTablesUsed(String query, Set<String> 
tables) throws Exception
 
     Assert.assertEquals(new TreeSet<>(tables), new TreeSet<>(result));
   }
+
+  @Test
+  public void testValidateJDBCTablePropertiesAreNonAmbiguous() {
+    StorageFormat storageFormat = mock(StorageFormat.class);

Review Comment:
   Is it complicated to create a new instance of 
`StorageFormat/JdbcStorageHandler`? There are various drawback when we use 
mocks (debugging complexity, library dependencies, reduce test coverage, etc.) 
so we should strive to avoid it unless it is really complicated to create 
"real" objects.



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