Skip to content

Commit

Permalink
Test Iceberg operations for information_schema.columns
Browse files Browse the repository at this point in the history
  • Loading branch information
findepi committed Jul 17, 2023
1 parent 55ecbe4 commit 82e37ac
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -496,6 +496,26 @@ public void testRemoveOrphanFiles()
assertUpdate("DROP TABLE " + tableName);
}

@Test
public void testInformationSchemaColumns()
{
int tables = 3;
for (int i = 0; i < tables; i++) {
assertUpdate("CREATE TABLE test_select_i_s_columns" + i + "(id VARCHAR, age INT)");
assertUpdate("CREATE TABLE test_other_select_i_s_columns" + i + "(id VARCHAR, age INT)"); // won't match the filter
}

assertFileSystemAccesses("SELECT * FROM information_schema.columns WHERE table_name LIKE 'test_select_i_s_columns%'",
ImmutableMultiset.<FileOperation>builder()
.addCopies(new FileOperation(METADATA_JSON, INPUT_FILE_NEW_STREAM), 3)
.build());

for (int i = 0; i < tables; i++) {
assertUpdate("DROP TABLE test_select_i_s_columns" + i);
assertUpdate("DROP TABLE test_other_select_i_s_columns" + i);
}
}

private void assertFileSystemAccesses(@Language("SQL") String query, Multiset<FileOperation> expectedAccesses)
{
assertFileSystemAccesses(getSession(), query, expectedAccesses);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@
import static com.google.inject.util.Modules.EMPTY_MODULE;
import static io.trino.plugin.hive.metastore.CountingAccessHiveMetastore.Method.CREATE_TABLE;
import static io.trino.plugin.hive.metastore.CountingAccessHiveMetastore.Method.DROP_TABLE;
import static io.trino.plugin.hive.metastore.CountingAccessHiveMetastore.Method.GET_ALL_DATABASES;
import static io.trino.plugin.hive.metastore.CountingAccessHiveMetastore.Method.GET_ALL_TABLES_FROM_DATABASE;
import static io.trino.plugin.hive.metastore.CountingAccessHiveMetastore.Method.GET_DATABASE;
import static io.trino.plugin.hive.metastore.CountingAccessHiveMetastore.Method.GET_TABLE;
import static io.trino.plugin.hive.metastore.CountingAccessHiveMetastore.Method.REPLACE_TABLE;
Expand Down Expand Up @@ -319,6 +321,28 @@ public void testUnregisterTable()
.build());
}

@Test
public void testInformationSchemaColumns()
{
int tables = 3;
for (int i = 0; i < tables; i++) {
assertUpdate("CREATE TABLE test_select_i_s_columns" + i + "(id VARCHAR, age INT)");
assertUpdate("CREATE TABLE test_other_select_i_s_columns" + i + "(id VARCHAR, age INT)"); // won't match the filter
}

assertMetastoreInvocations("SELECT * FROM information_schema.columns WHERE table_name LIKE 'test_select_i_s_columns%'",
ImmutableMultiset.builder()
.add(GET_ALL_DATABASES)
.add(GET_ALL_TABLES_FROM_DATABASE)
.addCopies(GET_TABLE, 3)
.build());

for (int i = 0; i < tables; i++) {
assertUpdate("DROP TABLE test_select_i_s_columns" + i);
assertUpdate("DROP TABLE test_other_select_i_s_columns" + i);
}
}

private void assertMetastoreInvocations(@Language("SQL") String query, Multiset<?> expectedInvocations)
{
assertMetastoreInvocations(getSession(), query, expectedInvocations);
Expand Down

0 comments on commit 82e37ac

Please sign in to comment.