Skip to content

Commit 2896000

Browse files
committed
fix(isthmus): handle subqueries with outer field references
BREAKING CHANGE: adds a new context argument to RelVisitor, ExpressionVisitor and FuncArgVisitor fixes #382 Signed-off-by: Niels Pardon <[email protected]>
1 parent f9c8691 commit 2896000

File tree

74 files changed

+1366
-1057
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+1366
-1057
lines changed
Lines changed: 83 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -1,206 +1,206 @@
11
package io.substrait.expression;
22

3-
public abstract class AbstractExpressionVisitor<OUTPUT, EXCEPTION extends Exception>
4-
implements ExpressionVisitor<OUTPUT, EXCEPTION> {
5-
public abstract OUTPUT visitFallback(Expression expr);
3+
public abstract class AbstractExpressionVisitor<O, C, E extends Exception>
4+
implements ExpressionVisitor<O, C, E> {
5+
public abstract O visitFallback(Expression expr, C context);
66

77
@Override
8-
public OUTPUT visit(Expression.NullLiteral expr) throws EXCEPTION {
9-
return visitFallback(expr);
8+
public O visit(Expression.NullLiteral expr, C context) throws E {
9+
return visitFallback(expr, context);
1010
}
1111

1212
@Override
13-
public OUTPUT visit(Expression.BoolLiteral expr) throws EXCEPTION {
14-
return visitFallback(expr);
13+
public O visit(Expression.BoolLiteral expr, C context) throws E {
14+
return visitFallback(expr, context);
1515
}
1616

1717
@Override
18-
public OUTPUT visit(Expression.I8Literal expr) throws EXCEPTION {
19-
return visitFallback(expr);
18+
public O visit(Expression.I8Literal expr, C context) throws E {
19+
return visitFallback(expr, context);
2020
}
2121

2222
@Override
23-
public OUTPUT visit(Expression.I16Literal expr) throws EXCEPTION {
24-
return visitFallback(expr);
23+
public O visit(Expression.I16Literal expr, C context) throws E {
24+
return visitFallback(expr, context);
2525
}
2626

2727
@Override
28-
public OUTPUT visit(Expression.I32Literal expr) throws EXCEPTION {
29-
return visitFallback(expr);
28+
public O visit(Expression.I32Literal expr, C context) throws E {
29+
return visitFallback(expr, context);
3030
}
3131

3232
@Override
33-
public OUTPUT visit(Expression.I64Literal expr) throws EXCEPTION {
34-
return visitFallback(expr);
33+
public O visit(Expression.I64Literal expr, C context) throws E {
34+
return visitFallback(expr, context);
3535
}
3636

3737
@Override
38-
public OUTPUT visit(Expression.FP32Literal expr) throws EXCEPTION {
39-
return visitFallback(expr);
38+
public O visit(Expression.FP32Literal expr, C context) throws E {
39+
return visitFallback(expr, context);
4040
}
4141

4242
@Override
43-
public OUTPUT visit(Expression.FP64Literal expr) throws EXCEPTION {
44-
return visitFallback(expr);
43+
public O visit(Expression.FP64Literal expr, C context) throws E {
44+
return visitFallback(expr, context);
4545
}
4646

4747
@Override
48-
public OUTPUT visit(Expression.StrLiteral expr) throws EXCEPTION {
49-
return visitFallback(expr);
48+
public O visit(Expression.StrLiteral expr, C context) throws E {
49+
return visitFallback(expr, context);
5050
}
5151

5252
@Override
53-
public OUTPUT visit(Expression.BinaryLiteral expr) throws EXCEPTION {
54-
return visitFallback(expr);
53+
public O visit(Expression.BinaryLiteral expr, C context) throws E {
54+
return visitFallback(expr, context);
5555
}
5656

5757
@Override
58-
public OUTPUT visit(Expression.TimeLiteral expr) throws EXCEPTION {
59-
return visitFallback(expr);
58+
public O visit(Expression.TimeLiteral expr, C context) throws E {
59+
return visitFallback(expr, context);
6060
}
6161

6262
@Override
63-
public OUTPUT visit(Expression.DateLiteral expr) throws EXCEPTION {
64-
return visitFallback(expr);
63+
public O visit(Expression.DateLiteral expr, C context) throws E {
64+
return visitFallback(expr, context);
6565
}
6666

6767
@Override
68-
public OUTPUT visit(Expression.TimestampLiteral expr) throws EXCEPTION {
69-
return visitFallback(expr);
68+
public O visit(Expression.TimestampLiteral expr, C context) throws E {
69+
return visitFallback(expr, context);
7070
}
7171

7272
@Override
73-
public OUTPUT visit(Expression.TimestampTZLiteral expr) throws EXCEPTION {
74-
return visitFallback(expr);
73+
public O visit(Expression.TimestampTZLiteral expr, C context) throws E {
74+
return visitFallback(expr, context);
7575
}
7676

7777
@Override
78-
public OUTPUT visit(Expression.PrecisionTimestampLiteral expr) throws EXCEPTION {
79-
return visitFallback(expr);
78+
public O visit(Expression.PrecisionTimestampLiteral expr, C context) throws E {
79+
return visitFallback(expr, context);
8080
}
8181

8282
@Override
83-
public OUTPUT visit(Expression.PrecisionTimestampTZLiteral expr) throws EXCEPTION {
84-
return visitFallback(expr);
83+
public O visit(Expression.PrecisionTimestampTZLiteral expr, C context) throws E {
84+
return visitFallback(expr, context);
8585
}
8686

8787
@Override
88-
public OUTPUT visit(Expression.IntervalYearLiteral expr) throws EXCEPTION {
89-
return visitFallback(expr);
88+
public O visit(Expression.IntervalYearLiteral expr, C context) throws E {
89+
return visitFallback(expr, context);
9090
}
9191

9292
@Override
93-
public OUTPUT visit(Expression.IntervalDayLiteral expr) throws EXCEPTION {
94-
return visitFallback(expr);
93+
public O visit(Expression.IntervalDayLiteral expr, C context) throws E {
94+
return visitFallback(expr, context);
9595
}
9696

9797
@Override
98-
public OUTPUT visit(Expression.IntervalCompoundLiteral expr) throws EXCEPTION {
99-
return visitFallback(expr);
98+
public O visit(Expression.IntervalCompoundLiteral expr, C context) throws E {
99+
return visitFallback(expr, context);
100100
}
101101

102102
@Override
103-
public OUTPUT visit(Expression.UUIDLiteral expr) throws EXCEPTION {
104-
return visitFallback(expr);
103+
public O visit(Expression.UUIDLiteral expr, C context) throws E {
104+
return visitFallback(expr, context);
105105
}
106106

107107
@Override
108-
public OUTPUT visit(Expression.FixedCharLiteral expr) throws EXCEPTION {
109-
return visitFallback(expr);
108+
public O visit(Expression.FixedCharLiteral expr, C context) throws E {
109+
return visitFallback(expr, context);
110110
}
111111

112112
@Override
113-
public OUTPUT visit(Expression.VarCharLiteral expr) throws EXCEPTION {
114-
return visitFallback(expr);
113+
public O visit(Expression.VarCharLiteral expr, C context) throws E {
114+
return visitFallback(expr, context);
115115
}
116116

117117
@Override
118-
public OUTPUT visit(Expression.FixedBinaryLiteral expr) throws EXCEPTION {
119-
return visitFallback(expr);
118+
public O visit(Expression.FixedBinaryLiteral expr, C context) throws E {
119+
return visitFallback(expr, context);
120120
}
121121

122122
@Override
123-
public OUTPUT visit(Expression.DecimalLiteral expr) throws EXCEPTION {
124-
return visitFallback(expr);
123+
public O visit(Expression.DecimalLiteral expr, C context) throws E {
124+
return visitFallback(expr, context);
125125
}
126126

127127
@Override
128-
public OUTPUT visit(Expression.MapLiteral expr) throws EXCEPTION {
129-
return visitFallback(expr);
128+
public O visit(Expression.MapLiteral expr, C context) throws E {
129+
return visitFallback(expr, context);
130130
}
131131

132132
@Override
133-
public OUTPUT visit(Expression.EmptyMapLiteral expr) throws EXCEPTION {
134-
return visitFallback(expr);
133+
public O visit(Expression.EmptyMapLiteral expr, C context) throws E {
134+
return visitFallback(expr, context);
135135
}
136136

137137
@Override
138-
public OUTPUT visit(Expression.ListLiteral expr) throws EXCEPTION {
139-
return visitFallback(expr);
138+
public O visit(Expression.ListLiteral expr, C context) throws E {
139+
return visitFallback(expr, context);
140140
}
141141

142142
@Override
143-
public OUTPUT visit(Expression.EmptyListLiteral expr) throws EXCEPTION {
144-
return visitFallback(expr);
143+
public O visit(Expression.EmptyListLiteral expr, C context) throws E {
144+
return visitFallback(expr, context);
145145
}
146146

147147
@Override
148-
public OUTPUT visit(Expression.StructLiteral expr) throws EXCEPTION {
149-
return visitFallback(expr);
148+
public O visit(Expression.StructLiteral expr, C context) throws E {
149+
return visitFallback(expr, context);
150150
}
151151

152152
@Override
153-
public OUTPUT visit(Expression.Switch expr) throws EXCEPTION {
154-
return visitFallback(expr);
153+
public O visit(Expression.Switch expr, C context) throws E {
154+
return visitFallback(expr, context);
155155
}
156156

157157
@Override
158-
public OUTPUT visit(Expression.IfThen expr) throws EXCEPTION {
159-
return visitFallback(expr);
158+
public O visit(Expression.IfThen expr, C context) throws E {
159+
return visitFallback(expr, context);
160160
}
161161

162162
@Override
163-
public OUTPUT visit(Expression.ScalarFunctionInvocation expr) throws EXCEPTION {
164-
return visitFallback(expr);
163+
public O visit(Expression.ScalarFunctionInvocation expr, C context) throws E {
164+
return visitFallback(expr, context);
165165
}
166166

167167
@Override
168-
public OUTPUT visit(Expression.WindowFunctionInvocation expr) throws EXCEPTION {
169-
return visitFallback(expr);
168+
public O visit(Expression.WindowFunctionInvocation expr, C context) throws E {
169+
return visitFallback(expr, context);
170170
}
171171

172172
@Override
173-
public OUTPUT visit(Expression.Cast expr) throws EXCEPTION {
174-
return visitFallback(expr);
173+
public O visit(Expression.Cast expr, C context) throws E {
174+
return visitFallback(expr, context);
175175
}
176176

177177
@Override
178-
public OUTPUT visit(Expression.SingleOrList expr) throws EXCEPTION {
179-
return visitFallback(expr);
178+
public O visit(Expression.SingleOrList expr, C context) throws E {
179+
return visitFallback(expr, context);
180180
}
181181

182182
@Override
183-
public OUTPUT visit(Expression.MultiOrList expr) throws EXCEPTION {
184-
return visitFallback(expr);
183+
public O visit(Expression.MultiOrList expr, C context) throws E {
184+
return visitFallback(expr, context);
185185
}
186186

187187
@Override
188-
public OUTPUT visit(FieldReference expr) throws EXCEPTION {
189-
return visitFallback(expr);
188+
public O visit(FieldReference expr, C context) throws E {
189+
return visitFallback(expr, context);
190190
}
191191

192192
@Override
193-
public OUTPUT visit(Expression.SetPredicate expr) throws EXCEPTION {
194-
return visitFallback(expr);
193+
public O visit(Expression.SetPredicate expr, C context) throws E {
194+
return visitFallback(expr, context);
195195
}
196196

197197
@Override
198-
public OUTPUT visit(Expression.ScalarSubquery expr) throws EXCEPTION {
199-
return visitFallback(expr);
198+
public O visit(Expression.ScalarSubquery expr, C context) throws E {
199+
return visitFallback(expr, context);
200200
}
201201

202202
@Override
203-
public OUTPUT visit(Expression.InPredicate expr) throws EXCEPTION {
204-
return visitFallback(expr);
203+
public O visit(Expression.InPredicate expr, C context) throws E {
204+
return visitFallback(expr, context);
205205
}
206206
}

core/src/main/java/io/substrait/expression/EnumArg.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,10 @@ public interface EnumArg extends FunctionArg {
1616
Optional<String> value();
1717

1818
@Override
19-
default <R, E extends Throwable> R accept(
20-
SimpleExtension.Function fnDef, int argIdx, FuncArgVisitor<R, E> fnArgVisitor) throws E {
21-
return fnArgVisitor.visitEnumArg(fnDef, argIdx, this);
19+
default <R, C, E extends Throwable> R accept(
20+
SimpleExtension.Function fnDef, int argIdx, FuncArgVisitor<R, C, E> fnArgVisitor, C context)
21+
throws E {
22+
return fnArgVisitor.visitEnumArg(fnDef, argIdx, this, context);
2223
}
2324

2425
static EnumArg of(SimpleExtension.EnumArgument enumArg, String option) {

0 commit comments

Comments
 (0)