Skip to content

Commit 29837ef

Browse files
committed
Move IndexSourceNode to the SPI
Move IndexSourceNode to the SPI so it can be used in ConnectorPlanOptimizers and PlanCheckers
1 parent e2fdc66 commit 29837ef

24 files changed

+44
-41
lines changed

presto-main/src/main/java/com/facebook/presto/index/IndexManager.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@
1414
package com.facebook.presto.index;
1515

1616
import com.facebook.presto.Session;
17-
import com.facebook.presto.metadata.IndexHandle;
1817
import com.facebook.presto.spi.ColumnHandle;
1918
import com.facebook.presto.spi.ConnectorId;
2019
import com.facebook.presto.spi.ConnectorIndex;
2120
import com.facebook.presto.spi.ConnectorSession;
21+
import com.facebook.presto.spi.IndexHandle;
2222
import com.facebook.presto.spi.connector.ConnectorIndexProvider;
2323

2424
import java.util.List;

presto-main/src/main/java/com/facebook/presto/metadata/ResolvedIndex.java

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import com.facebook.presto.spi.ColumnHandle;
1818
import com.facebook.presto.spi.ConnectorId;
1919
import com.facebook.presto.spi.ConnectorResolvedIndex;
20+
import com.facebook.presto.spi.IndexHandle;
2021
import com.facebook.presto.spi.connector.ConnectorTransactionHandle;
2122

2223
import static java.util.Objects.requireNonNull;

presto-main/src/main/java/com/facebook/presto/sql/planner/InputExtractor.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@
2323
import com.facebook.presto.spi.SchemaTableName;
2424
import com.facebook.presto.spi.TableHandle;
2525
import com.facebook.presto.spi.TableMetadata;
26+
import com.facebook.presto.spi.plan.IndexSourceNode;
2627
import com.facebook.presto.spi.plan.JoinNode;
2728
import com.facebook.presto.spi.plan.PlanNode;
2829
import com.facebook.presto.spi.plan.SemiJoinNode;
2930
import com.facebook.presto.spi.plan.SpatialJoinNode;
3031
import com.facebook.presto.spi.plan.TableScanNode;
3132
import com.facebook.presto.spi.statistics.TableStatistics;
32-
import com.facebook.presto.sql.planner.plan.IndexSourceNode;
3333
import com.facebook.presto.sql.planner.plan.InternalPlanVisitor;
3434
import com.google.common.collect.ImmutableList;
3535
import com.google.common.collect.ImmutableSet;

presto-main/src/main/java/com/facebook/presto/sql/planner/LocalExecutionPlanner.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@
151151
import com.facebook.presto.spi.plan.DistinctLimitNode;
152152
import com.facebook.presto.spi.plan.EquiJoinClause;
153153
import com.facebook.presto.spi.plan.FilterNode;
154+
import com.facebook.presto.spi.plan.IndexSourceNode;
154155
import com.facebook.presto.spi.plan.JoinDistributionType;
155156
import com.facebook.presto.spi.plan.JoinNode;
156157
import com.facebook.presto.spi.plan.LimitNode;
@@ -203,7 +204,6 @@
203204
import com.facebook.presto.sql.planner.plan.ExplainAnalyzeNode;
204205
import com.facebook.presto.sql.planner.plan.GroupIdNode;
205206
import com.facebook.presto.sql.planner.plan.IndexJoinNode;
206-
import com.facebook.presto.sql.planner.plan.IndexSourceNode;
207207
import com.facebook.presto.sql.planner.plan.InternalPlanVisitor;
208208
import com.facebook.presto.sql.planner.plan.MetadataDeleteNode;
209209
import com.facebook.presto.sql.planner.plan.RemoteSourceNode;

presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/PruneIndexSourceColumns.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@
1616
import com.facebook.presto.common.predicate.TupleDomain;
1717
import com.facebook.presto.spi.ColumnHandle;
1818
import com.facebook.presto.spi.VariableAllocator;
19+
import com.facebook.presto.spi.plan.IndexSourceNode;
1920
import com.facebook.presto.spi.plan.PlanNode;
2021
import com.facebook.presto.spi.plan.PlanNodeIdAllocator;
2122
import com.facebook.presto.spi.relation.VariableReferenceExpression;
22-
import com.facebook.presto.sql.planner.plan.IndexSourceNode;
2323
import com.google.common.collect.Maps;
2424

