@Test
  public void testJoinTablesSupportedTypes() throws IOException {
    for (int i = 0; i < SUPPORTED_TYPES.size(); i++) {
      Type type = SUPPORTED_TYPES.get(i);
      if (type == Types.TimestampType.withZone() && isVectorized && fileFormat == FileFormat.ORC) {
        // ORC/TIMESTAMP_INSTANT is not supported vectorized types for Hive
        continue;
      }
      // TODO: remove this filter when issue #1881 is resolved
      if (type == Types.UUIDType.get() && fileFormat == FileFormat.PARQUET) {
        continue;
      }
      String tableName = type.typeId().toString().toLowerCase() + "_table_" + i;
      String columnName = type.typeId().toString().toLowerCase() + "_column";

      Schema schema = new Schema(required(1, columnName, type));
      List<Record> records = TestHelper.generateRandomRecords(schema, 1, 0L);

      testTables.createTable(shell, tableName, schema, fileFormat, records);
      List<Object[]> queryResult = shell.executeStatement("select s." + columnName + ", h." + columnName +
          " from default." + tableName + " s join default." + tableName + " h on h." + columnName + "=s." +
          columnName);
      Assert.assertEquals("Non matching record count for table " + tableName + " with type " + type,
          1, queryResult.size());
    }
  }
Runs miscellaneous select statements on Iceberg tables, and verifies the result. Tests meant to verify simple
reads, more complex selects, joins, various plan generation options, special table names, etc.. should be listed
here.
iceberg/iceberg-handler/src/test/java/org/apache/iceberg/mr/hive/TestHiveIcebergSelects.java