Re: [PR] [#4953] feat(hudi-catalog): add Hudi catalog IT and enable module [gravitino]

2024-10-12 Thread via GitHub


jerryshao merged PR #4965:
URL: https://github.com/apache/gravitino/pull/4965


-- 
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: commits-unsubscr...@gravitino.apache.org

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



Re: [I] [Subtask] add IT and enable module for Hudi catalog [gravitino]

2024-10-12 Thread via GitHub


jerryshao closed issue #4953: [Subtask] add IT and enable module for Hudi 
catalog
URL: https://github.com/apache/gravitino/issues/4953


-- 
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: commits-unsubscr...@gravitino.apache.org

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



(gravitino) branch main updated: [#4953] feat(hudi-catalog): add Hudi catalog IT and enable module (#4965)

2024-10-12 Thread jshao
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 cc277566b [#4953] feat(hudi-catalog): add Hudi catalog IT and enable 
module (#4965)
cc277566b is described below

commit cc277566bcf8251786fc5e18424b9a0ca5354849
Author: mchades 
AuthorDate: Sat Oct 12 18:58:17 2024 +0800

[#4953] feat(hudi-catalog): add Hudi catalog IT and enable module (#4965)

### What changes were proposed in this pull request?

add Hudi catalog IT and enable module

### Why are the changes needed?

Fix: #4953

### Does this PR introduce _any_ user-facing change?

yes. The Hudi catalog is available now

### How was this patch tested?

ITs added
---
 build.gradle.kts   |   1 +
 catalogs/catalog-hive/build.gradle.kts |   2 +-
 catalogs/catalog-kafka/build.gradle.kts|   9 -
 catalogs/catalog-lakehouse-hudi/build.gradle.kts   | 136 --
 .../lakehouse/hudi/HudiCatalogOperations.java  |   3 +-
 .../src/main/resources/hive-site.xml.template  |  21 +
 .../src/main/resources/lakehouse-hudi.conf |  22 +
 .../lakehouse/hudi/TestHudiCatalogOperations.java  |   4 +-
 .../hudi/integration/test/HudiCatalogHMSIT.java| 503 +
 .../src/test/resources/log4j2.properties   |  73 +++
 catalogs/hive-metastore-common/build.gradle.kts|   2 +-
 .../apache/gravitino/dto/util/DTOConverters.java   |   4 +-
 flink-connector/flink/build.gradle.kts |   2 +-
 gradle/libs.versions.toml  |   1 +
 .../src/test/resources/log4j2.properties   |  73 +++
 .../apache/gravitino/server/GravitinoServer.java   |   2 +
 spark-connector/spark-common/build.gradle.kts  |   2 +-
 spark-connector/v3.3/spark/build.gradle.kts|   2 +-
 spark-connector/v3.4/spark/build.gradle.kts|   2 +-
 spark-connector/v3.5/spark/build.gradle.kts|   2 +-
 20 files changed, 813 insertions(+), 53 deletions(-)

diff --git a/build.gradle.kts b/build.gradle.kts
index 75d0d8759..6db5f00cc 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -780,6 +780,7 @@ tasks {
   ":catalogs:catalog-hive:copyLibAndConfig",
   ":catalogs:catalog-lakehouse-iceberg:copyLibAndConfig",
   ":catalogs:catalog-lakehouse-paimon:copyLibAndConfig",
+  "catalogs:catalog-lakehouse-hudi:copyLibAndConfig",
   ":catalogs:catalog-jdbc-doris:copyLibAndConfig",
   ":catalogs:catalog-jdbc-mysql:copyLibAndConfig",
   ":catalogs:catalog-jdbc-postgresql:copyLibAndConfig",
diff --git a/catalogs/catalog-hive/build.gradle.kts 
b/catalogs/catalog-hive/build.gradle.kts
index 2afb48f9a..aca8959df 100644
--- a/catalogs/catalog-hive/build.gradle.kts
+++ b/catalogs/catalog-hive/build.gradle.kts
@@ -58,7 +58,7 @@ dependencies {
 exclude("com.google.code.findbugs", "sr305")
 exclude("com.tdunning", "json")
 exclude("com.zaxxer", "HikariCP")
-exclude("io.dropwizard.metricss")
+exclude("io.dropwizard.metrics")
 exclude("javax.transaction", "transaction-api")
 exclude("org.apache.ant")
 exclude("org.apache.avro")
diff --git a/catalogs/catalog-kafka/build.gradle.kts 
b/catalogs/catalog-kafka/build.gradle.kts
index fe8e6086f..6a8c104c7 100644
--- a/catalogs/catalog-kafka/build.gradle.kts
+++ b/catalogs/catalog-kafka/build.gradle.kts
@@ -97,15 +97,6 @@ 
tasks.getByName("generateMetadataFileForMavenJavaPublication") {
 }
 
 tasks.test {
-  doFirst {
-val testMode = project.properties["testMode"] as? String ?: "embedded"
-if (testMode == "deploy") {
-  environment("GRAVITINO_HOME", project.rootDir.path + 
"/distribution/package")
-} else if (testMode == "embedded") {
-  environment("GRAVITINO_HOME", project.rootDir.path)
-}
-  }
-
   val skipITs = project.hasProperty("skipITs")
   if (skipITs) {
 // Exclude integration tests
diff --git a/catalogs/catalog-lakehouse-hudi/build.gradle.kts 
b/catalogs/catalog-lakehouse-hudi/build.gradle.kts
index eef90f029..814965ec0 100644
--- a/catalogs/catalog-lakehouse-hudi/build.gradle.kts
+++ b/catalogs/catalog-lakehouse-hudi/build.gradle.kts
@@ -27,55 +27,38 @@ plugins {
 val scalaVersion: String = project.properties["scalaVersion"] as? String ?: 
extra["defaultScalaVersion"].toString()
 val fullSparkVersion: String = libs.versions.spark34.get()
 val sparkVersion = fullSparkVersion.split(".").take(2).joinToString(".")
+val hudiVersion = libs.versions.hudi.get()
 
 dependencies {
   implementation(project(":api")) {
-exclude(group = "*")
+exclude("*")
   }
   implementation(project(":common")) {
-exclude(group = "*")
+exclude("*")
   }
   implementation(project(":catalogs:hive-metastore-common"))
   implementation(project(":core")) {
-exclude(group = "*")
+exclude("*")
   }
 

Re: [PR] [#4867] feat(core): Add storage support for columns in Gravitino [gravitino]

2024-10-12 Thread via GitHub


jerryshao commented on PR #5078:
URL: https://github.com/apache/gravitino/pull/5078#issuecomment-2408521985

   > > I feel like it is not that easy to validate if the column is deleted or 
not through entity store interface, because we columns cannot managed directly 
through this interface, it is handled when we do the table operations.
   > 
   > I see. Maybe we can refer to the `TestJDBCBackend.listFilesetVersions()` 
method, query the data through JDBC connection directly.
   
   OK, let me check it.


-- 
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: commits-unsubscr...@gravitino.apache.org

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



Re: [I] [Improvement] Execution flow of drop a role [gravitino]

2024-10-12 Thread via GitHub


jerqi closed issue #4509: [Improvement] Execution flow of drop a role
URL: https://github.com/apache/gravitino/issues/4509


-- 
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: commits-unsubscr...@gravitino.apache.org

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



Re: [I] [Bug report] Incorrect Parsing of array<> Data Type in Database Metadata [gravitino]

2024-10-12 Thread via GitHub


lsyulong commented on issue #5098:
URL: https://github.com/apache/gravitino/issues/5098#issuecomment-2408850954

   Hello, has anyone submitted a PR to fix this issue? I would like to give it 
a try. Can you assign it to me? If you encounter any problems, feel free to 
communicate with you at any time


-- 
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: commits-unsubscr...@gravitino.apache.org

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



Re: [PR] [#4953] feat(hudi-catalog): add Hudi catalog IT and enable module [gravitino]

2024-10-12 Thread via GitHub


mchades commented on code in PR #4965:
URL: https://github.com/apache/gravitino/pull/4965#discussion_r1797622083


##
catalogs/catalog-lakehouse-hudi/build.gradle.kts:
##
@@ -115,12 +110,29 @@ dependencies {
   testImplementation(libs.hadoop2.auth) {
 exclude("*")
   }
+  testImplementation(libs.hadoop2.hdfs)
   testImplementation(libs.hadoop2.mapreduce.client.core) {
 exclude("*")
   }
   testImplementation(libs.htrace.core4)
   testImplementation(libs.junit.jupiter.api)
-  testImplementation(libs.woodstox.core)
+  testImplementation(libs.mysql.driver)
+  testImplementation(libs.postgresql.driver)
+  testImplementation(libs.prometheus.dropwizard)

Review Comment:
   `libs.mysql.driver` and `libs.postgresql.driver` are for Gravitino different 
backends IT.
   
   For `libs.prometheus.dropwizard`, if I removed it, will encountered the 
below error:
   ```
   Caused by: java.lang.NoSuchMethodError: 
io.prometheus.client.dropwizard.DropwizardExports.(Lcom/codahale/metrics/MetricRegistry;Lio/prometheus/client/dropwizard/samplebuilder/SampleBuilder;)V
at 
org.apache.gravitino.metrics.MetricsSystem.registerMetricsToPrometheusRegistry(MetricsSystem.java:186)
at 
org.apache.gravitino.metrics.MetricsSystem.start(MetricsSystem.java:121)
at org.apache.gravitino.GravitinoEnv.start(GravitinoEnv.java:312)
at 
org.apache.gravitino.server.GravitinoServer.start(GravitinoServer.java:147)
at 
org.apache.gravitino.server.GravitinoServer.main(GravitinoServer.java:169)
at 
org.apache.gravitino.integration.test.MiniGravitino.lambda$start$0(MiniGravitino.java:150)
   ```
   Because the `hudi_spark_bundle` jar includes the same class 
`DropwizardExports` which is conflict with the Gravitino's dependency so I have 
to declare the `libs.prometheus.dropwizard` dependency explicitly



-- 
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: commits-unsubscr...@gravitino.apache.org

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



Re: [PR] [#4951] improvement(test): Reduce fields shares between different IT to make AbstractIT more independent. [gravitino]

2024-10-12 Thread via GitHub


yuqi1129 commented on code in PR #4996:
URL: https://github.com/apache/gravitino/pull/4996#discussion_r1797624956


##
integration-test-common/src/test/java/org/apache/gravitino/integration/test/util/AbstractIT.java:
##
@@ -58,61 +58,61 @@
 import org.apache.gravitino.server.web.JettyServerConfig;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.TestInstance;
 import org.junit.jupiter.api.extension.ExtendWith;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.CsvSource;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.testcontainers.shaded.org.awaitility.Awaitility;
 
 @ExtendWith({PrintFuncNameExtension.class, CloseContainerExtension.class})
+@TestInstance(TestInstance.Lifecycle.PER_CLASS)

Review Comment:
   Yes.  Please see `SparkHiveCatalogIT33` and `SparkHiveCatalogIT`



-- 
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: commits-unsubscr...@gravitino.apache.org

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



Re: [PR] [#4951] improvement(test): Reduce fields shares between different IT to make AbstractIT more independent. [gravitino]

2024-10-12 Thread via GitHub


yuqi1129 commented on code in PR #4996:
URL: https://github.com/apache/gravitino/pull/4996#discussion_r1797625045


##
integration-test-common/src/test/java/org/apache/gravitino/integration/test/util/AbstractIT.java:
##
@@ -248,15 +248,8 @@ public static String startAndInitMySQLBackend() {
 }
   }
 
-  @ParameterizedTest
-  @CsvSource({
-"embedded, jdbcBackend",
-"embedded, kvBackend",
-"deploy, jdbcBackend",
-"deploy, kvBackend"
-  })

Review Comment:
   It's pointless and won't actually happen. 



-- 
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: commits-unsubscr...@gravitino.apache.org

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



Re: [PR] [#5057] Added first part of CLI code [gravitino]

2024-10-12 Thread via GitHub


justinmclean commented on code in PR #5058:
URL: https://github.com/apache/gravitino/pull/5058#discussion_r1797720606


##
clients/cli/src/main/java/org/apache/gravitino/cli/FullName.java:
##
@@ -0,0 +1,123 @@
+/*
+ * 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.cli;
+
+import org.apache.commons.cli.CommandLine;
+
+/**
+ * Extracts different arts of a full name (dot seperated) from the command 
line input. This includes
+ * metalake, catalog, schema, and table names.
+ */
+public class FullName {
+  CommandLine line;
+
+  /**
+   * Constructor for the {@code FullName} class.
+   *
+   * @param line The parsed command line arguments.
+   */
+  public FullName(CommandLine line) {
+this.line = line;
+  }
+
+  /**
+   * Retrieves the metalake name from the command line options, environment 
variables, or the first
+   * part of the full name.
+   *
+   * @return The metalake name, or null if not found.
+   */
+  public String getMetalakeName() {
+String metalakeEnv = System.getenv("GRAVITINO_METALAKE");
+
+// Check if the metalake name is specified as a command line option
+if (line.hasOption(GravitinoOptions.METALAKE)) {
+  return line.getOptionValue(GravitinoOptions.METALAKE);
+  // Check if the metalake name is set as an environment variable
+} else if (metalakeEnv != null) {
+  return metalakeEnv;
+  // Extract the metalake name from the full name option
+} else if (line.hasOption(GravitinoOptions.NAME)) {
+  return line.getOptionValue(GravitinoOptions.NAME).split("\\.")[0];
+}
+
+return null;

Review Comment:
   It's not needed here as the CLI API detects that earlier on.



-- 
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: commits-unsubscr...@gravitino.apache.org

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



Re: [PR] [#5057] Added first part of CLI code [gravitino]

2024-10-12 Thread via GitHub


justinmclean commented on code in PR #5058:
URL: https://github.com/apache/gravitino/pull/5058#discussion_r1797720541


##
clients/cli/build.gradle.kts:
##
@@ -0,0 +1,59 @@
+/*
+ * 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.
+ */
+plugins {
+  `maven-publish`
+  id("java")
+  id("idea")
+}
+
+dependencies {
+  implementation(project(":clients:client-java"))
+  implementation(project(":api"))
+  implementation(project(":common"))
+  implementation("commons-cli:commons-cli:1.9.0")
+  implementation("org.slf4j:slf4j-api:2.0.16")
+  implementation("org.slf4j:slf4j-simple:2.0.16")
+
+  testImplementation(libs.junit.jupiter.api)
+  testImplementation(libs.junit.jupiter.params)
+  testImplementation(libs.mockito.core)
+
+  testRuntimeOnly(libs.junit.jupiter.engine)
+}
+
+tasks.build {
+  dependsOn("javadoc")

Review Comment:
   So don't generate java docs? Javadocs are still useful for developers who 
are working on the code.



-- 
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: commits-unsubscr...@gravitino.apache.org

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



Re: [I] [Improvement] README.md should refer the link to our doc website but not doc's source directory [gravitino]

2024-10-12 Thread via GitHub


yuqi1129 commented on issue #5109:
URL: https://github.com/apache/gravitino/issues/5109#issuecomment-2408772436

   > Hi, 
   > 
   > 
   > 
   > I'm interested on working on this. Could I please be assigned? Thanks. 
   
   Sure,please go ahead.


-- 
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: commits-unsubscr...@gravitino.apache.org

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



Re: [PR] [#5057] Added first part of CLI code [gravitino]

2024-10-12 Thread via GitHub


justinmclean commented on code in PR #5058:
URL: https://github.com/apache/gravitino/pull/5058#discussion_r1797720606


##
clients/cli/src/main/java/org/apache/gravitino/cli/FullName.java:
##
@@ -0,0 +1,123 @@
+/*
+ * 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.cli;
+
+import org.apache.commons.cli.CommandLine;
+
+/**
+ * Extracts different arts of a full name (dot seperated) from the command 
line input. This includes
+ * metalake, catalog, schema, and table names.
+ */
+public class FullName {
+  CommandLine line;
+
+  /**
+   * Constructor for the {@code FullName} class.
+   *
+   * @param line The parsed command line arguments.
+   */
+  public FullName(CommandLine line) {
+this.line = line;
+  }
+
+  /**
+   * Retrieves the metalake name from the command line options, environment 
variables, or the first
+   * part of the full name.
+   *
+   * @return The metalake name, or null if not found.
+   */
+  public String getMetalakeName() {
+String metalakeEnv = System.getenv("GRAVITINO_METALAKE");
+
+// Check if the metalake name is specified as a command line option
+if (line.hasOption(GravitinoOptions.METALAKE)) {
+  return line.getOptionValue(GravitinoOptions.METALAKE);
+  // Check if the metalake name is set as an environment variable
+} else if (metalakeEnv != null) {
+  return metalakeEnv;
+  // Extract the metalake name from the full name option
+} else if (line.hasOption(GravitinoOptions.NAME)) {
+  return line.getOptionValue(GravitinoOptions.NAME).split("\\.")[0];
+}
+
+return null;

Review Comment:
   It's unnecessary here as the CLI API detects that earlier (when parsing the 
command line). Also, the code handles the case when this returns nulls,



-- 
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: commits-unsubscr...@gravitino.apache.org

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



Re: [PR] [#5057] Added first part of CLI code [gravitino]

2024-10-12 Thread via GitHub


justinmclean commented on code in PR #5058:
URL: https://github.com/apache/gravitino/pull/5058#discussion_r1797720606


##
clients/cli/src/main/java/org/apache/gravitino/cli/FullName.java:
##
@@ -0,0 +1,123 @@
+/*
+ * 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.cli;
+
+import org.apache.commons.cli.CommandLine;
+
+/**
+ * Extracts different arts of a full name (dot seperated) from the command 
line input. This includes
+ * metalake, catalog, schema, and table names.
+ */
+public class FullName {
+  CommandLine line;
+
+  /**
+   * Constructor for the {@code FullName} class.
+   *
+   * @param line The parsed command line arguments.
+   */
+  public FullName(CommandLine line) {
+this.line = line;
+  }
+
+  /**
+   * Retrieves the metalake name from the command line options, environment 
variables, or the first
+   * part of the full name.
+   *
+   * @return The metalake name, or null if not found.
+   */
+  public String getMetalakeName() {
+String metalakeEnv = System.getenv("GRAVITINO_METALAKE");
+
+// Check if the metalake name is specified as a command line option
+if (line.hasOption(GravitinoOptions.METALAKE)) {
+  return line.getOptionValue(GravitinoOptions.METALAKE);
+  // Check if the metalake name is set as an environment variable
+} else if (metalakeEnv != null) {
+  return metalakeEnv;
+  // Extract the metalake name from the full name option
+} else if (line.hasOption(GravitinoOptions.NAME)) {
+  return line.getOptionValue(GravitinoOptions.NAME).split("\\.")[0];
+}
+
+return null;

Review Comment:
   It's unnecessary here as the CLI API detects that earlier (when parsing the 
command line). Also, the code handles the case when this returns nulls.



-- 
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: commits-unsubscr...@gravitino.apache.org

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



Re: [I] [Improvement] README.md should refer the link to our doc website but not doc's source directory [gravitino]

2024-10-12 Thread via GitHub


SeanAverS commented on issue #5109:
URL: https://github.com/apache/gravitino/issues/5109#issuecomment-2408680452

   Hi, 
   
   I'm interested on working on this. Could I please be assigned? Thanks. 


-- 
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: commits-unsubscr...@gravitino.apache.org

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



Re: [PR] [#5071] Improvement (test): Add integration tests for Trino cascading queries [gravitino]

2024-10-12 Thread via GitHub


diqiu50 commented on code in PR #5073:
URL: https://github.com/apache/gravitino/pull/5073#discussion_r1797626917


##
.github/workflows/trino-integration-test.yml:
##
@@ -76,7 +76,7 @@ jobs:
 
   - name: Package Gravitino
 run: |
-  ./gradlew compileDistribution -x test -PjdkVersion=${{ 
matrix.java-version }}
+  ./gradlew build compileDistribution -x test -PjdkVersion=${{ 
matrix.java-version }}

Review Comment:
   the `compileDistribution` task does not build the Trino connector



-- 
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: commits-unsubscr...@gravitino.apache.org

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



Re: [PR] [#5071] Improvement (test): Add integration tests for Trino cascading queries [gravitino]

2024-10-12 Thread via GitHub


diqiu50 commented on code in PR #5073:
URL: https://github.com/apache/gravitino/pull/5073#discussion_r1797615808


##
trino-connector/integration-test/trino-test-tools/trino-cascading-env/init/trino-local/config/catalog/trino.properties:
##
@@ -0,0 +1,21 @@
+#
+# 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.
+
+connector.name=trino
+connection-url=jdbc:trino://trino-remote:8080/tpcds

Review Comment:
   That URL is a valid connection-url used by the Docker Compose environment.



-- 
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: commits-unsubscr...@gravitino.apache.org

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



Re: [PR] [#4867] feat(core): Add storage support for columns in Gravitino [gravitino]

2024-10-12 Thread via GitHub


xloya commented on PR #5078:
URL: https://github.com/apache/gravitino/pull/5078#issuecomment-2408458762

   > I feel like it is not that easy to validate if the column is deleted or 
not through entity store interface, because we columns cannot managed directly 
through this interface, it is handled when we do the table operations.
   
   I see. Maybe we can refer to the `TestJDBCBackend.listFilesetVersions()` 
method, query the data through JDBC connection directly.


-- 
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: commits-unsubscr...@gravitino.apache.org

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



Re: [PR] [#3920] feat(catalog-lakehouse-paimon): Support jdbc backend for Paimon Catalog [gravitino]

2024-10-12 Thread via GitHub


caican00 commented on code in PR #5087:
URL: https://github.com/apache/gravitino/pull/5087#discussion_r1797634852


##
catalogs/catalog-lakehouse-paimon/src/main/java/org/apache/gravitino/catalog/lakehouse/paimon/PaimonCatalogPropertiesMetadata.java:
##
@@ -46,14 +46,26 @@ public class PaimonCatalogPropertiesMetadata extends 
BaseCatalogPropertiesMetada
   public static final String PAIMON_METASTORE = "metastore";
   public static final String WAREHOUSE = "warehouse";
   public static final String URI = "uri";
+  public static final String JDBC_USER = "jdbc.user";

Review Comment:
   Paimon use `jdbc.` as property prefix.



-- 
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: commits-unsubscr...@gravitino.apache.org

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



Re: [PR] [#3920] feat(catalog-lakehouse-paimon): Support jdbc backend for Paimon Catalog [gravitino]

2024-10-12 Thread via GitHub


caican00 commented on code in PR #5087:
URL: https://github.com/apache/gravitino/pull/5087#discussion_r1797634852


##
catalogs/catalog-lakehouse-paimon/src/main/java/org/apache/gravitino/catalog/lakehouse/paimon/PaimonCatalogPropertiesMetadata.java:
##
@@ -46,14 +46,26 @@ public class PaimonCatalogPropertiesMetadata extends 
BaseCatalogPropertiesMetada
   public static final String PAIMON_METASTORE = "metastore";
   public static final String WAREHOUSE = "warehouse";
   public static final String URI = "uri";
+  public static final String JDBC_USER = "jdbc.user";

Review Comment:
   Paimon use `jdbc.` as property prefix.
   
   
https://github.com/apache/paimon/blob/master/paimon-core/src/main/java/org/apache/paimon/jdbc/JdbcCatalog.java#L70



-- 
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: commits-unsubscr...@gravitino.apache.org

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



Re: [PR] [#4953] feat(hudi-catalog): add Hudi catalog IT and enable module [gravitino]

2024-10-12 Thread via GitHub


mchades commented on code in PR #4965:
URL: https://github.com/apache/gravitino/pull/4965#discussion_r1797632676


##
server/src/main/java/org/apache/gravitino/server/GravitinoServer.java:
##
@@ -119,6 +120,7 @@ protected void configure() {
 register(JsonParseExceptionMapper.class);
 register(JsonMappingExceptionMapper.class);
 register(ObjectMapperProvider.class).register(JacksonFeature.class);
+property(CommonProperties.JSON_JACKSON_DISABLED_MODULES, 
"DefaultScalaModule");

Review Comment:
   To resolve below error in embedded test mode:
   > com.fasterxml.jackson.databind.JsonMappingException: Scala module 2.14.2 
requires Jackson Databind version >= 2.14.0 and < 2.15.0 - Found 
jackson-databind version 2.15.2
   >at 
org.apache.hudi.com.fasterxml.jackson.module.scala.JacksonModule.setupModule(JacksonModule.scala:61)
   >at 
org.apache.hudi.com.fasterxml.jackson.module.scala.JacksonModule.setupModule$(JacksonModule.scala:46)
   >at 
org.apache.hudi.com.fasterxml.jackson.module.scala.DefaultScalaModule.setupModule(DefaultScalaModule.scala:17)
   >at 
com.fasterxml.jackson.databind.ObjectMapper.registerModule(ObjectMapper.java:879)
   >at 
com.fasterxml.jackson.databind.ObjectMapper.registerModules(ObjectMapper.java:1081)
   >at 
org.glassfish.jersey.jackson.internal.DefaultJacksonJaxbJsonProvider.findAndRegisterModules(DefaultJacksonJaxbJsonProvider.java:86)
   >at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   >at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
   >at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   >at java.lang.reflect.Method.invoke(Method.java:498)
   >at 
org.glassfish.hk2.utilities.reflection.ReflectionHelper.invoke(ReflectionHelper.java:1268)
   >at 
org.jvnet.hk2.internal.ClazzCreator.postConstructMe(ClazzCreator.java:309)
   >at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:351)
   >at 
org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:463)
   >at 
org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:59)
   >at 
org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:47)
   >at 
org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture$1.call(Cache.java:74)
   >at java.util.concurrent.FutureTask.run(FutureTask.java:266)
   >at 
org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture.run(Cache.java:131)
   >at org.glassfish.hk2.utilities.cache.Cache.compute(Cache.java:176)
   >at 
org.jvnet.hk2.internal.SingletonContext.findOrCreate(SingletonContext.java:98)
   >at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2102)
   >at 
org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:93)
   >at 
org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:67)
   >at 
org.glassfish.jersey.inject.hk2.AbstractHk2InjectionManager.lambda$getAllServiceHolders$0(AbstractHk2InjectionManager.java:137)
   >at 
java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
   >at 
java.util.LinkedList$LLSpliterator.forEachRemaining(LinkedList.java:1235)
   >at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
   >at 
java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
   >at 
java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
   >at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
   >at 
java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:566)
   >at 
org.glassfish.jersey.inject.hk2.AbstractHk2InjectionManager.getAllServiceHolders(AbstractHk2InjectionManager.java:141)
   >at 
org.glassfish.jersey.inject.hk2.ImmediateHk2InjectionManager.getAllServiceHolders(ImmediateHk2InjectionManager.java:30)
   >at 
org.glassfish.jersey.internal.inject.Providers.getServiceHolders(Providers.java:307)
   >at 
org.glassfish.jersey.internal.inject.Providers.getCustomProviders(Providers.java:151)
   >at 
org.glassfish.jersey.message.internal.MessageBodyFactory.initialize(MessageBodyFactory.java:219)
   >at 
org.glassfish.jersey.message.internal.MessageBodyFactory$MessageBodyWorkersConfigurator.postInit(MessageBodyFactory.java:114)
   >at 
org.glassfish.jersey.server.ApplicationHandler.lambda$initialize$2(ApplicationHandler.java:353)
   >at java.util.Arrays$ArrayList.forEach(Arrays.java:3880)
   >at 
org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:353)
   >at 
org.glassfish.jersey.server.ApplicationHandler.lambda$initialize$1(ApplicationHandler.java:297)
   >at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
   >at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
   >at 
org.glassfish.jersey.internal.Errors.processW

[PR] [#5120] improvement(docs): Add the document of metadata object ownership [gravitino]

2024-10-12 Thread via GitHub


jerqi opened a new pull request, #5123:
URL: https://github.com/apache/gravitino/pull/5123

   ### What changes were proposed in this pull request?
   
   Add the document of metadata object ownership
   
   ### Why are the changes needed?
   
   Fix: #5120
   
   ### Does this PR introduce _any_ user-facing change?
   No.
   
   ### How was this patch tested?
   Just document.
   


-- 
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: commits-unsubscr...@gravitino.apache.org

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



Re: [PR] [#3920] feat(catalog-lakehouse-paimon): Support jdbc backend for Paimon Catalog [gravitino]

2024-10-12 Thread via GitHub


caican00 commented on code in PR #5087:
URL: https://github.com/apache/gravitino/pull/5087#discussion_r1797642532


##
catalogs/catalog-lakehouse-paimon/src/main/java/org/apache/gravitino/catalog/lakehouse/paimon/utils/CatalogUtils.java:
##
@@ -121,6 +123,17 @@ private static void checkPaimonConfig(PaimonConfig 
paimonConfig) {
   Preconditions.checkArgument(
   StringUtils.isNotBlank(uri), "Paimon Catalog uri can not be null or 
empty.");
 }
+
+if (PaimonCatalogBackend.JDBC.name().equalsIgnoreCase(metastore)) {
+  String jdbcUser = paimonConfig.get(CATALOG_JDBC_USER);

Review Comment:
   fixed.



##
catalogs/catalog-lakehouse-paimon/src/test/java/org/apache/gravitino/catalog/lakehouse/paimon/integration/test/CatalogPaimonFileSystemIT.java:
##
@@ -48,4 +55,22 @@ protected Map initPaimonCatalogProperties() {
 
 return catalogProperties;
   }
+
+  @Test
+  void testPaimonSchemaProperties() throws Catalog.DatabaseNotExistException {

Review Comment:
   removed.



-- 
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: commits-unsubscr...@gravitino.apache.org

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



Re: [PR] [#3920] feat(catalog-lakehouse-paimon): Support jdbc backend for Paimon Catalog [gravitino]

2024-10-12 Thread via GitHub


caican00 commented on PR #5087:
URL: https://github.com/apache/gravitino/pull/5087#issuecomment-2408476354

   > @caican00 , some minor comments, and could you add related document?
   
   @FANNG1 please review again, thanks


-- 
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: commits-unsubscr...@gravitino.apache.org

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



Re: [PR] [#3920] feat(catalog-lakehouse-paimon): Support jdbc backend for Paimon Catalog [gravitino]

2024-10-12 Thread via GitHub


FANNG1 commented on code in PR #5087:
URL: https://github.com/apache/gravitino/pull/5087#discussion_r1797643075


##
catalogs/catalog-lakehouse-paimon/src/main/java/org/apache/gravitino/catalog/lakehouse/paimon/PaimonCatalogPropertiesMetadata.java:
##
@@ -46,14 +46,26 @@ public class PaimonCatalogPropertiesMetadata extends 
BaseCatalogPropertiesMetada
   public static final String PAIMON_METASTORE = "metastore";
   public static final String WAREHOUSE = "warehouse";
   public static final String URI = "uri";
+  public static final String JDBC_USER = "jdbc.user";

Review Comment:
   Iceberg internally uses `jdbc.user` too, we'd better provide a unified 
Gravitino Jdbc username.



-- 
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: commits-unsubscr...@gravitino.apache.org

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



Re: [PR] [#3920] feat(catalog-lakehouse-paimon): Support jdbc backend for Paimon Catalog [gravitino]

2024-10-12 Thread via GitHub


FANNG1 commented on code in PR #5087:
URL: https://github.com/apache/gravitino/pull/5087#discussion_r1797643309


##
catalogs/catalog-lakehouse-paimon/build.gradle.kts:
##
@@ -122,12 +122,14 @@ dependencies {
   testImplementation(libs.junit.jupiter.api)
   testImplementation(libs.mysql.driver)
   testImplementation(libs.postgresql.driver)
+  testImplementation(libs.h2db)
   testImplementation(libs.bundles.log4j)
   testImplementation(libs.junit.jupiter.params)
   testImplementation(libs.paimon.s3)
   testImplementation(libs.paimon.spark)
   testImplementation(libs.testcontainers)
   testImplementation(libs.testcontainers.localstack)
+  testImplementation(libs.testcontainers.mysql)

Review Comment:
   ok



-- 
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: commits-unsubscr...@gravitino.apache.org

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



Re: [PR] [#4953] feat(hudi-catalog): add Hudi catalog IT and enable module [gravitino]

2024-10-12 Thread via GitHub


mchades commented on code in PR #4965:
URL: https://github.com/apache/gravitino/pull/4965#discussion_r1797630170


##
catalogs/catalog-lakehouse-hudi/build.gradle.kts:
##
@@ -138,3 +150,60 @@ dependencies {
   
testRuntimeOnly("org.apache.hudi:hudi-spark$sparkVersion-bundle_$scalaVersion:0.15.0")

Review Comment:
   fixed



-- 
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: commits-unsubscr...@gravitino.apache.org

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



Re: [PR] [#3973] improvement(core):support audit log [gravitino]

2024-10-12 Thread via GitHub


FANNG1 commented on PR #4575:
URL: https://github.com/apache/gravitino/pull/4575#issuecomment-2408453321

   > I kind of agree with @hanwxx , AuditLog and event are two things, we don't 
have to use interface to put them together. Using a converter to bridge them 
together without hard combination seems better to me.
   
   It will hard to transform `IcebergRESTServiceEvent` to  `AuditLog` when 
supporting Iceberg REST server audit log.  `IcebergRESTServiceEvent` will be 
defined in `IcebergRESTServer` module because it may contains some Iceberg 
specific object like `TableMetaData`.  I agree that we'd better not mix event 
and audit, but maybe we need a trade-off.


-- 
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: commits-unsubscr...@gravitino.apache.org

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



Re: [PR] [#3920] feat(catalog-lakehouse-paimon): Support jdbc backend for Paimon Catalog [gravitino]

2024-10-12 Thread via GitHub


caican00 commented on code in PR #5087:
URL: https://github.com/apache/gravitino/pull/5087#discussion_r1797640061


##
catalogs/catalog-lakehouse-paimon/build.gradle.kts:
##
@@ -122,12 +122,14 @@ dependencies {
   testImplementation(libs.junit.jupiter.api)
   testImplementation(libs.mysql.driver)
   testImplementation(libs.postgresql.driver)
+  testImplementation(libs.h2db)
   testImplementation(libs.bundles.log4j)
   testImplementation(libs.junit.jupiter.params)
   testImplementation(libs.paimon.s3)
   testImplementation(libs.paimon.spark)
   testImplementation(libs.testcontainers)
   testImplementation(libs.testcontainers.localstack)
+  testImplementation(libs.testcontainers.mysql)

Review Comment:
   > why adding this?
   
   to test paimon catalog when the catalog backend is mysql.



-- 
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: commits-unsubscr...@gravitino.apache.org

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