You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spark.apache.org by sz...@apache.org on 2026/06/24 20:56:27 UTC
(spark) branch branch-4.x updated: [SPARK-57644][SQL] TxnTableCatalog should delegate capabilities to underlying catalog
This is an automated email from the ASF dual-hosted git repository.
szehon-ho pushed a commit to branch branch-4.x
in repository https://gitbox.apache.org/repos/asf/spark.git
The following commit(s) were added to refs/heads/branch-4.x by this push:
new 6d9e83c879d0 [SPARK-57644][SQL] TxnTableCatalog should delegate capabilities to underlying catalog
6d9e83c879d0 is described below
commit 6d9e83c879d0589d1aaa70b72f49c8b08caa1afe
Author: Szehon Ho <sz...@gmail.com>
AuthorDate: Wed Jun 24 13:55:53 2026 -0700
[SPARK-57644][SQL] TxnTableCatalog should delegate capabilities to underlying catalog
### What changes were proposed in this pull request?
`TxnTableCatalog` wraps `InMemoryRowLevelOperationTableCatalog` for transactional row-level operation tests but does not delegate `capabilities()` to the underlying catalog. This means any capability check through the transactional wrapper returns an empty set.
Fix by delegating `capabilities()` to the underlying catalog.
### Why are the changes needed?
Without this delegation, capability-gated features are invisible through the transactional catalog wrapper. For example, `SUPPORT_GENERATED_COLUMN_ON_WRITE` (added in SPARK-57644) cannot be checked when the catalog is accessed through `TxnTableCatalog`, even though the underlying `InMemoryRowLevelOperationTableCatalog` declares the capability.
### Does this PR introduce _any_ user-facing change?
The TxnTableCatalog will expose the capabilities of the underlying Catalog.
### How was this patch tested?
Existing tests pass. This is a prerequisite for testing generated column MERGE/UPDATE blocking in SPARK-57644.
### Was this patch authored or co-authored using generative AI tooling?
Generated-by: Claude Code (claude-opus-4-6)
Closes #56713 from szehon-ho/txn-catalog-capabilities.
Authored-by: Szehon Ho <sz...@gmail.com>
Signed-off-by: Szehon Ho <sz...@gmail.com>
(cherry picked from commit 420b9e2c966df003e02d8ca0067baa0338b0d41a)
Signed-off-by: Szehon Ho <sz...@gmail.com>
---
.../src/test/scala/org/apache/spark/sql/connector/catalog/txns.scala | 2 ++
1 file changed, 2 insertions(+)
diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/connector/catalog/txns.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/connector/catalog/txns.scala
index 203aed450a5f..0d060b9134a4 100644
--- a/sql/catalyst/src/test/scala/org/apache/spark/sql/connector/catalog/txns.scala
+++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/connector/catalog/txns.scala
@@ -179,6 +179,8 @@ class TxnTableCatalog(delegate: InMemoryRowLevelOperationTableCatalog) extends T
override def name: String = delegate.name
+ override def capabilities: java.util.Set[TableCatalogCapability] = delegate.capabilities
+
override def initialize(name: String, options: CaseInsensitiveStringMap): Unit = {}
override def listTables(namespace: Array[String]): Array[Identifier] = {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@spark.apache.org
For additional commands, e-mail: commits-help@spark.apache.org