Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
package org.apache.spark.sql.hudi

import org.apache.hudi.DataSourceWriteOptions._
import org.apache.hudi.HoodieSparkUtils
import org.apache.hudi.common.model.HoodieRecord
import org.apache.hudi.common.table.{HoodieTableConfig, HoodieTableMetaClient}
import org.apache.hudi.config.HoodieWriteConfig
Expand Down Expand Up @@ -641,4 +642,26 @@ class TestCreateTable extends HoodieSparkSqlTestBase {
|""".stripMargin
)
}

if (HoodieSparkUtils.gteqSpark3_2) {
test("Test create table with comment") {
val tableName = generateTableName
spark.sql(
s"""
| create table $tableName (
| id int,
| name string,
| price double,
| ts long
| ) using hudi
| comment "This is a simple hudi table"
| tblproperties (
| primaryKey = 'id',
| preCombineField = 'ts'
| )
""".stripMargin)
val shown = spark.sql(s"show create table $tableName").head.getString(0)
assertResult(true)(shown.contains("COMMENT 'This is a simple hudi table'"))
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -89,19 +89,21 @@ class HoodieCatalog extends DelegatingCatalogExtension
}

override def loadTable(ident: Identifier): Table = {
try {
super.loadTable(ident) match {
case v1: V1Table if sparkAdapter.isHoodieTable(v1.catalogTable) =>
HoodieInternalV2Table(
spark,
v1.catalogTable.location.toString,
catalogTable = Some(v1.catalogTable),
tableIdentifier = Some(ident.toString))
case o => o
}
} catch {
case e: Exception =>
throw e
super.loadTable(ident) match {
case V1Table(catalogTable0) if sparkAdapter.isHoodieTable(catalogTable0) =>
val catalogTable = catalogTable0.comment match {
case Some(v) =>
val newProps = catalogTable0.properties + (TableCatalog.PROP_COMMENT -> v)
catalogTable0.copy(properties = newProps)
case _ =>
catalogTable0
}
HoodieInternalV2Table(
spark = spark,
path = catalogTable.location.toString,
catalogTable = Some(catalogTable),
tableIdentifier = Some(ident.toString))
case o => o
}
}

Expand Down