yuqi1129 commented on code in PR #7733:
URL: https://github.com/apache/gravitino/pull/7733#discussion_r2210172134


##########
trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/jdbc/mysql/MySQLMetadataAdapter.java:
##########
@@ -92,6 +101,53 @@ public GravitinoTable createTable(ConnectorTableMetadata 
tableMetadata) {
     return new GravitinoTable(schemaName, tableName, columns, comment, 
properties);
   }
 
+  @Override
+  public ConnectorTableMetadata getTableMetadata(GravitinoTable 
gravitinoTable) {
+    SchemaTableName schemaTableName =
+        new SchemaTableName(gravitinoTable.getSchemaName(), 
gravitinoTable.getName());
+    ArrayList<ColumnMetadata> columnMetadataList = new ArrayList<>();
+    for (GravitinoColumn column : gravitinoTable.getColumns()) {
+      columnMetadataList.add(getColumnMetadata(column));
+    }
+
+    Map<String, Object> properties = 
toTrinoTableProperties(gravitinoTable.getProperties());
+    Index[] indexes = gravitinoTable.getIndexes();
+
+    if (ArrayUtils.isNotEmpty(indexes)) {
+      List<String> primaryKeys = new ArrayList<>();
+      List<String> uniqueKeys = new ArrayList<>();
+      for (int i = 0; i < indexes.length; i++) {
+        Index index = indexes[i];
+        switch (index.type()) {
+          case PRIMARY_KEY:
+            Arrays.stream(index.fieldNames())
+                .flatMap(Arrays::stream)
+                .forEach(col -> primaryKeys.add(col));
+            break;
+
+          case UNIQUE_KEY:
+            List<String> columns =
+                Arrays.stream(index.fieldNames())
+                    .flatMap(Arrays::stream)
+                    .collect(Collectors.toUnmodifiableList());
+            uniqueKeys.add(String.format("%s:%s", index.name(), 
Strings.join(columns, ',')));
+            break;
+        }
+      }
+      if (!primaryKeys.isEmpty()) {
+        properties.put(TABLE_PRIMARY_KEY, primaryKeys);

Review Comment:
   Another point is that you should not directly change the value of an object 
from a method unless you are aware of the side effects.



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