This is an automated email from the ASF dual-hosted git repository.
jshao pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gravitino.git
The following commit(s) were added to refs/heads/main by this push:
new b75d58da7 [#4132] feat(bundled-catalog): remove all propertiesMeta
from bundled catalog (#4178)
b75d58da7 is described below
commit b75d58da76cfd62e4524645b7bff5fd5a736ad04
Author: FANNG <[email protected]>
AuthorDate: Tue Jul 23 14:54:34 2024 +0800
[#4132] feat(bundled-catalog): remove all propertiesMeta from bundled
catalog (#4178)
### What changes were proposed in this pull request?
- remove all propertiesMeta from bundled catalog
- rename `bundled-catalog` to `catalog-common`
### Why are the changes needed?
Fix: #4132
### Does this PR introduce _any_ user-facing change?
no
### How was this patch tested?
existing tests
---
catalogs/bundled-catalog/build.gradle.kts | 100 ---------------
.../gravitino/catalog/common/ClassProvider.java | 85 -------------
.../build.gradle.kts} | 25 +---
.../gravitino/catalog/hive/HiveConstants.java | 48 ++++++++
.../catalog/hive/HiveStorageConstants.java | 63 ++++++++++
.../gravitino/catalog/hive/StorageFormat.java | 83 +++++++++++++
.../apache/gravitino/catalog/hive/TableType.java} | 27 ++---
.../gravitino/catalog/jdbc/JdbcConstants.java} | 21 +---
.../lakehouse/iceberg/IcebergConstants.java | 0
.../gravitino/catalog/mysql/MysqlConstants.java} | 26 +---
.../catalog/property/PropertyConverter.java | 0
catalogs/catalog-hive/build.gradle.kts | 1 +
.../catalog/hive/HiveCatalogOperations.java | 1 -
.../catalog/hive/HiveCatalogPropertiesMeta.java | 18 +--
.../catalog/hive/HiveSchemaPropertiesMetadata.java | 2 +-
.../apache/gravitino/catalog/hive/HiveTable.java | 9 +-
.../catalog/hive/HiveTablePropertiesMetadata.java | 135 +++------------------
.../hive/integration/test/CatalogHiveIT.java | 22 ++--
catalogs/catalog-jdbc-common/build.gradle.kts | 1 +
.../catalog/jdbc/JdbcTablePropertiesMetadata.java | 2 +-
catalogs/catalog-jdbc-mysql/build.gradle.kts | 1 +
.../mysql/MysqlTablePropertiesMetadata.java | 10 +-
.../catalog-lakehouse-iceberg/build.gradle.kts | 2 +-
flink-connector/build.gradle.kts | 2 +-
.../connector/hive/HivePropertiesConverter.java | 14 +--
.../hive/TestHivePropertiesConverter.java | 5 +-
.../connector/integration/test/FlinkCommonIT.java | 4 +-
.../integration/test/hive/FlinkHiveCatalogIT.java | 6 +-
settings.gradle.kts | 2 +-
spark-connector/spark-common/build.gradle.kts | 2 +-
.../connector/hive/HivePropertiesConstants.java | 47 ++++---
.../connector/hive/HivePropertiesConverter.java | 5 +-
spark-connector/v3.3/spark/build.gradle.kts | 1 +
spark-connector/v3.4/spark/build.gradle.kts | 1 +
spark-connector/v3.5/spark/build.gradle.kts | 1 +
trino-connector/build.gradle.kts | 2 +-
.../catalog/hive/HiveSchemaPropertyConverter.java | 4 +-
.../catalog/hive/HiveTablePropertyConverter.java | 26 ++--
.../jdbc/mysql/MySQLTablePropertyConverter.java | 7 +-
.../hive/TestHiveCatalogPropertyConverter.java | 16 ---
40 files changed, 329 insertions(+), 498 deletions(-)
diff --git a/catalogs/bundled-catalog/build.gradle.kts
b/catalogs/bundled-catalog/build.gradle.kts
deleted file mode 100644
index a9cc1141b..000000000
--- a/catalogs/bundled-catalog/build.gradle.kts
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * 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.
- */
-
-import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
-
-plugins {
- id("java")
- alias(libs.plugins.shadow)
-}
-
-dependencies {
- implementation(project(":catalogs:catalog-hive"))
- implementation(project(":catalogs:catalog-jdbc-common"))
- implementation(project(":catalogs:catalog-jdbc-mysql"))
- implementation(project(":catalogs:catalog-jdbc-postgresql"))
- implementation(project(":catalogs:catalog-lakehouse-paimon"))
- implementation(project(":core"))
- implementation(libs.slf4j.api)
-}
-
-tasks.withType<ShadowJar>(ShadowJar::class.java) {
- isZip64 = true
- configurations = listOf(project.configurations.compileClasspath.get())
- archiveClassifier.set("")
-
- dependencies {
- exclude("javax.*")
- exclude("org.slf4j.*")
- }
-
- exclude("**/package-info.class")
- exclude("**/*.properties")
- exclude("**/*.html")
- exclude("org/slf4j/**")
- exclude("META-INF")
- exclude("META-INF/**")
- exclude("module-info.class")
- exclude("com/google/**")
- exclude("com/fasterxml/**")
- exclude("javax/**")
- exclude("schema/**")
- exclude("fr/**")
- exclude("google/**")
- exclude("groovy/**")
- exclude("images/**")
- exclude("**/*.conf")
- exclude("**/*.so")
- exclude("**/*.sxd")
- exclude("**/*.xsd")
- exclude("*.ddl")
- exclude("**/*.txt")
- exclude("**/*.md")
- exclude("**/*.dtd")
- exclude("**/*.thrift")
- exclude("**/*.jdo")
- exclude("**/LICENSE")
- exclude("**/*.MF")
- exclude("**/*.xml")
- exclude("*.proto")
- exclude("*.template")
- exclude("webapps")
- exclude("license/*")
- exclude("*.xml")
- exclude("*.css")
- exclude("*.jnilib")
- exclude("*.dll")
- exclude("*.jocl")
- exclude("NOTICE")
-
- minimize()
-}
-
-tasks.jar {
- dependsOn(tasks.named("shadowJar"))
- archiveClassifier.set("empty")
-}
-
-tasks.compileJava {
- dependsOn(":catalogs:catalog-jdbc-postgresql:runtimeJars")
- dependsOn(":catalogs:catalog-lakehouse-paimon:runtimeJars")
- dependsOn(":catalogs:catalog-jdbc-mysql:runtimeJars")
- dependsOn(":catalogs:catalog-hive:runtimeJars")
- dependsOn(":catalogs:catalog-hadoop:runtimeJars")
-}
diff --git
a/catalogs/bundled-catalog/src/main/java/org/apache/gravitino/catalog/common/ClassProvider.java
b/catalogs/bundled-catalog/src/main/java/org/apache/gravitino/catalog/common/ClassProvider.java
deleted file mode 100644
index cc09dce2d..000000000
---
a/catalogs/bundled-catalog/src/main/java/org/apache/gravitino/catalog/common/ClassProvider.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * 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.gravitino.catalog.common;
-
-import java.util.HashSet;
-import java.util.Set;
-import org.apache.gravitino.catalog.hive.HiveCatalogPropertiesMeta;
-import org.apache.gravitino.catalog.hive.HiveSchemaPropertiesMetadata;
-import org.apache.gravitino.catalog.hive.HiveTablePropertiesMetadata;
-import org.apache.gravitino.catalog.jdbc.JdbcTablePropertiesMetadata;
-import org.apache.gravitino.catalog.mysql.MysqlTablePropertiesMetadata;
-import org.apache.gravitino.connector.BasePropertiesMetadata;
-import org.apache.gravitino.connector.PropertiesMetadata;
-import org.apache.gravitino.connector.PropertyEntry;
-
-/**
- * The {@link ClassProvider} class serves as a container for the necessary
classes used by the
- * Apache Gravitino query engine, with a primary focus on classes related to
property metadata.
- *
- * <p>Purpose of this module and class:
- *
- * <pre>
- * - Catalog-related classes are essential for the query engine to directly
access catalog information.
- * - The query engine should be able to detect catalog changes and
automatically reload catalog-related
- * information to ensure synchronization.
- * - Including catalog-related jar packages directly is suboptimal for query
engines as it may introduce
- * unnecessary content.
- * </pre>
- *
- * Therefore, this module is used to store the required classes for the query
engine's
- * functionality.
- */
-@SuppressWarnings("UnusedVariable")
-public class ClassProvider {
-
- private static final Set<Class<?>> BASE_CLASS =
- new HashSet<Class<?>>() {
- {
- add(BasePropertiesMetadata.class);
- add(PropertyEntry.class);
- add(PropertiesMetadata.class);
- }
- };
-
- private static final Set<Class<?>> HIVE_NEED_CLASS =
- new HashSet<Class<?>>() {
- {
- add(HiveTablePropertiesMetadata.class);
- add(HiveSchemaPropertiesMetadata.class);
- add(HiveCatalogPropertiesMeta.class);
- }
- };
-
- private static final Set<Class<?>> MYSQL_NEED_CLASS =
- new HashSet<Class<?>>() {
- {
- add(MysqlTablePropertiesMetadata.class);
- add(JdbcTablePropertiesMetadata.class);
- }
- };
-
- private static final Set<Class<?>> PG_NEED_CLASS =
- new HashSet<Class<?>>() {
- {
- // TODO
- }
- };
-}
diff --git
a/catalogs/catalog-jdbc-common/src/main/java/org/apache/gravitino/catalog/jdbc/JdbcTablePropertiesMetadata.java
b/catalogs/catalog-common/build.gradle.kts
similarity index 52%
copy from
catalogs/catalog-jdbc-common/src/main/java/org/apache/gravitino/catalog/jdbc/JdbcTablePropertiesMetadata.java
copy to catalogs/catalog-common/build.gradle.kts
index 75d0458e5..421e8a229 100644
---
a/catalogs/catalog-jdbc-common/src/main/java/org/apache/gravitino/catalog/jdbc/JdbcTablePropertiesMetadata.java
+++ b/catalogs/catalog-common/build.gradle.kts
@@ -16,25 +16,12 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.gravitino.catalog.jdbc;
-import com.google.common.collect.Maps;
-import java.util.HashMap;
-import java.util.Map;
-import org.apache.gravitino.StringIdentifier;
-import org.apache.gravitino.connector.BasePropertiesMetadata;
-
-public abstract class JdbcTablePropertiesMetadata extends
BasePropertiesMetadata {
-
- public static final String COMMENT_KEY = "comment";
-
- public Map<String, String> transformToJdbcProperties(Map<String, String>
properties) {
- HashMap<String, String> resultProperties = Maps.newHashMap(properties);
- resultProperties.remove(StringIdentifier.ID_KEY);
- return resultProperties;
- }
+plugins {
+ id("java")
+}
- public Map<String, String> convertFromJdbcProperties(Map<String, String>
properties) {
- return properties;
- }
+// try avoid add extra dependencies because it is used by catalogs and
connectors.
+dependencies {
+ implementation(libs.slf4j.api)
}
diff --git
a/catalogs/catalog-common/src/main/java/org/apache/gravitino/catalog/hive/HiveConstants.java
b/catalogs/catalog-common/src/main/java/org/apache/gravitino/catalog/hive/HiveConstants.java
new file mode 100644
index 000000000..8c88f8b20
--- /dev/null
+++
b/catalogs/catalog-common/src/main/java/org/apache/gravitino/catalog/hive/HiveConstants.java
@@ -0,0 +1,48 @@
+/*
+ * 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.gravitino.catalog.hive;
+
+public class HiveConstants {
+ // Catalog properties
+ public static final String METASTORE_URIS = "metastore.uris";
+ public static final String CLIENT_POOL_SIZE = "client.pool-size";
+ public static final String CLIENT_POOL_CACHE_EVICTION_INTERVAL_MS =
+ "client.pool-cache.eviction-interval-ms";
+ public static final String IMPERSONATION_ENABLE = "impersonation-enable";
+ public static final String KEY_TAB_URI = "kerberos.keytab-uri";
+ public static final String PRINCIPAL = "kerberos.principal";
+ public static final String CHECK_INTERVAL_SEC =
"kerberos.check-interval-sec";
+ public static final String FETCH_TIMEOUT_SEC =
"kerberos.keytab-fetch-timeout-sec";
+ public static final String LIST_ALL_TABLES = "list-all-tables";
+
+ // table properties
+ public static final String LOCATION = "location";
+ public static final String COMMENT = "comment";
+ public static final String NUM_FILES = "numFiles";
+ public static final String TOTAL_SIZE = "totalSize";
+ public static final String EXTERNAL = "EXTERNAL";
+ public static final String FORMAT = "format";
+ public static final String TABLE_TYPE = "table-type";
+ public static final String INPUT_FORMAT = "input-format";
+ public static final String OUTPUT_FORMAT = "output-format";
+ public static final String SERDE_NAME = "serde-name";
+ public static final String SERDE_LIB = "serde-lib";
+ public static final String SERDE_PARAMETER_PREFIX = "serde.parameter.";
+ public static final String TRANSIENT_LAST_DDL_TIME = "transient_lastDdlTime";
+}
diff --git
a/catalogs/catalog-common/src/main/java/org/apache/gravitino/catalog/hive/HiveStorageConstants.java
b/catalogs/catalog-common/src/main/java/org/apache/gravitino/catalog/hive/HiveStorageConstants.java
new file mode 100644
index 000000000..1b70d6126
--- /dev/null
+++
b/catalogs/catalog-common/src/main/java/org/apache/gravitino/catalog/hive/HiveStorageConstants.java
@@ -0,0 +1,63 @@
+/*
+ * 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.gravitino.catalog.hive;
+
+public class HiveStorageConstants {
+ static final String SEQUENCEFILE_INPUT_FORMAT_CLASS =
+ "org.apache.hadoop.mapred.SequenceFileInputFormat";
+ static final String SEQUENCEFILE_OUTPUT_FORMAT_CLASS =
+ "org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat";
+
+ public static final String ORC_INPUT_FORMAT_CLASS =
+ "org.apache.hadoop.hive.ql.io.orc.OrcInputFormat";
+ public static final String ORC_OUTPUT_FORMAT_CLASS =
+ "org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat";
+ public static final String ORC_SERDE_CLASS =
"org.apache.hadoop.hive.ql.io.orc.OrcSerde";
+
+ public static final String PARQUET_INPUT_FORMAT_CLASS =
+ "org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat";
+ public static final String PARQUET_OUTPUT_FORMAT_CLASS =
+ "org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat";
+ public static final String PARQUET_SERDE_CLASS =
+ "org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe";
+
+ static final String COLUMNAR_SERDE_CLASS =
"org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe";
+ static final String RCFILE_INPUT_FORMAT_CLASS =
"org.apache.hadoop.hive.ql.io.RCFileInputFormat";
+ static final String RCFILE_OUTPUT_FORMAT_CLASS =
+ "org.apache.hadoop.hive.ql.io.RCFileOutputFormat";
+
+ static final String AVRO_INPUT_FORMAT_CLASS =
+ "org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat";
+ static final String AVRO_OUTPUT_FORMAT_CLASS =
+ "org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat";
+ static final String AVRO_SERDE_CLASS =
"org.apache.hadoop.hive.serde2.avro.AvroSerDe";
+
+ public static final String TEXT_INPUT_FORMAT_CLASS =
"org.apache.hadoop.mapred.TextInputFormat";
+
+ public static final String IGNORE_KEY_OUTPUT_FORMAT_CLASS =
+ "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat";
+ public static final String LAZY_SIMPLE_SERDE_CLASS =
+ "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe";
+
+ static final String JSON_SERDE_CLASS =
"org.apache.hive.hcatalog.data.JsonSerDe";
+
+ public static final String OPENCSV_SERDE_CLASS =
"org.apache.hadoop.hive.serde2.OpenCSVSerde";
+
+ static final String REGEX_SERDE_CLASS =
"org.apache.hadoop.hive.serde2.RegexSerDe";
+}
diff --git
a/catalogs/catalog-common/src/main/java/org/apache/gravitino/catalog/hive/StorageFormat.java
b/catalogs/catalog-common/src/main/java/org/apache/gravitino/catalog/hive/StorageFormat.java
new file mode 100644
index 000000000..51b33a74a
--- /dev/null
+++
b/catalogs/catalog-common/src/main/java/org/apache/gravitino/catalog/hive/StorageFormat.java
@@ -0,0 +1,83 @@
+/*
+ * 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.gravitino.catalog.hive;
+
+public enum StorageFormat {
+ SEQUENCEFILE(
+ HiveStorageConstants.SEQUENCEFILE_INPUT_FORMAT_CLASS,
+ HiveStorageConstants.SEQUENCEFILE_OUTPUT_FORMAT_CLASS,
+ HiveStorageConstants.LAZY_SIMPLE_SERDE_CLASS),
+ TEXTFILE(
+ HiveStorageConstants.TEXT_INPUT_FORMAT_CLASS,
+ HiveStorageConstants.IGNORE_KEY_OUTPUT_FORMAT_CLASS,
+ HiveStorageConstants.LAZY_SIMPLE_SERDE_CLASS),
+ RCFILE(
+ HiveStorageConstants.RCFILE_INPUT_FORMAT_CLASS,
+ HiveStorageConstants.RCFILE_OUTPUT_FORMAT_CLASS,
+ HiveStorageConstants.COLUMNAR_SERDE_CLASS),
+ ORC(
+ HiveStorageConstants.ORC_INPUT_FORMAT_CLASS,
+ HiveStorageConstants.ORC_OUTPUT_FORMAT_CLASS,
+ HiveStorageConstants.ORC_SERDE_CLASS),
+ PARQUET(
+ HiveStorageConstants.PARQUET_INPUT_FORMAT_CLASS,
+ HiveStorageConstants.PARQUET_OUTPUT_FORMAT_CLASS,
+ HiveStorageConstants.PARQUET_SERDE_CLASS),
+ AVRO(
+ HiveStorageConstants.AVRO_INPUT_FORMAT_CLASS,
+ HiveStorageConstants.AVRO_OUTPUT_FORMAT_CLASS,
+ HiveStorageConstants.AVRO_SERDE_CLASS),
+ JSON(
+ HiveStorageConstants.TEXT_INPUT_FORMAT_CLASS,
+ HiveStorageConstants.IGNORE_KEY_OUTPUT_FORMAT_CLASS,
+ HiveStorageConstants.JSON_SERDE_CLASS),
+ CSV(
+ HiveStorageConstants.TEXT_INPUT_FORMAT_CLASS,
+ HiveStorageConstants.IGNORE_KEY_OUTPUT_FORMAT_CLASS,
+ HiveStorageConstants.OPENCSV_SERDE_CLASS),
+ REGEX(
+ HiveStorageConstants.TEXT_INPUT_FORMAT_CLASS,
+ HiveStorageConstants.IGNORE_KEY_OUTPUT_FORMAT_CLASS,
+ HiveStorageConstants.REGEX_SERDE_CLASS);
+
+ private final String inputFormat;
+ private final String outputFormat;
+ private final String serde;
+
+ StorageFormat(String inputFormat, String outputFormat, String serde) {
+ if (inputFormat == null) throw new RuntimeException("inputFormat must not
be null");
+ if (outputFormat == null) throw new RuntimeException("outputFormat must
not be null");
+ if (serde == null) throw new RuntimeException("serde must not be null");
+ this.inputFormat = inputFormat;
+ this.outputFormat = outputFormat;
+ this.serde = serde;
+ }
+
+ public String getInputFormat() {
+ return inputFormat;
+ }
+
+ public String getOutputFormat() {
+ return outputFormat;
+ }
+
+ public String getSerde() {
+ return serde;
+ }
+}
diff --git
a/catalogs/catalog-jdbc-common/src/main/java/org/apache/gravitino/catalog/jdbc/JdbcTablePropertiesMetadata.java
b/catalogs/catalog-common/src/main/java/org/apache/gravitino/catalog/hive/TableType.java
similarity index 52%
copy from
catalogs/catalog-jdbc-common/src/main/java/org/apache/gravitino/catalog/jdbc/JdbcTablePropertiesMetadata.java
copy to
catalogs/catalog-common/src/main/java/org/apache/gravitino/catalog/hive/TableType.java
index 75d0458e5..f52df1b13 100644
---
a/catalogs/catalog-jdbc-common/src/main/java/org/apache/gravitino/catalog/jdbc/JdbcTablePropertiesMetadata.java
+++
b/catalogs/catalog-common/src/main/java/org/apache/gravitino/catalog/hive/TableType.java
@@ -16,25 +16,12 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.gravitino.catalog.jdbc;
+package org.apache.gravitino.catalog.hive;
-import com.google.common.collect.Maps;
-import java.util.HashMap;
-import java.util.Map;
-import org.apache.gravitino.StringIdentifier;
-import org.apache.gravitino.connector.BasePropertiesMetadata;
-
-public abstract class JdbcTablePropertiesMetadata extends
BasePropertiesMetadata {
-
- public static final String COMMENT_KEY = "comment";
-
- public Map<String, String> transformToJdbcProperties(Map<String, String>
properties) {
- HashMap<String, String> resultProperties = Maps.newHashMap(properties);
- resultProperties.remove(StringIdentifier.ID_KEY);
- return resultProperties;
- }
-
- public Map<String, String> convertFromJdbcProperties(Map<String, String>
properties) {
- return properties;
- }
+public enum TableType {
+ MANAGED_TABLE,
+ EXTERNAL_TABLE,
+ VIRTUAL_VIEW,
+ INDEX_TABLE,
+ VIRTUAL_INDEX,
}
diff --git
a/catalogs/catalog-jdbc-common/src/main/java/org/apache/gravitino/catalog/jdbc/JdbcTablePropertiesMetadata.java
b/catalogs/catalog-common/src/main/java/org/apache/gravitino/catalog/jdbc/JdbcConstants.java
similarity index 54%
copy from
catalogs/catalog-jdbc-common/src/main/java/org/apache/gravitino/catalog/jdbc/JdbcTablePropertiesMetadata.java
copy to
catalogs/catalog-common/src/main/java/org/apache/gravitino/catalog/jdbc/JdbcConstants.java
index 75d0458e5..29fc64dd1 100644
---
a/catalogs/catalog-jdbc-common/src/main/java/org/apache/gravitino/catalog/jdbc/JdbcTablePropertiesMetadata.java
+++
b/catalogs/catalog-common/src/main/java/org/apache/gravitino/catalog/jdbc/JdbcConstants.java
@@ -18,23 +18,6 @@
*/
package org.apache.gravitino.catalog.jdbc;
-import com.google.common.collect.Maps;
-import java.util.HashMap;
-import java.util.Map;
-import org.apache.gravitino.StringIdentifier;
-import org.apache.gravitino.connector.BasePropertiesMetadata;
-
-public abstract class JdbcTablePropertiesMetadata extends
BasePropertiesMetadata {
-
- public static final String COMMENT_KEY = "comment";
-
- public Map<String, String> transformToJdbcProperties(Map<String, String>
properties) {
- HashMap<String, String> resultProperties = Maps.newHashMap(properties);
- resultProperties.remove(StringIdentifier.ID_KEY);
- return resultProperties;
- }
-
- public Map<String, String> convertFromJdbcProperties(Map<String, String>
properties) {
- return properties;
- }
+public class JdbcConstants {
+ public static final String COMMENT = "comment";
}
diff --git
a/catalogs/bundled-catalog/src/main/java/org/apache/gravitino/catalog/lakehouse/iceberg/IcebergConstants.java
b/catalogs/catalog-common/src/main/java/org/apache/gravitino/catalog/lakehouse/iceberg/IcebergConstants.java
similarity index 100%
rename from
catalogs/bundled-catalog/src/main/java/org/apache/gravitino/catalog/lakehouse/iceberg/IcebergConstants.java
rename to
catalogs/catalog-common/src/main/java/org/apache/gravitino/catalog/lakehouse/iceberg/IcebergConstants.java
diff --git
a/catalogs/catalog-jdbc-common/src/main/java/org/apache/gravitino/catalog/jdbc/JdbcTablePropertiesMetadata.java
b/catalogs/catalog-common/src/main/java/org/apache/gravitino/catalog/mysql/MysqlConstants.java
similarity index 52%
copy from
catalogs/catalog-jdbc-common/src/main/java/org/apache/gravitino/catalog/jdbc/JdbcTablePropertiesMetadata.java
copy to
catalogs/catalog-common/src/main/java/org/apache/gravitino/catalog/mysql/MysqlConstants.java
index 75d0458e5..0915f6247 100644
---
a/catalogs/catalog-jdbc-common/src/main/java/org/apache/gravitino/catalog/jdbc/JdbcTablePropertiesMetadata.java
+++
b/catalogs/catalog-common/src/main/java/org/apache/gravitino/catalog/mysql/MysqlConstants.java
@@ -16,25 +16,11 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.gravitino.catalog.jdbc;
+package org.apache.gravitino.catalog.mysql;
-import com.google.common.collect.Maps;
-import java.util.HashMap;
-import java.util.Map;
-import org.apache.gravitino.StringIdentifier;
-import org.apache.gravitino.connector.BasePropertiesMetadata;
-
-public abstract class JdbcTablePropertiesMetadata extends
BasePropertiesMetadata {
-
- public static final String COMMENT_KEY = "comment";
-
- public Map<String, String> transformToJdbcProperties(Map<String, String>
properties) {
- HashMap<String, String> resultProperties = Maps.newHashMap(properties);
- resultProperties.remove(StringIdentifier.ID_KEY);
- return resultProperties;
- }
-
- public Map<String, String> convertFromJdbcProperties(Map<String, String>
properties) {
- return properties;
- }
+public class MysqlConstants {
+ public static final String GRAVITINO_ENGINE_KEY = "engine";
+ public static final String MYSQL_ENGINE_KEY = "ENGINE";
+ public static final String GRAVITINO_AUTO_INCREMENT_OFFSET_KEY =
"auto-increment-offset";
+ public static final String MYSQL_AUTO_INCREMENT_OFFSET_KEY =
"AUTO_INCREMENT";
}
diff --git
a/catalogs/bundled-catalog/src/main/java/org/apache/gravitino/catalog/property/PropertyConverter.java
b/catalogs/catalog-common/src/main/java/org/apache/gravitino/catalog/property/PropertyConverter.java
similarity index 100%
rename from
catalogs/bundled-catalog/src/main/java/org/apache/gravitino/catalog/property/PropertyConverter.java
rename to
catalogs/catalog-common/src/main/java/org/apache/gravitino/catalog/property/PropertyConverter.java
diff --git a/catalogs/catalog-hive/build.gradle.kts
b/catalogs/catalog-hive/build.gradle.kts
index 1a8a9015a..da7284292 100644
--- a/catalogs/catalog-hive/build.gradle.kts
+++ b/catalogs/catalog-hive/build.gradle.kts
@@ -31,6 +31,7 @@ val scalaCollectionCompatVersion: String =
libs.versions.scala.collection.compat
dependencies {
implementation(project(":api"))
+ implementation(project(":catalogs:catalog-common"))
implementation(project(":core"))
implementation(libs.caffeine)
diff --git
a/catalogs/catalog-hive/src/main/java/org/apache/gravitino/catalog/hive/HiveCatalogOperations.java
b/catalogs/catalog-hive/src/main/java/org/apache/gravitino/catalog/hive/HiveCatalogOperations.java
index 572af9fe1..a7f70b97e 100644
---
a/catalogs/catalog-hive/src/main/java/org/apache/gravitino/catalog/hive/HiveCatalogOperations.java
+++
b/catalogs/catalog-hive/src/main/java/org/apache/gravitino/catalog/hive/HiveCatalogOperations.java
@@ -59,7 +59,6 @@ import org.apache.gravitino.Catalog;
import org.apache.gravitino.NameIdentifier;
import org.apache.gravitino.Namespace;
import org.apache.gravitino.SchemaChange;
-import org.apache.gravitino.catalog.hive.HiveTablePropertiesMetadata.TableType;
import org.apache.gravitino.connector.CatalogInfo;
import org.apache.gravitino.connector.CatalogOperations;
import org.apache.gravitino.connector.HasPropertyMetadata;
diff --git
a/catalogs/catalog-hive/src/main/java/org/apache/gravitino/catalog/hive/HiveCatalogPropertiesMeta.java
b/catalogs/catalog-hive/src/main/java/org/apache/gravitino/catalog/hive/HiveCatalogPropertiesMeta.java
index 1c4548362..a9eb8b0fb 100644
---
a/catalogs/catalog-hive/src/main/java/org/apache/gravitino/catalog/hive/HiveCatalogPropertiesMeta.java
+++
b/catalogs/catalog-hive/src/main/java/org/apache/gravitino/catalog/hive/HiveCatalogPropertiesMeta.java
@@ -27,30 +27,30 @@ import org.apache.gravitino.connector.PropertyEntry;
public class HiveCatalogPropertiesMeta extends BaseCatalogPropertiesMetadata {
- public static final String CLIENT_POOL_SIZE = "client.pool-size";
+ public static final String CLIENT_POOL_SIZE = HiveConstants.CLIENT_POOL_SIZE;
public static final int DEFAULT_CLIENT_POOL_SIZE = 1;
- public static final String METASTORE_URIS = "metastore.uris";
+ public static final String METASTORE_URIS = HiveConstants.METASTORE_URIS;
public static final String CLIENT_POOL_CACHE_EVICTION_INTERVAL_MS =
- "client.pool-cache.eviction-interval-ms";
+ HiveConstants.CLIENT_POOL_CACHE_EVICTION_INTERVAL_MS;
public static final long DEFAULT_CLIENT_POOL_CACHE_EVICTION_INTERVAL_MS =
TimeUnit.MINUTES.toMillis(5);
- public static final String IMPERSONATION_ENABLE = "impersonation-enable";
+ public static final String IMPERSONATION_ENABLE =
HiveConstants.IMPERSONATION_ENABLE;
public static final boolean DEFAULT_IMPERSONATION_ENABLE = false;
- public static final String KEY_TAB_URI = "kerberos.keytab-uri";
+ public static final String KEY_TAB_URI = HiveConstants.KEY_TAB_URI;
- public static final String PRINCIPAL = "kerberos.principal";
+ public static final String PRINCIPAL = HiveConstants.PRINCIPAL;
- public static final String CHECK_INTERVAL_SEC =
"kerberos.check-interval-sec";
+ public static final String CHECK_INTERVAL_SEC =
HiveConstants.CHECK_INTERVAL_SEC;
- public static final String FETCH_TIMEOUT_SEC =
"kerberos.keytab-fetch-timeout-sec";
+ public static final String FETCH_TIMEOUT_SEC =
HiveConstants.FETCH_TIMEOUT_SEC;
- public static final String LIST_ALL_TABLES = "list-all-tables";
+ public static final String LIST_ALL_TABLES = HiveConstants.LIST_ALL_TABLES;
public static final boolean DEFAULT_LIST_ALL_TABLES = false;
diff --git
a/catalogs/catalog-hive/src/main/java/org/apache/gravitino/catalog/hive/HiveSchemaPropertiesMetadata.java
b/catalogs/catalog-hive/src/main/java/org/apache/gravitino/catalog/hive/HiveSchemaPropertiesMetadata.java
index 992e273e5..6de5e0dfd 100644
---
a/catalogs/catalog-hive/src/main/java/org/apache/gravitino/catalog/hive/HiveSchemaPropertiesMetadata.java
+++
b/catalogs/catalog-hive/src/main/java/org/apache/gravitino/catalog/hive/HiveSchemaPropertiesMetadata.java
@@ -28,7 +28,7 @@ import org.apache.gravitino.connector.BasePropertiesMetadata;
import org.apache.gravitino.connector.PropertyEntry;
public class HiveSchemaPropertiesMetadata extends BasePropertiesMetadata {
- public static final String LOCATION = "location";
+ public static final String LOCATION = HiveConstants.LOCATION;
private static final Map<String, PropertyEntry<?>> propertiesMetadata;
static {
diff --git
a/catalogs/catalog-hive/src/main/java/org/apache/gravitino/catalog/hive/HiveTable.java
b/catalogs/catalog-hive/src/main/java/org/apache/gravitino/catalog/hive/HiveTable.java
index faa0d8035..bb5d865e9 100644
---
a/catalogs/catalog-hive/src/main/java/org/apache/gravitino/catalog/hive/HiveTable.java
+++
b/catalogs/catalog-hive/src/main/java/org/apache/gravitino/catalog/hive/HiveTable.java
@@ -33,7 +33,6 @@ import java.util.stream.Stream;
import lombok.ToString;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.ArrayUtils;
-import org.apache.gravitino.catalog.hive.HiveTablePropertiesMetadata.TableType;
import org.apache.gravitino.catalog.hive.converter.HiveDataTypeConverter;
import org.apache.gravitino.connector.BaseTable;
import org.apache.gravitino.connector.PropertiesMetadata;
@@ -286,8 +285,8 @@ public class HiveTable extends BaseTable {
.ifPresent(l ->
sd.setLocation(properties().get(HiveTablePropertiesMetadata.LOCATION)));
sd.setSerdeInfo(buildSerDeInfo(tablePropertiesMetadata));
- HiveTablePropertiesMetadata.StorageFormat storageFormat =
- (HiveTablePropertiesMetadata.StorageFormat)
+ StorageFormat storageFormat =
+ (StorageFormat)
tablePropertiesMetadata.getOrDefault(properties(),
HiveTablePropertiesMetadata.FORMAT);
sd.setInputFormat(storageFormat.getInputFormat());
sd.setOutputFormat(storageFormat.getOutputFormat());
@@ -321,8 +320,8 @@ public class HiveTable extends BaseTable {
SerDeInfo serDeInfo = new SerDeInfo();
serDeInfo.setName(properties().getOrDefault(HiveTablePropertiesMetadata.SERDE_NAME,
name()));
- HiveTablePropertiesMetadata.StorageFormat storageFormat =
- (HiveTablePropertiesMetadata.StorageFormat)
+ StorageFormat storageFormat =
+ (StorageFormat)
tablePropertiesMetadata.getOrDefault(properties(),
HiveTablePropertiesMetadata.FORMAT);
serDeInfo.setSerializationLib(storageFormat.getSerde());
// Individually specified SERDE_LIB can override the serdeLib of FORMAT
diff --git
a/catalogs/catalog-hive/src/main/java/org/apache/gravitino/catalog/hive/HiveTablePropertiesMetadata.java
b/catalogs/catalog-hive/src/main/java/org/apache/gravitino/catalog/hive/HiveTablePropertiesMetadata.java
index fdc364956..4508e8adc 100644
---
a/catalogs/catalog-hive/src/main/java/org/apache/gravitino/catalog/hive/HiveTablePropertiesMetadata.java
+++
b/catalogs/catalog-hive/src/main/java/org/apache/gravitino/catalog/hive/HiveTablePropertiesMetadata.java
@@ -18,15 +18,11 @@
*/
package org.apache.gravitino.catalog.hive;
-import static
org.apache.gravitino.catalog.hive.HiveTablePropertiesMetadata.StorageFormat.TEXTFILE;
-import static
org.apache.gravitino.catalog.hive.HiveTablePropertiesMetadata.TableType.MANAGED_TABLE;
import static
org.apache.gravitino.connector.PropertyEntry.booleanReservedPropertyEntry;
import static
org.apache.gravitino.connector.PropertyEntry.enumImmutablePropertyEntry;
import static
org.apache.gravitino.connector.PropertyEntry.stringImmutablePropertyEntry;
import static
org.apache.gravitino.connector.PropertyEntry.stringReservedPropertyEntry;
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Maps;
import java.util.List;
@@ -35,114 +31,19 @@ import
org.apache.gravitino.connector.BasePropertiesMetadata;
import org.apache.gravitino.connector.PropertyEntry;
public class HiveTablePropertiesMetadata extends BasePropertiesMetadata {
- public static final String COMMENT = "comment";
- public static final String NUM_FILES = "numFiles";
- public static final String TOTAL_SIZE = "totalSize";
- public static final String EXTERNAL = "EXTERNAL";
- public static final String LOCATION = "location";
- public static final String FORMAT = "format";
- public static final String TABLE_TYPE = "table-type";
- public static final String INPUT_FORMAT = "input-format";
- public static final String OUTPUT_FORMAT = "output-format";
- public static final String SERDE_NAME = "serde-name";
- public static final String SERDE_LIB = "serde-lib";
- public static final String SERDE_PARAMETER_PREFIX = "serde.parameter.";
- public static final String TRANSIENT_LAST_DDL_TIME = "transient_lastDdlTime";
-
- public static final String TEXT_INPUT_FORMAT_CLASS =
"org.apache.hadoop.mapred.TextInputFormat";
- public static final String IGNORE_KEY_OUTPUT_FORMAT_CLASS =
- "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat";
- public static final String LAZY_SIMPLE_SERDE_CLASS =
- "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe";
-
- private static final String SEQUENCEFILE_INPUT_FORMAT_CLASS =
- "org.apache.hadoop.mapred.SequenceFileInputFormat";
- private static final String SEQUENCEFILE_OUTPUT_FORMAT_CLASS =
- "org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat";
-
- @VisibleForTesting
- public static final String ORC_INPUT_FORMAT_CLASS =
- "org.apache.hadoop.hive.ql.io.orc.OrcInputFormat";
-
- @VisibleForTesting
- public static final String ORC_OUTPUT_FORMAT_CLASS =
- "org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat";
-
- @VisibleForTesting
- public static final String ORC_SERDE_CLASS =
"org.apache.hadoop.hive.ql.io.orc.OrcSerde";
-
- public static final String PARQUET_INPUT_FORMAT_CLASS =
- "org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat";
- public static final String PARQUET_OUTPUT_FORMAT_CLASS =
- "org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat";
- public static final String PARQUET_SERDE_CLASS =
- "org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe";
- private static final String COLUMNAR_SERDE_CLASS =
- "org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe";
- private static final String RCFILE_INPUT_FORMAT_CLASS =
- "org.apache.hadoop.hive.ql.io.RCFileInputFormat";
- private static final String RCFILE_OUTPUT_FORMAT_CLASS =
- "org.apache.hadoop.hive.ql.io.RCFileOutputFormat";
- private static final String AVRO_INPUT_FORMAT_CLASS =
- "org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat";
- private static final String AVRO_OUTPUT_FORMAT_CLASS =
- "org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat";
- private static final String AVRO_SERDE_CLASS =
"org.apache.hadoop.hive.serde2.avro.AvroSerDe";
- private static final String JSON_SERDE_CLASS =
"org.apache.hive.hcatalog.data.JsonSerDe";
-
- @VisibleForTesting
- public static final String OPENCSV_SERDE_CLASS =
"org.apache.hadoop.hive.serde2.OpenCSVSerde";
-
- private static final String REGEX_SERDE_CLASS =
"org.apache.hadoop.hive.serde2.RegexSerDe";
-
- public enum TableType {
- MANAGED_TABLE,
- EXTERNAL_TABLE,
- VIRTUAL_VIEW,
- INDEX_TABLE,
- VIRTUAL_INDEX,
- }
-
- // In embedded test mode, HiveTablePropertiesMetadata will be loaded by
spark connector which has
- // different classloaders with Hive catalog. If StorageFormat is package
scope, it couldn't
- // be accessed by Hive catalog related classes in same package, so making it
public.
- public enum StorageFormat {
- SEQUENCEFILE(
- SEQUENCEFILE_INPUT_FORMAT_CLASS, SEQUENCEFILE_OUTPUT_FORMAT_CLASS,
LAZY_SIMPLE_SERDE_CLASS),
- TEXTFILE(TEXT_INPUT_FORMAT_CLASS, IGNORE_KEY_OUTPUT_FORMAT_CLASS,
LAZY_SIMPLE_SERDE_CLASS),
- RCFILE(RCFILE_INPUT_FORMAT_CLASS, RCFILE_OUTPUT_FORMAT_CLASS,
COLUMNAR_SERDE_CLASS),
- ORC(ORC_INPUT_FORMAT_CLASS, ORC_OUTPUT_FORMAT_CLASS, ORC_SERDE_CLASS),
- PARQUET(PARQUET_INPUT_FORMAT_CLASS, PARQUET_OUTPUT_FORMAT_CLASS,
PARQUET_SERDE_CLASS),
- AVRO(AVRO_INPUT_FORMAT_CLASS, AVRO_OUTPUT_FORMAT_CLASS, AVRO_SERDE_CLASS),
- JSON(TEXT_INPUT_FORMAT_CLASS, IGNORE_KEY_OUTPUT_FORMAT_CLASS,
JSON_SERDE_CLASS),
- CSV(TEXT_INPUT_FORMAT_CLASS, IGNORE_KEY_OUTPUT_FORMAT_CLASS,
OPENCSV_SERDE_CLASS),
- REGEX(TEXT_INPUT_FORMAT_CLASS, IGNORE_KEY_OUTPUT_FORMAT_CLASS,
REGEX_SERDE_CLASS);
-
- private final String inputFormat;
- private final String outputFormat;
- private final String serde;
-
- StorageFormat(String inputFormat, String outputFormat, String serde) {
- Preconditions.checkArgument(inputFormat != null, "inputFormat must not
be null");
- Preconditions.checkArgument(outputFormat != null, "outputFormat must not
be null");
- Preconditions.checkArgument(serde != null, "serde must not be null");
- this.inputFormat = inputFormat;
- this.outputFormat = outputFormat;
- this.serde = serde;
- }
-
- public String getInputFormat() {
- return inputFormat;
- }
-
- public String getOutputFormat() {
- return outputFormat;
- }
-
- public String getSerde() {
- return serde;
- }
- }
+ public static final String COMMENT = HiveConstants.COMMENT;
+ public static final String NUM_FILES = HiveConstants.NUM_FILES;
+ public static final String TOTAL_SIZE = HiveConstants.TOTAL_SIZE;
+ public static final String EXTERNAL = HiveConstants.EXTERNAL;
+ public static final String LOCATION = HiveConstants.LOCATION;
+ public static final String FORMAT = HiveConstants.FORMAT;
+ public static final String TABLE_TYPE = HiveConstants.TABLE_TYPE;
+ public static final String INPUT_FORMAT = HiveConstants.INPUT_FORMAT;
+ public static final String OUTPUT_FORMAT = HiveConstants.OUTPUT_FORMAT;
+ public static final String SERDE_NAME = HiveConstants.SERDE_NAME;
+ public static final String SERDE_LIB = HiveConstants.SERDE_LIB;
+ public static final String SERDE_PARAMETER_PREFIX =
HiveConstants.SERDE_PARAMETER_PREFIX;
+ public static final String TRANSIENT_LAST_DDL_TIME =
HiveConstants.TRANSIENT_LAST_DDL_TIME;
private static final Map<String, PropertyEntry<?>> propertiesMetadata;
@@ -166,7 +67,7 @@ public class HiveTablePropertiesMetadata extends
BasePropertiesMetadata {
"Type of the table",
false,
TableType.class,
- MANAGED_TABLE,
+ TableType.MANAGED_TABLE,
false,
false),
enumImmutablePropertyEntry(
@@ -174,21 +75,21 @@ public class HiveTablePropertiesMetadata extends
BasePropertiesMetadata {
"The table file format",
false,
StorageFormat.class,
- TEXTFILE,
+ StorageFormat.TEXTFILE,
false,
false),
stringImmutablePropertyEntry(
INPUT_FORMAT,
"The input format class for the table",
false,
- TEXT_INPUT_FORMAT_CLASS,
+ HiveStorageConstants.TEXT_INPUT_FORMAT_CLASS,
false,
false),
stringImmutablePropertyEntry(
OUTPUT_FORMAT,
"The output format class for the table",
false,
- IGNORE_KEY_OUTPUT_FORMAT_CLASS,
+ HiveStorageConstants.IGNORE_KEY_OUTPUT_FORMAT_CLASS,
false,
false),
stringReservedPropertyEntry(TRANSIENT_LAST_DDL_TIME, "Last DDL
time", false),
@@ -198,7 +99,7 @@ public class HiveTablePropertiesMetadata extends
BasePropertiesMetadata {
SERDE_LIB,
"The serde library class for the table",
false,
- LAZY_SIMPLE_SERDE_CLASS,
+ HiveStorageConstants.LAZY_SIMPLE_SERDE_CLASS,
false,
false));
diff --git
a/catalogs/catalog-hive/src/test/java/org/apache/gravitino/catalog/hive/integration/test/CatalogHiveIT.java
b/catalogs/catalog-hive/src/test/java/org/apache/gravitino/catalog/hive/integration/test/CatalogHiveIT.java
index a2d2e9995..64c9f50ee 100644
---
a/catalogs/catalog-hive/src/test/java/org/apache/gravitino/catalog/hive/integration/test/CatalogHiveIT.java
+++
b/catalogs/catalog-hive/src/test/java/org/apache/gravitino/catalog/hive/integration/test/CatalogHiveIT.java
@@ -22,19 +22,16 @@ import static
org.apache.gravitino.catalog.hive.HiveCatalogPropertiesMeta.METAST
import static
org.apache.gravitino.catalog.hive.HiveTablePropertiesMetadata.COMMENT;
import static
org.apache.gravitino.catalog.hive.HiveTablePropertiesMetadata.EXTERNAL;
import static
org.apache.gravitino.catalog.hive.HiveTablePropertiesMetadata.FORMAT;
-import static
org.apache.gravitino.catalog.hive.HiveTablePropertiesMetadata.IGNORE_KEY_OUTPUT_FORMAT_CLASS;
import static
org.apache.gravitino.catalog.hive.HiveTablePropertiesMetadata.INPUT_FORMAT;
import static
org.apache.gravitino.catalog.hive.HiveTablePropertiesMetadata.LOCATION;
import static
org.apache.gravitino.catalog.hive.HiveTablePropertiesMetadata.NUM_FILES;
-import static
org.apache.gravitino.catalog.hive.HiveTablePropertiesMetadata.OPENCSV_SERDE_CLASS;
import static
org.apache.gravitino.catalog.hive.HiveTablePropertiesMetadata.OUTPUT_FORMAT;
import static
org.apache.gravitino.catalog.hive.HiveTablePropertiesMetadata.SERDE_LIB;
import static
org.apache.gravitino.catalog.hive.HiveTablePropertiesMetadata.TABLE_TYPE;
-import static
org.apache.gravitino.catalog.hive.HiveTablePropertiesMetadata.TEXT_INPUT_FORMAT_CLASS;
import static
org.apache.gravitino.catalog.hive.HiveTablePropertiesMetadata.TOTAL_SIZE;
import static
org.apache.gravitino.catalog.hive.HiveTablePropertiesMetadata.TRANSIENT_LAST_DDL_TIME;
-import static
org.apache.gravitino.catalog.hive.HiveTablePropertiesMetadata.TableType.EXTERNAL_TABLE;
-import static
org.apache.gravitino.catalog.hive.HiveTablePropertiesMetadata.TableType.MANAGED_TABLE;
+import static org.apache.gravitino.catalog.hive.TableType.EXTERNAL_TABLE;
+import static org.apache.gravitino.catalog.hive.TableType.MANAGED_TABLE;
import static org.apache.hadoop.hive.serde.serdeConstants.DATE_TYPE_NAME;
import static org.apache.hadoop.hive.serde.serdeConstants.INT_TYPE_NAME;
import static org.apache.hadoop.hive.serde.serdeConstants.STRING_TYPE_NAME;
@@ -64,8 +61,9 @@ import org.apache.gravitino.auth.AuthConstants;
import org.apache.gravitino.catalog.hive.HiveCatalogOperations;
import org.apache.gravitino.catalog.hive.HiveClientPool;
import org.apache.gravitino.catalog.hive.HiveSchemaPropertiesMetadata;
+import org.apache.gravitino.catalog.hive.HiveStorageConstants;
import org.apache.gravitino.catalog.hive.HiveTablePropertiesMetadata;
-import org.apache.gravitino.catalog.hive.HiveTablePropertiesMetadata.TableType;
+import org.apache.gravitino.catalog.hive.TableType;
import org.apache.gravitino.client.GravitinoMetalake;
import org.apache.gravitino.connector.BaseCatalog;
import org.apache.gravitino.exceptions.NoSuchCatalogException;
@@ -594,15 +592,19 @@ public class CatalogHiveIT extends AbstractIT {
FORMAT,
"textfile",
SERDE_LIB,
- OPENCSV_SERDE_CLASS),
+ HiveStorageConstants.OPENCSV_SERDE_CLASS),
Transforms.EMPTY_TRANSFORM);
org.apache.hadoop.hive.metastore.api.Table actualTable2 =
hiveClientPool.run(client -> client.getTable(schemaName, table2));
Assertions.assertEquals(
- OPENCSV_SERDE_CLASS,
actualTable2.getSd().getSerdeInfo().getSerializationLib());
- Assertions.assertEquals(TEXT_INPUT_FORMAT_CLASS,
actualTable2.getSd().getInputFormat());
- Assertions.assertEquals(IGNORE_KEY_OUTPUT_FORMAT_CLASS,
actualTable2.getSd().getOutputFormat());
+ HiveStorageConstants.OPENCSV_SERDE_CLASS,
+ actualTable2.getSd().getSerdeInfo().getSerializationLib());
+ Assertions.assertEquals(
+ HiveStorageConstants.TEXT_INPUT_FORMAT_CLASS,
actualTable2.getSd().getInputFormat());
+ Assertions.assertEquals(
+ HiveStorageConstants.IGNORE_KEY_OUTPUT_FORMAT_CLASS,
+ actualTable2.getSd().getOutputFormat());
Assertions.assertEquals(EXTERNAL_TABLE.name(),
actualTable2.getTableType());
Assertions.assertEquals(table2.toLowerCase(),
actualTable2.getSd().getSerdeInfo().getName());
Assertions.assertEquals(TABLE_COMMENT,
actualTable2.getParameters().get(COMMENT));
diff --git a/catalogs/catalog-jdbc-common/build.gradle.kts
b/catalogs/catalog-jdbc-common/build.gradle.kts
index 05200302d..4f845bad7 100644
--- a/catalogs/catalog-jdbc-common/build.gradle.kts
+++ b/catalogs/catalog-jdbc-common/build.gradle.kts
@@ -39,6 +39,7 @@ artifacts {
dependencies {
implementation(project(":api"))
+ implementation(project(":catalogs:catalog-common"))
implementation(project(":common"))
implementation(project(":core"))
diff --git
a/catalogs/catalog-jdbc-common/src/main/java/org/apache/gravitino/catalog/jdbc/JdbcTablePropertiesMetadata.java
b/catalogs/catalog-jdbc-common/src/main/java/org/apache/gravitino/catalog/jdbc/JdbcTablePropertiesMetadata.java
index 75d0458e5..4f7d8a0ad 100644
---
a/catalogs/catalog-jdbc-common/src/main/java/org/apache/gravitino/catalog/jdbc/JdbcTablePropertiesMetadata.java
+++
b/catalogs/catalog-jdbc-common/src/main/java/org/apache/gravitino/catalog/jdbc/JdbcTablePropertiesMetadata.java
@@ -26,7 +26,7 @@ import org.apache.gravitino.connector.BasePropertiesMetadata;
public abstract class JdbcTablePropertiesMetadata extends
BasePropertiesMetadata {
- public static final String COMMENT_KEY = "comment";
+ public static final String COMMENT_KEY = JdbcConstants.COMMENT;
public Map<String, String> transformToJdbcProperties(Map<String, String>
properties) {
HashMap<String, String> resultProperties = Maps.newHashMap(properties);
diff --git a/catalogs/catalog-jdbc-mysql/build.gradle.kts
b/catalogs/catalog-jdbc-mysql/build.gradle.kts
index 9be41612a..fbd2cc0aa 100644
--- a/catalogs/catalog-jdbc-mysql/build.gradle.kts
+++ b/catalogs/catalog-jdbc-mysql/build.gradle.kts
@@ -26,6 +26,7 @@ plugins {
dependencies {
implementation(project(":api"))
+ implementation(project(":catalogs:catalog-common"))
implementation(project(":catalogs:catalog-jdbc-common"))
implementation(project(":common"))
implementation(project(":core"))
diff --git
a/catalogs/catalog-jdbc-mysql/src/main/java/org/apache/gravitino/catalog/mysql/MysqlTablePropertiesMetadata.java
b/catalogs/catalog-jdbc-mysql/src/main/java/org/apache/gravitino/catalog/mysql/MysqlTablePropertiesMetadata.java
index 716372c16..e4de0a0cb 100644
---
a/catalogs/catalog-jdbc-mysql/src/main/java/org/apache/gravitino/catalog/mysql/MysqlTablePropertiesMetadata.java
+++
b/catalogs/catalog-jdbc-mysql/src/main/java/org/apache/gravitino/catalog/mysql/MysqlTablePropertiesMetadata.java
@@ -31,10 +31,12 @@ import
org.apache.gravitino.catalog.jdbc.JdbcTablePropertiesMetadata;
import org.apache.gravitino.connector.PropertyEntry;
public class MysqlTablePropertiesMetadata extends JdbcTablePropertiesMetadata {
- public static final String GRAVITINO_ENGINE_KEY = "engine";
- public static final String MYSQL_ENGINE_KEY = "ENGINE";
- public static final String GRAVITINO_AUTO_INCREMENT_OFFSET_KEY =
"auto-increment-offset";
- public static final String MYSQL_AUTO_INCREMENT_OFFSET_KEY =
"AUTO_INCREMENT";
+ public static final String GRAVITINO_ENGINE_KEY =
MysqlConstants.GRAVITINO_ENGINE_KEY;
+ public static final String MYSQL_ENGINE_KEY =
MysqlConstants.MYSQL_ENGINE_KEY;
+ public static final String GRAVITINO_AUTO_INCREMENT_OFFSET_KEY =
+ MysqlConstants.GRAVITINO_AUTO_INCREMENT_OFFSET_KEY;
+ public static final String MYSQL_AUTO_INCREMENT_OFFSET_KEY =
+ MysqlConstants.MYSQL_AUTO_INCREMENT_OFFSET_KEY;
private static final Map<String, PropertyEntry<?>> PROPERTIES_METADATA =
createPropertiesMetadata();
diff --git a/catalogs/catalog-lakehouse-iceberg/build.gradle.kts
b/catalogs/catalog-lakehouse-iceberg/build.gradle.kts
index 1d0eb242e..4a241c774 100644
--- a/catalogs/catalog-lakehouse-iceberg/build.gradle.kts
+++ b/catalogs/catalog-lakehouse-iceberg/build.gradle.kts
@@ -32,7 +32,7 @@ val scalaCollectionCompatVersion: String =
libs.versions.scala.collection.compat
dependencies {
implementation(project(":api"))
- implementation(project(":catalogs:bundled-catalog", configuration =
"shadow"))
+ implementation(project(":catalogs:catalog-common"))
implementation(project(":common"))
implementation(project(":core"))
implementation(project(":server-common"))
diff --git a/flink-connector/build.gradle.kts b/flink-connector/build.gradle.kts
index 456be48ef..6a59ba528 100644
--- a/flink-connector/build.gradle.kts
+++ b/flink-connector/build.gradle.kts
@@ -32,10 +32,10 @@ val artifactName = "gravitino-${project.name}-$scalaVersion"
dependencies {
implementation(project(":api"))
+ implementation(project(":catalogs:catalog-common"))
implementation(project(":common"))
implementation(project(":core"))
implementation(project(":clients:client-java"))
- implementation(project(":catalogs:bundled-catalog", configuration =
"shadow"))
implementation(libs.bundles.log4j)
implementation(libs.commons.lang3)
diff --git
a/flink-connector/src/main/java/org/apache/gravitino/flink/connector/hive/HivePropertiesConverter.java
b/flink-connector/src/main/java/org/apache/gravitino/flink/connector/hive/HivePropertiesConverter.java
index 9250acdec..180958674 100644
---
a/flink-connector/src/main/java/org/apache/gravitino/flink/connector/hive/HivePropertiesConverter.java
+++
b/flink-connector/src/main/java/org/apache/gravitino/flink/connector/hive/HivePropertiesConverter.java
@@ -25,8 +25,7 @@ import java.util.Map;
import java.util.stream.Collectors;
import org.apache.flink.configuration.Configuration;
import org.apache.flink.table.catalog.CommonCatalogOptions;
-import org.apache.gravitino.catalog.hive.HiveCatalogPropertiesMeta;
-import org.apache.gravitino.catalog.hive.HiveTablePropertiesMetadata;
+import org.apache.gravitino.catalog.hive.HiveConstants;
import org.apache.gravitino.flink.connector.PropertiesConverter;
import org.apache.hadoop.hive.conf.HiveConf;
@@ -37,11 +36,9 @@ public class HivePropertiesConverter implements
PropertiesConverter {
public static final HivePropertiesConverter INSTANCE = new
HivePropertiesConverter();
private static final Map<String, String> HIVE_CATALOG_CONFIG_TO_GRAVITINO =
- ImmutableMap.of(
- HiveConf.ConfVars.METASTOREURIS.varname,
HiveCatalogPropertiesMeta.METASTORE_URIS);
+ ImmutableMap.of(HiveConf.ConfVars.METASTOREURIS.varname,
HiveConstants.METASTORE_URIS);
private static final Map<String, String> GRAVITINO_CONFIG_TO_HIVE =
- ImmutableMap.of(
- HiveCatalogPropertiesMeta.METASTORE_URIS,
HiveConf.ConfVars.METASTOREURIS.varname);
+ ImmutableMap.of(HiveConstants.METASTORE_URIS,
HiveConf.ConfVars.METASTOREURIS.varname);
@Override
public Map<String, String> toGravitinoCatalogProperties(Configuration
flinkConf) {
@@ -87,9 +84,8 @@ public class HivePropertiesConverter implements
PropertiesConverter {
Collectors.toMap(
entry -> {
String key = entry.getKey();
- if
(key.startsWith(HiveTablePropertiesMetadata.SERDE_PARAMETER_PREFIX)) {
- return key.substring(
-
HiveTablePropertiesMetadata.SERDE_PARAMETER_PREFIX.length());
+ if
(key.startsWith(HiveConstants.SERDE_PARAMETER_PREFIX)) {
+ return
key.substring(HiveConstants.SERDE_PARAMETER_PREFIX.length());
} else {
return key;
}
diff --git
a/flink-connector/src/test/java/org/apache/gravitino/flink/connector/hive/TestHivePropertiesConverter.java
b/flink-connector/src/test/java/org/apache/gravitino/flink/connector/hive/TestHivePropertiesConverter.java
index e60a0b234..7191f0aec 100644
---
a/flink-connector/src/test/java/org/apache/gravitino/flink/connector/hive/TestHivePropertiesConverter.java
+++
b/flink-connector/src/test/java/org/apache/gravitino/flink/connector/hive/TestHivePropertiesConverter.java
@@ -18,11 +18,10 @@
*/
package org.apache.gravitino.flink.connector.hive;
-import static
org.apache.gravitino.catalog.hive.HiveCatalogPropertiesMeta.METASTORE_URIS;
-
import com.google.common.collect.ImmutableMap;
import java.util.Map;
import org.apache.flink.configuration.Configuration;
+import org.apache.gravitino.catalog.hive.HiveConstants;
import org.apache.hadoop.hive.conf.HiveConf;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
@@ -52,7 +51,7 @@ public class TestHivePropertiesConverter {
"value", properties.get("flink.bypass.key"), "The prefix have already
existed");
Assertions.assertEquals(
"thrift://127.0.0.1:9084",
- properties.get(METASTORE_URIS),
+ properties.get(HiveConstants.METASTORE_URIS),
"The key is converted to Gravitino Config");
}
diff --git
a/flink-connector/src/test/java/org/apache/gravitino/flink/connector/integration/test/FlinkCommonIT.java
b/flink-connector/src/test/java/org/apache/gravitino/flink/connector/integration/test/FlinkCommonIT.java
index 8c6791da9..06905fff9 100644
---
a/flink-connector/src/test/java/org/apache/gravitino/flink/connector/integration/test/FlinkCommonIT.java
+++
b/flink-connector/src/test/java/org/apache/gravitino/flink/connector/integration/test/FlinkCommonIT.java
@@ -36,7 +36,7 @@ import org.apache.flink.types.Row;
import org.apache.gravitino.Catalog;
import org.apache.gravitino.NameIdentifier;
import org.apache.gravitino.Schema;
-import org.apache.gravitino.catalog.hive.HiveSchemaPropertiesMetadata;
+import org.apache.gravitino.catalog.hive.HiveConstants;
import org.apache.gravitino.flink.connector.integration.test.utils.TestUtils;
import org.apache.gravitino.rel.Column;
import org.apache.gravitino.rel.Table;
@@ -91,7 +91,7 @@ public abstract class FlinkCommonIT extends FlinkEnvIT {
Assertions.assertEquals(2, loadedSchema.properties().size());
Assertions.assertEquals(propertyValue,
loadedSchema.properties().get(propertyKey));
Assertions.assertEquals(
- location,
loadedSchema.properties().get(HiveSchemaPropertiesMetadata.LOCATION));
+ location,
loadedSchema.properties().get(HiveConstants.LOCATION));
} finally {
catalog.asSchemas().dropSchema(schema, true);
Assertions.assertFalse(catalog.asSchemas().schemaExists(schema));
diff --git
a/flink-connector/src/test/java/org/apache/gravitino/flink/connector/integration/test/hive/FlinkHiveCatalogIT.java
b/flink-connector/src/test/java/org/apache/gravitino/flink/connector/integration/test/hive/FlinkHiveCatalogIT.java
index 6964389d5..09c264796 100644
---
a/flink-connector/src/test/java/org/apache/gravitino/flink/connector/integration/test/hive/FlinkHiveCatalogIT.java
+++
b/flink-connector/src/test/java/org/apache/gravitino/flink/connector/integration/test/hive/FlinkHiveCatalogIT.java
@@ -18,7 +18,6 @@
*/
package org.apache.gravitino.flink.connector.integration.test.hive;
-import static
org.apache.gravitino.catalog.hive.HiveCatalogPropertiesMeta.METASTORE_URIS;
import static
org.apache.gravitino.flink.connector.integration.test.utils.TestUtils.assertColumns;
import com.google.common.base.Preconditions;
@@ -42,6 +41,7 @@ import org.apache.flink.table.catalog.ObjectPath;
import org.apache.flink.table.catalog.hive.factories.HiveCatalogFactoryOptions;
import org.apache.flink.types.Row;
import org.apache.gravitino.NameIdentifier;
+import org.apache.gravitino.catalog.hive.HiveConstants;
import org.apache.gravitino.flink.connector.PropertiesConverter;
import org.apache.gravitino.flink.connector.hive.GravitinoHiveCatalog;
import
org.apache.gravitino.flink.connector.hive.GravitinoHiveCatalogFactoryOptions;
@@ -109,7 +109,7 @@ public class FlinkHiveCatalogIT extends FlinkCommonIT {
// Check the catalog properties.
org.apache.gravitino.Catalog gravitinoCatalog =
metalake.loadCatalog(catalogName);
Map<String, String> properties = gravitinoCatalog.properties();
- Assertions.assertEquals(hiveMetastoreUri, properties.get(METASTORE_URIS));
+ Assertions.assertEquals(hiveMetastoreUri,
properties.get(HiveConstants.METASTORE_URIS));
Map<String, String> flinkProperties =
gravitinoCatalog.properties().entrySet().stream()
.filter(e ->
e.getKey().startsWith(PropertiesConverter.FLINK_PROPERTY_PREFIX))
@@ -175,7 +175,7 @@ public class FlinkHiveCatalogIT extends FlinkCommonIT {
// Check the properties of the created catalog.
org.apache.gravitino.Catalog gravitinoCatalog =
metalake.loadCatalog(catalogName);
Map<String, String> properties = gravitinoCatalog.properties();
- Assertions.assertEquals(hiveMetastoreUri, properties.get(METASTORE_URIS));
+ Assertions.assertEquals(hiveMetastoreUri,
properties.get(HiveConstants.METASTORE_URIS));
Map<String, String> flinkProperties =
properties.entrySet().stream()
.filter(e ->
e.getKey().startsWith(PropertiesConverter.FLINK_PROPERTY_PREFIX))
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 2c9292c62..5cc787807 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -26,7 +26,7 @@ val scalaVersion: String =
gradle.startParameter.projectProperties["scalaVersion
?: settings.extra["defaultScalaVersion"].toString()
include("api", "common", "core", "meta", "server", "integration-test",
"server-common")
-include("catalogs:bundled-catalog")
+include("catalogs:catalog-common")
include("catalogs:catalog-hive")
include("catalogs:catalog-lakehouse-iceberg")
include("catalogs:catalog-lakehouse-paimon")
diff --git a/spark-connector/spark-common/build.gradle.kts
b/spark-connector/spark-common/build.gradle.kts
index 65ba1f641..82594c257 100644
--- a/spark-connector/spark-common/build.gradle.kts
+++ b/spark-connector/spark-common/build.gradle.kts
@@ -37,7 +37,7 @@ val scalaJava8CompatVersion: String =
libs.versions.scala.java.compat.get()
val scalaCollectionCompatVersion: String =
libs.versions.scala.collection.compat.get()
dependencies {
- implementation(project(":catalogs:bundled-catalog", configuration =
"shadow"))
+ implementation(project(":catalogs:catalog-common"))
implementation(libs.guava)
compileOnly(project(":clients:client-java-runtime", configuration =
"shadow"))
diff --git
a/spark-connector/spark-common/src/main/java/org/apache/gravitino/spark/connector/hive/HivePropertiesConstants.java
b/spark-connector/spark-common/src/main/java/org/apache/gravitino/spark/connector/hive/HivePropertiesConstants.java
index ef2881c9d..62cb4f6ce 100644
---
a/spark-connector/spark-common/src/main/java/org/apache/gravitino/spark/connector/hive/HivePropertiesConstants.java
+++
b/spark-connector/spark-common/src/main/java/org/apache/gravitino/spark/connector/hive/HivePropertiesConstants.java
@@ -18,21 +18,20 @@
package org.apache.gravitino.spark.connector.hive;
-import static
org.apache.gravitino.catalog.hive.HiveTablePropertiesMetadata.TableType.EXTERNAL_TABLE;
-
import com.google.common.annotations.VisibleForTesting;
-import org.apache.gravitino.catalog.hive.HiveTablePropertiesMetadata;
-import
org.apache.gravitino.catalog.hive.HiveTablePropertiesMetadata.StorageFormat;
+import org.apache.gravitino.catalog.hive.HiveConstants;
+import org.apache.gravitino.catalog.hive.HiveStorageConstants;
+import org.apache.gravitino.catalog.hive.StorageFormat;
+import org.apache.gravitino.catalog.hive.TableType;
import org.apache.spark.sql.connector.catalog.TableCatalog;
public class HivePropertiesConstants {
- public static final String GRAVITINO_HIVE_FORMAT =
HiveTablePropertiesMetadata.FORMAT;
- public static final String GRAVITINO_HIVE_INPUT_FORMAT =
HiveTablePropertiesMetadata.INPUT_FORMAT;
- public static final String GRAVITINO_HIVE_OUTPUT_FORMAT =
- HiveTablePropertiesMetadata.OUTPUT_FORMAT;
- public static final String GRAVITINO_HIVE_SERDE_LIB =
HiveTablePropertiesMetadata.SERDE_LIB;
+ public static final String GRAVITINO_HIVE_FORMAT = HiveConstants.FORMAT;
+ public static final String GRAVITINO_HIVE_INPUT_FORMAT =
HiveConstants.INPUT_FORMAT;
+ public static final String GRAVITINO_HIVE_OUTPUT_FORMAT =
HiveConstants.OUTPUT_FORMAT;
+ public static final String GRAVITINO_HIVE_SERDE_LIB =
HiveConstants.SERDE_LIB;
public static final String GRAVITINO_HIVE_SERDE_PARAMETER_PREFIX =
- HiveTablePropertiesMetadata.SERDE_PARAMETER_PREFIX;
+ HiveConstants.SERDE_PARAMETER_PREFIX;
public static final String GRAVITINO_HIVE_FORMAT_PARQUET =
StorageFormat.PARQUET.toString();
public static final String GRAVITINO_HIVE_FORMAT_SEQUENCEFILE =
@@ -43,39 +42,37 @@ public class HivePropertiesConstants {
public static final String GRAVITINO_HIVE_FORMAT_AVRO =
StorageFormat.AVRO.toString();
public static final String GRAVITINO_HIVE_FORMAT_JSON =
StorageFormat.JSON.toString();
public static final String GRAVITINO_HIVE_FORMAT_CSV =
StorageFormat.CSV.toString();
- public static final String GRAVITINO_HIVE_EXTERNAL_TABLE =
EXTERNAL_TABLE.name();
- public static final String GRAVITINO_HIVE_TABLE_TYPE =
HiveTablePropertiesMetadata.TABLE_TYPE;
- public static final String GRAVITINO_HIVE_TABLE_LOCATION =
HiveTablePropertiesMetadata.LOCATION;
+ public static final String GRAVITINO_HIVE_EXTERNAL_TABLE =
TableType.EXTERNAL_TABLE.name();
+ public static final String GRAVITINO_HIVE_TABLE_TYPE =
HiveConstants.TABLE_TYPE;
+ public static final String GRAVITINO_HIVE_TABLE_LOCATION =
HiveConstants.LOCATION;
public static final String SPARK_HIVE_STORED_AS = "hive.stored-as";
- public static final String SPARK_HIVE_INPUT_FORMAT = "input-format";
- public static final String SPARK_HIVE_OUTPUT_FORMAT = "output-format";
- public static final String SPARK_HIVE_SERDE_LIB = "serde-lib";
- public static final String SPARK_HIVE_EXTERNAL = "external";
+ public static final String SPARK_HIVE_INPUT_FORMAT =
HiveConstants.INPUT_FORMAT;
+ public static final String SPARK_HIVE_OUTPUT_FORMAT =
HiveConstants.OUTPUT_FORMAT;
+ public static final String SPARK_HIVE_SERDE_LIB = HiveConstants.SERDE_LIB;
+ public static final String SPARK_HIVE_EXTERNAL = TableCatalog.PROP_EXTERNAL;
public static final String SPARK_HIVE_LOCATION = TableCatalog.PROP_LOCATION;
@VisibleForTesting
- public static final String TEXT_INPUT_FORMAT_CLASS =
- HiveTablePropertiesMetadata.TEXT_INPUT_FORMAT_CLASS;
+ public static final String TEXT_INPUT_FORMAT_CLASS =
HiveStorageConstants.TEXT_INPUT_FORMAT_CLASS;
@VisibleForTesting
public static final String IGNORE_KEY_OUTPUT_FORMAT_CLASS =
- HiveTablePropertiesMetadata.IGNORE_KEY_OUTPUT_FORMAT_CLASS;
+ HiveStorageConstants.IGNORE_KEY_OUTPUT_FORMAT_CLASS;
@VisibleForTesting
- public static final String LAZY_SIMPLE_SERDE_CLASS =
- HiveTablePropertiesMetadata.LAZY_SIMPLE_SERDE_CLASS;
+ public static final String LAZY_SIMPLE_SERDE_CLASS =
HiveStorageConstants.LAZY_SIMPLE_SERDE_CLASS;
@VisibleForTesting
public static final String PARQUET_INPUT_FORMAT_CLASS =
- HiveTablePropertiesMetadata.PARQUET_INPUT_FORMAT_CLASS;
+ HiveStorageConstants.PARQUET_INPUT_FORMAT_CLASS;
@VisibleForTesting
public static final String PARQUET_OUTPUT_FORMAT_CLASS =
- HiveTablePropertiesMetadata.PARQUET_OUTPUT_FORMAT_CLASS;
+ HiveStorageConstants.PARQUET_OUTPUT_FORMAT_CLASS;
@VisibleForTesting
- public static final String PARQUET_SERDE_CLASS =
HiveTablePropertiesMetadata.PARQUET_SERDE_CLASS;
+ public static final String PARQUET_SERDE_CLASS =
HiveStorageConstants.PARQUET_SERDE_CLASS;
private HivePropertiesConstants() {}
}
diff --git
a/spark-connector/spark-common/src/main/java/org/apache/gravitino/spark/connector/hive/HivePropertiesConverter.java
b/spark-connector/spark-common/src/main/java/org/apache/gravitino/spark/connector/hive/HivePropertiesConverter.java
index da6039f70..476364196 100644
---
a/spark-connector/spark-common/src/main/java/org/apache/gravitino/spark/connector/hive/HivePropertiesConverter.java
+++
b/spark-connector/spark-common/src/main/java/org/apache/gravitino/spark/connector/hive/HivePropertiesConverter.java
@@ -27,7 +27,7 @@ import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
-import org.apache.gravitino.catalog.hive.HiveTablePropertiesMetadata;
+import org.apache.gravitino.catalog.hive.TableType;
import org.apache.gravitino.spark.connector.GravitinoSparkConfig;
import org.apache.gravitino.spark.connector.PropertiesConverter;
import org.apache.spark.sql.connector.catalog.TableCatalog;
@@ -124,8 +124,7 @@ public class HivePropertiesConverter implements
PropertiesConverter {
if (isExternal.equalsIgnoreCase("true")) {
gravitinoTableProperties.put(
- HivePropertiesConstants.GRAVITINO_HIVE_TABLE_TYPE,
- HiveTablePropertiesMetadata.TableType.EXTERNAL_TABLE.name());
+ HivePropertiesConstants.GRAVITINO_HIVE_TABLE_TYPE,
TableType.EXTERNAL_TABLE.name());
}
sparkToGravitinoPropertyMap.forEach(
diff --git a/spark-connector/v3.3/spark/build.gradle.kts
b/spark-connector/v3.3/spark/build.gradle.kts
index e9e25d34e..971c9c422 100644
--- a/spark-connector/v3.3/spark/build.gradle.kts
+++ b/spark-connector/v3.3/spark/build.gradle.kts
@@ -150,6 +150,7 @@ tasks.test {
} else {
dependsOn(tasks.jar)
dependsOn(":catalogs:catalog-lakehouse-iceberg:jar")
+ dependsOn(":catalogs:catalog-hive:jar")
doFirst {
environment("GRAVITINO_CI_HIVE_DOCKER_IMAGE",
"datastrato/gravitino-ci-hive:0.1.13")
diff --git a/spark-connector/v3.4/spark/build.gradle.kts
b/spark-connector/v3.4/spark/build.gradle.kts
index fac5b44c7..59539474b 100644
--- a/spark-connector/v3.4/spark/build.gradle.kts
+++ b/spark-connector/v3.4/spark/build.gradle.kts
@@ -150,6 +150,7 @@ tasks.test {
} else {
dependsOn(tasks.jar)
dependsOn(":catalogs:catalog-lakehouse-iceberg:jar")
+ dependsOn(":catalogs:catalog-hive:jar")
doFirst {
environment("GRAVITINO_CI_HIVE_DOCKER_IMAGE",
"datastrato/gravitino-ci-hive:0.1.13")
diff --git a/spark-connector/v3.5/spark/build.gradle.kts
b/spark-connector/v3.5/spark/build.gradle.kts
index 579fe5b46..1e285621d 100644
--- a/spark-connector/v3.5/spark/build.gradle.kts
+++ b/spark-connector/v3.5/spark/build.gradle.kts
@@ -152,6 +152,7 @@ tasks.test {
} else {
dependsOn(tasks.jar)
dependsOn(":catalogs:catalog-lakehouse-iceberg:jar")
+ dependsOn(":catalogs:catalog-hive:jar")
doFirst {
environment("GRAVITINO_CI_HIVE_DOCKER_IMAGE",
"datastrato/gravitino-ci-hive:0.1.13")
diff --git a/trino-connector/build.gradle.kts b/trino-connector/build.gradle.kts
index c98ff3cdb..ac60b2164 100644
--- a/trino-connector/build.gradle.kts
+++ b/trino-connector/build.gradle.kts
@@ -27,7 +27,7 @@ repositories {
}
dependencies {
- implementation(project(":catalogs:bundled-catalog", configuration =
"shadow"))
+ implementation(project(":catalogs:catalog-common"))
implementation(project(":clients:client-java-runtime", configuration =
"shadow"))
implementation(libs.airlift.json)
implementation(libs.bundles.log4j)
diff --git
a/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/hive/HiveSchemaPropertyConverter.java
b/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/hive/HiveSchemaPropertyConverter.java
index 3050e63b0..9c1a2f7f3 100644
---
a/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/hive/HiveSchemaPropertyConverter.java
+++
b/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/hive/HiveSchemaPropertyConverter.java
@@ -22,7 +22,7 @@ import static
org.apache.gravitino.trino.connector.catalog.hive.HivePropertyMeta
import com.google.common.collect.ImmutableMap;
import org.apache.commons.collections4.bidimap.TreeBidiMap;
-import org.apache.gravitino.catalog.hive.HiveSchemaPropertiesMetadata;
+import org.apache.gravitino.catalog.hive.HiveConstants;
import org.apache.gravitino.catalog.property.PropertyConverter;
public class HiveSchemaPropertyConverter extends PropertyConverter {
@@ -31,7 +31,7 @@ public class HiveSchemaPropertyConverter extends
PropertyConverter {
private static final TreeBidiMap<String, String> TRINO_KEY_TO_GRAVITINO_KEY =
new TreeBidiMap<>(
new ImmutableMap.Builder<String, String>()
- .put(HIVE_SCHEMA_LOCATION, HiveSchemaPropertiesMetadata.LOCATION)
+ .put(HIVE_SCHEMA_LOCATION, HiveConstants.LOCATION)
.build());
@Override
diff --git
a/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/hive/HiveTablePropertyConverter.java
b/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/hive/HiveTablePropertyConverter.java
index 9bd3180d2..650b3a28f 100644
---
a/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/hive/HiveTablePropertyConverter.java
+++
b/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/hive/HiveTablePropertyConverter.java
@@ -21,7 +21,7 @@ package org.apache.gravitino.trino.connector.catalog.hive;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableMap;
import org.apache.commons.collections4.bidimap.TreeBidiMap;
-import org.apache.gravitino.catalog.hive.HiveTablePropertiesMetadata;
+import org.apache.gravitino.catalog.hive.HiveConstants;
import org.apache.gravitino.catalog.property.PropertyConverter;
public class HiveTablePropertyConverter extends PropertyConverter {
@@ -31,20 +31,16 @@ public class HiveTablePropertyConverter extends
PropertyConverter {
static final TreeBidiMap<String, String> TRINO_KEY_TO_GRAVITINO_KEY =
new TreeBidiMap<>(
new ImmutableMap.Builder<String, String>()
- .put(HivePropertyMeta.HIVE_TABLE_FORMAT,
HiveTablePropertiesMetadata.FORMAT)
- .put(HivePropertyMeta.HIVE_TABLE_TOTAL_SIZE,
HiveTablePropertiesMetadata.TOTAL_SIZE)
- .put(HivePropertyMeta.HIVE_TABLE_NUM_FILES,
HiveTablePropertiesMetadata.NUM_FILES)
- .put(HivePropertyMeta.HIVE_TABLE_EXTERNAL,
HiveTablePropertiesMetadata.EXTERNAL)
- .put(HivePropertyMeta.HIVE_TABLE_LOCATION,
HiveTablePropertiesMetadata.LOCATION)
- .put(HivePropertyMeta.HIVE_TABLE_TYPE,
HiveTablePropertiesMetadata.TABLE_TYPE)
- .put(
- HivePropertyMeta.HIVE_TABLE_INPUT_FORMAT,
- HiveTablePropertiesMetadata.INPUT_FORMAT)
- .put(
- HivePropertyMeta.HIVE_TABLE_OUTPUT_FORMAT,
- HiveTablePropertiesMetadata.OUTPUT_FORMAT)
- .put(HivePropertyMeta.HIVE_TABLE_SERDE_LIB,
HiveTablePropertiesMetadata.SERDE_LIB)
- .put(HivePropertyMeta.HIVE_TABLE_SERDE_NAME,
HiveTablePropertiesMetadata.SERDE_NAME)
+ .put(HivePropertyMeta.HIVE_TABLE_FORMAT, HiveConstants.FORMAT)
+ .put(HivePropertyMeta.HIVE_TABLE_TOTAL_SIZE,
HiveConstants.TOTAL_SIZE)
+ .put(HivePropertyMeta.HIVE_TABLE_NUM_FILES,
HiveConstants.NUM_FILES)
+ .put(HivePropertyMeta.HIVE_TABLE_EXTERNAL,
HiveConstants.EXTERNAL)
+ .put(HivePropertyMeta.HIVE_TABLE_LOCATION,
HiveConstants.LOCATION)
+ .put(HivePropertyMeta.HIVE_TABLE_TYPE, HiveConstants.TABLE_TYPE)
+ .put(HivePropertyMeta.HIVE_TABLE_INPUT_FORMAT,
HiveConstants.INPUT_FORMAT)
+ .put(HivePropertyMeta.HIVE_TABLE_OUTPUT_FORMAT,
HiveConstants.OUTPUT_FORMAT)
+ .put(HivePropertyMeta.HIVE_TABLE_SERDE_LIB,
HiveConstants.SERDE_LIB)
+ .put(HivePropertyMeta.HIVE_TABLE_SERDE_NAME,
HiveConstants.SERDE_NAME)
.build());
@Override
diff --git
a/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/jdbc/mysql/MySQLTablePropertyConverter.java
b/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/jdbc/mysql/MySQLTablePropertyConverter.java
index c8a3a8677..edabf873d 100644
---
a/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/jdbc/mysql/MySQLTablePropertyConverter.java
+++
b/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/jdbc/mysql/MySQLTablePropertyConverter.java
@@ -22,7 +22,7 @@ package
org.apache.gravitino.trino.connector.catalog.jdbc.mysql;
import com.google.common.annotations.VisibleForTesting;
import java.util.Map;
import org.apache.commons.collections4.bidimap.TreeBidiMap;
-import org.apache.gravitino.catalog.mysql.MysqlTablePropertiesMetadata;
+import org.apache.gravitino.catalog.mysql.MysqlConstants;
import org.apache.gravitino.catalog.property.PropertyConverter;
import org.apache.gravitino.shaded.com.google.common.collect.ImmutableMap;
@@ -32,11 +32,10 @@ public class MySQLTablePropertyConverter extends
PropertyConverter {
static final TreeBidiMap<String, String> TRINO_KEY_TO_GRAVITINO_KEY =
new TreeBidiMap<>(
new ImmutableMap.Builder<String, String>()
- .put(
- MySQLPropertyMeta.TABLE_ENGINE,
MysqlTablePropertiesMetadata.GRAVITINO_ENGINE_KEY)
+ .put(MySQLPropertyMeta.TABLE_ENGINE,
MysqlConstants.GRAVITINO_ENGINE_KEY)
.put(
MySQLPropertyMeta.TABLE_AUTO_INCREMENT_OFFSET,
-
MysqlTablePropertiesMetadata.GRAVITINO_AUTO_INCREMENT_OFFSET_KEY)
+ MysqlConstants.GRAVITINO_AUTO_INCREMENT_OFFSET_KEY)
.build());
@Override
diff --git
a/trino-connector/src/test/java/org/apache/gravitino/trino/connector/catalog/hive/TestHiveCatalogPropertyConverter.java
b/trino-connector/src/test/java/org/apache/gravitino/trino/connector/catalog/hive/TestHiveCatalogPropertyConverter.java
index 146ef6f72..efccbf676 100644
---
a/trino-connector/src/test/java/org/apache/gravitino/trino/connector/catalog/hive/TestHiveCatalogPropertyConverter.java
+++
b/trino-connector/src/test/java/org/apache/gravitino/trino/connector/catalog/hive/TestHiveCatalogPropertyConverter.java
@@ -20,11 +20,8 @@
package org.apache.gravitino.trino.connector.catalog.hive;
import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Sets;
import java.util.Map;
-import java.util.Set;
import org.apache.gravitino.Catalog;
-import org.apache.gravitino.catalog.hive.HiveTablePropertiesMetadata;
import org.apache.gravitino.trino.connector.metadata.GravitinoCatalog;
import org.apache.gravitino.trino.connector.metadata.TestGravitinoCatalog;
import org.junit.jupiter.api.Assertions;
@@ -49,19 +46,6 @@ public class TestHiveCatalogPropertyConverter {
Assertions.assertNull(re.get("hive.unknown-key"));
}
- // To test whether we load jar `bundled-catalog` successfully.
- @Test
- public void testPropertyMetadata() {
- Set<String> gravitinoHiveKeys =
-
Sets.newHashSet(HiveTablePropertyConverter.TRINO_KEY_TO_GRAVITINO_KEY.values());
- Set<String> actualGravitinoKeys =
- Sets.newHashSet(new
HiveTablePropertiesMetadata().propertyEntries().keySet());
-
- // Needs to confirm whether external should be a property key for Trino.
- gravitinoHiveKeys.remove("external");
- Assertions.assertTrue(actualGravitinoKeys.containsAll(gravitinoHiveKeys));
- }
-
@Test
@SuppressWarnings("unchecked")
public void testBuildConnectorProperties() throws Exception {