Skip to content

Commit 2f14645

Browse files
committed
fix: removing the updates to ddl tables
1 parent 9b4a56b commit 2f14645

File tree

6 files changed

+30
-45
lines changed

6 files changed

+30
-45
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
public abstract class AbstractDdlRel extends ZeroInputRel {
1010
public abstract NamedStruct getTableSchema();
1111

12-
public abstract Expression.StructNested getTableDefaults();
12+
public abstract Expression.StructLiteral getTableDefaults();
1313

1414
public abstract DdlObject getObject();
1515

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -274,11 +274,11 @@ protected Optional<Rel> optionalViewDefinition(DdlRel rel) {
274274
return Optional.ofNullable(rel.hasViewDefinition() ? from(rel.getViewDefinition()) : null);
275275
}
276276

277-
protected Expression.StructNested tableDefaults(
278-
io.substrait.proto.Expression.Nested.Struct struct, NamedStruct tableSchema) {
277+
protected Expression.StructLiteral tableDefaults(
278+
io.substrait.proto.Expression.Literal.Struct struct, NamedStruct tableSchema) {
279279
ProtoExpressionConverter converter =
280280
new ProtoExpressionConverter(lookup, extensions, tableSchema.struct(), this);
281-
return Expression.StructNested.builder()
281+
return Expression.StructLiteral.builder()
282282
.fields(
283283
struct.getFieldsList().stream()
284284
.map(converter::from)

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -461,7 +461,7 @@ public Rel visit(NamedDdl ddl, EmptyVisitationContext context) throws RuntimeExc
461461
DdlRel.newBuilder()
462462
.setCommon(common(ddl))
463463
.setTableSchema(ddl.getTableSchema().toProto(typeProtoConverter))
464-
.setTableDefaults(toProto(ddl.getTableDefaults()).getNested().getStruct())
464+
.setTableDefaults(toProto(ddl.getTableDefaults()).getLiteral().getStruct())
465465
.setNamedObject(NamedObjectWrite.newBuilder().addAllNames(ddl.getNames()))
466466
.setObject(ddl.getObject().toProto())
467467
.setOp(ddl.getOperation().toProto());
@@ -478,7 +478,7 @@ public Rel visit(ExtensionDdl ddl, EmptyVisitationContext context) throws Runtim
478478
DdlRel.newBuilder()
479479
.setCommon(common(ddl))
480480
.setTableSchema(ddl.getTableSchema().toProto(typeProtoConverter))
481-
.setTableDefaults(toProto(ddl.getTableDefaults()).getNested().getStruct())
481+
.setTableDefaults(toProto(ddl.getTableDefaults()).getLiteral().getStruct())
482482
.setExtensionObject(
483483
ExtensionObject.newBuilder().setDetail(ddl.getDetail().toProto(this)))
484484
.setObject(ddl.getObject().toProto())

core/src/test/java/io/substrait/type/proto/DdlRelRoundtripTest.java

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,11 @@
55
import io.substrait.TestBase;
66
import io.substrait.expression.Expression;
77
import io.substrait.expression.ExpressionCreator;
8-
import io.substrait.relation.ExtensionDdl;
98
import io.substrait.relation.NamedDdl;
109
import io.substrait.relation.ProtoRelConverter;
1110
import io.substrait.relation.Rel;
1211
import io.substrait.relation.VirtualTableScan;
1312
import io.substrait.type.NamedStruct;
14-
import io.substrait.utils.StringHolder;
1513
import io.substrait.utils.StringHolderHandlingProtoRelConverter;
1614
import java.util.stream.Collectors;
1715
import java.util.stream.Stream;
@@ -25,11 +23,9 @@ void create() {
2523
NamedStruct.of(
2624
Stream.of("column1", "column2").collect(Collectors.toList()), R.struct(R.I64, R.I64));
2725

28-
Expression.StructNested defaults =
29-
Expression.StructNested.builder()
30-
.addFields(ExpressionCreator.i64(false, 1))
31-
.addFields(ExpressionCreator.i64(false, 2))
32-
.build();
26+
Expression.StructLiteral defaults =
27+
ExpressionCreator.struct(
28+
false, ExpressionCreator.i64(false, 1), ExpressionCreator.i64(false, 2));
3329

3430
NamedDdl command =
3531
NamedDdl.builder()
@@ -48,8 +44,6 @@ void alter() {
4844
ProtoRelConverter protoRelConverter =
4945
new StringHolderHandlingProtoRelConverter(functionCollector, defaultExtensionCollection);
5046

51-
StringHolder detail = new StringHolder("DETAIL");
52-
5347
NamedStruct schema =
5448
NamedStruct.of(
5549
Stream.of("column1", "column2").collect(Collectors.toList()), R.struct(R.I64, R.I64));
@@ -63,18 +57,8 @@ void alter() {
6357
VirtualTableScan virtTable =
6458
VirtualTableScan.builder().initialSchema(schema).addRows(defaults).build();
6559

66-
ExtensionDdl command =
67-
ExtensionDdl.builder()
68-
.viewDefinition(virtTable)
69-
.tableSchema(schema)
70-
.tableDefaults(defaults)
71-
.detail(detail)
72-
.operation(ExtensionDdl.DdlOp.ALTER)
73-
.object(ExtensionDdl.DdlObject.VIEW)
74-
.build();
75-
76-
io.substrait.proto.Rel protoRel = relProtoConverter.toProto(command);
60+
io.substrait.proto.Rel protoRel = relProtoConverter.toProto(virtTable);
7761
Rel relReturned = protoRelConverter.from(protoRel);
78-
assertEquals(command, relReturned);
62+
assertEquals(virtTable, relReturned);
7963
}
8064
}

isthmus/src/main/java/io/substrait/isthmus/SubstraitRelVisitor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -504,7 +504,7 @@ public Rel handleCreateView(CreateView createView) {
504504
RelNode input = createView.getInput();
505505
Rel inputRel = apply(input);
506506

507-
final Expression.StructNested defaults = ExpressionCreator.struct(new ArrayList<>());
507+
final Expression.StructLiteral defaults = ExpressionCreator.struct(false);
508508

509509
return NamedDdl.builder()
510510
.viewDefinition(inputRel)

spark/src/main/scala/io/substrait/spark/logical/ToSubstraitRel.scala

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ import io.substrait.{proto, relation}
4343
import io.substrait.debug.TreePrinter
4444
import io.substrait.expression.{Expression => SExpression, ExpressionCreator}
4545
import io.substrait.expression.Expression.StructNested
46+
import io.substrait.expression.ImmutableExpression.StructLiteral
4647
import io.substrait.extension.ExtensionCollector
4748
import io.substrait.hint.Hint
4849
import io.substrait.plan.Plan
@@ -455,25 +456,25 @@ class ToSubstraitRel extends AbstractLogicalPlanVisitor with Logging {
455456
if (data.isEmpty) {
456457
relation.EmptyScan.builder().initialSchema(namedStruct).build()
457458
} else {
458-
var list = data
459-
.map(
460-
row => {
461-
var idx = 0
462-
val buf = new ArrayBuffer[SExpression.Literal](row.numFields)
463-
while (idx < row.numFields) {
464-
val dt = schema(idx).dataType
465-
val l = Literal.apply(row.get(idx, dt), dt)
466-
buf += ToSubstraitLiteral.apply(l)
467-
idx += 1
468-
}
469-
ExpressionCreator.struct(false, buf.asJava)
470-
})
471-
.asJava
472459

473460
relation.VirtualTableScan
474461
.builder()
475462
.initialSchema(namedStruct)
476-
.addAllRows(ExpressionCreator.toNested(list))
463+
.addAllRows(
464+
data
465+
.map(
466+
row => {
467+
var idx = 0
468+
val buf = new ArrayBuffer[SExpression.Literal](row.numFields)
469+
while (idx < row.numFields) {
470+
val dt = schema(idx).dataType
471+
val l = Literal.apply(row.get(idx, dt), dt)
472+
buf += ToSubstraitLiteral.apply(l)
473+
idx += 1
474+
}
475+
ExpressionCreator.struct(buf.asJava)
476+
})
477+
.asJava)
477478
.build()
478479
}
479480
}
@@ -661,7 +662,7 @@ class ToSubstraitRel extends AbstractLogicalPlanVisitor with Logging {
661662
.`object`(DdlObject.TABLE)
662663
.names(seqAsJavaList(names))
663664
.tableSchema(ToSubstraitType.toNamedStruct(schema))
664-
.tableDefaults(StructNested.builder().build())
665+
.tableDefaults(StructLiteral.builder.nullable(true).build())
665666
.build()
666667
}
667668

@@ -673,7 +674,7 @@ class ToSubstraitRel extends AbstractLogicalPlanVisitor with Logging {
673674
.names(seqAsJavaList(names))
674675
.tableSchema(
675676
NamedStruct.builder().struct(Type.Struct.builder().nullable(true).build()).build())
676-
.tableDefaults(StructNested.builder().build())
677+
.tableDefaults(StructLiteral.builder.nullable(true).build())
677678
.build()
678679
}
679680

0 commit comments

Comments
 (0)