From 7f372720647f12a07875330bc19cde60df4f34fd Mon Sep 17 00:00:00 2001 From: Yuya Ebihara Date: Wed, 27 Nov 2024 15:57:04 +0900 Subject: [PATCH] Add SUPPORTS_MAP_TYPE to TestingConnectorBehavior --- .../plugin/jdbc/TestJdbcConnectorTest.java | 1 + .../bigquery/BaseBigQueryConnectorTest.java | 1 + .../cassandra/TestCassandraConnectorTest.java | 1 + .../TestClickHouseConnectorTest.java | 1 + .../exasol/TestExasolConnectorTest.java | 1 + .../ignite/TestIgniteConnectorTest.java | 1 + .../plugin/kudu/TestKuduConnectorTest.java | 1 + .../mariadb/BaseMariaDbConnectorTest.java | 1 + .../plugin/mysql/BaseMySqlConnectorTest.java | 1 + .../oracle/BaseOracleConnectorTest.java | 1 + .../phoenix5/TestPhoenixConnectorTest.java | 1 + .../plugin/pinot/TestPinotConnectorTest.java | 1 + .../TestPostgreSqlConnectorTest.java | 1 + .../plugin/redis/BaseRedisConnectorTest.java | 1 + .../redshift/TestRedshiftConnectorTest.java | 1 + .../TestSingleStoreConnectorTest.java | 1 + .../snowflake/TestSnowflakeConnectorTest.java | 1 + .../sqlserver/BaseSqlServerConnectorTest.java | 1 + .../vertica/TestVerticaConnectorTest.java | 1 + .../io/trino/testing/BaseConnectorTest.java | 29 ++++++++++++++++--- .../testing/TestingConnectorBehavior.java | 1 + .../tests/tpch/TestTpchConnectorTest.java | 1 + 22 files changed, 46 insertions(+), 4 deletions(-) diff --git a/plugin/trino-base-jdbc/src/test/java/io/trino/plugin/jdbc/TestJdbcConnectorTest.java b/plugin/trino-base-jdbc/src/test/java/io/trino/plugin/jdbc/TestJdbcConnectorTest.java index ab6b7a72c547..f7f3a20ad2d8 100644 --- a/plugin/trino-base-jdbc/src/test/java/io/trino/plugin/jdbc/TestJdbcConnectorTest.java +++ b/plugin/trino-base-jdbc/src/test/java/io/trino/plugin/jdbc/TestJdbcConnectorTest.java @@ -73,6 +73,7 @@ protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior) SUPPORTS_CREATE_TABLE_WITH_COLUMN_COMMENT, SUPPORTS_CREATE_TABLE_WITH_TABLE_COMMENT, SUPPORTS_LIMIT_PUSHDOWN, + SUPPORTS_MAP_TYPE, SUPPORTS_RENAME_TABLE_ACROSS_SCHEMAS, SUPPORTS_ROW_TYPE, SUPPORTS_TOPN_PUSHDOWN -> false; diff --git a/plugin/trino-bigquery/src/test/java/io/trino/plugin/bigquery/BaseBigQueryConnectorTest.java b/plugin/trino-bigquery/src/test/java/io/trino/plugin/bigquery/BaseBigQueryConnectorTest.java index b3f26eef992e..922413f73cc9 100644 --- a/plugin/trino-bigquery/src/test/java/io/trino/plugin/bigquery/BaseBigQueryConnectorTest.java +++ b/plugin/trino-bigquery/src/test/java/io/trino/plugin/bigquery/BaseBigQueryConnectorTest.java @@ -95,6 +95,7 @@ protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior) case SUPPORTS_ADD_COLUMN, SUPPORTS_CREATE_MATERIALIZED_VIEW, SUPPORTS_CREATE_VIEW, + SUPPORTS_MAP_TYPE, SUPPORTS_MERGE, SUPPORTS_NEGATIVE_DATE, SUPPORTS_NOT_NULL_CONSTRAINT, diff --git a/plugin/trino-cassandra/src/test/java/io/trino/plugin/cassandra/TestCassandraConnectorTest.java b/plugin/trino-cassandra/src/test/java/io/trino/plugin/cassandra/TestCassandraConnectorTest.java index c3fd746d764d..38ab6d5dcdbc 100644 --- a/plugin/trino-cassandra/src/test/java/io/trino/plugin/cassandra/TestCassandraConnectorTest.java +++ b/plugin/trino-cassandra/src/test/java/io/trino/plugin/cassandra/TestCassandraConnectorTest.java @@ -93,6 +93,7 @@ protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior) SUPPORTS_CREATE_TABLE_WITH_COLUMN_COMMENT, SUPPORTS_CREATE_TABLE_WITH_TABLE_COMMENT, SUPPORTS_CREATE_VIEW, + SUPPORTS_MAP_TYPE, SUPPORTS_MERGE, SUPPORTS_NOT_NULL_CONSTRAINT, SUPPORTS_RENAME_COLUMN, diff --git a/plugin/trino-clickhouse/src/test/java/io/trino/plugin/clickhouse/TestClickHouseConnectorTest.java b/plugin/trino-clickhouse/src/test/java/io/trino/plugin/clickhouse/TestClickHouseConnectorTest.java index 565ecba0fbe0..6f5e0093c65b 100644 --- a/plugin/trino-clickhouse/src/test/java/io/trino/plugin/clickhouse/TestClickHouseConnectorTest.java +++ b/plugin/trino-clickhouse/src/test/java/io/trino/plugin/clickhouse/TestClickHouseConnectorTest.java @@ -79,6 +79,7 @@ protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior) SUPPORTS_ARRAY, SUPPORTS_DELETE, SUPPORTS_DROP_NOT_NULL_CONSTRAINT, + SUPPORTS_MAP_TYPE, SUPPORTS_NEGATIVE_DATE, SUPPORTS_ROW_TYPE, SUPPORTS_SET_COLUMN_TYPE, diff --git a/plugin/trino-exasol/src/test/java/io/trino/plugin/exasol/TestExasolConnectorTest.java b/plugin/trino-exasol/src/test/java/io/trino/plugin/exasol/TestExasolConnectorTest.java index f91d2576e654..1b1967bb3cee 100644 --- a/plugin/trino-exasol/src/test/java/io/trino/plugin/exasol/TestExasolConnectorTest.java +++ b/plugin/trino-exasol/src/test/java/io/trino/plugin/exasol/TestExasolConnectorTest.java @@ -76,6 +76,7 @@ protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior) SUPPORTS_CREATE_TABLE, SUPPORTS_DELETE, SUPPORTS_INSERT, + SUPPORTS_MAP_TYPE, SUPPORTS_NEGATIVE_DATE, // min date is 0001-01-01 SUPPORTS_RENAME_COLUMN, SUPPORTS_RENAME_TABLE, diff --git a/plugin/trino-ignite/src/test/java/io/trino/plugin/ignite/TestIgniteConnectorTest.java b/plugin/trino-ignite/src/test/java/io/trino/plugin/ignite/TestIgniteConnectorTest.java index 11d4006c7367..a563121ed76a 100644 --- a/plugin/trino-ignite/src/test/java/io/trino/plugin/ignite/TestIgniteConnectorTest.java +++ b/plugin/trino-ignite/src/test/java/io/trino/plugin/ignite/TestIgniteConnectorTest.java @@ -81,6 +81,7 @@ protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior) SUPPORTS_CREATE_TABLE_WITH_COLUMN_COMMENT, SUPPORTS_CREATE_TABLE_WITH_TABLE_COMMENT, SUPPORTS_JOIN_PUSHDOWN_WITH_FULL_JOIN, + SUPPORTS_MAP_TYPE, SUPPORTS_NATIVE_QUERY, SUPPORTS_NEGATIVE_DATE, SUPPORTS_RENAME_COLUMN, diff --git a/plugin/trino-kudu/src/test/java/io/trino/plugin/kudu/TestKuduConnectorTest.java b/plugin/trino-kudu/src/test/java/io/trino/plugin/kudu/TestKuduConnectorTest.java index 73faaa95d02f..8fdb50247e75 100644 --- a/plugin/trino-kudu/src/test/java/io/trino/plugin/kudu/TestKuduConnectorTest.java +++ b/plugin/trino-kudu/src/test/java/io/trino/plugin/kudu/TestKuduConnectorTest.java @@ -65,6 +65,7 @@ protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior) SUPPORTS_CREATE_MATERIALIZED_VIEW, SUPPORTS_CREATE_TABLE_WITH_COLUMN_COMMENT, SUPPORTS_CREATE_VIEW, + SUPPORTS_MAP_TYPE, SUPPORTS_NEGATIVE_DATE, SUPPORTS_NOT_NULL_CONSTRAINT, SUPPORTS_RENAME_SCHEMA, diff --git a/plugin/trino-mariadb/src/test/java/io/trino/plugin/mariadb/BaseMariaDbConnectorTest.java b/plugin/trino-mariadb/src/test/java/io/trino/plugin/mariadb/BaseMariaDbConnectorTest.java index be59ee6229a6..8c1bac7c0115 100644 --- a/plugin/trino-mariadb/src/test/java/io/trino/plugin/mariadb/BaseMariaDbConnectorTest.java +++ b/plugin/trino-mariadb/src/test/java/io/trino/plugin/mariadb/BaseMariaDbConnectorTest.java @@ -52,6 +52,7 @@ protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior) SUPPORTS_DROP_NOT_NULL_CONSTRAINT, SUPPORTS_JOIN_PUSHDOWN_WITH_DISTINCT_FROM, SUPPORTS_JOIN_PUSHDOWN_WITH_FULL_JOIN, + SUPPORTS_MAP_TYPE, SUPPORTS_NEGATIVE_DATE, SUPPORTS_PREDICATE_PUSHDOWN_WITH_VARCHAR_EQUALITY, SUPPORTS_PREDICATE_PUSHDOWN_WITH_VARCHAR_INEQUALITY, diff --git a/plugin/trino-mysql/src/test/java/io/trino/plugin/mysql/BaseMySqlConnectorTest.java b/plugin/trino-mysql/src/test/java/io/trino/plugin/mysql/BaseMySqlConnectorTest.java index bfb8eb2029cf..31e3801153fb 100644 --- a/plugin/trino-mysql/src/test/java/io/trino/plugin/mysql/BaseMySqlConnectorTest.java +++ b/plugin/trino-mysql/src/test/java/io/trino/plugin/mysql/BaseMySqlConnectorTest.java @@ -68,6 +68,7 @@ protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior) SUPPORTS_DROP_NOT_NULL_CONSTRAINT, SUPPORTS_JOIN_PUSHDOWN_WITH_DISTINCT_FROM, SUPPORTS_JOIN_PUSHDOWN_WITH_FULL_JOIN, + SUPPORTS_MAP_TYPE, SUPPORTS_NEGATIVE_DATE, SUPPORTS_PREDICATE_PUSHDOWN_WITH_VARCHAR_EQUALITY, SUPPORTS_PREDICATE_PUSHDOWN_WITH_VARCHAR_INEQUALITY, diff --git a/plugin/trino-oracle/src/test/java/io/trino/plugin/oracle/BaseOracleConnectorTest.java b/plugin/trino-oracle/src/test/java/io/trino/plugin/oracle/BaseOracleConnectorTest.java index d61a2bf4c29a..b85473807bf6 100644 --- a/plugin/trino-oracle/src/test/java/io/trino/plugin/oracle/BaseOracleConnectorTest.java +++ b/plugin/trino-oracle/src/test/java/io/trino/plugin/oracle/BaseOracleConnectorTest.java @@ -55,6 +55,7 @@ protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior) SUPPORTS_CREATE_TABLE_WITH_COLUMN_COMMENT, SUPPORTS_DROP_NOT_NULL_CONSTRAINT, SUPPORTS_JOIN_PUSHDOWN_WITH_DISTINCT_FROM, + SUPPORTS_MAP_TYPE, SUPPORTS_RENAME_TABLE_ACROSS_SCHEMAS, SUPPORTS_ROW_TYPE, SUPPORTS_SET_COLUMN_TYPE, diff --git a/plugin/trino-phoenix5/src/test/java/io/trino/plugin/phoenix5/TestPhoenixConnectorTest.java b/plugin/trino-phoenix5/src/test/java/io/trino/plugin/phoenix5/TestPhoenixConnectorTest.java index 31ee9ff5a4f4..dede278b28ff 100644 --- a/plugin/trino-phoenix5/src/test/java/io/trino/plugin/phoenix5/TestPhoenixConnectorTest.java +++ b/plugin/trino-phoenix5/src/test/java/io/trino/plugin/phoenix5/TestPhoenixConnectorTest.java @@ -104,6 +104,7 @@ protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior) SUPPORTS_CREATE_TABLE_WITH_TABLE_COMMENT, SUPPORTS_DROP_SCHEMA_CASCADE, SUPPORTS_LIMIT_PUSHDOWN, + SUPPORTS_MAP_TYPE, SUPPORTS_NATIVE_QUERY, SUPPORTS_NOT_NULL_CONSTRAINT, SUPPORTS_RENAME_COLUMN, diff --git a/plugin/trino-pinot/src/test/java/io/trino/plugin/pinot/TestPinotConnectorTest.java b/plugin/trino-pinot/src/test/java/io/trino/plugin/pinot/TestPinotConnectorTest.java index 9750c8f1fcfa..5a9702417da8 100644 --- a/plugin/trino-pinot/src/test/java/io/trino/plugin/pinot/TestPinotConnectorTest.java +++ b/plugin/trino-pinot/src/test/java/io/trino/plugin/pinot/TestPinotConnectorTest.java @@ -59,6 +59,7 @@ protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior) SUPPORTS_CREATE_VIEW, SUPPORTS_DELETE, SUPPORTS_INSERT, + SUPPORTS_MAP_TYPE, SUPPORTS_MERGE, SUPPORTS_RENAME_COLUMN, SUPPORTS_RENAME_TABLE, diff --git a/plugin/trino-postgresql/src/test/java/io/trino/plugin/postgresql/TestPostgreSqlConnectorTest.java b/plugin/trino-postgresql/src/test/java/io/trino/plugin/postgresql/TestPostgreSqlConnectorTest.java index 8f75cef396e5..229bde0d5164 100644 --- a/plugin/trino-postgresql/src/test/java/io/trino/plugin/postgresql/TestPostgreSqlConnectorTest.java +++ b/plugin/trino-postgresql/src/test/java/io/trino/plugin/postgresql/TestPostgreSqlConnectorTest.java @@ -132,6 +132,7 @@ protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior) case SUPPORTS_ADD_COLUMN_WITH_COMMENT, SUPPORTS_CREATE_TABLE_WITH_COLUMN_COMMENT, SUPPORTS_JOIN_PUSHDOWN_WITH_FULL_JOIN, + SUPPORTS_MAP_TYPE, SUPPORTS_PREDICATE_PUSHDOWN_WITH_VARCHAR_INEQUALITY, SUPPORTS_RENAME_TABLE_ACROSS_SCHEMAS, SUPPORTS_ROW_TYPE -> false; diff --git a/plugin/trino-redis/src/test/java/io/trino/plugin/redis/BaseRedisConnectorTest.java b/plugin/trino-redis/src/test/java/io/trino/plugin/redis/BaseRedisConnectorTest.java index 90c398156ee2..8188178744a6 100644 --- a/plugin/trino-redis/src/test/java/io/trino/plugin/redis/BaseRedisConnectorTest.java +++ b/plugin/trino-redis/src/test/java/io/trino/plugin/redis/BaseRedisConnectorTest.java @@ -37,6 +37,7 @@ protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior) SUPPORTS_CREATE_VIEW, SUPPORTS_DELETE, SUPPORTS_INSERT, + SUPPORTS_MAP_TYPE, SUPPORTS_MERGE, SUPPORTS_RENAME_COLUMN, SUPPORTS_RENAME_TABLE, diff --git a/plugin/trino-redshift/src/test/java/io/trino/plugin/redshift/TestRedshiftConnectorTest.java b/plugin/trino-redshift/src/test/java/io/trino/plugin/redshift/TestRedshiftConnectorTest.java index 332036c3931b..29f53a68514a 100644 --- a/plugin/trino-redshift/src/test/java/io/trino/plugin/redshift/TestRedshiftConnectorTest.java +++ b/plugin/trino-redshift/src/test/java/io/trino/plugin/redshift/TestRedshiftConnectorTest.java @@ -108,6 +108,7 @@ protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior) SUPPORTS_DROP_SCHEMA_CASCADE, SUPPORTS_JOIN_PUSHDOWN_WITH_DISTINCT_FROM, SUPPORTS_JOIN_PUSHDOWN_WITH_FULL_JOIN, + SUPPORTS_MAP_TYPE, SUPPORTS_RENAME_TABLE_ACROSS_SCHEMAS, SUPPORTS_ROW_TYPE, SUPPORTS_SET_COLUMN_TYPE -> false; diff --git a/plugin/trino-singlestore/src/test/java/io/trino/plugin/singlestore/TestSingleStoreConnectorTest.java b/plugin/trino-singlestore/src/test/java/io/trino/plugin/singlestore/TestSingleStoreConnectorTest.java index 9448f144cf23..6ba379deed51 100644 --- a/plugin/trino-singlestore/src/test/java/io/trino/plugin/singlestore/TestSingleStoreConnectorTest.java +++ b/plugin/trino-singlestore/src/test/java/io/trino/plugin/singlestore/TestSingleStoreConnectorTest.java @@ -78,6 +78,7 @@ protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior) SUPPORTS_CREATE_TABLE_WITH_TABLE_COMMENT, SUPPORTS_JOIN_PUSHDOWN_WITH_DISTINCT_FROM, SUPPORTS_JOIN_PUSHDOWN_WITH_FULL_JOIN, + SUPPORTS_MAP_TYPE, SUPPORTS_PREDICATE_PUSHDOWN_WITH_VARCHAR_EQUALITY, SUPPORTS_PREDICATE_PUSHDOWN_WITH_VARCHAR_INEQUALITY, SUPPORTS_RENAME_SCHEMA, diff --git a/plugin/trino-snowflake/src/test/java/io/trino/plugin/snowflake/TestSnowflakeConnectorTest.java b/plugin/trino-snowflake/src/test/java/io/trino/plugin/snowflake/TestSnowflakeConnectorTest.java index 5b53cee8900d..2461b907182f 100644 --- a/plugin/trino-snowflake/src/test/java/io/trino/plugin/snowflake/TestSnowflakeConnectorTest.java +++ b/plugin/trino-snowflake/src/test/java/io/trino/plugin/snowflake/TestSnowflakeConnectorTest.java @@ -70,6 +70,7 @@ protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior) SUPPORTS_ARRAY, SUPPORTS_COMMENT_ON_COLUMN, SUPPORTS_CREATE_TABLE_WITH_COLUMN_COMMENT, + SUPPORTS_MAP_TYPE, SUPPORTS_PREDICATE_PUSHDOWN_WITH_VARCHAR_EQUALITY, SUPPORTS_PREDICATE_PUSHDOWN_WITH_VARCHAR_INEQUALITY, SUPPORTS_ROW_TYPE, diff --git a/plugin/trino-sqlserver/src/test/java/io/trino/plugin/sqlserver/BaseSqlServerConnectorTest.java b/plugin/trino-sqlserver/src/test/java/io/trino/plugin/sqlserver/BaseSqlServerConnectorTest.java index ac4ad3518b2d..903c8b9c523e 100644 --- a/plugin/trino-sqlserver/src/test/java/io/trino/plugin/sqlserver/BaseSqlServerConnectorTest.java +++ b/plugin/trino-sqlserver/src/test/java/io/trino/plugin/sqlserver/BaseSqlServerConnectorTest.java @@ -66,6 +66,7 @@ protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior) SUPPORTS_DROP_NOT_NULL_CONSTRAINT, SUPPORTS_DROP_SCHEMA_CASCADE, SUPPORTS_JOIN_PUSHDOWN_WITH_DISTINCT_FROM, + SUPPORTS_MAP_TYPE, SUPPORTS_NEGATIVE_DATE, SUPPORTS_PREDICATE_PUSHDOWN_WITH_VARCHAR_INEQUALITY, SUPPORTS_RENAME_SCHEMA, diff --git a/plugin/trino-vertica/src/test/java/io/trino/plugin/vertica/TestVerticaConnectorTest.java b/plugin/trino-vertica/src/test/java/io/trino/plugin/vertica/TestVerticaConnectorTest.java index 19b1ac487abb..d65709629852 100644 --- a/plugin/trino-vertica/src/test/java/io/trino/plugin/vertica/TestVerticaConnectorTest.java +++ b/plugin/trino-vertica/src/test/java/io/trino/plugin/vertica/TestVerticaConnectorTest.java @@ -76,6 +76,7 @@ protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior) SUPPORTS_CREATE_TABLE_WITH_TABLE_COMMENT, SUPPORTS_DROP_COLUMN, SUPPORTS_JOIN_PUSHDOWN_WITH_DISTINCT_FROM, + SUPPORTS_MAP_TYPE, SUPPORTS_RENAME_SCHEMA, SUPPORTS_RENAME_TABLE_ACROSS_SCHEMAS, SUPPORTS_ROW_TYPE, diff --git a/testing/trino-testing/src/main/java/io/trino/testing/BaseConnectorTest.java b/testing/trino-testing/src/main/java/io/trino/testing/BaseConnectorTest.java index a2e21f3da6ee..73ad931caaf2 100644 --- a/testing/trino-testing/src/main/java/io/trino/testing/BaseConnectorTest.java +++ b/testing/trino-testing/src/main/java/io/trino/testing/BaseConnectorTest.java @@ -132,6 +132,7 @@ import static io.trino.testing.TestingConnectorBehavior.SUPPORTS_DROP_NOT_NULL_CONSTRAINT; import static io.trino.testing.TestingConnectorBehavior.SUPPORTS_DROP_SCHEMA_CASCADE; import static io.trino.testing.TestingConnectorBehavior.SUPPORTS_INSERT; +import static io.trino.testing.TestingConnectorBehavior.SUPPORTS_MAP_TYPE; import static io.trino.testing.TestingConnectorBehavior.SUPPORTS_MATERIALIZED_VIEW_FRESHNESS_FROM_BASE_TABLES; import static io.trino.testing.TestingConnectorBehavior.SUPPORTS_MERGE; import static io.trino.testing.TestingConnectorBehavior.SUPPORTS_MULTI_STATEMENT_WRITES; @@ -3299,7 +3300,7 @@ public void testSetFieldTypeInNestedArray() @Test public void testSetFieldMapKeyType() { - skipTestUnless(hasBehavior(SUPPORTS_CREATE_TABLE_WITH_DATA) && hasBehavior(SUPPORTS_ROW_TYPE)); + skipTestUnless(hasBehavior(SUPPORTS_CREATE_TABLE_WITH_DATA) && hasBehavior(SUPPORTS_MAP_TYPE) && hasBehavior(SUPPORTS_ROW_TYPE)); String tableDefinition = "AS SELECT CAST(map(array[row(1)], array[2]) AS map(row(field integer), integer)) AS col"; if (!hasBehavior(SUPPORTS_SET_FIELD_TYPE_IN_MAP)) { @@ -3323,7 +3324,7 @@ public void testSetFieldMapKeyType() @Test public void testSetFieldMapValueType() { - skipTestUnless(hasBehavior(SUPPORTS_CREATE_TABLE_WITH_DATA) && hasBehavior(SUPPORTS_ROW_TYPE)); + skipTestUnless(hasBehavior(SUPPORTS_CREATE_TABLE_WITH_DATA) && hasBehavior(SUPPORTS_MAP_TYPE) && hasBehavior(SUPPORTS_ROW_TYPE)); String tableDefinition = "AS SELECT CAST(map(array[1], array[row(2)]) AS map(integer, row(field integer))) AS col"; if (!hasBehavior(SUPPORTS_SET_FIELD_TYPE_IN_MAP)) { @@ -3347,7 +3348,7 @@ public void testSetFieldMapValueType() @Test public void testSetNestedFieldMapKeyType() { - skipTestUnless(hasBehavior(SUPPORTS_SET_FIELD_TYPE_IN_ARRAY) && hasBehavior(SUPPORTS_SET_FIELD_TYPE_IN_MAP) && hasBehavior(SUPPORTS_CREATE_TABLE_WITH_DATA) && hasBehavior(SUPPORTS_ARRAY) && hasBehavior(SUPPORTS_ROW_TYPE)); + skipTestUnless(hasBehavior(SUPPORTS_SET_FIELD_TYPE_IN_ARRAY) && hasBehavior(SUPPORTS_SET_FIELD_TYPE_IN_MAP) && hasBehavior(SUPPORTS_CREATE_TABLE_WITH_DATA) && hasBehavior(SUPPORTS_ARRAY) && hasBehavior(SUPPORTS_MAP_TYPE) && hasBehavior(SUPPORTS_ROW_TYPE)); try (TestTable table = new TestTable( getQueryRunner()::execute, @@ -3366,7 +3367,7 @@ public void testSetNestedFieldMapKeyType() @Test public void testSetNestedFieldMapValueType() { - skipTestUnless(hasBehavior(SUPPORTS_SET_FIELD_TYPE_IN_ARRAY) && hasBehavior(SUPPORTS_SET_FIELD_TYPE_IN_MAP) && hasBehavior(SUPPORTS_CREATE_TABLE_WITH_DATA) && hasBehavior(SUPPORTS_ARRAY) && hasBehavior(SUPPORTS_ROW_TYPE)); + skipTestUnless(hasBehavior(SUPPORTS_SET_FIELD_TYPE_IN_ARRAY) && hasBehavior(SUPPORTS_SET_FIELD_TYPE_IN_MAP) && hasBehavior(SUPPORTS_CREATE_TABLE_WITH_DATA) && hasBehavior(SUPPORTS_ARRAY) && hasBehavior(SUPPORTS_MAP_TYPE) && hasBehavior(SUPPORTS_ROW_TYPE)); try (TestTable table = new TestTable( getQueryRunner()::execute, @@ -4539,6 +4540,26 @@ public void testInsertArray() } } + @Test + public void testInsertMap() + { + skipTestUnless(hasBehavior(SUPPORTS_CREATE_TABLE) && hasBehavior(SUPPORTS_INSERT)); + + String tableName = "test_insert_map_" + randomNameSuffix(); + if (!hasBehavior(SUPPORTS_MAP_TYPE)) { + assertThat(query("CREATE TABLE " + tableName + " (a map(integer, integer))")) + // TODO Unify failure message across connectors + .failure().hasMessageMatching("[Uu]nsupported (column )?type: \\Qmap(integer, integer)"); + abort("not supported"); + } + + try (TestTable table = new TestTable(getQueryRunner()::execute, "test_insert_map_", "(col map(integer, integer))")) { + assertUpdate("INSERT INTO " + table.getName() + " VALUES map(ARRAY[1], ARRAY[2])", 1); + assertThat(query("SELECT * FROM " + table.getName())) + .matches("VALUES map(ARRAY[1], ARRAY[2])"); + } + } + @Test public void testInsertSameValues() { diff --git a/testing/trino-testing/src/main/java/io/trino/testing/TestingConnectorBehavior.java b/testing/trino-testing/src/main/java/io/trino/testing/TestingConnectorBehavior.java index 32bc0080d481..1245d75ca2a2 100644 --- a/testing/trino-testing/src/main/java/io/trino/testing/TestingConnectorBehavior.java +++ b/testing/trino-testing/src/main/java/io/trino/testing/TestingConnectorBehavior.java @@ -34,6 +34,7 @@ public enum TestingConnectorBehavior SUPPORTS_TRUNCATE(SUPPORTS_DELETE), SUPPORTS_ARRAY, + SUPPORTS_MAP_TYPE, SUPPORTS_ROW_TYPE, SUPPORTS_PREDICATE_PUSHDOWN, diff --git a/testing/trino-tests/src/test/java/io/trino/tests/tpch/TestTpchConnectorTest.java b/testing/trino-tests/src/test/java/io/trino/tests/tpch/TestTpchConnectorTest.java index 559d9a375b8e..360bc8ef1f4f 100644 --- a/testing/trino-tests/src/test/java/io/trino/tests/tpch/TestTpchConnectorTest.java +++ b/testing/trino-tests/src/test/java/io/trino/tests/tpch/TestTpchConnectorTest.java @@ -62,6 +62,7 @@ protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior) SUPPORTS_CREATE_VIEW, SUPPORTS_DELETE, SUPPORTS_INSERT, + SUPPORTS_MAP_TYPE, SUPPORTS_MERGE, SUPPORTS_RENAME_COLUMN, SUPPORTS_RENAME_TABLE,