Skip to content

Remove residual XA code #1173

Description

@footka

Description

OceanBase seekdb no longer supports XA transactions. Currently, the Parser, Resolver, and Executor for XA START/END/PREPARE/COMMIT/ROLLBACK/RECOVER statements are still compiled in, but execution always returns "not supported." The source code still contains legacy XA Session states, configuration items, system variables, error codes, virtual table fields, and rejection tests.

This task has no version compatibility requirements. Another commit is in progress to delete transaction RPC and 2PC components. The XA cleanup must be coordinated with that commit to avoid duplicate modifications to transaction layer files.

Work Scope

  1. Delete XA-specific Resolver, Stmt, Executor, and ObXATransID/state definitions.
  2. Delete the 6 XA SQL syntax definitions, Parser tokens, Resolver/Executor dispatchers, and CMake registrations.
  3. Delete xid_, associated_xa_ from Session and all XA-specific conditional branches.
  4. Delete configuration items _xa_gc_timeout, _xa_gc_interval, and innodb_support_xa.
  5. Delete XA-specific error codes, virtual table/obsolete internal table remnants, and related tests.
  6. After rebasing onto the transaction RPC/2PC deletion commit, perform a full cleanup of remaining XA references in the transaction layer.

Collaboration Requirements

  • Prioritize waiting for or rebasing onto the transaction RPC/2PC deletion commit. Focus on resolving conflicts in key files such as src/storage/tx, src/storage/CMakeLists.txt, and transaction virtual tables.
  • The boundary for standard transaction capabilities is defined by the final state of the RPC/2PC deletion commit. This task is only responsible for closing the loop on XA remnants.

Acceptance Criteria

  • The master branch compiles successfully, and related regression tests pass.
  • XA SQL execution entry points are no longer exposed.
  • The following source code searches yield no valid remnants:
    • ObXA
    • T_XA_
    • XA_TRANS
    • associated_xa
    • OB_TRANS_XA
    • innodb_support_xa
    • _xa_gc
  • Delete the XA mysqltest that was only used to verify OB_NOT_SUPPORTED.

Environment

  • Branch: master
  • Current State Quantification:
    • 18 XA-specific files (~1634 lines of code).
    • Excluding storage/tx, approximately 54 other source files still contain XA references.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions