Skip to content

Commit 7dcc7fc

Browse files
committed
rename definition to pushDownExpression in ClpExpression
1 parent 544ab52 commit 7dcc7fc

File tree

4 files changed

+38
-38
lines changed

4 files changed

+38
-38
lines changed

presto-clp/src/main/java/com/facebook/presto/plugin/clp/ClpExpression.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,34 +24,34 @@
2424
*/
2525
public class ClpExpression
2626
{
27-
// Optional KQL query string representing the fully or partially translatable part of the expression.
28-
private final Optional<String> kqlQuery;
27+
// Optional KQL query or column name representing the fully or partially translatable part of the expression.
28+
private final Optional<String> pushDownExpression;
2929

3030
// The remaining (non-translatable) portion of the RowExpression, if any.
3131
private final Optional<RowExpression> remainingExpression;
3232

33-
public ClpExpression(String kqlQuery, RowExpression remainingExpression)
33+
public ClpExpression(String pushDownExpression, RowExpression remainingExpression)
3434
{
35-
this.kqlQuery = Optional.ofNullable(kqlQuery);
35+
this.pushDownExpression = Optional.ofNullable(pushDownExpression);
3636
this.remainingExpression = Optional.ofNullable(remainingExpression);
3737
}
3838

3939
/**
40-
* Creates an empty ClpExpression (no KQL definition, no remaining expression).
40+
* Creates an empty ClpExpression with neither pushdown nor remaining expressions.
4141
*/
4242
public ClpExpression()
4343
{
4444
this(null, null);
4545
}
4646

4747
/**
48-
* Creates a ClpExpression from a fully translatable KQL string.
48+
* Creates a ClpExpression from a fully translatable KQL query or column name.
4949
*
50-
* @param kqlQuery
50+
* @param pushDownExpression
5151
*/
52-
public ClpExpression(String kqlQuery)
52+
public ClpExpression(String pushDownExpression)
5353
{
54-
this(kqlQuery, null);
54+
this(pushDownExpression, null);
5555
}
5656

5757
/**
@@ -64,9 +64,9 @@ public ClpExpression(RowExpression remainingExpression)
6464
this(null, remainingExpression);
6565
}
6666

67-
public Optional<String> getKqlQuery()
67+
public Optional<String> getPushDownExpression()
6868
{
69-
return kqlQuery;
69+
return pushDownExpression;
7070
}
7171

7272
public Optional<RowExpression> getRemainingExpression()

presto-clp/src/main/java/com/facebook/presto/plugin/clp/ClpFilterToKqlConverter.java

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -200,10 +200,10 @@ private ClpExpression handleNot(CallExpression node)
200200

201201
RowExpression input = node.getArguments().get(0);
202202
ClpExpression expression = input.accept(this, null);
203-
if (expression.getRemainingExpression().isPresent() || !expression.getKqlQuery().isPresent()) {
203+
if (expression.getRemainingExpression().isPresent() || !expression.getPushDownExpression().isPresent()) {
204204
return new ClpExpression(node);
205205
}
206-
return new ClpExpression("NOT " + expression.getKqlQuery().get());
206+
return new ClpExpression("NOT " + expression.getPushDownExpression().get());
207207
}
208208

209209
/**
@@ -224,11 +224,11 @@ private ClpExpression handleLike(CallExpression node)
224224
throw new PrestoException(CLP_PUSHDOWN_UNSUPPORTED_EXPRESSION, "LIKE operator must have exactly two arguments. Received: " + node);
225225
}
226226
ClpExpression variable = node.getArguments().get(0).accept(this, null);
227-
if (!variable.getKqlQuery().isPresent()) {
227+
if (!variable.getPushDownExpression().isPresent()) {
228228
return new ClpExpression(node);
229229
}
230230

231-
String variableName = variable.getKqlQuery().get();
231+
String variableName = variable.getPushDownExpression().get();
232232
RowExpression argument = node.getArguments().get(1);
233233

234234
String pattern;
@@ -277,19 +277,19 @@ private ClpExpression handleLogicalBinary(OperatorType operator, CallExpression
277277
RowExpression right = node.getArguments().get(1);
278278

279279
ClpExpression maybeLeftSubstring = tryInterpretSubstringEquality(operator, left, right);
280-
if (maybeLeftSubstring.getKqlQuery().isPresent()) {
280+
if (maybeLeftSubstring.getPushDownExpression().isPresent()) {
281281
return maybeLeftSubstring;
282282
}
283283

284284
ClpExpression maybeRightSubstring = tryInterpretSubstringEquality(operator, right, left);
285-
if (maybeRightSubstring.getKqlQuery().isPresent()) {
285+
if (maybeRightSubstring.getPushDownExpression().isPresent()) {
286286
return maybeRightSubstring;
287287
}
288288

289289
ClpExpression leftExpression = left.accept(this, null);
290290
ClpExpression rightExpression = right.accept(this, null);
291-
Optional<String> leftDefinition = leftExpression.getKqlQuery();
292-
Optional<String> rightDefinition = rightExpression.getKqlQuery();
291+
Optional<String> leftDefinition = leftExpression.getPushDownExpression();
292+
Optional<String> rightDefinition = rightExpression.getPushDownExpression();
293293
if (!leftDefinition.isPresent() || !rightDefinition.isPresent()) {
294294
return new ClpExpression(node);
295295
}
@@ -423,11 +423,11 @@ private Optional<SubstrInfo> parseSubstringCall(CallExpression callExpression)
423423
}
424424

425425
ClpExpression variable = callExpression.getArguments().get(0).accept(this, null);
426-
if (!variable.getKqlQuery().isPresent()) {
426+
if (!variable.getPushDownExpression().isPresent()) {
427427
return Optional.empty();
428428
}
429429

430-
String varName = variable.getKqlQuery().get();
430+
String varName = variable.getPushDownExpression().get();
431431
RowExpression startExpression = callExpression.getArguments().get(1);
432432
RowExpression lengthExpression = null;
433433
if (argCount == 3) {
@@ -566,19 +566,19 @@ private ClpExpression handleAnd(SpecialFormExpression node)
566566
StringBuilder queryBuilder = new StringBuilder();
567567
queryBuilder.append("(");
568568
List<RowExpression> remainingExpressions = new ArrayList<>();
569-
boolean hasDefinition = false;
569+
boolean hasPushDownExpression = false;
570570
for (RowExpression argument : node.getArguments()) {
571571
ClpExpression expression = argument.accept(this, null);
572-
if (expression.getKqlQuery().isPresent()) {
573-
hasDefinition = true;
574-
queryBuilder.append(expression.getKqlQuery().get());
572+
if (expression.getPushDownExpression().isPresent()) {
573+
hasPushDownExpression = true;
574+
queryBuilder.append(expression.getPushDownExpression().get());
575575
queryBuilder.append(" AND ");
576576
}
577577
if (expression.getRemainingExpression().isPresent()) {
578578
remainingExpressions.add(expression.getRemainingExpression().get());
579579
}
580580
}
581-
if (!hasDefinition) {
581+
if (!hasPushDownExpression) {
582582
return new ClpExpression(node);
583583
}
584584
else if (!remainingExpressions.isEmpty()) {
@@ -612,10 +612,10 @@ private ClpExpression handleOr(SpecialFormExpression node)
612612
queryBuilder.append("(");
613613
for (RowExpression argument : node.getArguments()) {
614614
ClpExpression expression = argument.accept(this, null);
615-
if (expression.getRemainingExpression().isPresent() || !expression.getKqlQuery().isPresent()) {
615+
if (expression.getRemainingExpression().isPresent() || !expression.getPushDownExpression().isPresent()) {
616616
return new ClpExpression(node);
617617
}
618-
queryBuilder.append(expression.getKqlQuery().get());
618+
queryBuilder.append(expression.getPushDownExpression().get());
619619
queryBuilder.append(" OR ");
620620
}
621621
// Remove the last " OR " from the query
@@ -634,10 +634,10 @@ private ClpExpression handleOr(SpecialFormExpression node)
634634
private ClpExpression handleIn(SpecialFormExpression node)
635635
{
636636
ClpExpression variable = node.getArguments().get(0).accept(this, null);
637-
if (!variable.getKqlQuery().isPresent()) {
637+
if (!variable.getPushDownExpression().isPresent()) {
638638
return new ClpExpression(node);
639639
}
640-
String variableName = variable.getKqlQuery().get();
640+
String variableName = variable.getPushDownExpression().get();
641641
StringBuilder queryBuilder = new StringBuilder();
642642
queryBuilder.append("(");
643643
for (RowExpression argument : node.getArguments().subList(1, node.getArguments().size())) {
@@ -676,11 +676,11 @@ private ClpExpression handleIsNull(SpecialFormExpression node)
676676
}
677677

678678
ClpExpression expression = node.getArguments().get(0).accept(this, null);
679-
if (!expression.getKqlQuery().isPresent()) {
679+
if (!expression.getPushDownExpression().isPresent()) {
680680
return new ClpExpression(node);
681681
}
682682

683-
String variableName = expression.getKqlQuery().get();
683+
String variableName = expression.getPushDownExpression().get();
684684
return new ClpExpression(format("NOT %s: *", variableName));
685685
}
686686

@@ -739,10 +739,10 @@ private ClpExpression handleDereference(RowExpression expression)
739739
String fieldName = field.getName().orElse("field" + fieldIndex);
740740

741741
ClpExpression baseString = handleDereference(base);
742-
if (!baseString.getKqlQuery().isPresent()) {
742+
if (!baseString.getPushDownExpression().isPresent()) {
743743
return new ClpExpression(expression);
744744
}
745-
return new ClpExpression(baseString.getKqlQuery().get() + "." + fieldName);
745+
return new ClpExpression(baseString.getPushDownExpression().get() + "." + fieldName);
746746
}
747747

748748
private static class SubstrInfo

presto-clp/src/main/java/com/facebook/presto/plugin/clp/ClpPlanOptimizer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ public PlanNode visitFilter(FilterNode node, RewriteContext<Void> context)
7777
ClpTableHandle clpTableHandle = (ClpTableHandle) tableHandle.getConnectorHandle();
7878
ClpExpression clpExpression = node.getPredicate()
7979
.accept(new ClpFilterToKqlConverter(functionResolution, functionManager, assignments), null);
80-
Optional<String> kqlQuery = clpExpression.getKqlQuery();
80+
Optional<String> kqlQuery = clpExpression.getPushDownExpression();
8181
Optional<RowExpression> remainingPredicate = clpExpression.getRemainingExpression();
8282
if (!kqlQuery.isPresent()) {
8383
return node;

presto-clp/src/test/java/com/facebook/presto/plugin/clp/TestClpFilterToKql.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -194,9 +194,9 @@ public void testComplexPushdown()
194194

195195
private void testFilter(String sqlExpression, String expectedKqlExpression, String expectedRemainingExpression, SessionHolder sessionHolder)
196196
{
197-
RowExpression pushDownExpression = getRowExpression(sqlExpression, sessionHolder);
198-
ClpExpression clpExpression = pushDownExpression.accept(new ClpFilterToKqlConverter(standardFunctionResolution, functionAndTypeManager, variableToColumnHandleMap), null);
199-
Optional<String> kqlExpression = clpExpression.getKqlQuery();
197+
RowExpression actualExpression = getRowExpression(sqlExpression, sessionHolder);
198+
ClpExpression clpExpression = actualExpression.accept(new ClpFilterToKqlConverter(standardFunctionResolution, functionAndTypeManager, variableToColumnHandleMap), null);
199+
Optional<String> kqlExpression = clpExpression.getPushDownExpression();
200200
Optional<RowExpression> remainingExpression = clpExpression.getRemainingExpression();
201201
if (expectedKqlExpression != null) {
202202
assertTrue(kqlExpression.isPresent());

0 commit comments

Comments
 (0)