This is an automated email from the ASF dual-hosted git repository.

agrove pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datafusion-comet.git


The following commit(s) were added to refs/heads/main by this push:
     new ecaa4ae70 chore: Refactor `CometExecRule` handling of 
`BroadcastHashJoin` and fix fallback reporting (#2856)
ecaa4ae70 is described below

commit ecaa4ae707d8d4dd07043ca0e32dad1ea6ae4d57
Author: Andy Grove <[email protected]>
AuthorDate: Mon Dec 8 09:41:35 2025 -0700

    chore: Refactor `CometExecRule` handling of `BroadcastHashJoin` and fix 
fallback reporting (#2856)
---
 .../org/apache/comet/rules/CometExecRule.scala     | 77 +++-------------------
 .../sql/comet/CometBroadcastExchangeExec.scala     | 25 ++++++-
 .../q10.native_iceberg_compat/extended.txt         |  2 +-
 .../approved-plans-v1_4-spark3_5/q10/extended.txt  |  2 +-
 .../q24a.native_iceberg_compat/extended.txt        |  4 +-
 .../approved-plans-v1_4-spark3_5/q24a/extended.txt |  4 +-
 .../q24b.native_iceberg_compat/extended.txt        |  4 +-
 .../approved-plans-v1_4-spark3_5/q24b/extended.txt |  4 +-
 .../q28.native_iceberg_compat/extended.txt         | 10 +--
 .../approved-plans-v1_4-spark3_5/q28/extended.txt  | 10 +--
 .../q35.native_iceberg_compat/extended.txt         |  2 +-
 .../approved-plans-v1_4-spark3_5/q35/extended.txt  |  2 +-
 .../q45.native_iceberg_compat/extended.txt         |  2 +-
 .../approved-plans-v1_4-spark3_5/q45/extended.txt  |  2 +-
 .../q61.native_iceberg_compat/extended.txt         |  2 +-
 .../approved-plans-v1_4-spark3_5/q61/extended.txt  |  2 +-
 .../q69.native_iceberg_compat/extended.txt         |  2 +-
 .../approved-plans-v1_4-spark3_5/q69/extended.txt  |  2 +-
 .../q77.native_iceberg_compat/extended.txt         |  2 +-
 .../approved-plans-v1_4-spark3_5/q77/extended.txt  |  2 +-
 .../q87.native_iceberg_compat/extended.txt         |  2 +-
 .../approved-plans-v1_4-spark3_5/q87/extended.txt  |  2 +-
 .../q88.native_iceberg_compat/extended.txt         | 14 ++--
 .../approved-plans-v1_4-spark3_5/q88/extended.txt  | 14 ++--
 .../q90.native_iceberg_compat/extended.txt         |  2 +-
 .../approved-plans-v1_4-spark3_5/q90/extended.txt  |  2 +-
 .../q10.native_iceberg_compat/extended.txt         |  2 +-
 .../approved-plans-v1_4-spark4_0/q10/extended.txt  |  2 +-
 .../q24a.native_iceberg_compat/extended.txt        |  4 +-
 .../approved-plans-v1_4-spark4_0/q24a/extended.txt |  4 +-
 .../q24b.native_iceberg_compat/extended.txt        |  4 +-
 .../approved-plans-v1_4-spark4_0/q24b/extended.txt |  4 +-
 .../q28.native_iceberg_compat/extended.txt         | 10 +--
 .../approved-plans-v1_4-spark4_0/q28/extended.txt  | 10 +--
 .../q35.native_iceberg_compat/extended.txt         |  2 +-
 .../approved-plans-v1_4-spark4_0/q35/extended.txt  |  2 +-
 .../q45.native_iceberg_compat/extended.txt         |  2 +-
 .../approved-plans-v1_4-spark4_0/q45/extended.txt  |  2 +-
 .../q61.native_iceberg_compat/extended.txt         |  2 +-
 .../approved-plans-v1_4-spark4_0/q61/extended.txt  |  2 +-
 .../q69.native_iceberg_compat/extended.txt         |  2 +-
 .../approved-plans-v1_4-spark4_0/q69/extended.txt  |  2 +-
 .../q77.native_iceberg_compat/extended.txt         |  2 +-
 .../approved-plans-v1_4-spark4_0/q77/extended.txt  |  2 +-
 .../q87.native_iceberg_compat/extended.txt         |  2 +-
 .../approved-plans-v1_4-spark4_0/q87/extended.txt  |  2 +-
 .../q88.native_iceberg_compat/extended.txt         | 14 ++--
 .../approved-plans-v1_4-spark4_0/q88/extended.txt  | 14 ++--
 .../q90.native_iceberg_compat/extended.txt         |  2 +-
 .../approved-plans-v1_4-spark4_0/q90/extended.txt  |  2 +-
 .../q10.native_iceberg_compat/extended.txt         |  2 +-
 .../approved-plans-v1_4/q10/extended.txt           |  2 +-
 .../q24a.native_iceberg_compat/extended.txt        |  4 +-
 .../approved-plans-v1_4/q24a/extended.txt          |  4 +-
 .../q24b.native_iceberg_compat/extended.txt        |  4 +-
 .../approved-plans-v1_4/q24b/extended.txt          |  4 +-
 .../q28.native_iceberg_compat/extended.txt         | 10 +--
 .../approved-plans-v1_4/q28/extended.txt           | 10 +--
 .../q35.native_iceberg_compat/extended.txt         |  2 +-
 .../approved-plans-v1_4/q35/extended.txt           |  2 +-
 .../q45.native_iceberg_compat/extended.txt         |  2 +-
 .../approved-plans-v1_4/q45/extended.txt           |  2 +-
 .../q61.native_iceberg_compat/extended.txt         |  2 +-
 .../approved-plans-v1_4/q61/extended.txt           |  2 +-
 .../q69.native_iceberg_compat/extended.txt         |  2 +-
 .../approved-plans-v1_4/q69/extended.txt           |  2 +-
 .../q77.native_iceberg_compat/extended.txt         |  2 +-
 .../approved-plans-v1_4/q77/extended.txt           |  2 +-
 .../q87.native_iceberg_compat/extended.txt         |  2 +-
 .../approved-plans-v1_4/q87/extended.txt           |  2 +-
 .../q88.native_iceberg_compat/extended.txt         | 14 ++--
 .../approved-plans-v1_4/q88/extended.txt           | 14 ++--
 .../q90.native_iceberg_compat/extended.txt         |  2 +-
 .../approved-plans-v1_4/q90/extended.txt           |  2 +-
 .../q22.native_iceberg_compat/extended.txt         |  2 +-
 .../approved-plans-v2_7-spark3_5/q22/extended.txt  |  2 +-
 .../q24.native_iceberg_compat/extended.txt         |  4 +-
 .../approved-plans-v2_7-spark3_5/q24/extended.txt  |  4 +-
 .../q35.native_iceberg_compat/extended.txt         |  2 +-
 .../approved-plans-v2_7-spark3_5/q35/extended.txt  |  2 +-
 .../q77a.native_iceberg_compat/extended.txt        |  6 +-
 .../approved-plans-v2_7-spark3_5/q77a/extended.txt |  6 +-
 .../q22.native_iceberg_compat/extended.txt         |  2 +-
 .../approved-plans-v2_7-spark4_0/q22/extended.txt  |  2 +-
 .../q24.native_iceberg_compat/extended.txt         |  4 +-
 .../approved-plans-v2_7-spark4_0/q24/extended.txt  |  4 +-
 .../q35.native_iceberg_compat/extended.txt         |  2 +-
 .../approved-plans-v2_7-spark4_0/q35/extended.txt  |  2 +-
 .../q77a.native_iceberg_compat/extended.txt        |  6 +-
 .../approved-plans-v2_7-spark4_0/q77a/extended.txt |  6 +-
 .../q22.native_iceberg_compat/extended.txt         |  2 +-
 .../approved-plans-v2_7/q22/extended.txt           |  2 +-
 .../q24.native_iceberg_compat/extended.txt         |  4 +-
 .../approved-plans-v2_7/q24/extended.txt           |  4 +-
 .../q35.native_iceberg_compat/extended.txt         |  2 +-
 .../approved-plans-v2_7/q35/extended.txt           |  2 +-
 .../q77a.native_iceberg_compat/extended.txt        |  6 +-
 .../approved-plans-v2_7/q77a/extended.txt          |  6 +-
 98 files changed, 216 insertions(+), 258 deletions(-)

diff --git a/spark/src/main/scala/org/apache/comet/rules/CometExecRule.scala 
b/spark/src/main/scala/org/apache/comet/rules/CometExecRule.scala
index 6879fba4e..89e38e5d7 100644
--- a/spark/src/main/scala/org/apache/comet/rules/CometExecRule.scala
+++ b/spark/src/main/scala/org/apache/comet/rules/CometExecRule.scala
@@ -36,11 +36,10 @@ import 
org.apache.spark.sql.execution.joins.{BroadcastHashJoinExec, ShuffledHash
 import org.apache.spark.sql.execution.window.WindowExec
 import org.apache.spark.sql.types._
 
-import org.apache.comet.{CometConf, ExtendedExplainInfo}
+import org.apache.comet.{CometConf, CometExplainInfo, ExtendedExplainInfo}
 import org.apache.comet.CometSparkSessionExtensions._
 import org.apache.comet.rules.CometExecRule.allExecs
 import org.apache.comet.serde.{CometOperatorSerde, Compatible, Incompatible, 
OperatorOuterClass, Unsupported}
-import org.apache.comet.serde.OperatorOuterClass.Operator
 import org.apache.comet.serde.operator._
 import org.apache.comet.serde.operator.CometDataWritingCommand
 
@@ -206,15 +205,8 @@ case class CometExecRule(session: SparkSession) extends 
Rule[SparkPlan] {
       // broadcast exchange is forced to be enabled by Comet config.
       case plan if plan.children.exists(_.isInstanceOf[BroadcastExchangeExec]) 
=>
         val newChildren = plan.children.map {
-          case b: BroadcastExchangeExec
-              if isCometNative(b.child) &&
-                CometConf.COMET_EXEC_BROADCAST_EXCHANGE_ENABLED.get(conf) =>
-            operator2Proto(b) match {
-              case Some(nativeOp) =>
-                val cometOp = CometBroadcastExchangeExec(b, b.output, b.mode, 
b.child)
-                CometSinkPlaceHolder(nativeOp, b, cometOp)
-              case None => b
-            }
+          case b: BroadcastExchangeExec =>
+            convertToCometIfAllChildrenAreNative(b, 
CometBroadcastExchangeExec).getOrElse(b)
           case other => other
         }
         if (!newChildren.exists(_.isInstanceOf[BroadcastExchangeExec])) {
@@ -222,11 +214,11 @@ case class CometExecRule(session: SparkSession) extends 
Rule[SparkPlan] {
           if (isCometNative(newPlan) || isCometBroadCastForceEnabled(conf)) {
             newPlan
           } else {
-            if (isCometNative(newPlan)) {
-              val reason =
-                getCometBroadcastNotEnabledReason(conf).getOrElse("no reason 
available")
-              withInfo(plan, s"Broadcast is not enabled: $reason")
-            }
+            // copy fallback reasons to the original plan
+            newPlan
+              .getTagValue(CometExplainInfo.EXTENSION_INFO)
+              .foreach(reasons => withInfos(plan, reasons))
+            // return the original plan
             plan
           }
         } else {
@@ -457,59 +449,6 @@ case class CometExecRule(session: SparkSession) extends 
Rule[SparkPlan] {
     }
   }
 
-  /**
-   * Fallback for handling sinks that have not been handled explicitly. This 
method should
-   * eventually be removed once CometExecRule fully uses the operator serde 
framework.
-   */
-  private def operator2Proto(op: SparkPlan, childOp: Operator*): 
Option[Operator] = {
-
-    def isCometSink(op: SparkPlan): Boolean = {
-      op match {
-        case _: CometSparkToColumnarExec => true
-        case _: CometSinkPlaceHolder => true
-        case _ => false
-      }
-    }
-
-    def isExchangeSink(op: SparkPlan): Boolean = {
-      op match {
-        case _: ShuffleExchangeExec => true
-        case ShuffleQueryStageExec(_, _: CometShuffleExchangeExec, _) => true
-        case ShuffleQueryStageExec(_, ReusedExchangeExec(_, _: 
CometShuffleExchangeExec), _) =>
-          true
-        case BroadcastQueryStageExec(_, _: CometBroadcastExchangeExec, _) => 
true
-        case BroadcastQueryStageExec(
-              _,
-              ReusedExchangeExec(_, _: CometBroadcastExchangeExec),
-              _) =>
-          true
-        case _: BroadcastExchangeExec => true
-        case _ => false
-      }
-    }
-
-    val builder = OperatorOuterClass.Operator.newBuilder().setPlanId(op.id)
-    childOp.foreach(builder.addChildren)
-
-    op match {
-      case op if isExchangeSink(op) =>
-        CometExchangeSink.convert(op, builder, childOp: _*)
-
-      case op if isCometSink(op) =>
-        CometScanWrapper.convert(op, builder, childOp: _*)
-
-      case _ =>
-        // Emit warning if:
-        //  1. it is not Spark shuffle operator, which is handled separately
-        //  2. it is not a Comet operator
-        if (!op.nodeName.contains("Comet") &&
-          !op.isInstanceOf[ShuffleExchangeExec]) {
-          withInfo(op, s"unsupported Spark operator: ${op.nodeName}")
-        }
-        None
-    }
-  }
-
   /**
    * Convert a Spark plan to a Comet plan using the specified serde handler, 
but only if all
    * children are native.
diff --git 
a/spark/src/main/scala/org/apache/spark/sql/comet/CometBroadcastExchangeExec.scala
 
b/spark/src/main/scala/org/apache/spark/sql/comet/CometBroadcastExchangeExec.scala
index 95770592f..f40e05ea0 100644
--- 
a/spark/src/main/scala/org/apache/spark/sql/comet/CometBroadcastExchangeExec.scala
+++ 
b/spark/src/main/scala/org/apache/spark/sql/comet/CometBroadcastExchangeExec.scala
@@ -36,7 +36,7 @@ import org.apache.spark.sql.comet.util.Utils
 import org.apache.spark.sql.errors.QueryExecutionErrors
 import org.apache.spark.sql.execution.{ColumnarToRowExec, SparkPlan, 
SQLExecution}
 import org.apache.spark.sql.execution.adaptive.{AQEShuffleReadExec, 
ShuffleQueryStageExec}
-import org.apache.spark.sql.execution.exchange.{BroadcastExchangeLike, 
ReusedExchangeExec}
+import org.apache.spark.sql.execution.exchange.{BroadcastExchangeExec, 
BroadcastExchangeLike, ReusedExchangeExec}
 import org.apache.spark.sql.execution.metric.{SQLMetric, SQLMetrics}
 import org.apache.spark.sql.internal.{SQLConf, StaticSQLConf}
 import org.apache.spark.sql.vectorized.ColumnarBatch
@@ -45,7 +45,9 @@ import org.apache.spark.util.io.ChunkedByteBuffer
 
 import com.google.common.base.Objects
 
-import org.apache.comet.CometRuntimeException
+import org.apache.comet.{CometConf, CometRuntimeException, ConfigEntry}
+import org.apache.comet.serde.OperatorOuterClass
+import org.apache.comet.serde.operator.CometSink
 import org.apache.comet.shims.ShimCometBroadcastExchangeExec
 
 /**
@@ -262,7 +264,24 @@ case class CometBroadcastExchangeExec(
     copy(child = newChild)
 }
 
-object CometBroadcastExchangeExec {
+object CometBroadcastExchangeExec extends CometSink[BroadcastExchangeExec] {
+
+  /**
+   * Exchange data is FFI safe because there is no use of mutable buffers 
involved.
+   *
+   * Source of broadcast exchange batches is ArrowStreamReader.
+   */
+  override def isFfiSafe: Boolean = true
+
+  override def enabledConfig: Option[ConfigEntry[Boolean]] = Some(
+    CometConf.COMET_EXEC_BROADCAST_EXCHANGE_ENABLED)
+
+  override def createExec(
+      nativeOp: OperatorOuterClass.Operator,
+      b: BroadcastExchangeExec): CometNativeExec = {
+    CometSinkPlaceHolder(nativeOp, b, CometBroadcastExchangeExec(b, b.output, 
b.mode, b.child))
+  }
+
   private[comet] val executionContext = ExecutionContext.fromExecutorService(
     ThreadUtils.newDaemonCachedThreadPool(
       "comet-broadcast-exchange",
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q10.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q10.native_iceberg_compat/extended.txt
index 7c8ec2476..a6f33d6f7 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q10.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q10.native_iceberg_compat/extended.txt
@@ -10,7 +10,7 @@ TakeOrderedAndProject
                   :     :- Project
                   :     :  +- Filter
                   :     :     +- BroadcastHashJoin
-                  :     :        :- BroadcastHashJoin
+                  :     :        :-  BroadcastHashJoin [COMET: Unsupported 
join type ExistenceJoin(exists#1)]
                   :     :        :  :- CometColumnarToRow
                   :     :        :  :  +- CometBroadcastHashJoin
                   :     :        :  :     :- CometFilter
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q10/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q10/extended.txt
index 7c8ec2476..a6f33d6f7 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q10/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q10/extended.txt
@@ -10,7 +10,7 @@ TakeOrderedAndProject
                   :     :- Project
                   :     :  +- Filter
                   :     :     +- BroadcastHashJoin
-                  :     :        :- BroadcastHashJoin
+                  :     :        :-  BroadcastHashJoin [COMET: Unsupported 
join type ExistenceJoin(exists#1)]
                   :     :        :  :- CometColumnarToRow
                   :     :        :  :  +- CometBroadcastHashJoin
                   :     :        :  :     :- CometFilter
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q24a.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q24a.native_iceberg_compat/extended.txt
index 99e319aa1..8777e81a3 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q24a.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q24a.native_iceberg_compat/extended.txt
@@ -9,7 +9,7 @@ Filter
 :                       +- CometColumnarExchange
 :                          +- HashAggregate
 :                             +- Project
-:                                +- BroadcastHashJoin
+:                                +-  BroadcastHashJoin [COMET: Comet is not 
compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
 :                                   :- CometColumnarToRow
 :                                   :  +- CometProject
 :                                   :     +- CometBroadcastHashJoin
@@ -55,7 +55,7 @@ Filter
                   +- CometColumnarExchange
                      +- HashAggregate
                         +- Project
-                           +- BroadcastHashJoin
+                           +-  BroadcastHashJoin [COMET: Comet is not 
compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
                               :- CometColumnarToRow
                               :  +- CometProject
                               :     +- CometBroadcastHashJoin
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q24a/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q24a/extended.txt
index 99e319aa1..8777e81a3 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q24a/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q24a/extended.txt
@@ -9,7 +9,7 @@ Filter
 :                       +- CometColumnarExchange
 :                          +- HashAggregate
 :                             +- Project
-:                                +- BroadcastHashJoin
+:                                +-  BroadcastHashJoin [COMET: Comet is not 
compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
 :                                   :- CometColumnarToRow
 :                                   :  +- CometProject
 :                                   :     +- CometBroadcastHashJoin
@@ -55,7 +55,7 @@ Filter
                   +- CometColumnarExchange
                      +- HashAggregate
                         +- Project
-                           +- BroadcastHashJoin
+                           +-  BroadcastHashJoin [COMET: Comet is not 
compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
                               :- CometColumnarToRow
                               :  +- CometProject
                               :     +- CometBroadcastHashJoin
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q24b.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q24b.native_iceberg_compat/extended.txt
index 99e319aa1..8777e81a3 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q24b.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q24b.native_iceberg_compat/extended.txt
@@ -9,7 +9,7 @@ Filter
 :                       +- CometColumnarExchange
 :                          +- HashAggregate
 :                             +- Project
-:                                +- BroadcastHashJoin
+:                                +-  BroadcastHashJoin [COMET: Comet is not 
compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
 :                                   :- CometColumnarToRow
 :                                   :  +- CometProject
 :                                   :     +- CometBroadcastHashJoin
@@ -55,7 +55,7 @@ Filter
                   +- CometColumnarExchange
                      +- HashAggregate
                         +- Project
-                           +- BroadcastHashJoin
+                           +-  BroadcastHashJoin [COMET: Comet is not 
compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
                               :- CometColumnarToRow
                               :  +- CometProject
                               :     +- CometBroadcastHashJoin
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q24b/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q24b/extended.txt
index 99e319aa1..8777e81a3 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q24b/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q24b/extended.txt
@@ -9,7 +9,7 @@ Filter
 :                       +- CometColumnarExchange
 :                          +- HashAggregate
 :                             +- Project
-:                                +- BroadcastHashJoin
+:                                +-  BroadcastHashJoin [COMET: Comet is not 
compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
 :                                   :- CometColumnarToRow
 :                                   :  +- CometProject
 :                                   :     +- CometBroadcastHashJoin
@@ -55,7 +55,7 @@ Filter
                   +- CometColumnarExchange
                      +- HashAggregate
                         +- Project
-                           +- BroadcastHashJoin
+                           +-  BroadcastHashJoin [COMET: Comet is not 
compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
                               :- CometColumnarToRow
                               :  +- CometProject
                               :     +- CometBroadcastHashJoin
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q28.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q28.native_iceberg_compat/extended.txt
index 841b4c982..d2c0985d1 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q28.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q28.native_iceberg_compat/extended.txt
@@ -1,8 +1,8 @@
-BroadcastNestedLoopJoin
-:- BroadcastNestedLoopJoin
-:  :- BroadcastNestedLoopJoin
-:  :  :- BroadcastNestedLoopJoin
-:  :  :  :- BroadcastNestedLoopJoin
+ BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
+:-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
+:  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
 :  :  :  :  :- CometColumnarToRow
 :  :  :  :  :  +- CometHashAggregate
 :  :  :  :  :     +- CometColumnarExchange
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q28/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q28/extended.txt
index 841b4c982..d2c0985d1 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q28/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q28/extended.txt
@@ -1,8 +1,8 @@
-BroadcastNestedLoopJoin
-:- BroadcastNestedLoopJoin
-:  :- BroadcastNestedLoopJoin
-:  :  :- BroadcastNestedLoopJoin
-:  :  :  :- BroadcastNestedLoopJoin
+ BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
+:-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
+:  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
 :  :  :  :  :- CometColumnarToRow
 :  :  :  :  :  +- CometHashAggregate
 :  :  :  :  :     +- CometColumnarExchange
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q35.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q35.native_iceberg_compat/extended.txt
index 7c8ec2476..a6f33d6f7 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q35.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q35.native_iceberg_compat/extended.txt
@@ -10,7 +10,7 @@ TakeOrderedAndProject
                   :     :- Project
                   :     :  +- Filter
                   :     :     +- BroadcastHashJoin
-                  :     :        :- BroadcastHashJoin
+                  :     :        :-  BroadcastHashJoin [COMET: Unsupported 
join type ExistenceJoin(exists#1)]
                   :     :        :  :- CometColumnarToRow
                   :     :        :  :  +- CometBroadcastHashJoin
                   :     :        :  :     :- CometFilter
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q35/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q35/extended.txt
index 7c8ec2476..a6f33d6f7 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q35/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q35/extended.txt
@@ -10,7 +10,7 @@ TakeOrderedAndProject
                   :     :- Project
                   :     :  +- Filter
                   :     :     +- BroadcastHashJoin
-                  :     :        :- BroadcastHashJoin
+                  :     :        :-  BroadcastHashJoin [COMET: Unsupported 
join type ExistenceJoin(exists#1)]
                   :     :        :  :- CometColumnarToRow
                   :     :        :  :  +- CometBroadcastHashJoin
                   :     :        :  :     :- CometFilter
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q45.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q45.native_iceberg_compat/extended.txt
index 49dde6014..4a5709105 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q45.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q45.native_iceberg_compat/extended.txt
@@ -5,7 +5,7 @@ TakeOrderedAndProject
          +- HashAggregate
             +- Project
                +- Filter
-                  +- BroadcastHashJoin
+                  +-  BroadcastHashJoin [COMET: Unsupported join type 
ExistenceJoin(exists#1)]
                      :- CometColumnarToRow
                      :  +- CometProject
                      :     +- CometBroadcastHashJoin
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q45/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q45/extended.txt
index 49dde6014..4a5709105 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q45/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q45/extended.txt
@@ -5,7 +5,7 @@ TakeOrderedAndProject
          +- HashAggregate
             +- Project
                +- Filter
-                  +- BroadcastHashJoin
+                  +-  BroadcastHashJoin [COMET: Unsupported join type 
ExistenceJoin(exists#1)]
                      :- CometColumnarToRow
                      :  +- CometProject
                      :     +- CometBroadcastHashJoin
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q61.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q61.native_iceberg_compat/extended.txt
index fb4bf01d0..7bae7d572 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q61.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q61.native_iceberg_compat/extended.txt
@@ -1,5 +1,5 @@
 Project
-+- BroadcastNestedLoopJoin
++-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
    :- CometColumnarToRow
    :  +- CometHashAggregate
    :     +- CometExchange
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q61/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q61/extended.txt
index fb4bf01d0..7bae7d572 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q61/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q61/extended.txt
@@ -1,5 +1,5 @@
 Project
-+- BroadcastNestedLoopJoin
++-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
    :- CometColumnarToRow
    :  +- CometHashAggregate
    :     +- CometExchange
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q69.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q69.native_iceberg_compat/extended.txt
index f37311459..b4fbb455e 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q69.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q69.native_iceberg_compat/extended.txt
@@ -9,7 +9,7 @@ TakeOrderedAndProject
                   :  +- BroadcastHashJoin
                   :     :- Project
                   :     :  +- BroadcastHashJoin
-                  :     :     :- BroadcastHashJoin
+                  :     :     :-  BroadcastHashJoin [COMET: BuildRight with 
LeftAnti is not supported]
                   :     :     :  :- CometColumnarToRow
                   :     :     :  :  +- CometBroadcastHashJoin
                   :     :     :  :     :- CometFilter
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q69/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q69/extended.txt
index f37311459..b4fbb455e 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q69/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q69/extended.txt
@@ -9,7 +9,7 @@ TakeOrderedAndProject
                   :  +- BroadcastHashJoin
                   :     :- Project
                   :     :  +- BroadcastHashJoin
-                  :     :     :- BroadcastHashJoin
+                  :     :     :-  BroadcastHashJoin [COMET: BuildRight with 
LeftAnti is not supported]
                   :     :     :  :- CometColumnarToRow
                   :     :     :  :  +- CometBroadcastHashJoin
                   :     :     :  :     :- CometFilter
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q77.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q77.native_iceberg_compat/extended.txt
index 4ce836532..ed8a9e38c 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q77.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q77.native_iceberg_compat/extended.txt
@@ -49,7 +49,7 @@ TakeOrderedAndProject
                   :                             +- CometFilter
                   :                                +- CometScan 
[native_iceberg_compat] parquet spark_catalog.default.store
                   :- Project
-                  :  +- BroadcastNestedLoopJoin
+                  :  +-  BroadcastNestedLoopJoin [COMET: 
BroadcastNestedLoopJoin is not supported]
                   :     :- BroadcastExchange
                   :     :  +- CometColumnarToRow
                   :     :     +- CometHashAggregate
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q77/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q77/extended.txt
index 4ce836532..ed8a9e38c 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q77/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q77/extended.txt
@@ -49,7 +49,7 @@ TakeOrderedAndProject
                   :                             +- CometFilter
                   :                                +- CometScan 
[native_iceberg_compat] parquet spark_catalog.default.store
                   :- Project
-                  :  +- BroadcastNestedLoopJoin
+                  :  +-  BroadcastNestedLoopJoin [COMET: 
BroadcastNestedLoopJoin is not supported]
                   :     :- BroadcastExchange
                   :     :  +- CometColumnarToRow
                   :     :     +- CometHashAggregate
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q87.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q87.native_iceberg_compat/extended.txt
index df6870cc2..ddee139ac 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q87.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q87.native_iceberg_compat/extended.txt
@@ -4,7 +4,7 @@ HashAggregate
       +- HashAggregate
          +- Project
             +- BroadcastHashJoin
-               :- BroadcastHashJoin
+               :-  BroadcastHashJoin [COMET: BuildRight with LeftAnti is not 
supported]
                :  :- CometColumnarToRow
                :  :  +- CometHashAggregate
                :  :     +- CometExchange
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q87/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q87/extended.txt
index df6870cc2..ddee139ac 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q87/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q87/extended.txt
@@ -4,7 +4,7 @@ HashAggregate
       +- HashAggregate
          +- Project
             +- BroadcastHashJoin
-               :- BroadcastHashJoin
+               :-  BroadcastHashJoin [COMET: BuildRight with LeftAnti is not 
supported]
                :  :- CometColumnarToRow
                :  :  +- CometHashAggregate
                :  :     +- CometExchange
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q88.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q88.native_iceberg_compat/extended.txt
index d66f614b3..caaa611f9 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q88.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q88.native_iceberg_compat/extended.txt
@@ -1,10 +1,10 @@
-BroadcastNestedLoopJoin
-:- BroadcastNestedLoopJoin
-:  :- BroadcastNestedLoopJoin
-:  :  :- BroadcastNestedLoopJoin
-:  :  :  :- BroadcastNestedLoopJoin
-:  :  :  :  :- BroadcastNestedLoopJoin
-:  :  :  :  :  :- BroadcastNestedLoopJoin
+ BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
+:-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
+:  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :  :  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is 
not supported]
 :  :  :  :  :  :  :- CometColumnarToRow
 :  :  :  :  :  :  :  +- CometHashAggregate
 :  :  :  :  :  :  :     +- CometExchange
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q88/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q88/extended.txt
index d66f614b3..caaa611f9 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q88/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q88/extended.txt
@@ -1,10 +1,10 @@
-BroadcastNestedLoopJoin
-:- BroadcastNestedLoopJoin
-:  :- BroadcastNestedLoopJoin
-:  :  :- BroadcastNestedLoopJoin
-:  :  :  :- BroadcastNestedLoopJoin
-:  :  :  :  :- BroadcastNestedLoopJoin
-:  :  :  :  :  :- BroadcastNestedLoopJoin
+ BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
+:-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
+:  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :  :  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is 
not supported]
 :  :  :  :  :  :  :- CometColumnarToRow
 :  :  :  :  :  :  :  +- CometHashAggregate
 :  :  :  :  :  :  :     +- CometExchange
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q90.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q90.native_iceberg_compat/extended.txt
index 98eab805f..aa6c577ed 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q90.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q90.native_iceberg_compat/extended.txt
@@ -1,5 +1,5 @@
 Project
-+- BroadcastNestedLoopJoin
++-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
    :- CometColumnarToRow
    :  +- CometHashAggregate
    :     +- CometExchange
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q90/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q90/extended.txt
index 98eab805f..aa6c577ed 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q90/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q90/extended.txt
@@ -1,5 +1,5 @@
 Project
-+- BroadcastNestedLoopJoin
++-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
    :- CometColumnarToRow
    :  +- CometHashAggregate
    :     +- CometExchange
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q10.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q10.native_iceberg_compat/extended.txt
index 7c8ec2476..a6f33d6f7 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q10.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q10.native_iceberg_compat/extended.txt
@@ -10,7 +10,7 @@ TakeOrderedAndProject
                   :     :- Project
                   :     :  +- Filter
                   :     :     +- BroadcastHashJoin
-                  :     :        :- BroadcastHashJoin
+                  :     :        :-  BroadcastHashJoin [COMET: Unsupported 
join type ExistenceJoin(exists#1)]
                   :     :        :  :- CometColumnarToRow
                   :     :        :  :  +- CometBroadcastHashJoin
                   :     :        :  :     :- CometFilter
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q10/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q10/extended.txt
index 7c8ec2476..a6f33d6f7 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q10/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q10/extended.txt
@@ -10,7 +10,7 @@ TakeOrderedAndProject
                   :     :- Project
                   :     :  +- Filter
                   :     :     +- BroadcastHashJoin
-                  :     :        :- BroadcastHashJoin
+                  :     :        :-  BroadcastHashJoin [COMET: Unsupported 
join type ExistenceJoin(exists#1)]
                   :     :        :  :- CometColumnarToRow
                   :     :        :  :  +- CometBroadcastHashJoin
                   :     :        :  :     :- CometFilter
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q24a.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q24a.native_iceberg_compat/extended.txt
index 99e319aa1..8777e81a3 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q24a.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q24a.native_iceberg_compat/extended.txt
@@ -9,7 +9,7 @@ Filter
 :                       +- CometColumnarExchange
 :                          +- HashAggregate
 :                             +- Project
-:                                +- BroadcastHashJoin
+:                                +-  BroadcastHashJoin [COMET: Comet is not 
compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
 :                                   :- CometColumnarToRow
 :                                   :  +- CometProject
 :                                   :     +- CometBroadcastHashJoin
@@ -55,7 +55,7 @@ Filter
                   +- CometColumnarExchange
                      +- HashAggregate
                         +- Project
-                           +- BroadcastHashJoin
+                           +-  BroadcastHashJoin [COMET: Comet is not 
compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
                               :- CometColumnarToRow
                               :  +- CometProject
                               :     +- CometBroadcastHashJoin
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q24a/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q24a/extended.txt
index 99e319aa1..8777e81a3 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q24a/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q24a/extended.txt
@@ -9,7 +9,7 @@ Filter
 :                       +- CometColumnarExchange
 :                          +- HashAggregate
 :                             +- Project
-:                                +- BroadcastHashJoin
+:                                +-  BroadcastHashJoin [COMET: Comet is not 
compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
 :                                   :- CometColumnarToRow
 :                                   :  +- CometProject
 :                                   :     +- CometBroadcastHashJoin
@@ -55,7 +55,7 @@ Filter
                   +- CometColumnarExchange
                      +- HashAggregate
                         +- Project
-                           +- BroadcastHashJoin
+                           +-  BroadcastHashJoin [COMET: Comet is not 
compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
                               :- CometColumnarToRow
                               :  +- CometProject
                               :     +- CometBroadcastHashJoin
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q24b.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q24b.native_iceberg_compat/extended.txt
index 99e319aa1..8777e81a3 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q24b.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q24b.native_iceberg_compat/extended.txt
@@ -9,7 +9,7 @@ Filter
 :                       +- CometColumnarExchange
 :                          +- HashAggregate
 :                             +- Project
-:                                +- BroadcastHashJoin
+:                                +-  BroadcastHashJoin [COMET: Comet is not 
compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
 :                                   :- CometColumnarToRow
 :                                   :  +- CometProject
 :                                   :     +- CometBroadcastHashJoin
@@ -55,7 +55,7 @@ Filter
                   +- CometColumnarExchange
                      +- HashAggregate
                         +- Project
-                           +- BroadcastHashJoin
+                           +-  BroadcastHashJoin [COMET: Comet is not 
compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
                               :- CometColumnarToRow
                               :  +- CometProject
                               :     +- CometBroadcastHashJoin
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q24b/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q24b/extended.txt
index 99e319aa1..8777e81a3 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q24b/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q24b/extended.txt
@@ -9,7 +9,7 @@ Filter
 :                       +- CometColumnarExchange
 :                          +- HashAggregate
 :                             +- Project
-:                                +- BroadcastHashJoin
+:                                +-  BroadcastHashJoin [COMET: Comet is not 
compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
 :                                   :- CometColumnarToRow
 :                                   :  +- CometProject
 :                                   :     +- CometBroadcastHashJoin
@@ -55,7 +55,7 @@ Filter
                   +- CometColumnarExchange
                      +- HashAggregate
                         +- Project
-                           +- BroadcastHashJoin
+                           +-  BroadcastHashJoin [COMET: Comet is not 
compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
                               :- CometColumnarToRow
                               :  +- CometProject
                               :     +- CometBroadcastHashJoin
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q28.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q28.native_iceberg_compat/extended.txt
index 841b4c982..d2c0985d1 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q28.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q28.native_iceberg_compat/extended.txt
@@ -1,8 +1,8 @@
-BroadcastNestedLoopJoin
-:- BroadcastNestedLoopJoin
-:  :- BroadcastNestedLoopJoin
-:  :  :- BroadcastNestedLoopJoin
-:  :  :  :- BroadcastNestedLoopJoin
+ BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
+:-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
+:  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
 :  :  :  :  :- CometColumnarToRow
 :  :  :  :  :  +- CometHashAggregate
 :  :  :  :  :     +- CometColumnarExchange
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q28/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q28/extended.txt
index 841b4c982..d2c0985d1 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q28/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q28/extended.txt
@@ -1,8 +1,8 @@
-BroadcastNestedLoopJoin
-:- BroadcastNestedLoopJoin
-:  :- BroadcastNestedLoopJoin
-:  :  :- BroadcastNestedLoopJoin
-:  :  :  :- BroadcastNestedLoopJoin
+ BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
+:-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
+:  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
 :  :  :  :  :- CometColumnarToRow
 :  :  :  :  :  +- CometHashAggregate
 :  :  :  :  :     +- CometColumnarExchange
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q35.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q35.native_iceberg_compat/extended.txt
index 7c8ec2476..a6f33d6f7 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q35.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q35.native_iceberg_compat/extended.txt
@@ -10,7 +10,7 @@ TakeOrderedAndProject
                   :     :- Project
                   :     :  +- Filter
                   :     :     +- BroadcastHashJoin
-                  :     :        :- BroadcastHashJoin
+                  :     :        :-  BroadcastHashJoin [COMET: Unsupported 
join type ExistenceJoin(exists#1)]
                   :     :        :  :- CometColumnarToRow
                   :     :        :  :  +- CometBroadcastHashJoin
                   :     :        :  :     :- CometFilter
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q35/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q35/extended.txt
index 7c8ec2476..a6f33d6f7 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q35/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q35/extended.txt
@@ -10,7 +10,7 @@ TakeOrderedAndProject
                   :     :- Project
                   :     :  +- Filter
                   :     :     +- BroadcastHashJoin
-                  :     :        :- BroadcastHashJoin
+                  :     :        :-  BroadcastHashJoin [COMET: Unsupported 
join type ExistenceJoin(exists#1)]
                   :     :        :  :- CometColumnarToRow
                   :     :        :  :  +- CometBroadcastHashJoin
                   :     :        :  :     :- CometFilter
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q45.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q45.native_iceberg_compat/extended.txt
index 49dde6014..4a5709105 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q45.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q45.native_iceberg_compat/extended.txt
@@ -5,7 +5,7 @@ TakeOrderedAndProject
          +- HashAggregate
             +- Project
                +- Filter
-                  +- BroadcastHashJoin
+                  +-  BroadcastHashJoin [COMET: Unsupported join type 
ExistenceJoin(exists#1)]
                      :- CometColumnarToRow
                      :  +- CometProject
                      :     +- CometBroadcastHashJoin
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q45/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q45/extended.txt
index 49dde6014..4a5709105 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q45/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q45/extended.txt
@@ -5,7 +5,7 @@ TakeOrderedAndProject
          +- HashAggregate
             +- Project
                +- Filter
-                  +- BroadcastHashJoin
+                  +-  BroadcastHashJoin [COMET: Unsupported join type 
ExistenceJoin(exists#1)]
                      :- CometColumnarToRow
                      :  +- CometProject
                      :     +- CometBroadcastHashJoin
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q61.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q61.native_iceberg_compat/extended.txt
index fb4bf01d0..7bae7d572 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q61.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q61.native_iceberg_compat/extended.txt
@@ -1,5 +1,5 @@
 Project
-+- BroadcastNestedLoopJoin
++-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
    :- CometColumnarToRow
    :  +- CometHashAggregate
    :     +- CometExchange
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q61/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q61/extended.txt
index fb4bf01d0..7bae7d572 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q61/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q61/extended.txt
@@ -1,5 +1,5 @@
 Project
-+- BroadcastNestedLoopJoin
++-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
    :- CometColumnarToRow
    :  +- CometHashAggregate
    :     +- CometExchange
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q69.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q69.native_iceberg_compat/extended.txt
index f37311459..b4fbb455e 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q69.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q69.native_iceberg_compat/extended.txt
@@ -9,7 +9,7 @@ TakeOrderedAndProject
                   :  +- BroadcastHashJoin
                   :     :- Project
                   :     :  +- BroadcastHashJoin
-                  :     :     :- BroadcastHashJoin
+                  :     :     :-  BroadcastHashJoin [COMET: BuildRight with 
LeftAnti is not supported]
                   :     :     :  :- CometColumnarToRow
                   :     :     :  :  +- CometBroadcastHashJoin
                   :     :     :  :     :- CometFilter
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q69/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q69/extended.txt
index f37311459..b4fbb455e 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q69/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q69/extended.txt
@@ -9,7 +9,7 @@ TakeOrderedAndProject
                   :  +- BroadcastHashJoin
                   :     :- Project
                   :     :  +- BroadcastHashJoin
-                  :     :     :- BroadcastHashJoin
+                  :     :     :-  BroadcastHashJoin [COMET: BuildRight with 
LeftAnti is not supported]
                   :     :     :  :- CometColumnarToRow
                   :     :     :  :  +- CometBroadcastHashJoin
                   :     :     :  :     :- CometFilter
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q77.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q77.native_iceberg_compat/extended.txt
index 4ce836532..ed8a9e38c 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q77.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q77.native_iceberg_compat/extended.txt
@@ -49,7 +49,7 @@ TakeOrderedAndProject
                   :                             +- CometFilter
                   :                                +- CometScan 
[native_iceberg_compat] parquet spark_catalog.default.store
                   :- Project
-                  :  +- BroadcastNestedLoopJoin
+                  :  +-  BroadcastNestedLoopJoin [COMET: 
BroadcastNestedLoopJoin is not supported]
                   :     :- BroadcastExchange
                   :     :  +- CometColumnarToRow
                   :     :     +- CometHashAggregate
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q77/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q77/extended.txt
index 4ce836532..ed8a9e38c 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q77/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q77/extended.txt
@@ -49,7 +49,7 @@ TakeOrderedAndProject
                   :                             +- CometFilter
                   :                                +- CometScan 
[native_iceberg_compat] parquet spark_catalog.default.store
                   :- Project
-                  :  +- BroadcastNestedLoopJoin
+                  :  +-  BroadcastNestedLoopJoin [COMET: 
BroadcastNestedLoopJoin is not supported]
                   :     :- BroadcastExchange
                   :     :  +- CometColumnarToRow
                   :     :     +- CometHashAggregate
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q87.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q87.native_iceberg_compat/extended.txt
index df6870cc2..ddee139ac 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q87.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q87.native_iceberg_compat/extended.txt
@@ -4,7 +4,7 @@ HashAggregate
       +- HashAggregate
          +- Project
             +- BroadcastHashJoin
-               :- BroadcastHashJoin
+               :-  BroadcastHashJoin [COMET: BuildRight with LeftAnti is not 
supported]
                :  :- CometColumnarToRow
                :  :  +- CometHashAggregate
                :  :     +- CometExchange
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q87/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q87/extended.txt
index df6870cc2..ddee139ac 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q87/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q87/extended.txt
@@ -4,7 +4,7 @@ HashAggregate
       +- HashAggregate
          +- Project
             +- BroadcastHashJoin
-               :- BroadcastHashJoin
+               :-  BroadcastHashJoin [COMET: BuildRight with LeftAnti is not 
supported]
                :  :- CometColumnarToRow
                :  :  +- CometHashAggregate
                :  :     +- CometExchange
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q88.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q88.native_iceberg_compat/extended.txt
index d66f614b3..caaa611f9 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q88.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q88.native_iceberg_compat/extended.txt
@@ -1,10 +1,10 @@
-BroadcastNestedLoopJoin
-:- BroadcastNestedLoopJoin
-:  :- BroadcastNestedLoopJoin
-:  :  :- BroadcastNestedLoopJoin
-:  :  :  :- BroadcastNestedLoopJoin
-:  :  :  :  :- BroadcastNestedLoopJoin
-:  :  :  :  :  :- BroadcastNestedLoopJoin
+ BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
+:-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
+:  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :  :  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is 
not supported]
 :  :  :  :  :  :  :- CometColumnarToRow
 :  :  :  :  :  :  :  +- CometHashAggregate
 :  :  :  :  :  :  :     +- CometExchange
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q88/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q88/extended.txt
index d66f614b3..caaa611f9 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q88/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q88/extended.txt
@@ -1,10 +1,10 @@
-BroadcastNestedLoopJoin
-:- BroadcastNestedLoopJoin
-:  :- BroadcastNestedLoopJoin
-:  :  :- BroadcastNestedLoopJoin
-:  :  :  :- BroadcastNestedLoopJoin
-:  :  :  :  :- BroadcastNestedLoopJoin
-:  :  :  :  :  :- BroadcastNestedLoopJoin
+ BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
+:-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
+:  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :  :  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is 
not supported]
 :  :  :  :  :  :  :- CometColumnarToRow
 :  :  :  :  :  :  :  +- CometHashAggregate
 :  :  :  :  :  :  :     +- CometExchange
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q90.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q90.native_iceberg_compat/extended.txt
index 98eab805f..aa6c577ed 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q90.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q90.native_iceberg_compat/extended.txt
@@ -1,5 +1,5 @@
 Project
-+- BroadcastNestedLoopJoin
++-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
    :- CometColumnarToRow
    :  +- CometHashAggregate
    :     +- CometExchange
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q90/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q90/extended.txt
index 98eab805f..aa6c577ed 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q90/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q90/extended.txt
@@ -1,5 +1,5 @@
 Project
-+- BroadcastNestedLoopJoin
++-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
    :- CometColumnarToRow
    :  +- CometHashAggregate
    :     +- CometExchange
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q10.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q10.native_iceberg_compat/extended.txt
index 7c8ec2476..a6f33d6f7 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q10.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q10.native_iceberg_compat/extended.txt
@@ -10,7 +10,7 @@ TakeOrderedAndProject
                   :     :- Project
                   :     :  +- Filter
                   :     :     +- BroadcastHashJoin
-                  :     :        :- BroadcastHashJoin
+                  :     :        :-  BroadcastHashJoin [COMET: Unsupported 
join type ExistenceJoin(exists#1)]
                   :     :        :  :- CometColumnarToRow
                   :     :        :  :  +- CometBroadcastHashJoin
                   :     :        :  :     :- CometFilter
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q10/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q10/extended.txt
index 7c8ec2476..a6f33d6f7 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q10/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q10/extended.txt
@@ -10,7 +10,7 @@ TakeOrderedAndProject
                   :     :- Project
                   :     :  +- Filter
                   :     :     +- BroadcastHashJoin
-                  :     :        :- BroadcastHashJoin
+                  :     :        :-  BroadcastHashJoin [COMET: Unsupported 
join type ExistenceJoin(exists#1)]
                   :     :        :  :- CometColumnarToRow
                   :     :        :  :  +- CometBroadcastHashJoin
                   :     :        :  :     :- CometFilter
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q24a.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q24a.native_iceberg_compat/extended.txt
index 99e319aa1..8777e81a3 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q24a.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q24a.native_iceberg_compat/extended.txt
@@ -9,7 +9,7 @@ Filter
 :                       +- CometColumnarExchange
 :                          +- HashAggregate
 :                             +- Project
-:                                +- BroadcastHashJoin
+:                                +-  BroadcastHashJoin [COMET: Comet is not 
compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
 :                                   :- CometColumnarToRow
 :                                   :  +- CometProject
 :                                   :     +- CometBroadcastHashJoin
@@ -55,7 +55,7 @@ Filter
                   +- CometColumnarExchange
                      +- HashAggregate
                         +- Project
-                           +- BroadcastHashJoin
+                           +-  BroadcastHashJoin [COMET: Comet is not 
compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
                               :- CometColumnarToRow
                               :  +- CometProject
                               :     +- CometBroadcastHashJoin
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q24a/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q24a/extended.txt
index 99e319aa1..8777e81a3 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q24a/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q24a/extended.txt
@@ -9,7 +9,7 @@ Filter
 :                       +- CometColumnarExchange
 :                          +- HashAggregate
 :                             +- Project
-:                                +- BroadcastHashJoin
+:                                +-  BroadcastHashJoin [COMET: Comet is not 
compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
 :                                   :- CometColumnarToRow
 :                                   :  +- CometProject
 :                                   :     +- CometBroadcastHashJoin
@@ -55,7 +55,7 @@ Filter
                   +- CometColumnarExchange
                      +- HashAggregate
                         +- Project
-                           +- BroadcastHashJoin
+                           +-  BroadcastHashJoin [COMET: Comet is not 
compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
                               :- CometColumnarToRow
                               :  +- CometProject
                               :     +- CometBroadcastHashJoin
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q24b.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q24b.native_iceberg_compat/extended.txt
index 99e319aa1..8777e81a3 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q24b.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q24b.native_iceberg_compat/extended.txt
@@ -9,7 +9,7 @@ Filter
 :                       +- CometColumnarExchange
 :                          +- HashAggregate
 :                             +- Project
-:                                +- BroadcastHashJoin
+:                                +-  BroadcastHashJoin [COMET: Comet is not 
compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
 :                                   :- CometColumnarToRow
 :                                   :  +- CometProject
 :                                   :     +- CometBroadcastHashJoin
@@ -55,7 +55,7 @@ Filter
                   +- CometColumnarExchange
                      +- HashAggregate
                         +- Project
-                           +- BroadcastHashJoin
+                           +-  BroadcastHashJoin [COMET: Comet is not 
compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
                               :- CometColumnarToRow
                               :  +- CometProject
                               :     +- CometBroadcastHashJoin
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q24b/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q24b/extended.txt
index 99e319aa1..8777e81a3 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q24b/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q24b/extended.txt
@@ -9,7 +9,7 @@ Filter
 :                       +- CometColumnarExchange
 :                          +- HashAggregate
 :                             +- Project
-:                                +- BroadcastHashJoin
+:                                +-  BroadcastHashJoin [COMET: Comet is not 
compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
 :                                   :- CometColumnarToRow
 :                                   :  +- CometProject
 :                                   :     +- CometBroadcastHashJoin
@@ -55,7 +55,7 @@ Filter
                   +- CometColumnarExchange
                      +- HashAggregate
                         +- Project
-                           +- BroadcastHashJoin
+                           +-  BroadcastHashJoin [COMET: Comet is not 
compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
                               :- CometColumnarToRow
                               :  +- CometProject
                               :     +- CometBroadcastHashJoin
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q28.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q28.native_iceberg_compat/extended.txt
index 841b4c982..d2c0985d1 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q28.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q28.native_iceberg_compat/extended.txt
@@ -1,8 +1,8 @@
-BroadcastNestedLoopJoin
-:- BroadcastNestedLoopJoin
-:  :- BroadcastNestedLoopJoin
-:  :  :- BroadcastNestedLoopJoin
-:  :  :  :- BroadcastNestedLoopJoin
+ BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
+:-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
+:  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
 :  :  :  :  :- CometColumnarToRow
 :  :  :  :  :  +- CometHashAggregate
 :  :  :  :  :     +- CometColumnarExchange
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q28/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q28/extended.txt
index 841b4c982..d2c0985d1 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q28/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q28/extended.txt
@@ -1,8 +1,8 @@
-BroadcastNestedLoopJoin
-:- BroadcastNestedLoopJoin
-:  :- BroadcastNestedLoopJoin
-:  :  :- BroadcastNestedLoopJoin
-:  :  :  :- BroadcastNestedLoopJoin
+ BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
+:-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
+:  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
 :  :  :  :  :- CometColumnarToRow
 :  :  :  :  :  +- CometHashAggregate
 :  :  :  :  :     +- CometColumnarExchange
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q35.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q35.native_iceberg_compat/extended.txt
index 7c8ec2476..a6f33d6f7 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q35.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q35.native_iceberg_compat/extended.txt
@@ -10,7 +10,7 @@ TakeOrderedAndProject
                   :     :- Project
                   :     :  +- Filter
                   :     :     +- BroadcastHashJoin
-                  :     :        :- BroadcastHashJoin
+                  :     :        :-  BroadcastHashJoin [COMET: Unsupported 
join type ExistenceJoin(exists#1)]
                   :     :        :  :- CometColumnarToRow
                   :     :        :  :  +- CometBroadcastHashJoin
                   :     :        :  :     :- CometFilter
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q35/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q35/extended.txt
index 7c8ec2476..a6f33d6f7 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q35/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q35/extended.txt
@@ -10,7 +10,7 @@ TakeOrderedAndProject
                   :     :- Project
                   :     :  +- Filter
                   :     :     +- BroadcastHashJoin
-                  :     :        :- BroadcastHashJoin
+                  :     :        :-  BroadcastHashJoin [COMET: Unsupported 
join type ExistenceJoin(exists#1)]
                   :     :        :  :- CometColumnarToRow
                   :     :        :  :  +- CometBroadcastHashJoin
                   :     :        :  :     :- CometFilter
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q45.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q45.native_iceberg_compat/extended.txt
index 49dde6014..4a5709105 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q45.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q45.native_iceberg_compat/extended.txt
@@ -5,7 +5,7 @@ TakeOrderedAndProject
          +- HashAggregate
             +- Project
                +- Filter
-                  +- BroadcastHashJoin
+                  +-  BroadcastHashJoin [COMET: Unsupported join type 
ExistenceJoin(exists#1)]
                      :- CometColumnarToRow
                      :  +- CometProject
                      :     +- CometBroadcastHashJoin
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q45/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q45/extended.txt
index 49dde6014..4a5709105 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q45/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q45/extended.txt
@@ -5,7 +5,7 @@ TakeOrderedAndProject
          +- HashAggregate
             +- Project
                +- Filter
-                  +- BroadcastHashJoin
+                  +-  BroadcastHashJoin [COMET: Unsupported join type 
ExistenceJoin(exists#1)]
                      :- CometColumnarToRow
                      :  +- CometProject
                      :     +- CometBroadcastHashJoin
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q61.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q61.native_iceberg_compat/extended.txt
index fb4bf01d0..7bae7d572 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q61.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q61.native_iceberg_compat/extended.txt
@@ -1,5 +1,5 @@
 Project
-+- BroadcastNestedLoopJoin
++-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
    :- CometColumnarToRow
    :  +- CometHashAggregate
    :     +- CometExchange
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q61/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q61/extended.txt
index fb4bf01d0..7bae7d572 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q61/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q61/extended.txt
@@ -1,5 +1,5 @@
 Project
-+- BroadcastNestedLoopJoin
++-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
    :- CometColumnarToRow
    :  +- CometHashAggregate
    :     +- CometExchange
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q69.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q69.native_iceberg_compat/extended.txt
index f37311459..b4fbb455e 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q69.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q69.native_iceberg_compat/extended.txt
@@ -9,7 +9,7 @@ TakeOrderedAndProject
                   :  +- BroadcastHashJoin
                   :     :- Project
                   :     :  +- BroadcastHashJoin
-                  :     :     :- BroadcastHashJoin
+                  :     :     :-  BroadcastHashJoin [COMET: BuildRight with 
LeftAnti is not supported]
                   :     :     :  :- CometColumnarToRow
                   :     :     :  :  +- CometBroadcastHashJoin
                   :     :     :  :     :- CometFilter
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q69/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q69/extended.txt
index f37311459..b4fbb455e 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q69/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q69/extended.txt
@@ -9,7 +9,7 @@ TakeOrderedAndProject
                   :  +- BroadcastHashJoin
                   :     :- Project
                   :     :  +- BroadcastHashJoin
-                  :     :     :- BroadcastHashJoin
+                  :     :     :-  BroadcastHashJoin [COMET: BuildRight with 
LeftAnti is not supported]
                   :     :     :  :- CometColumnarToRow
                   :     :     :  :  +- CometBroadcastHashJoin
                   :     :     :  :     :- CometFilter
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q77.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q77.native_iceberg_compat/extended.txt
index 4ce836532..ed8a9e38c 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q77.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q77.native_iceberg_compat/extended.txt
@@ -49,7 +49,7 @@ TakeOrderedAndProject
                   :                             +- CometFilter
                   :                                +- CometScan 
[native_iceberg_compat] parquet spark_catalog.default.store
                   :- Project
-                  :  +- BroadcastNestedLoopJoin
+                  :  +-  BroadcastNestedLoopJoin [COMET: 
BroadcastNestedLoopJoin is not supported]
                   :     :- BroadcastExchange
                   :     :  +- CometColumnarToRow
                   :     :     +- CometHashAggregate
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q77/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q77/extended.txt
index 4ce836532..ed8a9e38c 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q77/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q77/extended.txt
@@ -49,7 +49,7 @@ TakeOrderedAndProject
                   :                             +- CometFilter
                   :                                +- CometScan 
[native_iceberg_compat] parquet spark_catalog.default.store
                   :- Project
-                  :  +- BroadcastNestedLoopJoin
+                  :  +-  BroadcastNestedLoopJoin [COMET: 
BroadcastNestedLoopJoin is not supported]
                   :     :- BroadcastExchange
                   :     :  +- CometColumnarToRow
                   :     :     +- CometHashAggregate
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q87.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q87.native_iceberg_compat/extended.txt
index df6870cc2..ddee139ac 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q87.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q87.native_iceberg_compat/extended.txt
@@ -4,7 +4,7 @@ HashAggregate
       +- HashAggregate
          +- Project
             +- BroadcastHashJoin
-               :- BroadcastHashJoin
+               :-  BroadcastHashJoin [COMET: BuildRight with LeftAnti is not 
supported]
                :  :- CometColumnarToRow
                :  :  +- CometHashAggregate
                :  :     +- CometExchange
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q87/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q87/extended.txt
index df6870cc2..ddee139ac 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q87/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q87/extended.txt
@@ -4,7 +4,7 @@ HashAggregate
       +- HashAggregate
          +- Project
             +- BroadcastHashJoin
-               :- BroadcastHashJoin
+               :-  BroadcastHashJoin [COMET: BuildRight with LeftAnti is not 
supported]
                :  :- CometColumnarToRow
                :  :  +- CometHashAggregate
                :  :     +- CometExchange
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q88.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q88.native_iceberg_compat/extended.txt
index d66f614b3..caaa611f9 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q88.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q88.native_iceberg_compat/extended.txt
@@ -1,10 +1,10 @@
-BroadcastNestedLoopJoin
-:- BroadcastNestedLoopJoin
-:  :- BroadcastNestedLoopJoin
-:  :  :- BroadcastNestedLoopJoin
-:  :  :  :- BroadcastNestedLoopJoin
-:  :  :  :  :- BroadcastNestedLoopJoin
-:  :  :  :  :  :- BroadcastNestedLoopJoin
+ BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
+:-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
+:  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :  :  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is 
not supported]
 :  :  :  :  :  :  :- CometColumnarToRow
 :  :  :  :  :  :  :  +- CometHashAggregate
 :  :  :  :  :  :  :     +- CometExchange
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q88/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q88/extended.txt
index d66f614b3..caaa611f9 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q88/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q88/extended.txt
@@ -1,10 +1,10 @@
-BroadcastNestedLoopJoin
-:- BroadcastNestedLoopJoin
-:  :- BroadcastNestedLoopJoin
-:  :  :- BroadcastNestedLoopJoin
-:  :  :  :- BroadcastNestedLoopJoin
-:  :  :  :  :- BroadcastNestedLoopJoin
-:  :  :  :  :  :- BroadcastNestedLoopJoin
+ BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
+:-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
+:  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not 
supported]
+:  :  :  :  :  :-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is 
not supported]
 :  :  :  :  :  :  :- CometColumnarToRow
 :  :  :  :  :  :  :  +- CometHashAggregate
 :  :  :  :  :  :  :     +- CometExchange
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q90.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q90.native_iceberg_compat/extended.txt
index 98eab805f..aa6c577ed 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q90.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q90.native_iceberg_compat/extended.txt
@@ -1,5 +1,5 @@
 Project
-+- BroadcastNestedLoopJoin
++-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
    :- CometColumnarToRow
    :  +- CometHashAggregate
    :     +- CometExchange
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q90/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q90/extended.txt
index 98eab805f..aa6c577ed 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q90/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q90/extended.txt
@@ -1,5 +1,5 @@
 Project
-+- BroadcastNestedLoopJoin
++-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin is not supported]
    :- CometColumnarToRow
    :  +- CometHashAggregate
    :     +- CometExchange
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark3_5/q22.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark3_5/q22.native_iceberg_compat/extended.txt
index e2404f9ff..6cb89465d 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark3_5/q22.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark3_5/q22.native_iceberg_compat/extended.txt
@@ -5,7 +5,7 @@ TakeOrderedAndProject
          +- HashAggregate
             +- Expand
                +- Project
-                  +- BroadcastNestedLoopJoin
+                  +-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin 
is not supported]
                      :- CometColumnarToRow
                      :  +- CometProject
                      :     +- CometBroadcastHashJoin
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark3_5/q22/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark3_5/q22/extended.txt
index e2404f9ff..6cb89465d 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark3_5/q22/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark3_5/q22/extended.txt
@@ -5,7 +5,7 @@ TakeOrderedAndProject
          +- HashAggregate
             +- Expand
                +- Project
-                  +- BroadcastNestedLoopJoin
+                  +-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin 
is not supported]
                      :- CometColumnarToRow
                      :  +- CometProject
                      :     +- CometBroadcastHashJoin
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark3_5/q24.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark3_5/q24.native_iceberg_compat/extended.txt
index 7847aefd8..b9384ca04 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark3_5/q24.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark3_5/q24.native_iceberg_compat/extended.txt
@@ -12,7 +12,7 @@ CometColumnarToRow
          :                       +- CometColumnarExchange
          :                          +- HashAggregate
          :                             +- Project
-         :                                +- BroadcastHashJoin
+         :                                +-  BroadcastHashJoin [COMET: Comet 
is not compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
          :                                   :- CometColumnarToRow
          :                                   :  +- CometProject
          :                                   :     +- CometBroadcastHashJoin
@@ -58,7 +58,7 @@ CometColumnarToRow
                            +- CometColumnarExchange
                               +- HashAggregate
                                  +- Project
-                                    +- BroadcastHashJoin
+                                    +-  BroadcastHashJoin [COMET: Comet is not 
compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
                                        :- CometColumnarToRow
                                        :  +- CometProject
                                        :     +- CometBroadcastHashJoin
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark3_5/q24/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark3_5/q24/extended.txt
index 7847aefd8..b9384ca04 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark3_5/q24/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark3_5/q24/extended.txt
@@ -12,7 +12,7 @@ CometColumnarToRow
          :                       +- CometColumnarExchange
          :                          +- HashAggregate
          :                             +- Project
-         :                                +- BroadcastHashJoin
+         :                                +-  BroadcastHashJoin [COMET: Comet 
is not compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
          :                                   :- CometColumnarToRow
          :                                   :  +- CometProject
          :                                   :     +- CometBroadcastHashJoin
@@ -58,7 +58,7 @@ CometColumnarToRow
                            +- CometColumnarExchange
                               +- HashAggregate
                                  +- Project
-                                    +- BroadcastHashJoin
+                                    +-  BroadcastHashJoin [COMET: Comet is not 
compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
                                        :- CometColumnarToRow
                                        :  +- CometProject
                                        :     +- CometBroadcastHashJoin
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark3_5/q35.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark3_5/q35.native_iceberg_compat/extended.txt
index 7c8ec2476..a6f33d6f7 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark3_5/q35.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark3_5/q35.native_iceberg_compat/extended.txt
@@ -10,7 +10,7 @@ TakeOrderedAndProject
                   :     :- Project
                   :     :  +- Filter
                   :     :     +- BroadcastHashJoin
-                  :     :        :- BroadcastHashJoin
+                  :     :        :-  BroadcastHashJoin [COMET: Unsupported 
join type ExistenceJoin(exists#1)]
                   :     :        :  :- CometColumnarToRow
                   :     :        :  :  +- CometBroadcastHashJoin
                   :     :        :  :     :- CometFilter
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark3_5/q35/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark3_5/q35/extended.txt
index 7c8ec2476..a6f33d6f7 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark3_5/q35/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark3_5/q35/extended.txt
@@ -10,7 +10,7 @@ TakeOrderedAndProject
                   :     :- Project
                   :     :  +- Filter
                   :     :     +- BroadcastHashJoin
-                  :     :        :- BroadcastHashJoin
+                  :     :        :-  BroadcastHashJoin [COMET: Unsupported 
join type ExistenceJoin(exists#1)]
                   :     :        :  :- CometColumnarToRow
                   :     :        :  :  +- CometBroadcastHashJoin
                   :     :        :  :     :- CometFilter
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark3_5/q77a.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark3_5/q77a.native_iceberg_compat/extended.txt
index 3b44c6c27..b4318d03e 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark3_5/q77a.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark3_5/q77a.native_iceberg_compat/extended.txt
@@ -53,7 +53,7 @@ CometColumnarToRow
                :              :                             +- CometFilter
                :              :                                +- CometScan 
[native_iceberg_compat] parquet spark_catalog.default.store
                :              :- Project
-               :              :  +- BroadcastNestedLoopJoin
+               :              :  +-  BroadcastNestedLoopJoin [COMET: 
BroadcastNestedLoopJoin is not supported]
                :              :     :- BroadcastExchange
                :              :     :  +- CometColumnarToRow
                :              :     :     +- CometHashAggregate
@@ -170,7 +170,7 @@ CometColumnarToRow
                :                          :                             +- 
CometFilter
                :                          :                                +- 
CometScan [native_iceberg_compat] parquet spark_catalog.default.store
                :                          :- Project
-               :                          :  +- BroadcastNestedLoopJoin
+               :                          :  +-  BroadcastNestedLoopJoin 
[COMET: BroadcastNestedLoopJoin is not supported]
                :                          :     :- BroadcastExchange
                :                          :     :  +- CometColumnarToRow
                :                          :     :     +- CometHashAggregate
@@ -287,7 +287,7 @@ CometColumnarToRow
                                           :                             +- 
CometFilter
                                           :                                +- 
CometScan [native_iceberg_compat] parquet spark_catalog.default.store
                                           :- Project
-                                          :  +- BroadcastNestedLoopJoin
+                                          :  +-  BroadcastNestedLoopJoin 
[COMET: BroadcastNestedLoopJoin is not supported]
                                           :     :- BroadcastExchange
                                           :     :  +- CometColumnarToRow
                                           :     :     +- CometHashAggregate
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark3_5/q77a/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark3_5/q77a/extended.txt
index 3b44c6c27..b4318d03e 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark3_5/q77a/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark3_5/q77a/extended.txt
@@ -53,7 +53,7 @@ CometColumnarToRow
                :              :                             +- CometFilter
                :              :                                +- CometScan 
[native_iceberg_compat] parquet spark_catalog.default.store
                :              :- Project
-               :              :  +- BroadcastNestedLoopJoin
+               :              :  +-  BroadcastNestedLoopJoin [COMET: 
BroadcastNestedLoopJoin is not supported]
                :              :     :- BroadcastExchange
                :              :     :  +- CometColumnarToRow
                :              :     :     +- CometHashAggregate
@@ -170,7 +170,7 @@ CometColumnarToRow
                :                          :                             +- 
CometFilter
                :                          :                                +- 
CometScan [native_iceberg_compat] parquet spark_catalog.default.store
                :                          :- Project
-               :                          :  +- BroadcastNestedLoopJoin
+               :                          :  +-  BroadcastNestedLoopJoin 
[COMET: BroadcastNestedLoopJoin is not supported]
                :                          :     :- BroadcastExchange
                :                          :     :  +- CometColumnarToRow
                :                          :     :     +- CometHashAggregate
@@ -287,7 +287,7 @@ CometColumnarToRow
                                           :                             +- 
CometFilter
                                           :                                +- 
CometScan [native_iceberg_compat] parquet spark_catalog.default.store
                                           :- Project
-                                          :  +- BroadcastNestedLoopJoin
+                                          :  +-  BroadcastNestedLoopJoin 
[COMET: BroadcastNestedLoopJoin is not supported]
                                           :     :- BroadcastExchange
                                           :     :  +- CometColumnarToRow
                                           :     :     +- CometHashAggregate
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q22.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q22.native_iceberg_compat/extended.txt
index e2404f9ff..6cb89465d 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q22.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q22.native_iceberg_compat/extended.txt
@@ -5,7 +5,7 @@ TakeOrderedAndProject
          +- HashAggregate
             +- Expand
                +- Project
-                  +- BroadcastNestedLoopJoin
+                  +-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin 
is not supported]
                      :- CometColumnarToRow
                      :  +- CometProject
                      :     +- CometBroadcastHashJoin
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q22/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q22/extended.txt
index e2404f9ff..6cb89465d 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q22/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q22/extended.txt
@@ -5,7 +5,7 @@ TakeOrderedAndProject
          +- HashAggregate
             +- Expand
                +- Project
-                  +- BroadcastNestedLoopJoin
+                  +-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin 
is not supported]
                      :- CometColumnarToRow
                      :  +- CometProject
                      :     +- CometBroadcastHashJoin
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q24.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q24.native_iceberg_compat/extended.txt
index 7847aefd8..b9384ca04 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q24.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q24.native_iceberg_compat/extended.txt
@@ -12,7 +12,7 @@ CometColumnarToRow
          :                       +- CometColumnarExchange
          :                          +- HashAggregate
          :                             +- Project
-         :                                +- BroadcastHashJoin
+         :                                +-  BroadcastHashJoin [COMET: Comet 
is not compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
          :                                   :- CometColumnarToRow
          :                                   :  +- CometProject
          :                                   :     +- CometBroadcastHashJoin
@@ -58,7 +58,7 @@ CometColumnarToRow
                            +- CometColumnarExchange
                               +- HashAggregate
                                  +- Project
-                                    +- BroadcastHashJoin
+                                    +-  BroadcastHashJoin [COMET: Comet is not 
compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
                                        :- CometColumnarToRow
                                        :  +- CometProject
                                        :     +- CometBroadcastHashJoin
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q24/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q24/extended.txt
index 7847aefd8..b9384ca04 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q24/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q24/extended.txt
@@ -12,7 +12,7 @@ CometColumnarToRow
          :                       +- CometColumnarExchange
          :                          +- HashAggregate
          :                             +- Project
-         :                                +- BroadcastHashJoin
+         :                                +-  BroadcastHashJoin [COMET: Comet 
is not compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
          :                                   :- CometColumnarToRow
          :                                   :  +- CometProject
          :                                   :     +- CometBroadcastHashJoin
@@ -58,7 +58,7 @@ CometColumnarToRow
                            +- CometColumnarExchange
                               +- HashAggregate
                                  +- Project
-                                    +- BroadcastHashJoin
+                                    +-  BroadcastHashJoin [COMET: Comet is not 
compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
                                        :- CometColumnarToRow
                                        :  +- CometProject
                                        :     +- CometBroadcastHashJoin
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q35.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q35.native_iceberg_compat/extended.txt
index 7c8ec2476..a6f33d6f7 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q35.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q35.native_iceberg_compat/extended.txt
@@ -10,7 +10,7 @@ TakeOrderedAndProject
                   :     :- Project
                   :     :  +- Filter
                   :     :     +- BroadcastHashJoin
-                  :     :        :- BroadcastHashJoin
+                  :     :        :-  BroadcastHashJoin [COMET: Unsupported 
join type ExistenceJoin(exists#1)]
                   :     :        :  :- CometColumnarToRow
                   :     :        :  :  +- CometBroadcastHashJoin
                   :     :        :  :     :- CometFilter
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q35/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q35/extended.txt
index 7c8ec2476..a6f33d6f7 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q35/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q35/extended.txt
@@ -10,7 +10,7 @@ TakeOrderedAndProject
                   :     :- Project
                   :     :  +- Filter
                   :     :     +- BroadcastHashJoin
-                  :     :        :- BroadcastHashJoin
+                  :     :        :-  BroadcastHashJoin [COMET: Unsupported 
join type ExistenceJoin(exists#1)]
                   :     :        :  :- CometColumnarToRow
                   :     :        :  :  +- CometBroadcastHashJoin
                   :     :        :  :     :- CometFilter
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q77a.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q77a.native_iceberg_compat/extended.txt
index 3b44c6c27..b4318d03e 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q77a.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q77a.native_iceberg_compat/extended.txt
@@ -53,7 +53,7 @@ CometColumnarToRow
                :              :                             +- CometFilter
                :              :                                +- CometScan 
[native_iceberg_compat] parquet spark_catalog.default.store
                :              :- Project
-               :              :  +- BroadcastNestedLoopJoin
+               :              :  +-  BroadcastNestedLoopJoin [COMET: 
BroadcastNestedLoopJoin is not supported]
                :              :     :- BroadcastExchange
                :              :     :  +- CometColumnarToRow
                :              :     :     +- CometHashAggregate
@@ -170,7 +170,7 @@ CometColumnarToRow
                :                          :                             +- 
CometFilter
                :                          :                                +- 
CometScan [native_iceberg_compat] parquet spark_catalog.default.store
                :                          :- Project
-               :                          :  +- BroadcastNestedLoopJoin
+               :                          :  +-  BroadcastNestedLoopJoin 
[COMET: BroadcastNestedLoopJoin is not supported]
                :                          :     :- BroadcastExchange
                :                          :     :  +- CometColumnarToRow
                :                          :     :     +- CometHashAggregate
@@ -287,7 +287,7 @@ CometColumnarToRow
                                           :                             +- 
CometFilter
                                           :                                +- 
CometScan [native_iceberg_compat] parquet spark_catalog.default.store
                                           :- Project
-                                          :  +- BroadcastNestedLoopJoin
+                                          :  +-  BroadcastNestedLoopJoin 
[COMET: BroadcastNestedLoopJoin is not supported]
                                           :     :- BroadcastExchange
                                           :     :  +- CometColumnarToRow
                                           :     :     +- CometHashAggregate
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q77a/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q77a/extended.txt
index 3b44c6c27..b4318d03e 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q77a/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q77a/extended.txt
@@ -53,7 +53,7 @@ CometColumnarToRow
                :              :                             +- CometFilter
                :              :                                +- CometScan 
[native_iceberg_compat] parquet spark_catalog.default.store
                :              :- Project
-               :              :  +- BroadcastNestedLoopJoin
+               :              :  +-  BroadcastNestedLoopJoin [COMET: 
BroadcastNestedLoopJoin is not supported]
                :              :     :- BroadcastExchange
                :              :     :  +- CometColumnarToRow
                :              :     :     +- CometHashAggregate
@@ -170,7 +170,7 @@ CometColumnarToRow
                :                          :                             +- 
CometFilter
                :                          :                                +- 
CometScan [native_iceberg_compat] parquet spark_catalog.default.store
                :                          :- Project
-               :                          :  +- BroadcastNestedLoopJoin
+               :                          :  +-  BroadcastNestedLoopJoin 
[COMET: BroadcastNestedLoopJoin is not supported]
                :                          :     :- BroadcastExchange
                :                          :     :  +- CometColumnarToRow
                :                          :     :     +- CometHashAggregate
@@ -287,7 +287,7 @@ CometColumnarToRow
                                           :                             +- 
CometFilter
                                           :                                +- 
CometScan [native_iceberg_compat] parquet spark_catalog.default.store
                                           :- Project
-                                          :  +- BroadcastNestedLoopJoin
+                                          :  +-  BroadcastNestedLoopJoin 
[COMET: BroadcastNestedLoopJoin is not supported]
                                           :     :- BroadcastExchange
                                           :     :  +- CometColumnarToRow
                                           :     :     +- CometHashAggregate
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q22.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q22.native_iceberg_compat/extended.txt
index e2404f9ff..6cb89465d 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q22.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q22.native_iceberg_compat/extended.txt
@@ -5,7 +5,7 @@ TakeOrderedAndProject
          +- HashAggregate
             +- Expand
                +- Project
-                  +- BroadcastNestedLoopJoin
+                  +-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin 
is not supported]
                      :- CometColumnarToRow
                      :  +- CometProject
                      :     +- CometBroadcastHashJoin
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q22/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q22/extended.txt
index e2404f9ff..6cb89465d 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q22/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q22/extended.txt
@@ -5,7 +5,7 @@ TakeOrderedAndProject
          +- HashAggregate
             +- Expand
                +- Project
-                  +- BroadcastNestedLoopJoin
+                  +-  BroadcastNestedLoopJoin [COMET: BroadcastNestedLoopJoin 
is not supported]
                      :- CometColumnarToRow
                      :  +- CometProject
                      :     +- CometBroadcastHashJoin
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q24.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q24.native_iceberg_compat/extended.txt
index 7847aefd8..b9384ca04 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q24.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q24.native_iceberg_compat/extended.txt
@@ -12,7 +12,7 @@ CometColumnarToRow
          :                       +- CometColumnarExchange
          :                          +- HashAggregate
          :                             +- Project
-         :                                +- BroadcastHashJoin
+         :                                +-  BroadcastHashJoin [COMET: Comet 
is not compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
          :                                   :- CometColumnarToRow
          :                                   :  +- CometProject
          :                                   :     +- CometBroadcastHashJoin
@@ -58,7 +58,7 @@ CometColumnarToRow
                            +- CometColumnarExchange
                               +- HashAggregate
                                  +- Project
-                                    +- BroadcastHashJoin
+                                    +-  BroadcastHashJoin [COMET: Comet is not 
compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
                                        :- CometColumnarToRow
                                        :  +- CometProject
                                        :     +- CometBroadcastHashJoin
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q24/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q24/extended.txt
index 7847aefd8..b9384ca04 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q24/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q24/extended.txt
@@ -12,7 +12,7 @@ CometColumnarToRow
          :                       +- CometColumnarExchange
          :                          +- HashAggregate
          :                             +- Project
-         :                                +- BroadcastHashJoin
+         :                                +-  BroadcastHashJoin [COMET: Comet 
is not compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
          :                                   :- CometColumnarToRow
          :                                   :  +- CometProject
          :                                   :     +- CometBroadcastHashJoin
@@ -58,7 +58,7 @@ CometColumnarToRow
                            +- CometColumnarExchange
                               +- HashAggregate
                                  +- Project
-                                    +- BroadcastHashJoin
+                                    +-  BroadcastHashJoin [COMET: Comet is not 
compatible with Spark for case conversion in locale-specific cases. Set 
spark.comet.caseConversion.enabled=true to enable it anyway.]
                                        :- CometColumnarToRow
                                        :  +- CometProject
                                        :     +- CometBroadcastHashJoin
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q35.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q35.native_iceberg_compat/extended.txt
index 7c8ec2476..a6f33d6f7 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q35.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q35.native_iceberg_compat/extended.txt
@@ -10,7 +10,7 @@ TakeOrderedAndProject
                   :     :- Project
                   :     :  +- Filter
                   :     :     +- BroadcastHashJoin
-                  :     :        :- BroadcastHashJoin
+                  :     :        :-  BroadcastHashJoin [COMET: Unsupported 
join type ExistenceJoin(exists#1)]
                   :     :        :  :- CometColumnarToRow
                   :     :        :  :  +- CometBroadcastHashJoin
                   :     :        :  :     :- CometFilter
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q35/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q35/extended.txt
index 7c8ec2476..a6f33d6f7 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q35/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q35/extended.txt
@@ -10,7 +10,7 @@ TakeOrderedAndProject
                   :     :- Project
                   :     :  +- Filter
                   :     :     +- BroadcastHashJoin
-                  :     :        :- BroadcastHashJoin
+                  :     :        :-  BroadcastHashJoin [COMET: Unsupported 
join type ExistenceJoin(exists#1)]
                   :     :        :  :- CometColumnarToRow
                   :     :        :  :  +- CometBroadcastHashJoin
                   :     :        :  :     :- CometFilter
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q77a.native_iceberg_compat/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q77a.native_iceberg_compat/extended.txt
index 3b44c6c27..b4318d03e 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q77a.native_iceberg_compat/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q77a.native_iceberg_compat/extended.txt
@@ -53,7 +53,7 @@ CometColumnarToRow
                :              :                             +- CometFilter
                :              :                                +- CometScan 
[native_iceberg_compat] parquet spark_catalog.default.store
                :              :- Project
-               :              :  +- BroadcastNestedLoopJoin
+               :              :  +-  BroadcastNestedLoopJoin [COMET: 
BroadcastNestedLoopJoin is not supported]
                :              :     :- BroadcastExchange
                :              :     :  +- CometColumnarToRow
                :              :     :     +- CometHashAggregate
@@ -170,7 +170,7 @@ CometColumnarToRow
                :                          :                             +- 
CometFilter
                :                          :                                +- 
CometScan [native_iceberg_compat] parquet spark_catalog.default.store
                :                          :- Project
-               :                          :  +- BroadcastNestedLoopJoin
+               :                          :  +-  BroadcastNestedLoopJoin 
[COMET: BroadcastNestedLoopJoin is not supported]
                :                          :     :- BroadcastExchange
                :                          :     :  +- CometColumnarToRow
                :                          :     :     +- CometHashAggregate
@@ -287,7 +287,7 @@ CometColumnarToRow
                                           :                             +- 
CometFilter
                                           :                                +- 
CometScan [native_iceberg_compat] parquet spark_catalog.default.store
                                           :- Project
-                                          :  +- BroadcastNestedLoopJoin
+                                          :  +-  BroadcastNestedLoopJoin 
[COMET: BroadcastNestedLoopJoin is not supported]
                                           :     :- BroadcastExchange
                                           :     :  +- CometColumnarToRow
                                           :     :     +- CometHashAggregate
diff --git 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q77a/extended.txt
 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q77a/extended.txt
index 3b44c6c27..b4318d03e 100644
--- 
a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q77a/extended.txt
+++ 
b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q77a/extended.txt
@@ -53,7 +53,7 @@ CometColumnarToRow
                :              :                             +- CometFilter
                :              :                                +- CometScan 
[native_iceberg_compat] parquet spark_catalog.default.store
                :              :- Project
-               :              :  +- BroadcastNestedLoopJoin
+               :              :  +-  BroadcastNestedLoopJoin [COMET: 
BroadcastNestedLoopJoin is not supported]
                :              :     :- BroadcastExchange
                :              :     :  +- CometColumnarToRow
                :              :     :     +- CometHashAggregate
@@ -170,7 +170,7 @@ CometColumnarToRow
                :                          :                             +- 
CometFilter
                :                          :                                +- 
CometScan [native_iceberg_compat] parquet spark_catalog.default.store
                :                          :- Project
-               :                          :  +- BroadcastNestedLoopJoin
+               :                          :  +-  BroadcastNestedLoopJoin 
[COMET: BroadcastNestedLoopJoin is not supported]
                :                          :     :- BroadcastExchange
                :                          :     :  +- CometColumnarToRow
                :                          :     :     +- CometHashAggregate
@@ -287,7 +287,7 @@ CometColumnarToRow
                                           :                             +- 
CometFilter
                                           :                                +- 
CometScan [native_iceberg_compat] parquet spark_catalog.default.store
                                           :- Project
-                                          :  +- BroadcastNestedLoopJoin
+                                          :  +-  BroadcastNestedLoopJoin 
[COMET: BroadcastNestedLoopJoin is not supported]
                                           :     :- BroadcastExchange
                                           :     :  +- CometColumnarToRow
                                           :     :     +- CometHashAggregate


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to