codope commented on code in PR #7871:
URL: https://github.com/apache/hudi/pull/7871#discussion_r1111428840
##########
hudi-spark-datasource/hudi-spark/src/main/scala/org/apache/spark/sql/hudi/command/DeleteHoodieTableCommand.scala:
##########
@@ -20,35 +20,44 @@ package org.apache.spark.sql.hudi.command
import org.apache.hudi.SparkAdapterSupport
import org.apache.spark.sql._
import org.apache.spark.sql.catalyst.catalog.HoodieCatalogTable
-import org.apache.spark.sql.catalyst.plans.logical.DeleteFromTable
-import org.apache.spark.sql.catalyst.expressions.Expression
-import org.apache.spark.sql.hudi.HoodieSqlCommonUtils._
+import org.apache.spark.sql.catalyst.plans.logical.{DeleteFromTable, Filter}
import org.apache.spark.sql.hudi.ProvidesHoodieConfig
+import
org.apache.spark.sql.hudi.command.HoodieLeafRunnableCommand.stripMetaFieldAttributes
-case class DeleteHoodieTableCommand(deleteTable: DeleteFromTable) extends
HoodieLeafRunnableCommand
- with SparkAdapterSupport with ProvidesHoodieConfig {
+case class DeleteHoodieTableCommand(dft: DeleteFromTable) extends
HoodieLeafRunnableCommand
+ with SparkAdapterSupport
+ with ProvidesHoodieConfig {
- private val table = deleteTable.table
+ override def run(sparkSession: SparkSession): Seq[Row] = {
+ val catalogTable = sparkAdapter.resolveHoodieTable(dft.table)
+ .map(HoodieCatalogTable(sparkSession, _))
+ .get
- private val tableId = getTableIdentifier(table)
+ val tableId = catalogTable.table.qualifiedName
- override def run(sparkSession: SparkSession): Seq[Row] = {
- logInfo(s"start execute delete command for $tableId")
+ logInfo(s"Executing 'DELETE FROM' command for $tableId")
+
+ val condition = sparkAdapter.extractDeleteCondition(dft)
+
+ val targetLogicalPlan = stripMetaFieldAttributes(dft.table)
Review Comment:
Ok, so you're saying we are essentially retaining the same behavior. I'm not
sure why we remove meta fields. We should allow such delete conditions. It's
not the most common use case but still worth it when users want to remove all
records since a processing time. Wdyt?
cc @xiarixiaoyao @XuQianJin-Stars
--
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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]