jerryshao commented on code in PR #5078:
URL: https://github.com/apache/gravitino/pull/5078#discussion_r1796548589


##########
core/src/main/java/org/apache/gravitino/storage/relational/service/TableMetaService.java:
##########
@@ -144,30 +153,47 @@ public <E extends Entity & HasIdentifier> TableEntity 
updateTable(
         
CommonMetaService.getInstance().getParentEntityIdByNamespace(identifier.namespace());
 
     TablePO oldTablePO = getTablePOBySchemaIdAndName(schemaId, tableName);
-    TableEntity oldTableEntity = POConverters.fromTablePO(oldTablePO, 
identifier.namespace());
-    TableEntity newEntity = (TableEntity) updater.apply((E) oldTableEntity);
+    List<ColumnPO> oldTableColumns =
+        TableColumnMetaService.getInstance()
+            .getColumnsByTableIdAndVersion(oldTablePO.getTableId(), 
oldTablePO.getCurrentVersion());
+    TableEntity oldTableEntity =
+        POConverters.fromTableAndColumnPOs(oldTablePO, oldTableColumns, 
identifier.namespace());
+
+    TableEntity newTableEntity = (TableEntity) updater.apply((E) 
oldTableEntity);
     Preconditions.checkArgument(
-        Objects.equals(oldTableEntity.id(), newEntity.id()),
+        Objects.equals(oldTableEntity.id(), newTableEntity.id()),
         "The updated table entity id: %s should be same with the table entity 
id before: %s",
-        newEntity.id(),
+        newTableEntity.id(),
         oldTableEntity.id());
 
-    Integer updateResult;
+    boolean isColumnChanged =
+        TableColumnMetaService.getInstance().isColumnUpdated(oldTableEntity, 
newTableEntity);
+    TablePO newTablePO =
+        POConverters.updateTablePOWithVersion(oldTablePO, newTableEntity, 
isColumnChanged);
+
+    final AtomicInteger updateResult = new AtomicInteger(0);
     try {
-      updateResult =
-          SessionUtils.doWithCommitAndFetchResult(
-              TableMetaMapper.class,
-              mapper ->
-                  mapper.updateTableMeta(
-                      POConverters.updateTablePOWithVersion(oldTablePO, 
newEntity), oldTablePO));
+      SessionUtils.doMultipleWithCommit(
+          () ->
+              updateResult.set(

Review Comment:
   Fixed for table update and delete.



-- 
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]

Reply via email to