jbonofre commented on code in PR #9487:
URL: https://github.com/apache/iceberg/pull/9487#discussion_r1466387462


##########
core/src/main/java/org/apache/iceberg/jdbc/JdbcUtil.java:
##########
@@ -25,161 +25,177 @@
 import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
+import org.apache.iceberg.BaseMetastoreTableOperations;
 import org.apache.iceberg.catalog.Namespace;
 import org.apache.iceberg.catalog.TableIdentifier;
 import org.apache.iceberg.relocated.com.google.common.base.Joiner;
 import org.apache.iceberg.relocated.com.google.common.base.Preconditions;
 import org.apache.iceberg.relocated.com.google.common.base.Splitter;
 import org.apache.iceberg.relocated.com.google.common.collect.Iterables;
+import org.apache.iceberg.relocated.com.google.common.collect.Maps;
 
 final class JdbcUtil {
   // property to control strict-mode (aka check if namespace exists when 
creating a table)
   static final String STRICT_MODE_PROPERTY = JdbcCatalog.PROPERTY_PREFIX + 
"strict-mode";
 
-  // Catalog Table
-  static final String CATALOG_TABLE_NAME = "iceberg_tables";
+  // Catalog Table & View
+  static final String CATALOG_TABLE_VIEW_NAME = "iceberg_tables_views";
   static final String CATALOG_NAME = "catalog_name";
-  static final String TABLE_NAMESPACE = "table_namespace";
-  static final String TABLE_NAME = "table_name";
+  static final String TABLE_VIEW_NAME = "name";
+  static final String TABLE_VIEW_NAMESPACE = "namespace";
+  static final String TABLE_VIEW_FLAG = "type";
 
-  static final String DO_COMMIT_SQL =
+  private static final String DO_COMMIT_SQL =
       "UPDATE "
-          + CATALOG_TABLE_NAME
+          + CATALOG_TABLE_VIEW_NAME
           + " SET "
           + JdbcTableOperations.METADATA_LOCATION_PROP
           + " = ? , "
           + JdbcTableOperations.PREVIOUS_METADATA_LOCATION_PROP
-          + " = ? "
+          + " = ?"
           + " WHERE "
           + CATALOG_NAME
           + " = ? AND "
-          + TABLE_NAMESPACE
+          + TABLE_VIEW_NAMESPACE
           + " = ? AND "
-          + TABLE_NAME
+          + TABLE_VIEW_NAME
           + " = ? AND "
           + JdbcTableOperations.METADATA_LOCATION_PROP
+          + " = ? AND "
+          + TABLE_VIEW_FLAG
           + " = ?";
-  static final String CREATE_CATALOG_TABLE =
+  static final String CREATE_CATALOG_SQL =
       "CREATE TABLE "
-          + CATALOG_TABLE_NAME
+          + CATALOG_TABLE_VIEW_NAME
           + "("
           + CATALOG_NAME
           + " VARCHAR(255) NOT NULL,"
-          + TABLE_NAMESPACE
+          + TABLE_VIEW_NAMESPACE
           + " VARCHAR(255) NOT NULL,"
-          + TABLE_NAME
+          + TABLE_VIEW_NAME
           + " VARCHAR(255) NOT NULL,"
           + JdbcTableOperations.METADATA_LOCATION_PROP
           + " VARCHAR(1000),"
           + JdbcTableOperations.PREVIOUS_METADATA_LOCATION_PROP
           + " VARCHAR(1000),"
+          + TABLE_VIEW_FLAG
+          + " VARCHAR(5) NOT NULL,"
           + "PRIMARY KEY ("
           + CATALOG_NAME
           + ", "
-          + TABLE_NAMESPACE
+          + TABLE_VIEW_NAMESPACE
           + ", "
-          + TABLE_NAME
+          + TABLE_VIEW_NAME
           + ")"
           + ")";
-  static final String GET_TABLE_SQL =
+  private static final String GET_SQL =
       "SELECT * FROM "
-          + CATALOG_TABLE_NAME
+          + CATALOG_TABLE_VIEW_NAME
           + " WHERE "
           + CATALOG_NAME
           + " = ? AND "
-          + TABLE_NAMESPACE
+          + TABLE_VIEW_NAMESPACE
           + " = ? AND "
-          + TABLE_NAME
-          + " = ? ";
-  static final String LIST_TABLES_SQL =
+          + TABLE_VIEW_NAME
+          + " = ? AND "
+          + TABLE_VIEW_FLAG
+          + " = ?";
+  static final String LIST_SQL =
       "SELECT * FROM "
-          + CATALOG_TABLE_NAME
+          + CATALOG_TABLE_VIEW_NAME
           + " WHERE "
           + CATALOG_NAME
           + " = ? AND "
-          + TABLE_NAMESPACE
+          + TABLE_VIEW_NAMESPACE
+          + " = ? AND "
+          + TABLE_VIEW_FLAG
           + " = ?";
-  static final String RENAME_TABLE_SQL =
+  static final String RENAME_SQL =
       "UPDATE "
-          + CATALOG_TABLE_NAME
+          + CATALOG_TABLE_VIEW_NAME
           + " SET "
-          + TABLE_NAMESPACE
-          + " = ? , "
-          + TABLE_NAME
-          + " = ? "
+          + TABLE_VIEW_NAMESPACE
+          + " = ?, "
+          + TABLE_VIEW_NAME
+          + " = ?"
           + " WHERE "
           + CATALOG_NAME
           + " = ? AND "
-          + TABLE_NAMESPACE
+          + TABLE_VIEW_NAMESPACE
           + " = ? AND "
-          + TABLE_NAME
-          + " = ? ";
-  static final String DROP_TABLE_SQL =
+          + TABLE_VIEW_NAME
+          + " = ? AND "
+          + TABLE_VIEW_FLAG
+          + " = ?";
+  static final String DROP_SQL =
       "DELETE FROM "
-          + CATALOG_TABLE_NAME
+          + CATALOG_TABLE_VIEW_NAME
           + " WHERE "
           + CATALOG_NAME
           + " = ? AND "
-          + TABLE_NAMESPACE
+          + TABLE_VIEW_NAMESPACE
+          + "  = ? AND "
+          + TABLE_VIEW_NAME
           + " = ? AND "
-          + TABLE_NAME
-          + " = ? ";
-  static final String GET_NAMESPACE_SQL =
+          + TABLE_VIEW_FLAG
+          + " = ?";
+  private static final String GET_NAMESPACE_SQL =
       "SELECT "
-          + TABLE_NAMESPACE
+          + TABLE_VIEW_NAMESPACE
           + " FROM "
-          + CATALOG_TABLE_NAME
+          + CATALOG_TABLE_VIEW_NAME
           + " WHERE "
           + CATALOG_NAME
           + " = ? AND "
-          + " ( "
-          + TABLE_NAMESPACE
+          + " ("
+          + TABLE_VIEW_NAMESPACE
           + " = ? OR "
-          + TABLE_NAMESPACE
-          + " LIKE ? ESCAPE '\\' "
-          + " ) "
+          + TABLE_VIEW_NAMESPACE
+          + " LIKE ? ESCAPE '\\')"
           + " LIMIT 1";
   static final String LIST_NAMESPACES_SQL =
       "SELECT DISTINCT "
-          + TABLE_NAMESPACE
+          + TABLE_VIEW_NAMESPACE
           + " FROM "
-          + CATALOG_TABLE_NAME
+          + CATALOG_TABLE_VIEW_NAME
           + " WHERE "
           + CATALOG_NAME
           + " = ? AND "
-          + TABLE_NAMESPACE
+          + TABLE_VIEW_NAMESPACE
           + " LIKE ?";
-  static final String LIST_ALL_TABLE_NAMESPACES_SQL =
+  static final String LIST_ALL_NAMESPACES_SQL =
       "SELECT DISTINCT "
-          + TABLE_NAMESPACE
+          + TABLE_VIEW_NAMESPACE
           + " FROM "
-          + CATALOG_TABLE_NAME
+          + CATALOG_TABLE_VIEW_NAME
           + " WHERE "
           + CATALOG_NAME
           + " = ?";
-  static final String DO_COMMIT_CREATE_TABLE_SQL =
+  private static final String DO_COMMIT_CREATE_SQL =
       "INSERT INTO "
-          + CATALOG_TABLE_NAME
+          + CATALOG_TABLE_VIEW_NAME
           + " ("
           + CATALOG_NAME
           + ", "
-          + TABLE_NAMESPACE
+          + TABLE_VIEW_NAMESPACE
           + ", "
-          + TABLE_NAME
+          + TABLE_VIEW_NAME
           + ", "
           + JdbcTableOperations.METADATA_LOCATION_PROP
           + ", "
           + JdbcTableOperations.PREVIOUS_METADATA_LOCATION_PROP
+          + ", "
+          + TABLE_VIEW_FLAG

Review Comment:
   What I plan to do is to update the schema (if needed) in the 
`JdbcCatalog#initialize()` method. As it's where we create the SQL tables, I 
think it makes sense to update the SQL tables if needed.



-- 
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: issues-unsubscr...@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to