Skip to content

[AMORO-3951] Implement the table merge#4049

Draft
mansonliwh wants to merge 3 commits intoapache:masterfrom
mansonliwh:feature-tablemerge
Draft

[AMORO-3951] Implement the table merge#4049
mansonliwh wants to merge 3 commits intoapache:masterfrom
mansonliwh:feature-tablemerge

Conversation

@mansonliwh
Copy link
Contributor

Why are the changes needed?

Previously, table-level process information was split across two models (table_process_state and table_process), causing duplication. Additionally, TableProcessMeta.processType used a String type, which lacked type safety. This PR unifies the storage model, introduces type-safe Action objects, and creates a unified scheduling system for both Optimizing and Maintainer operations.

Brief change log

  • Unified storage: merged table_process_state and table_process into a single model using table_process table
  • Type-safe Actions: refactored TableProcessMeta.processType from String to Action type
  • New Optimizing Actions: added OPTIMIZING_MINOR, OPTIMIZING_MAJOR, OPTIMIZING_FULL in IcebergActions
  • Created Action2StringConverter: MyBatis TypeHandler for Action ↔ database string conversion
  • Updated mappers and services: TableProcessMapper and ProcessService now use Action type
  • Fixed compilation errors in production and test code

How was this patch tested?

  • Updated test cases to work with new Action type
  • Verified backward compatibility with deprecated methods
  • Tested Action conversion and database compatibility
  • All code compiles without errors
  • Manual testing of Optimizing processes
  • Integration testing of Maintainer operations

Documentation

  • Does this pull request introduce a new feature? (yes / no)

    • Yes
  • If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

    • JavaDocs added for new methods; comprehensive design doc not included

czy006 and others added 2 commits February 5, 2026 17:19
Implement missing Action2StringConverter and add multi-lake support:

- Add Action2StringConverter TypeHandler for Action <-> String conversion
- Add PaimonActions class for Paimon table format operations
- Mark ProcessStateMapper as @deprecated
- Add unit tests for Action2StringConverter

Co-Authored-By: Claude (glm-4.7) <noreply@anthropic.com>
Add migration script to merge table_process_state into table_process:
- Migrate data from table_process_state to table_process
- Rename old table as backup

Co-Authored-By: Claude (glm-4.7) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants