Skip to content

Commit 3864710

Browse files
authored
feat: make ProtoRelConverter utility methods protected (#285)
Allows extenders of the ProtoRelConverter to reuse code more easily
1 parent 9b153e0 commit 3864710

File tree

1 file changed

+27
-26
lines changed

1 file changed

+27
-26
lines changed

core/src/main/java/io/substrait/relation/ProtoRelConverter.java

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ public Rel from(io.substrait.proto.Rel rel) {
117117
}
118118
}
119119

120-
private Rel newRead(ReadRel rel) {
120+
protected Rel newRead(ReadRel rel) {
121121
if (rel.hasVirtualTable()) {
122122
var virtualTable = rel.getVirtualTable();
123123
if (virtualTable.getValuesCount() == 0) {
@@ -136,7 +136,7 @@ private Rel newRead(ReadRel rel) {
136136
}
137137
}
138138

139-
private Filter newFilter(FilterRel rel) {
139+
protected Filter newFilter(FilterRel rel) {
140140
var input = from(rel.getInput());
141141
var builder =
142142
Filter.builder()
@@ -154,7 +154,7 @@ private Filter newFilter(FilterRel rel) {
154154
return builder.build();
155155
}
156156

157-
private NamedStruct newNamedStruct(ReadRel rel) {
157+
protected NamedStruct newNamedStruct(ReadRel rel) {
158158
var namedStruct = rel.getBaseSchema();
159159
var struct = namedStruct.getStruct();
160160
return ImmutableNamedStruct.builder()
@@ -170,7 +170,7 @@ private NamedStruct newNamedStruct(ReadRel rel) {
170170
.build();
171171
}
172172

173-
private EmptyScan newEmptyScan(ReadRel rel) {
173+
protected EmptyScan newEmptyScan(ReadRel rel) {
174174
var namedStruct = newNamedStruct(rel);
175175
var builder =
176176
EmptyScan.builder()
@@ -192,7 +192,7 @@ private EmptyScan newEmptyScan(ReadRel rel) {
192192
return builder.build();
193193
}
194194

195-
private ExtensionLeaf newExtensionLeaf(ExtensionLeafRel rel) {
195+
protected ExtensionLeaf newExtensionLeaf(ExtensionLeafRel rel) {
196196
Extension.LeafRelDetail detail = detailFromExtensionLeafRel(rel.getDetail());
197197
var builder =
198198
ExtensionLeaf.from(detail)
@@ -201,7 +201,7 @@ private ExtensionLeaf newExtensionLeaf(ExtensionLeafRel rel) {
201201
return builder.build();
202202
}
203203

204-
private ExtensionSingle newExtensionSingle(ExtensionSingleRel rel) {
204+
protected ExtensionSingle newExtensionSingle(ExtensionSingleRel rel) {
205205
Extension.SingleRelDetail detail = detailFromExtensionSingleRel(rel.getDetail());
206206
Rel input = from(rel.getInput());
207207
var builder =
@@ -211,7 +211,7 @@ private ExtensionSingle newExtensionSingle(ExtensionSingleRel rel) {
211211
return builder.build();
212212
}
213213

214-
private ExtensionMulti newExtensionMulti(ExtensionMultiRel rel) {
214+
protected ExtensionMulti newExtensionMulti(ExtensionMultiRel rel) {
215215
Extension.MultiRelDetail detail = detailFromExtensionMultiRel(rel.getDetail());
216216
List<Rel> inputs = rel.getInputsList().stream().map(this::from).collect(Collectors.toList());
217217
var builder =
@@ -224,7 +224,7 @@ private ExtensionMulti newExtensionMulti(ExtensionMultiRel rel) {
224224
return builder.build();
225225
}
226226

227-
private NamedScan newNamedScan(ReadRel rel) {
227+
protected NamedScan newNamedScan(ReadRel rel) {
228228
var namedStruct = newNamedStruct(rel);
229229
var builder =
230230
NamedScan.builder()
@@ -247,7 +247,7 @@ private NamedScan newNamedScan(ReadRel rel) {
247247
return builder.build();
248248
}
249249

250-
private ExtensionTable newExtensionTable(ReadRel rel) {
250+
protected ExtensionTable newExtensionTable(ReadRel rel) {
251251
Extension.ExtensionTableDetail detail =
252252
detailFromExtensionTable(rel.getExtensionTable().getDetail());
253253
var builder = ExtensionTable.from(detail);
@@ -261,7 +261,7 @@ private ExtensionTable newExtensionTable(ReadRel rel) {
261261
return builder.build();
262262
}
263263

264-
private LocalFiles newLocalFiles(ReadRel rel) {
264+
protected LocalFiles newLocalFiles(ReadRel rel) {
265265
var namedStruct = newNamedStruct(rel);
266266

267267
var builder =
@@ -288,7 +288,7 @@ private LocalFiles newLocalFiles(ReadRel rel) {
288288
return builder.build();
289289
}
290290

291-
private FileOrFiles newFileOrFiles(ReadRel.LocalFiles.FileOrFiles file) {
291+
protected FileOrFiles newFileOrFiles(ReadRel.LocalFiles.FileOrFiles file) {
292292
ImmutableFileOrFiles.Builder builder =
293293
ImmutableFileOrFiles.builder()
294294
.partitionIndex(file.getPartitionIndex())
@@ -318,7 +318,7 @@ private FileOrFiles newFileOrFiles(ReadRel.LocalFiles.FileOrFiles file) {
318318
return builder.build();
319319
}
320320

321-
private VirtualTableScan newVirtualTable(ReadRel rel) {
321+
protected VirtualTableScan newVirtualTable(ReadRel rel) {
322322
var virtualTable = rel.getVirtualTable();
323323
var virtualTableSchema = newNamedStruct(rel);
324324
var converter =
@@ -349,7 +349,7 @@ private VirtualTableScan newVirtualTable(ReadRel rel) {
349349
return builder.build();
350350
}
351351

352-
private Fetch newFetch(FetchRel rel) {
352+
protected Fetch newFetch(FetchRel rel) {
353353
var input = from(rel.getInput());
354354
var builder = Fetch.builder().input(input).offset(rel.getOffset());
355355
if (rel.getCount() != -1) {
@@ -367,7 +367,7 @@ private Fetch newFetch(FetchRel rel) {
367367
return builder.build();
368368
}
369369

370-
private Project newProject(ProjectRel rel) {
370+
protected Project newProject(ProjectRel rel) {
371371
var input = from(rel.getInput());
372372
var converter = new ProtoExpressionConverter(lookup, extensions, input.getRecordType(), this);
373373
var builder =
@@ -387,7 +387,7 @@ private Project newProject(ProjectRel rel) {
387387
return builder.build();
388388
}
389389

390-
private Aggregate newAggregate(AggregateRel rel) {
390+
protected Aggregate newAggregate(AggregateRel rel) {
391391
var input = from(rel.getInput());
392392
var protoExprConverter =
393393
new ProtoExpressionConverter(lookup, extensions, input.getRecordType(), this);
@@ -432,7 +432,7 @@ private Aggregate newAggregate(AggregateRel rel) {
432432
return builder.build();
433433
}
434434

435-
private Sort newSort(SortRel rel) {
435+
protected Sort newSort(SortRel rel) {
436436
var input = from(rel.getInput());
437437
var converter = new ProtoExpressionConverter(lookup, extensions, input.getRecordType(), this);
438438
var builder =
@@ -457,7 +457,7 @@ private Sort newSort(SortRel rel) {
457457
return builder.build();
458458
}
459459

460-
private Join newJoin(JoinRel rel) {
460+
protected Join newJoin(JoinRel rel) {
461461
Rel left = from(rel.getLeft());
462462
Rel right = from(rel.getRight());
463463
Type.Struct leftStruct = left.getRecordType();
@@ -483,7 +483,7 @@ private Join newJoin(JoinRel rel) {
483483
return builder.build();
484484
}
485485

486-
private Rel newCross(CrossRel rel) {
486+
protected Rel newCross(CrossRel rel) {
487487
Rel left = from(rel.getLeft());
488488
Rel right = from(rel.getRight());
489489
var builder = Cross.builder().left(left).right(right);
@@ -497,7 +497,7 @@ private Rel newCross(CrossRel rel) {
497497
return builder.build();
498498
}
499499

500-
private Set newSet(SetRel rel) {
500+
protected Set newSet(SetRel rel) {
501501
List<Rel> inputs =
502502
rel.getInputsList().stream()
503503
.map(inputRel -> from(inputRel))
@@ -513,7 +513,7 @@ private Set newSet(SetRel rel) {
513513
return builder.build();
514514
}
515515

516-
private Rel newHashJoin(HashJoinRel rel) {
516+
protected Rel newHashJoin(HashJoinRel rel) {
517517
Rel left = from(rel.getLeft());
518518
Rel right = from(rel.getRight());
519519
var leftKeys = rel.getLeftKeysList();
@@ -545,7 +545,7 @@ private Rel newHashJoin(HashJoinRel rel) {
545545
return builder.build();
546546
}
547547

548-
private Rel newMergeJoin(MergeJoinRel rel) {
548+
protected Rel newMergeJoin(MergeJoinRel rel) {
549549
Rel left = from(rel.getLeft());
550550
Rel right = from(rel.getRight());
551551
var leftKeys = rel.getLeftKeysList();
@@ -577,7 +577,7 @@ private Rel newMergeJoin(MergeJoinRel rel) {
577577
return builder.build();
578578
}
579579

580-
private NestedLoopJoin newNestedLoopJoin(NestedLoopJoinRel rel) {
580+
protected NestedLoopJoin newNestedLoopJoin(NestedLoopJoinRel rel) {
581581
Rel left = from(rel.getLeft());
582582
Rel right = from(rel.getRight());
583583
Type.Struct leftStruct = left.getRecordType();
@@ -604,7 +604,8 @@ private NestedLoopJoin newNestedLoopJoin(NestedLoopJoinRel rel) {
604604
return builder.build();
605605
}
606606

607-
private ConsistentPartitionWindow newConsistentPartitionWindow(ConsistentPartitionWindowRel rel) {
607+
protected ConsistentPartitionWindow newConsistentPartitionWindow(
608+
ConsistentPartitionWindowRel rel) {
608609

609610
var input = from(rel.getInput());
610611
var protoExpressionConverter =
@@ -639,20 +640,20 @@ private ConsistentPartitionWindow newConsistentPartitionWindow(ConsistentPartiti
639640
return builder.build();
640641
}
641642

642-
private static Optional<Rel.Remap> optionalRelmap(io.substrait.proto.RelCommon relCommon) {
643+
protected static Optional<Rel.Remap> optionalRelmap(io.substrait.proto.RelCommon relCommon) {
643644
return Optional.ofNullable(
644645
relCommon.hasEmit() ? Rel.Remap.of(relCommon.getEmit().getOutputMappingList()) : null);
645646
}
646647

647-
private Optional<AdvancedExtension> optionalAdvancedExtension(
648+
protected Optional<AdvancedExtension> optionalAdvancedExtension(
648649
io.substrait.proto.RelCommon relCommon) {
649650
return Optional.ofNullable(
650651
relCommon.hasAdvancedExtension()
651652
? advancedExtension(relCommon.getAdvancedExtension())
652653
: null);
653654
}
654655

655-
private AdvancedExtension advancedExtension(
656+
protected AdvancedExtension advancedExtension(
656657
io.substrait.proto.AdvancedExtension advancedExtension) {
657658
var builder = AdvancedExtension.builder();
658659
if (advancedExtension.hasEnhancement()) {

0 commit comments

Comments
 (0)