Skip to content

Commit 6781fa3

Browse files
committed
Simplify TestingConnectorBehavior declarations
Use `true` or a related behavior as the default rather than `false`. Few cases being off by default remain, but generally true as the default is much easier to reason about. False defaults were usually a result of incremental additions, where it's easier to add a behavior that is not widely adopted, but are harder to think about in a long run.
1 parent f2f7594 commit 6781fa3

File tree

37 files changed

+272
-158
lines changed

37 files changed

+272
-158
lines changed

plugin/trino-accumulo/src/test/java/io/trino/plugin/accumulo/TestAccumuloConnectorTest.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,11 @@ protected QueryRunner createQueryRunner()
5757
protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior)
5858
{
5959
switch (connectorBehavior) {
60+
case SUPPORTS_DELETE:
61+
case SUPPORTS_UPDATE:
62+
case SUPPORTS_MERGE:
63+
return false;
64+
6065
case SUPPORTS_TOPN_PUSHDOWN:
6166
return false;
6267

@@ -75,8 +80,8 @@ protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior)
7580
case SUPPORTS_COMMENT_ON_COLUMN:
7681
return false;
7782

78-
case SUPPORTS_CREATE_VIEW:
79-
return true;
83+
case SUPPORTS_CREATE_MATERIALIZED_VIEW:
84+
return false;
8085

8186
case SUPPORTS_NOT_NULL_CONSTRAINT:
8287
return false;

plugin/trino-base-jdbc/src/test/java/io/trino/plugin/jdbc/BaseJdbcConnectorSmokeTest.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,13 @@ public abstract class BaseJdbcConnectorSmokeTest
2323
protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior)
2424
{
2525
switch (connectorBehavior) {
26-
case SUPPORTS_DELETE:
27-
return true;
26+
case SUPPORTS_UPDATE: // not supported by any JDBC connector
27+
case SUPPORTS_MERGE: // not supported by any JDBC connector
28+
return false;
29+
30+
case SUPPORTS_CREATE_VIEW: // not supported by DefaultJdbcMetadata
31+
case SUPPORTS_CREATE_MATERIALIZED_VIEW: // not supported by DefaultJdbcMetadata
32+
return false;
2833

2934
default:
3035
return super.hasBehavior(connectorBehavior);

plugin/trino-base-jdbc/src/test/java/io/trino/plugin/jdbc/BaseJdbcConnectorTest.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -130,19 +130,24 @@ public void afterClass()
130130
protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior)
131131
{
132132
switch (connectorBehavior) {
133+
case SUPPORTS_UPDATE: // not supported by any JDBC connector
134+
case SUPPORTS_MERGE: // not supported by any JDBC connector
135+
return false;
136+
137+
case SUPPORTS_CREATE_VIEW: // not supported by DefaultJdbcMetadata
138+
case SUPPORTS_CREATE_MATERIALIZED_VIEW: // not supported by DefaultJdbcMetadata
139+
return false;
140+
133141
case SUPPORTS_PREDICATE_EXPRESSION_PUSHDOWN:
134142
// TODO support pushdown of complex expressions in predicates
135143
return false;
136144

137145
case SUPPORTS_DYNAMIC_FILTER_PUSHDOWN:
138146
// Dynamic filters can be pushed down only if predicate push down is supported.
139147
// It is possible for a connector to have predicate push down support but not push down dynamic filters.
148+
// TODO default SUPPORTS_DYNAMIC_FILTER_PUSHDOWN to SUPPORTS_PREDICATE_PUSHDOWN
140149
return super.hasBehavior(SUPPORTS_PREDICATE_PUSHDOWN);
141150

142-
case SUPPORTS_DELETE:
143-
case SUPPORTS_TRUNCATE:
144-
return true;
145-
146151
default:
147152
return super.hasBehavior(connectorBehavior);
148153
}

plugin/trino-bigquery/src/test/java/io/trino/plugin/bigquery/BaseBigQueryConnectorTest.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,13 @@ public void initBigQueryExecutor(String gcpStorageBucket)
7676
protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior)
7777
{
7878
switch (connectorBehavior) {
79+
case SUPPORTS_DELETE:
80+
case SUPPORTS_UPDATE:
81+
case SUPPORTS_MERGE:
82+
return false;
83+
case SUPPORTS_TRUNCATE:
84+
return true;
85+
7986
case SUPPORTS_TOPN_PUSHDOWN:
8087
return false;
8188

@@ -90,11 +97,12 @@ protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior)
9097
case SUPPORTS_SET_COLUMN_TYPE:
9198
return false;
9299

93-
case SUPPORTS_NOT_NULL_CONSTRAINT:
100+
case SUPPORTS_CREATE_VIEW:
101+
case SUPPORTS_CREATE_MATERIALIZED_VIEW:
94102
return false;
95103

96-
case SUPPORTS_TRUNCATE:
97-
return true;
104+
case SUPPORTS_NOT_NULL_CONSTRAINT:
105+
return false;
98106

99107
case SUPPORTS_NEGATIVE_DATE:
100108
return false;

plugin/trino-bigquery/src/test/java/io/trino/plugin/bigquery/TestBigQueryArrowConnectorSmokeTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,21 @@ protected QueryRunner createQueryRunner()
3636
protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior)
3737
{
3838
switch (connectorBehavior) {
39+
case SUPPORTS_DELETE:
40+
case SUPPORTS_UPDATE:
41+
case SUPPORTS_MERGE:
42+
return false;
43+
3944
case SUPPORTS_RENAME_SCHEMA:
4045
return false;
4146

4247
case SUPPORTS_RENAME_TABLE:
4348
return false;
4449

50+
case SUPPORTS_CREATE_VIEW:
51+
case SUPPORTS_CREATE_MATERIALIZED_VIEW:
52+
return false;
53+
4554
default:
4655
return super.hasBehavior(connectorBehavior);
4756
}

plugin/trino-bigquery/src/test/java/io/trino/plugin/bigquery/TestBigQueryWithDifferentProjectIdConnectorSmokeTest.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,19 @@ protected QueryRunner createQueryRunner()
5252
protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior)
5353
{
5454
switch (connectorBehavior) {
55-
case SUPPORTS_RENAME_SCHEMA:
55+
case SUPPORTS_DELETE:
56+
case SUPPORTS_UPDATE:
57+
case SUPPORTS_MERGE:
5658
return false;
59+
case SUPPORTS_TRUNCATE:
60+
return true;
5761

5862
case SUPPORTS_RENAME_TABLE:
63+
case SUPPORTS_RENAME_SCHEMA:
64+
return false;
65+
66+
case SUPPORTS_CREATE_VIEW:
67+
case SUPPORTS_CREATE_MATERIALIZED_VIEW:
5968
return false;
6069

6170
default:

plugin/trino-cassandra/src/test/java/io/trino/plugin/cassandra/BaseCassandraConnectorSmokeTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,15 @@ protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior)
5151
return false;
5252

5353
case SUPPORTS_CREATE_VIEW:
54+
case SUPPORTS_CREATE_MATERIALIZED_VIEW:
5455
return false;
5556

57+
case SUPPORTS_UPDATE:
58+
return false;
5659
case SUPPORTS_DELETE:
5760
return true;
61+
case SUPPORTS_MERGE:
62+
return false;
5863

5964
case SUPPORTS_ARRAY:
6065
return false;

plugin/trino-cassandra/src/test/java/io/trino/plugin/cassandra/TestCassandraConnectorTest.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,14 @@ public class TestCassandraConnectorTest
9191
protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior)
9292
{
9393
switch (connectorBehavior) {
94+
case SUPPORTS_UPDATE:
95+
case SUPPORTS_MERGE:
96+
return false;
97+
98+
case SUPPORTS_DELETE:
99+
case SUPPORTS_TRUNCATE:
100+
return true;
101+
94102
case SUPPORTS_TOPN_PUSHDOWN:
95103
return false;
96104

@@ -112,15 +120,12 @@ protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior)
112120
return false;
113121

114122
case SUPPORTS_CREATE_VIEW:
123+
case SUPPORTS_CREATE_MATERIALIZED_VIEW:
115124
return false;
116125

117126
case SUPPORTS_NOT_NULL_CONSTRAINT:
118127
return false;
119128

120-
case SUPPORTS_DELETE:
121-
case SUPPORTS_TRUNCATE:
122-
return true;
123-
124129
case SUPPORTS_ARRAY:
125130
case SUPPORTS_ROW_TYPE:
126131
return false;

plugin/trino-clickhouse/src/test/java/io/trino/plugin/clickhouse/TestClickHouseConnectorTest.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,15 +64,25 @@ public class TestClickHouseConnectorTest
6464
protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior)
6565
{
6666
switch (connectorBehavior) {
67+
case SUPPORTS_DELETE:
68+
return false;
69+
case SUPPORTS_TRUNCATE:
70+
return true;
71+
6772
case SUPPORTS_PREDICATE_PUSHDOWN_WITH_VARCHAR_EQUALITY:
6873
case SUPPORTS_PREDICATE_PUSHDOWN_WITH_VARCHAR_INEQUALITY:
6974
case SUPPORTS_TOPN_PUSHDOWN:
7075
return false;
7176

72-
case SUPPORTS_SET_COLUMN_TYPE:
77+
case SUPPORTS_AGGREGATION_PUSHDOWN_STDDEV:
78+
case SUPPORTS_AGGREGATION_PUSHDOWN_VARIANCE:
79+
case SUPPORTS_AGGREGATION_PUSHDOWN_COVARIANCE:
80+
case SUPPORTS_AGGREGATION_PUSHDOWN_CORRELATION:
81+
case SUPPORTS_AGGREGATION_PUSHDOWN_REGRESSION:
82+
case SUPPORTS_AGGREGATION_PUSHDOWN_COUNT_DISTINCT:
7383
return false;
7484

75-
case SUPPORTS_DELETE:
85+
case SUPPORTS_SET_COLUMN_TYPE:
7686
return false;
7787

7888
case SUPPORTS_ARRAY:

plugin/trino-delta-lake/src/test/java/io/trino/plugin/deltalake/BaseDeltaLakeConnectorSmokeTest.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -193,17 +193,12 @@ protected QueryRunner createQueryRunner()
193193
protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior)
194194
{
195195
switch (connectorBehavior) {
196-
case SUPPORTS_CREATE_VIEW:
197-
return true;
196+
case SUPPORTS_CREATE_MATERIALIZED_VIEW:
197+
return false;
198198

199199
case SUPPORTS_RENAME_SCHEMA:
200200
return false;
201201

202-
case SUPPORTS_DELETE:
203-
case SUPPORTS_UPDATE:
204-
case SUPPORTS_MERGE:
205-
return true;
206-
207202
default:
208203
return super.hasBehavior(connectorBehavior);
209204
}

0 commit comments

Comments
 (0)