Skip to content

Commit 3cef6e7

Browse files
committed
Remove deprecated ConnectorMetadata.applyJoin
1 parent 751e80d commit 3cef6e7

File tree

5 files changed

+30
-81
lines changed

5 files changed

+30
-81
lines changed

core/trino-main/src/main/java/io/trino/tracing/TracingConnectorMetadata.java

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@
4646
import io.trino.spi.connector.Constraint;
4747
import io.trino.spi.connector.ConstraintApplicationResult;
4848
import io.trino.spi.connector.JoinApplicationResult;
49-
import io.trino.spi.connector.JoinCondition;
5049
import io.trino.spi.connector.JoinStatistics;
5150
import io.trino.spi.connector.JoinType;
5251
import io.trino.spi.connector.LimitApplicationResult;
@@ -1318,16 +1317,6 @@ public Optional<JoinApplicationResult<ConnectorTableHandle>> applyJoin(Connector
13181317
}
13191318
}
13201319

1321-
@SuppressWarnings("deprecation")
1322-
@Override
1323-
public Optional<JoinApplicationResult<ConnectorTableHandle>> applyJoin(ConnectorSession session, JoinType joinType, ConnectorTableHandle left, ConnectorTableHandle right, List<JoinCondition> joinConditions, Map<String, ColumnHandle> leftAssignments, Map<String, ColumnHandle> rightAssignments, JoinStatistics statistics)
1324-
{
1325-
Span span = startSpan("applyJoin");
1326-
try (var _ = scopedSpan(span)) {
1327-
return delegate.applyJoin(session, joinType, left, right, joinConditions, leftAssignments, rightAssignments, statistics);
1328-
}
1329-
}
1330-
13311320
@Override
13321321
public Optional<TopNApplicationResult<ConnectorTableHandle>> applyTopN(ConnectorSession session, ConnectorTableHandle handle, long topNCount, List<SortItem> sortItems, Map<String, ColumnHandle> assignments)
13331322
{

core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorMetadata.java

Lines changed: 0 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import io.airlift.slice.Slice;
1717
import io.trino.spi.RefreshType;
1818
import io.trino.spi.TrinoException;
19-
import io.trino.spi.expression.Call;
2019
import io.trino.spi.expression.ConnectorExpression;
2120
import io.trino.spi.expression.Constant;
2221
import io.trino.spi.expression.Variable;
@@ -40,7 +39,6 @@
4039
import io.trino.spi.type.Type;
4140
import jakarta.annotation.Nullable;
4241

43-
import java.util.ArrayList;
4442
import java.util.Collection;
4543
import java.util.HashMap;
4644
import java.util.Iterator;
@@ -60,7 +58,6 @@
6058
import static io.trino.spi.StandardErrorCode.NOT_SUPPORTED;
6159
import static io.trino.spi.connector.SaveMode.REPLACE;
6260
import static io.trino.spi.expression.Constant.FALSE;
63-
import static io.trino.spi.expression.StandardFunctions.AND_FUNCTION_NAME;
6461
import static java.util.Collections.emptyList;
6562
import static java.util.Collections.emptyMap;
6663
import static java.util.Locale.ENGLISH;
@@ -1634,50 +1631,6 @@ default Optional<JoinApplicationResult<ConnectorTableHandle>> applyJoin(
16341631
Map<String, ColumnHandle> leftAssignments,
16351632
Map<String, ColumnHandle> rightAssignments,
16361633
JoinStatistics statistics)
1637-
{
1638-
List<JoinCondition> conditions;
1639-
if (joinCondition instanceof Call call && AND_FUNCTION_NAME.equals(call.getFunctionName())) {
1640-
conditions = new ArrayList<>(call.getArguments().size());
1641-
for (ConnectorExpression argument : call.getArguments()) {
1642-
if (Constant.TRUE.equals(argument)) {
1643-
continue;
1644-
}
1645-
Optional<JoinCondition> condition = JoinCondition.from(argument, leftAssignments.keySet(), rightAssignments.keySet());
1646-
if (condition.isEmpty()) {
1647-
// We would need to add a FilterNode on top of the result
1648-
return Optional.empty();
1649-
}
1650-
conditions.add(condition.get());
1651-
}
1652-
}
1653-
else {
1654-
Optional<JoinCondition> condition = JoinCondition.from(joinCondition, leftAssignments.keySet(), rightAssignments.keySet());
1655-
if (condition.isEmpty()) {
1656-
return Optional.empty();
1657-
}
1658-
conditions = List.of(condition.get());
1659-
}
1660-
return applyJoin(
1661-
session,
1662-
joinType,
1663-
left,
1664-
right,
1665-
conditions,
1666-
leftAssignments,
1667-
rightAssignments,
1668-
statistics);
1669-
}
1670-
1671-
@Deprecated
1672-
default Optional<JoinApplicationResult<ConnectorTableHandle>> applyJoin(
1673-
ConnectorSession session,
1674-
JoinType joinType,
1675-
ConnectorTableHandle left,
1676-
ConnectorTableHandle right,
1677-
List<JoinCondition> joinConditions,
1678-
Map<String, ColumnHandle> leftAssignments,
1679-
Map<String, ColumnHandle> rightAssignments,
1680-
JoinStatistics statistics)
16811634
{
16821635
return Optional.empty();
16831636
}

core/trino-spi/src/main/java/io/trino/spi/connector/JoinStatistics.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,14 @@
1313
*/
1414
package io.trino.spi.connector;
1515

16-
import java.util.List;
16+
import io.trino.spi.expression.ConnectorExpression;
17+
1718
import java.util.Map;
1819
import java.util.Optional;
1920

2021
/**
2122
* Represents estimated statistics for join node and left and right table
22-
* passed to {@link ConnectorMetadata#applyJoin(ConnectorSession, JoinType, ConnectorTableHandle, ConnectorTableHandle, List, Map, Map, JoinStatistics)}
23+
* passed to {@link ConnectorMetadata#applyJoin(ConnectorSession, JoinType, ConnectorTableHandle, ConnectorTableHandle, ConnectorExpression, Map, Map, JoinStatistics)}
2324
*/
2425
public interface JoinStatistics
2526
{

lib/trino-plugin-toolkit/src/main/java/io/trino/plugin/base/classloader/ClassLoaderSafeConnectorMetadata.java

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@
4646
import io.trino.spi.connector.Constraint;
4747
import io.trino.spi.connector.ConstraintApplicationResult;
4848
import io.trino.spi.connector.JoinApplicationResult;
49-
import io.trino.spi.connector.JoinCondition;
5049
import io.trino.spi.connector.JoinStatistics;
5150
import io.trino.spi.connector.JoinType;
5251
import io.trino.spi.connector.LimitApplicationResult;
@@ -1137,22 +1136,6 @@ public Optional<JoinApplicationResult<ConnectorTableHandle>> applyJoin(
11371136
}
11381137
}
11391138

1140-
@Override
1141-
public Optional<JoinApplicationResult<ConnectorTableHandle>> applyJoin(
1142-
ConnectorSession session,
1143-
JoinType joinType,
1144-
ConnectorTableHandle left,
1145-
ConnectorTableHandle right,
1146-
List<JoinCondition> joinConditions,
1147-
Map<String, ColumnHandle> leftAssignments,
1148-
Map<String, ColumnHandle> rightAssignments,
1149-
JoinStatistics statistics)
1150-
{
1151-
try (ThreadContextClassLoader _ = new ThreadContextClassLoader(classLoader)) {
1152-
return delegate.applyJoin(session, joinType, left, right, joinConditions, leftAssignments, rightAssignments, statistics);
1153-
}
1154-
}
1155-
11561139
@Override
11571140
public Optional<TopNApplicationResult<ConnectorTableHandle>> applyTopN(
11581141
ConnectorSession session,

plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/DefaultJdbcMetadata.java

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363
import io.trino.spi.connector.TableNotFoundException;
6464
import io.trino.spi.connector.TableScanRedirectApplicationResult;
6565
import io.trino.spi.connector.TopNApplicationResult;
66+
import io.trino.spi.expression.Call;
6667
import io.trino.spi.expression.ConnectorExpression;
6768
import io.trino.spi.expression.Constant;
6869
import io.trino.spi.expression.Variable;
@@ -119,6 +120,7 @@
119120
import static io.trino.spi.connector.RetryMode.NO_RETRIES;
120121
import static io.trino.spi.connector.RowChangeParadigm.CHANGE_ONLY_UPDATED_COLUMNS;
121122
import static io.trino.spi.connector.SaveMode.REPLACE;
123+
import static io.trino.spi.expression.StandardFunctions.AND_FUNCTION_NAME;
122124
import static io.trino.spi.type.BigintType.BIGINT;
123125
import static java.lang.Math.max;
124126
import static java.util.Objects.requireNonNull;
@@ -632,12 +634,34 @@ public Optional<JoinApplicationResult<ConnectorTableHandle>> applyJoin(
632634
{
633635
if (!isComplexJoinPushdownEnabled(session)) {
634636
// Fallback to the old join pushdown code
635-
return JdbcMetadata.super.applyJoin(
637+
List<JoinCondition> conditions;
638+
if (joinCondition instanceof Call call && AND_FUNCTION_NAME.equals(call.getFunctionName())) {
639+
conditions = new ArrayList<>(call.getArguments().size());
640+
for (ConnectorExpression argument : call.getArguments()) {
641+
if (Constant.TRUE.equals(argument)) {
642+
continue;
643+
}
644+
Optional<JoinCondition> condition = JoinCondition.from(argument, leftAssignments.keySet(), rightAssignments.keySet());
645+
if (condition.isEmpty()) {
646+
// We would need to add a FilterNode on top of the result
647+
return Optional.empty();
648+
}
649+
conditions.add(condition.get());
650+
}
651+
}
652+
else {
653+
Optional<JoinCondition> condition = JoinCondition.from(joinCondition, leftAssignments.keySet(), rightAssignments.keySet());
654+
if (condition.isEmpty()) {
655+
return Optional.empty();
656+
}
657+
conditions = List.of(condition.get());
658+
}
659+
return applyJoin(
636660
session,
637661
joinType,
638662
left,
639663
right,
640-
joinCondition,
664+
conditions,
641665
leftAssignments,
642666
rightAssignments,
643667
statistics);
@@ -738,8 +762,7 @@ public Optional<JoinApplicationResult<ConnectorTableHandle>> applyJoin(
738762
}
739763

740764
@Deprecated
741-
@Override
742-
public Optional<JoinApplicationResult<ConnectorTableHandle>> applyJoin(
765+
private Optional<JoinApplicationResult<ConnectorTableHandle>> applyJoin(
743766
ConnectorSession session,
744767
JoinType joinType,
745768
ConnectorTableHandle left,

0 commit comments

Comments
 (0)