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


##########
catalogs/catalog-lakehouse-paimon/src/main/java/org/apache/gravitino/catalog/lakehouse/paimon/GravitinoPaimonTable.java:
##########
@@ -51,7 +64,25 @@ protected TableOperations newOps() {
    * @return The converted Paimon table.
    */
   public Schema toPaimonTableSchema() {
-    Schema.Builder builder = 
Schema.newBuilder().comment(comment).options(properties);
+    Schema.Builder builder = Schema.newBuilder().comment(comment);
+    if (properties == null) {
+      properties = Maps.newHashMap();
+    }
+    if (partitioning == null) {
+      partitioning = EMPTY_PARTITIONING;
+    }
+
+    Map<String, String> normalizedProperties = new HashMap<>(properties);
+    normalizedProperties.remove(PRIMARY_KEY_IDENTIFIER);

Review Comment:
   After discuss with @FANNG1 privately, I think it is suitable to use 
`PRIMARY_INDEX` than a property to define a key here. Though the behavior of 
Paimon is slightly different from RDBMS, but it is still some sorts of primary 
key, right? In Gravitino, we only semantically unify them, not in behavior, 
each implementation can have it's own explanation, like what we defined for 
types, transforms, distributions, we only define them semantically, but we 
don't restrict the behavior, each implementation may be different. So this also 
applies to here.
   
   Still, we can extend the current PRIMARY_INDEX definition to better support 
Paimon, WDYT? @caican00 



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