gp07-cmd opened a new pull request, #13604: URL: https://github.com/apache/gravitino/pull/13604
### What changes were proposed in this pull request? This PR fixes repeated metadata updates when loading an unchanged table. The column default-value comparison now normalizes both representations through `DTOConverters.toFunctionArg()` before comparing them. This handles cases where the connector returns a `LiteralDTO` while the stored Gravitino column contains an equivalent `Literal` expression. The comparison is applied both when determining whether a column has changed and when generating column difference information. A regression test was added to verify that equivalent default values with different representations are treated as equal. ### Why are the changes needed? When loading an unchanged table, equivalent default values could be represented differently between the connector snapshot and the stored Gravitino metadata. Direct object comparison therefore treated them as different. As a result, repeated `loadTable` calls could unnecessarily update table/column metadata and create additional version and change-log entries. Normalizing the default values before comparison prevents these unnecessary metadata updates. Fixes: #13590 ### Does this PR introduce *any* user-facing change? No. There are no API changes or new/removed property keys. The change only prevents unnecessary metadata writes when loading unchanged tables. ### How was this patch tested? Added a regression test covering equivalent default values represented as `LiteralDTO` and `Literal`. Tested with: ```bash ./gradlew :core:test --tests org.apache.gravitino.catalog.TestTableOperationDispatcher ``` Result: ```text 32 tests completed, 0 failed ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
