danielcweeks commented on code in PR #12808:
URL: https://github.com/apache/iceberg/pull/12808#discussion_r2072166426


##########
bigquery/src/main/java/org/apache/iceberg/gcp/bigquery/BigQueryMetastoreUtils.java:
##########
@@ -0,0 +1,95 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.iceberg.gcp.bigquery;
+
+import com.google.api.services.bigquery.model.ExternalCatalogDatasetOptions;
+import com.google.api.services.bigquery.model.ExternalCatalogTableOptions;
+import com.google.api.services.bigquery.model.SerDeInfo;
+import com.google.api.services.bigquery.model.StorageDescriptor;
+import java.util.Map;
+
+/** Shared utilities for BigQuery Metastore specific functions and constants. 
*/
+public final class BigQueryMetastoreUtils {
+
+  private BigQueryMetastoreUtils() {}
+
+  private static final String HIVE_SERIALIZATION_LIBRARY =
+      "org.apache.iceberg.mr.hive.HiveIcebergSerDe";
+  private static final String HIVE_FILE_INPUT_FORMAT =
+      "org.apache.iceberg.mr.hive.HiveIcebergInputFormat";
+  private static final String HIVE_FILE_OUTPUT_FORMAT =
+      "org.apache.iceberg.mr.hive.HiveIcebergOutputFormat";
+
+  private static final String SERIALIZATION_LIBRARY =
+      "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe";
+  private static final String FILE_INPUT_FORMAT = 
"org.apache.hadoop.mapred.FileInputFormat";
+  private static final String FILE_OUTPUT_FORMAT = 
"org.apache.hadoop.mapred.FileOutputFormat";
+
+  /**
+   * Creates a new ExternalCatalogTableOptions object populated with the 
supported library constants
+   * and parameters given.
+   *
+   * @param locationUri storage location uri
+   * @param parameters table metadata parameters
+   */
+  public static ExternalCatalogTableOptions createExternalCatalogTableOptions(
+      String locationUri, Map<String, String> parameters, boolean 
hiveEngineEnabled) {
+    return new ExternalCatalogTableOptions()
+        .setStorageDescriptor(createStorageDescriptor(locationUri, 
hiveEngineEnabled))
+        .setParameters(parameters);
+  }
+
+  /**
+   * Creates a new ExternalCatalogDatasetOptions object populated with the 
supported library
+   * constants and parameters given.
+   *
+   * @param defaultStorageLocationUri dataset's default location uri
+   * @param metadataParameters metadata parameters for the dataset
+   */
+  public static ExternalCatalogDatasetOptions 
createExternalCatalogDatasetOptions(
+      String defaultStorageLocationUri, Map<String, String> 
metadataParameters) {
+    return new ExternalCatalogDatasetOptions()
+        .setDefaultStorageLocationUri(defaultStorageLocationUri)
+        .setParameters(metadataParameters);
+  }
+
+  private static StorageDescriptor createStorageDescriptor(
+      String locationUri, boolean hiveEngineEnabled) {
+    String inputFormat;
+    String outputFormat;
+    String serializationLibrary;
+    if (hiveEngineEnabled) {
+      serializationLibrary = HIVE_SERIALIZATION_LIBRARY;
+      inputFormat = HIVE_FILE_INPUT_FORMAT;
+      outputFormat = HIVE_FILE_OUTPUT_FORMAT;
+    } else {
+      serializationLibrary = SERIALIZATION_LIBRARY;

Review Comment:
   Why is this even an option?  We can't support anything other Iceberg so why 
are we supporting a way to configure something that cannot be used?



-- 
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: issues-unsubscr...@iceberg.apache.org

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


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

Reply via email to