public Table createTable(TestHiveShell shell, String tableName, Schema schema, SortOrder order,
      PartitionSpec partSpec, FileFormat fileFormat, List<Record> records, int formatVersion,
      Map<String, String> tblProperties) throws IOException {
    ImmutableMap<String, String> tblProps = ImmutableMap.<String, String>builder().putAll(tblProperties)
        .put(TableProperties.FORMAT_VERSION, Integer.toString(formatVersion)).build();
    Table table = createIcebergTable(shell.getHiveConf(), tableName, schema, order, partSpec, fileFormat, tblProps,
        records);
    String createHiveSQL = createHiveTableSQL(TableIdentifier.of("default", tableName), tblProps);
    if (createHiveSQL != null) {
      shell.executeStatement(createHiveSQL);
    }

    return table;
  }
Creates a non partitioned Hive test table. Creates the Iceberg table/data and creates the corresponding Hive
table as well when needed. The table will be in the 'default' database. The table will be populated with the
provided List of {@link Record}s.
@param shell The HiveShell used for Hive table creation
@param tableName The name of the test table
@param schema The schema used for the table creation
@param order The sort order used for the table creation
@param partSpec The partition spec used for the table creation
@param fileFormat The file format used for writing the data
@param records The records with which the table is populated
@param formatVersion The version of the spec the table should use (format-version)
@param tblProperties Additional table properties
@return The created table
@throws IOException If there is an error writing data
iceberg/iceberg-handler/src/test/java/org/apache/iceberg/mr/hive/TestTables.java