2525
import java.util.List;

presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/AddExchanges.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import com.facebook.presto.spi.plan.DistinctLimitNode;
3333
import com.facebook.presto.spi.plan.EquiJoinClause;
3434
import com.facebook.presto.spi.plan.FilterNode;
35+
import com.facebook.presto.spi.plan.IndexSourceNode;
3536
import com.facebook.presto.spi.plan.JoinDistributionType;
3637
import com.facebook.presto.spi.plan.JoinNode;
3738
import com.facebook.presto.spi.plan.LimitNode;
@@ -68,7 +69,6 @@
6869
import com.facebook.presto.sql.planner.plan.ExplainAnalyzeNode;
6970
import com.facebook.presto.sql.planner.plan.GroupIdNode;
7071
import com.facebook.presto.sql.planner.plan.IndexJoinNode;
71-
import com.facebook.presto.sql.planner.plan.IndexSourceNode;
7272
import com.facebook.presto.sql.planner.plan.InternalPlanVisitor;
7373
import com.facebook.presto.sql.planner.plan.LateralJoinNode;
7474
import com.facebook.presto.sql.planner.plan.RowNumberNode;

presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/IndexJoinOptimizer.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import com.facebook.presto.spi.plan.AggregationNode;
2525
import com.facebook.presto.spi.plan.EquiJoinClause;
2626
import com.facebook.presto.spi.plan.FilterNode;
27+
import com.facebook.presto.spi.plan.IndexSourceNode;
2728
import com.facebook.presto.spi.plan.JoinNode;
2829
import com.facebook.presto.spi.plan.PlanNode;
2930
import com.facebook.presto.spi.plan.PlanNodeIdAllocator;
@@ -36,7 +37,6 @@
3637
import com.facebook.presto.spi.relation.VariableReferenceExpression;
3738
import com.facebook.presto.sql.planner.TypeProvider;
3839
import com.facebook.presto.sql.planner.plan.IndexJoinNode;
39-
import com.facebook.presto.sql.planner.plan.IndexSourceNode;
4040
import com.facebook.presto.sql.planner.plan.InternalPlanVisitor;
4141
import com.facebook.presto.sql.planner.plan.SimplePlanRewriter;
4242
import com.facebook.presto.sql.relational.FunctionResolution;

presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/PropertyDerivations.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import com.facebook.presto.spi.plan.DistinctLimitNode;
2929
import com.facebook.presto.spi.plan.EquiJoinClause;
3030
import com.facebook.presto.spi.plan.FilterNode;
31+
import com.facebook.presto.spi.plan.IndexSourceNode;
3132
import com.facebook.presto.spi.plan.JoinNode;
3233
import com.facebook.presto.spi.plan.JoinType;
3334
import com.facebook.presto.spi.plan.LimitNode;
@@ -59,7 +60,6 @@
5960
import com.facebook.presto.sql.planner.plan.ExplainAnalyzeNode;
6061
import com.facebook.presto.sql.planner.plan.GroupIdNode;
6162
import com.facebook.presto.sql.planner.plan.IndexJoinNode;
62-
import com.facebook.presto.sql.planner.plan.IndexSourceNode;
6363
import com.facebook.presto.sql.planner.plan.InternalPlanVisitor;
6464
import com.facebook.presto.sql.planner.plan.LateralJoinNode;
6565
import com.facebook.presto.sql.planner.plan.RemoteSourceNode;

presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/PruneUnreferencedOutputs.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import com.facebook.presto.spi.plan.EquiJoinClause;
2828
import com.facebook.presto.spi.plan.ExceptNode;
2929
import com.facebook.presto.spi.plan.FilterNode;
30+
import com.facebook.presto.spi.plan.IndexSourceNode;
3031
import com.facebook.presto.spi.plan.IntersectNode;
3132
import com.facebook.presto.spi.plan.JoinNode;
3233
import com.facebook.presto.spi.plan.LimitNode;
@@ -58,7 +59,6 @@
5859
import com.facebook.presto.sql.planner.plan.ExplainAnalyzeNode;
5960
import com.facebook.presto.sql.planner.plan.GroupIdNode;
6061
import com.facebook.presto.sql.planner.plan.IndexJoinNode;
61-
import com.facebook.presto.sql.planner.plan.IndexSourceNode;
6262
import com.facebook.presto.sql.planner.plan.LateralJoinNode;
6363
import com.facebook.presto.sql.planner.plan.RowNumberNode;
6464
import com.facebook.presto.sql.planner.plan.SequenceNode;

presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/StreamPropertyDerivations.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import com.facebook.presto.spi.plan.DeleteNode;
2323
import com.facebook.presto.spi.plan.DistinctLimitNode;
2424
import com.facebook.presto.spi.plan.FilterNode;
25+
import com.facebook.presto.spi.plan.IndexSourceNode;
2526
import com.facebook.presto.spi.plan.JoinNode;
2627
import com.facebook.presto.spi.plan.LimitNode;
2728
import com.facebook.presto.spi.plan.MarkDistinctNode;
@@ -49,7 +50,6 @@
4950
import com.facebook.presto.sql.planner.plan.ExplainAnalyzeNode;
5051
import com.facebook.presto.sql.planner.plan.GroupIdNode;
5152
import com.facebook.presto.sql.planner.plan.IndexJoinNode;
52-
import com.facebook.presto.sql.planner.plan.IndexSourceNode;
5353
import com.facebook.presto.sql.planner.plan.InternalPlanVisitor;
5454
import com.facebook.presto.sql.planner.plan.LateralJoinNode;
5555
import com.facebook.presto.sql.planner.plan.RemoteSourceNode;

presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/UnaliasSymbolReferences.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import com.facebook.presto.spi.plan.EquiJoinClause;
2929
import com.facebook.presto.spi.plan.ExceptNode;
3030
import com.facebook.presto.spi.plan.FilterNode;
31+
import com.facebook.presto.spi.plan.IndexSourceNode;
3132
import com.facebook.presto.spi.plan.IntersectNode;
3233
import com.facebook.presto.spi.plan.JoinNode;
3334
import com.facebook.presto.spi.plan.LimitNode;
@@ -62,7 +63,6 @@
6263
import com.facebook.presto.sql.planner.plan.ExplainAnalyzeNode;
6364
import com.facebook.presto.sql.planner.plan.GroupIdNode;
6465
import com.facebook.presto.sql.planner.plan.IndexJoinNode;
65-
import com.facebook.presto.sql.planner.plan.IndexSourceNode;
6666
import com.facebook.presto.sql.planner.plan.LateralJoinNode;
6767
import com.facebook.presto.sql.planner.plan.OffsetNode;
6868
import com.facebook.presto.sql.planner.plan.RemoteSourceNode;

presto-main/src/main/java/com/facebook/presto/sql/planner/plan/InternalPlanVisitor.java

-5
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,6 @@ public R visitExplainAnalyze(ExplainAnalyzeNode node, C context)
3737
return visitPlan(node, context);
3838
}
3939

