Skip to content

[WIP][SPARK-XXXXX][SQL] Replace legacy error codes with named errors in DSv2 connector API#54971

Open
dbtsai wants to merge 1 commit intoapache:masterfrom
dbtsai:sqlState
Open

[WIP][SPARK-XXXXX][SQL] Replace legacy error codes with named errors in DSv2 connector API#54971
dbtsai wants to merge 1 commit intoapache:masterfrom
dbtsai:sqlState

Conversation

@dbtsai
Copy link
Member

@dbtsai dbtsai commented Mar 24, 2026

What changes were proposed in this pull request?

Replaced 18 LEGACY_ERROR_TEMP* error codes in the Data Source V2 (DSv2) connector API with properly named, descriptive error conditions. The affected interfaces are all in
sql/catalyst/src/main/java/org/apache/spark/sql/connector/:

  • Read: Scan, PartitionReaderFactory, ContinuousPartitionReaderFactory
  • Write: Write, WriteBuilder, DeltaWrite, DeltaWriteBuilder, LogicalWriteInfo
  • Catalog: SupportsPartitionManagement, SupportsAtomicPartitionManagement
  • Util: V2ExpressionSQLBuilder

New error names follow established Spark conventions (DATASOURCE_, PARTITION_, V2_EXPRESSION_SQL_BUILDER_, UNEXPECTED_) and are inserted alphabetically into error-conditions.json. All new entries
include a sqlState (0A000 for unsupported operations, 42000 for illegal arguments) and messages ending with a period.

Why are the changes needed?

Legacy error codes (LEGACY_ERROR_TEMP*) are opaque and hard to search, cross-reference, or document. Named error codes make it easier for users and downstream connectors to identify and handle specific
error conditions.

Does this PR introduce any user-facing change?

Yes — error messages now include a sqlState and names are surfaced in error output, but the message text is preserved (with minor normalization: trailing periods added for consistency).

How was this patch tested?

Existing unit and integration tests cover these code paths. No behavioral changes were made.

Was this patch authored or co-authored using generative AI tooling?

Generated-by: Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant