This is an automated email from the ASF dual-hosted git repository.
lzljs3620320 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/paimon.git
The following commit(s) were added to refs/heads/master by this push:
new 220f80d6c [spark] Fix drop database cascade when database with view
with SparkGenericCatalog (#3347)
220f80d6c is described below
commit 220f80d6cb37729bb2f94b697b66157e974c1cd3
Author: Zouxxyy <[email protected]>
AuthorDate: Mon May 20 10:52:53 2024 +0800
[spark] Fix drop database cascade when database with view with
SparkGenericCatalog (#3347)
---
.../main/java/org/apache/paimon/spark/SparkGenericCatalog.java | 9 ++++++++-
.../test/scala/org/apache/paimon/spark/PaimonSparkTestBase.scala | 5 +++++
.../org/apache/paimon/spark/sql/DDLWithHiveCatalogTestBase.scala | 8 ++++++++
3 files changed, 21 insertions(+), 1 deletion(-)
diff --git
a/paimon-spark/paimon-spark-common/src/main/java/org/apache/paimon/spark/SparkGenericCatalog.java
b/paimon-spark/paimon-spark-common/src/main/java/org/apache/paimon/spark/SparkGenericCatalog.java
index b947523fe..9576379f8 100644
---
a/paimon-spark/paimon-spark-common/src/main/java/org/apache/paimon/spark/SparkGenericCatalog.java
+++
b/paimon-spark/paimon-spark-common/src/main/java/org/apache/paimon/spark/SparkGenericCatalog.java
@@ -134,7 +134,14 @@ public class SparkGenericCatalog extends SparkBaseCatalog
implements CatalogExte
throws NoSuchNamespaceException, NonEmptyNamespaceException {
if (namespace.length == 1 && namespaceExists(namespace) && cascade) {
for (Identifier table : listTables(namespace)) {
- dropTable(table);
+ try {
+ dropTable(table);
+ } catch (Exception e) {
+ LOG.warn(
+ "Failed to drop {}, fallback to use sessionCatalog
to drop, for {}",
+ table,
+ e.getMessage());
+ }
}
}
return asNamespaceCatalog().dropNamespace(namespace, cascade);
diff --git
a/paimon-spark/paimon-spark-common/src/test/scala/org/apache/paimon/spark/PaimonSparkTestBase.scala
b/paimon-spark/paimon-spark-common/src/test/scala/org/apache/paimon/spark/PaimonSparkTestBase.scala
index 6ccf08016..814001bc9 100644
---
a/paimon-spark/paimon-spark-common/src/test/scala/org/apache/paimon/spark/PaimonSparkTestBase.scala
+++
b/paimon-spark/paimon-spark-common/src/test/scala/org/apache/paimon/spark/PaimonSparkTestBase.scala
@@ -84,6 +84,11 @@ class PaimonSparkTestBase
}
}
+ protected def reset(): Unit = {
+ afterAll()
+ beforeAll()
+ }
+
/** Default is paimon catalog */
override protected def beforeEach(): Unit = {
super.beforeAll()
diff --git
a/paimon-spark/paimon-spark-common/src/test/scala/org/apache/paimon/spark/sql/DDLWithHiveCatalogTestBase.scala
b/paimon-spark/paimon-spark-common/src/test/scala/org/apache/paimon/spark/sql/DDLWithHiveCatalogTestBase.scala
index c03f61bf6..c542633dc 100644
---
a/paimon-spark/paimon-spark-common/src/test/scala/org/apache/paimon/spark/sql/DDLWithHiveCatalogTestBase.scala
+++
b/paimon-spark/paimon-spark-common/src/test/scala/org/apache/paimon/spark/sql/DDLWithHiveCatalogTestBase.scala
@@ -99,7 +99,9 @@ abstract class DDLWithHiveCatalogTestBase extends
PaimonHiveTestBase {
}
}
+ // Since we created a new sparkContext, we need to stop it and reset the
default sparkContext
reusedSpark.stop()
+ reset()
}
test("Paimon DDL with hive catalog: drop database cascade which contains
paimon table") {
@@ -111,6 +113,12 @@ abstract class DDLWithHiveCatalogTestBase extends
PaimonHiveTestBase {
spark.sql(s"CREATE DATABASE paimon_db")
spark.sql(s"USE paimon_db")
spark.sql(s"CREATE TABLE paimon_tbl (id int, name string, dt string)
using paimon")
+ // Currently, only spark_catalog supports create other table or view
+ if (catalogName.equals(sparkCatalogName)) {
+ spark.sql(s"CREATE TABLE parquet_tbl (id int, name string, dt
string) using parquet")
+ spark.sql(s"CREATE VIEW parquet_tbl_view AS SELECT * FROM
parquet_tbl")
+ spark.sql(s"CREATE VIEW paimon_tbl_view AS SELECT * FROM
paimon_tbl")
+ }
spark.sql(s"USE default")
spark.sql(s"DROP DATABASE paimon_db CASCADE")
}