40-
public R visitIndexSource(IndexSourceNode node, C context)
41-
{
42-
return visitPlan(node, context);
43-
}
44-
4540
public R visitIndexJoin(IndexJoinNode node, C context)
4641
{
4742
return visitPlan(node, context);

presto-main/src/main/java/com/facebook/presto/sql/planner/plan/Patterns.java

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import com.facebook.presto.spi.plan.CteReferenceNode;
2222
import com.facebook.presto.spi.plan.DeleteNode;
2323
import com.facebook.presto.spi.plan.FilterNode;
24+
import com.facebook.presto.spi.plan.IndexSourceNode;
2425
import com.facebook.presto.spi.plan.IntersectNode;
2526
import com.facebook.presto.spi.plan.JoinNode;
2627
import com.facebook.presto.spi.plan.JoinType;

presto-main/src/main/java/com/facebook/presto/sql/planner/planPrinter/IOPlanPrinter.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,11 @@
3333
import com.facebook.presto.spi.PrestoException;
3434
import com.facebook.presto.spi.TableHandle;
3535
import com.facebook.presto.spi.TableMetadata;
36+
import com.facebook.presto.spi.plan.IndexSourceNode;
3637
import com.facebook.presto.spi.plan.PlanNode;
3738
import com.facebook.presto.spi.plan.TableFinishNode;
3839
import com.facebook.presto.spi.plan.TableScanNode;
3940
import com.facebook.presto.spi.plan.TableWriterNode;
40-
import com.facebook.presto.sql.planner.plan.IndexSourceNode;
4141
import com.facebook.presto.sql.planner.plan.InternalPlanVisitor;
4242
import com.facebook.presto.sql.planner.planPrinter.IOPlanPrinter.IOPlan.IOPlanBuilder;
4343
import com.fasterxml.jackson.annotation.JsonCreator;

presto-main/src/main/java/com/facebook/presto/sql/planner/planPrinter/PlanPrinter.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
import com.facebook.presto.spi.plan.EquiJoinClause;
4646
import com.facebook.presto.spi.plan.ExceptNode;
4747
import com.facebook.presto.spi.plan.FilterNode;
48+
import com.facebook.presto.spi.plan.IndexSourceNode;
4849
import com.facebook.presto.spi.plan.IntersectNode;
4950
import com.facebook.presto.spi.plan.JoinNode;
5051
import com.facebook.presto.spi.plan.LimitNode;
@@ -86,7 +87,6 @@
8687
import com.facebook.presto.sql.planner.plan.ExplainAnalyzeNode;
8788
import com.facebook.presto.sql.planner.plan.GroupIdNode;
8889
import com.facebook.presto.sql.planner.plan.IndexJoinNode;
89-
import com.facebook.presto.sql.planner.plan.IndexSourceNode;
9090
import com.facebook.presto.sql.planner.plan.InternalPlanVisitor;
9191
import com.facebook.presto.sql.planner.plan.LateralJoinNode;
9292
import com.facebook.presto.sql.planner.plan.MetadataDeleteNode;

presto-main/src/main/java/com/facebook/presto/sql/planner/sanity/ValidateDependenciesChecker.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import com.facebook.presto.spi.plan.EquiJoinClause;
2727
import com.facebook.presto.spi.plan.ExceptNode;
2828
import com.facebook.presto.spi.plan.FilterNode;
29+
import com.facebook.presto.spi.plan.IndexSourceNode;
2930
import com.facebook.presto.spi.plan.IntersectNode;
3031
import com.facebook.presto.spi.plan.JoinNode;
3132
import com.facebook.presto.spi.plan.LimitNode;
@@ -58,7 +59,6 @@
5859
import com.facebook.presto.sql.planner.plan.ExplainAnalyzeNode;
5960
import com.facebook.presto.sql.planner.plan.GroupIdNode;
6061
import com.facebook.presto.sql.planner.plan.IndexJoinNode;
61-
import com.facebook.presto.sql.planner.plan.IndexSourceNode;
6262
import com.facebook.presto.sql.planner.plan.InternalPlanVisitor;
6363
import com.facebook.presto.sql.planner.plan.LateralJoinNode;
6464
import com.facebook.presto.sql.planner.plan.MetadataDeleteNode;
@@ -618,6 +618,7 @@ public Void visitDelete(DeleteNode node, Set<VariableReferenceExpression> boundV
618618

619619
return null;
620620
}
621+
621622
@Override
622623
public Void visitUpdate(UpdateNode node, Set<VariableReferenceExpression> boundVariables)
623624
{

presto-main/src/main/java/com/facebook/presto/util/GraphvizPrinter.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import com.facebook.presto.spi.plan.DistinctLimitNode;
2727
import com.facebook.presto.spi.plan.EquiJoinClause;
2828
import com.facebook.presto.spi.plan.FilterNode;
29+
import com.facebook.presto.spi.plan.IndexSourceNode;
2930
import com.facebook.presto.spi.plan.JoinNode;
3031
import com.facebook.presto.spi.plan.LimitNode;
3132
import com.facebook.presto.spi.plan.MarkDistinctNode;
@@ -56,7 +57,6 @@
5657
import com.facebook.presto.sql.planner.plan.ExplainAnalyzeNode;
5758
import com.facebook.presto.sql.planner.plan.GroupIdNode;
5859
import com.facebook.presto.sql.planner.plan.IndexJoinNode;
59-
import com.facebook.presto.sql.planner.plan.IndexSourceNode;
6060
import com.facebook.presto.sql.planner.plan.InternalPlanVisitor;
6161
import com.facebook.presto.sql.planner.plan.LateralJoinNode;
6262
import com.facebook.presto.sql.planner.plan.MetadataDeleteNode;

presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/ColumnReference.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@
1818
import com.facebook.presto.spi.ColumnHandle;
1919
import com.facebook.presto.spi.TableHandle;
2020
import com.facebook.presto.spi.TableMetadata;
21+
import com.facebook.presto.spi.plan.IndexSourceNode;
2122
import com.facebook.presto.spi.plan.PlanNode;
2223
import com.facebook.presto.spi.plan.TableScanNode;
2324
import com.facebook.presto.spi.relation.VariableReferenceExpression;
24-
import com.facebook.presto.sql.planner.plan.IndexSourceNode;
2525

2626
import java.util.Map;
2727
import java.util.Optional;

presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/IndexSourceMatcher.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
import com.facebook.presto.cost.StatsProvider;
1919
import com.facebook.presto.metadata.Metadata;
2020
import com.facebook.presto.spi.TableMetadata;
21+
import com.facebook.presto.spi.plan.IndexSourceNode;
2122
import com.facebook.presto.spi.plan.PlanNode;
22-
import com.facebook.presto.sql.planner.plan.IndexSourceNode;
2323
import com.google.common.collect.ImmutableMap;
2424

2525
import java.util.Map;

presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/PlanMatchPattern.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import com.facebook.presto.spi.plan.EquiJoinClause;
2727
import com.facebook.presto.spi.plan.ExceptNode;
2828
import com.facebook.presto.spi.plan.FilterNode;
29+
import com.facebook.presto.spi.plan.IndexSourceNode;
2930
import com.facebook.presto.spi.plan.IntersectNode;
3031
import com.facebook.presto.spi.plan.JoinDistributionType;
3132
import com.facebook.presto.spi.plan.JoinNode;
@@ -59,7 +60,6 @@
5960
import com.facebook.presto.sql.planner.plan.EnforceSingleRowNode;
6061
import com.facebook.presto.sql.planner.plan.ExchangeNode;
6162
import com.facebook.presto.sql.planner.plan.GroupIdNode;
62-
import com.facebook.presto.sql.planner.plan.IndexSourceNode;
6363
import com.facebook.presto.sql.planner.plan.LateralJoinNode;
6464
import com.facebook.presto.sql.planner.plan.OffsetNode;
6565
import com.facebook.presto.sql.planner.plan.RemoteSourceNode;

presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/test/PlanBuilder.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@
1818
import com.facebook.presto.common.function.OperatorType;
1919
import com.facebook.presto.common.predicate.TupleDomain;
2020
import com.facebook.presto.common.type.Type;
21-
import com.facebook.presto.metadata.IndexHandle;
2221
import com.facebook.presto.metadata.Metadata;
2322
import com.facebook.presto.spi.ColumnHandle;
2423
import com.facebook.presto.spi.ConnectorId;
24+
import com.facebook.presto.spi.IndexHandle;
2525
import com.facebook.presto.spi.SchemaTableName;
2626
import com.facebook.presto.spi.TableHandle;
2727
import com.facebook.presto.spi.WarningCollector;
@@ -37,6 +37,7 @@
3737
import com.facebook.presto.spi.plan.EquiJoinClause;
3838
import com.facebook.presto.spi.plan.ExceptNode;
3939
import com.facebook.presto.spi.plan.FilterNode;
40+
import com.facebook.presto.spi.plan.IndexSourceNode;
4041
import com.facebook.presto.spi.plan.IntersectNode;
4142
import com.facebook.presto.spi.plan.JoinDistributionType;
4243
import com.facebook.presto.spi.plan.JoinNode;
@@ -78,7 +79,6 @@
7879
import com.facebook.presto.sql.planner.plan.ExchangeNode;
7980
import com.facebook.presto.sql.planner.plan.GroupIdNode;
8081
import com.facebook.presto.sql.planner.plan.IndexJoinNode;
81-
import com.facebook.presto.sql.planner.plan.IndexSourceNode;
8282
import com.facebook.presto.sql.planner.plan.LateralJoinNode;
8383
import com.facebook.presto.sql.planner.plan.OffsetNode;
8484
import com.facebook.presto.sql.planner.plan.RemoteSourceNode;

presto-main/src/main/java/com/facebook/presto/metadata/IndexHandle.java presto-spi/src/main/java/com/facebook/presto/spi/IndexHandle.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,8 @@
1111
* See the License for the specific language governing permissions and
1212
* limitations under the License.
1313
*/
14-
package com.facebook.presto.metadata;
14+
package com.facebook.presto.spi;
1515

16-
import com.facebook.presto.spi.ConnectorId;
17-
import com.facebook.presto.spi.ConnectorIndexHandle;
1816
import com.facebook.presto.spi.connector.ConnectorTransactionHandle;
1917
import com.fasterxml.jackson.annotation.JsonCreator;
2018
import com.fasterxml.jackson.annotation.JsonProperty;

presto-main/src/main/java/com/facebook/presto/sql/planner/plan/IndexSourceNode.java presto-spi/src/main/java/com/facebook/presto/spi/plan/IndexSourceNode.java

+16-14
Original file line numberDiff line numberDiff line change
@@ -11,32 +11,34 @@
1111
* See the License for the specific language governing permissions and
1212
* limitations under the License.
1313
*/
14-
package com.facebook.presto.sql.planner.plan;
14+
package com.facebook.presto.spi.plan;
1515

1616
import com.facebook.presto.common.predicate.TupleDomain;
17-
import com.facebook.presto.metadata.IndexHandle;
1817
import com.facebook.presto.spi.ColumnHandle;
18+
import com.facebook.presto.spi.IndexHandle;
1919
import com.facebook.presto.spi.SourceLocation;
2020
import com.facebook.presto.spi.TableHandle;
21-
import com.facebook.presto.spi.plan.PlanNode;
22-
import com.facebook.presto.spi.plan.PlanNodeId;
2321
import com.facebook.presto.spi.relation.VariableReferenceExpression;
2422
import com.fasterxml.jackson.annotation.JsonCreator;
2523
import com.fasterxml.jackson.annotation.JsonProperty;
26-
import com.google.common.collect.ImmutableList;
27-
import com.google.common.collect.ImmutableMap;
28-
import com.google.common.collect.ImmutableSet;
2924

25+
import java.util.ArrayList;
26+
import java.util.LinkedHashMap;
27+
import java.util.LinkedHashSet;
3028
import java.util.List;
3129
import java.util.Map;
3230
import java.util.Optional;
3331
import java.util.Set;
3432

35-
import static com.google.common.base.Preconditions.checkArgument;
33+
import static com.facebook.presto.common.Utils.checkArgument;
34+
import static java.util.Collections.emptyList;
35+
import static java.util.Collections.unmodifiableList;
36+
import static java.util.Collections.unmodifiableMap;
37+
import static java.util.Collections.unmodifiableSet;
3638
import static java.util.Objects.requireNonNull;
3739

3840
public class IndexSourceNode
39-
extends InternalPlanNode
41+
extends PlanNode
4042
{
4143
private final IndexHandle indexHandle;
4244
private final TableHandle tableHandle;
@@ -73,9 +75,9 @@ public IndexSourceNode(
7375
super(sourceLocation, id, statsEquivalentPlanNode);
7476
this.indexHandle = requireNonNull(indexHandle, "indexHandle is null");
7577
this.tableHandle = requireNonNull(tableHandle, "tableHandle is null");
76-
this.lookupVariables = ImmutableSet.copyOf(requireNonNull(lookupVariables, "lookupVariables is null"));
77-
this.outputVariables = ImmutableList.copyOf(requireNonNull(outputVariables, "outputVariables is null"));
78-
this.assignments = ImmutableMap.copyOf(requireNonNull(assignments, "assignments is null"));
78+
this.lookupVariables = unmodifiableSet(new LinkedHashSet<>(requireNonNull(lookupVariables, "lookupVariables is null")));
79+
this.outputVariables = unmodifiableList(new ArrayList<>(requireNonNull(outputVariables, "outputVariables is null")));
80+
this.assignments = unmodifiableMap(new LinkedHashMap<>(requireNonNull(assignments, "assignments is null")));
7981
this.currentConstraint = requireNonNull(currentConstraint, "effectiveTupleDomain is null");
8082
checkArgument(!lookupVariables.isEmpty(), "lookupVariables is empty");
8183
checkArgument(!outputVariables.isEmpty(), "outputVariables is empty");
@@ -123,11 +125,11 @@ public TupleDomain<ColumnHandle> getCurrentConstraint()
123125
@Override
124126
public List<PlanNode> getSources()
125127
{
126-
return ImmutableList.of();
128+
return emptyList();
127129
}
128130

129131
@Override
130-
public <R, C> R accept(InternalPlanVisitor<R, C> visitor, C context)
132+
public <R, C> R accept(PlanVisitor<R, C> visitor, C context)
131133
{
132134
return visitor.visitIndexSource(this, context);
133135
}

0 commit comments

Comments
 (0)