@Test
  public void testDefaultCatalogDDLWithVirtualColumn() {
    // this test only for LEGACY_MIXED_IDENTIFIER
    if (catalogFactoryType.equals(CatalogFactoryOptions.LEGACY_MIXED_IDENTIFIER)) {
      // create mixed-format table with only physical columns
      sql(
          "CREATE TABLE "
              + catalogName
              + "."
              + DB
              + "."
              + TABLE
              + " ("
              + " id INT,"
              + " t TIMESTAMP(6),"
              + " PRIMARY KEY (id) NOT ENFORCED "
              + ") PARTITIONED BY(t) "
              + " WITH ("
              + " 'connector' = 'mixed-format'"
              + ")");

      // insert values into mixed-format table
      insertValue();

      // create Table with compute columns under default catalog
      props = Maps.newHashMap();
      props.put("connector", MixedDynamicTableFactory.IDENTIFIER);
      props.put(CatalogFactoryOptions.METASTORE_URL.key(), getCatalogUrl());
      props.put(MixedDynamicTableFactory.IDENTIFIER + ".catalog", catalogName);
      props.put(MixedDynamicTableFactory.IDENTIFIER + ".database", DB);
      props.put(MixedDynamicTableFactory.IDENTIFIER + ".table", TABLE);

      sql(
          "CREATE TABLE default_catalog.default_database."
              + TABLE
              + " ("
              + " id INT,"
              + " t TIMESTAMP(6),"
              + " compute_id as id+5 ,"
              + " proc as PROCTIME(), "
              + " PRIMARY KEY (id) NOT ENFORCED "
              + ") PARTITIONED BY(t) "
              + "WITH %s",
          toWithClause(props));

      // select from mixed-format table with compute columns under default catalog
      List<Row> rows =
          sql(
              "SELECT * FROM default_catalog.default_database."
                  + TABLE
                  + " /*+ OPTIONS("
                  + "'streaming'='false'"
                  + ") */");
      checkRows(rows);
    }
  }
Test cases for mixed catalog factories, including:
CatalogFactoryOptions.MIXED_ICEBERG_IDENTIFIER, CatalogFactoryOptions.MIXED_HIVE_IDENTIFIER,
CatalogFactoryOptions.LEGACY_MIXED_IDENTIFIER
amoro-format-mixed/amoro-mixed-flink/amoro-mixed-flink-common/src/test/java/org/apache/amoro/flink/catalog/TestMixedCatalog.java