rdblue commented on a change in pull request #3126:
URL: https://github.com/apache/iceberg/pull/3126#discussion_r711799595



##########
File path: 
spark3/src/main/java/org/apache/iceberg/spark/SparkSessionCatalog.java
##########
@@ -240,8 +244,30 @@ public void renameTable(Identifier from, Identifier to) 
throws NoSuchTableExcept
     }
   }
 
+  public boolean isHiveCatalogConfigValid(CaseInsensitiveStringMap options, 
StringBuilder errorMsg) {
+    String hadoopConfUri = 
SparkContext.getOrCreate().conf().get("spark.hadoop.hive.metastore.uris");
+    String catalogConfUri = options.get("uri");
+    if (catalogConfUri != null) {
+      LOG.warn("Don't set uri for SparkSessionCatalog" +
+              "set it only in hive conf");
+      if (!hadoopConfUri.equalsIgnoreCase(catalogConfUri)) {
+        errorMsg.append("Cannot set uri for SparkSessionCatalog: " +
+                "conflicts with Hive conf URI");
+        return false;
+      }
+    }
+    return true;
+  }
+
   @Override
   public final void initialize(String name, CaseInsensitiveStringMap options) {
+    if (options.containsKey("type") && 
options.get("type").equalsIgnoreCase("hive")) {
+      StringBuilder errorMsg = new StringBuilder();
+      if (!isHiveCatalogConfigValid(options, errorMsg)) {
+        throw new UnsupportedOperationException(errorMsg.toString());
+      }
+

Review comment:
       Style: there should be no newline before the block ends, but there 
should be a newline between a control flow block and the next statement.




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