jbonofre commented on code in PR #10111: URL: https://github.com/apache/iceberg/pull/10111#discussion_r1565744149
########## core/src/test/java/org/apache/iceberg/jdbc/TestJdbcCatalog.java: ########## @@ -1024,7 +1028,49 @@ public void report(MetricsReport report) { } } + private String createMetadataLocationViaJdbcCatalog(TableIdentifier identifier) + throws SQLException { + // temporary connection just to actually create a concrete metadata location + String jdbcUrl = null; + try { + java.nio.file.Path dbFile = Files.createTempFile("temp", "metadata"); + jdbcUrl = "jdbc:sqlite:" + dbFile.toAbsolutePath(); + } catch (IOException e) { + throw new SQLException("Error while creating temp data", e); + } + + Map<String, String> properties = Maps.newHashMap(); + + properties.put(CatalogProperties.URI, jdbcUrl); + + warehouseLocation = this.tableDir.toAbsolutePath().toString(); + properties.put(CatalogProperties.WAREHOUSE_LOCATION, warehouseLocation); + properties.put("type", "jdbc"); + + JdbcCatalog jdbcCatalog = + (JdbcCatalog) CatalogUtil.buildIcebergCatalog("TEMP", properties, conf); + jdbcCatalog.buildTable(identifier, SCHEMA).create(); + + SQLiteDataSource dataSource = new SQLiteDataSource(); + dataSource.setUrl(jdbcUrl); + + try (Connection connection = dataSource.getConnection()) { + ResultSet result = + connection + .prepareStatement("SELECT * FROM " + JdbcUtil.CATALOG_TABLE_VIEW_NAME) + .executeQuery(); + result.next(); + return result.getString(JdbcTableOperations.METADATA_LOCATION_PROP); + } + } + private void initLegacySchema(String jdbcUrl) throws SQLException { + TableIdentifier table1 = TableIdentifier.of(Namespace.of("namespace1"), "table1"); + TableIdentifier table2 = TableIdentifier.of(Namespace.of("namespace2"), "table2"); + + String table1MetadataLocation = createMetadataLocationViaJdbcCatalog(table1); Review Comment: I used a temporary kind of "fake" catalog to just get the metadata location as we don't have an API (public) to create the metadata in the test. I was thinking about changing a bit the API to be able to easily create metadata location in tests, but I didn't want to do that in this PR (as it's larger). -- 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