Skip to content

Commit 197a26b

Browse files
committed
visitEnumLiteral fix
1 parent eab9263 commit 197a26b

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

presto-main-base/src/test/java/com/facebook/presto/sql/TestExpressionInterpreter.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
import com.facebook.presto.sql.planner.Symbol;
5252
import com.facebook.presto.sql.planner.TypeProvider;
5353
import com.facebook.presto.sql.relational.FunctionResolution;
54+
import com.facebook.presto.sql.tree.EnumLiteral;
5455
import com.facebook.presto.sql.tree.Expression;
5556
import com.facebook.presto.sql.tree.ExpressionRewriter;
5657
import com.facebook.presto.sql.tree.ExpressionTreeRewriter;
@@ -899,6 +900,20 @@ public void testReservedWithDoubleQuotes()
899900
assertOptimizedEquals("\"time\"", "\"time\"");
900901
}
901902

903+
@Test
904+
public void testEnumLiteralFormattingWithTypeAndValue()
905+
{
906+
java.util.function.BiFunction<String, Object, EnumLiteral> createEnumLiteral = (type, value) -> new EnumLiteral(Optional.empty(), type, value);
907+
assertEquals(ExpressionFormatter.formatExpression(createEnumLiteral.apply("color", "RED"), Optional.empty()), "color: RED");
908+
assertEquals(ExpressionFormatter.formatExpression(createEnumLiteral.apply("level", 1), Optional.empty()), "level: 1");
909+
assertEquals(ExpressionFormatter.formatExpression(createEnumLiteral.apply("StatusType", "Active"), Optional.empty()), "StatusType: Active");
910+
assertEquals(ExpressionFormatter.formatExpression(createEnumLiteral.apply("priority", "HIGH PRIORITY"), Optional.empty()), "priority: HIGH PRIORITY");
911+
assertEquals(ExpressionFormatter.formatExpression(createEnumLiteral.apply("lang", "枚举"), Optional.empty()), "lang: 枚举");
912+
assertEquals(ExpressionFormatter.formatExpression(createEnumLiteral.apply("special", "DOLLAR$"), Optional.empty()), "special: DOLLAR$");
913+
assertEquals(ExpressionFormatter.formatExpression(createEnumLiteral.apply("enum_type", "VALUE_1"), Optional.empty()), "enum_type: VALUE_1");
914+
assertEquals(ExpressionFormatter.formatExpression(createEnumLiteral.apply("flag", true), Optional.empty()), "flag: true");
915+
}
916+
902917
@Test
903918
public void testSearchCase()
904919
{

presto-parser/src/main/java/com/facebook/presto/sql/ExpressionFormatter.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import com.facebook.presto.sql.tree.DecimalLiteral;
3434
import com.facebook.presto.sql.tree.DereferenceExpression;
3535
import com.facebook.presto.sql.tree.DoubleLiteral;
36+
import com.facebook.presto.sql.tree.EnumLiteral;
3637
import com.facebook.presto.sql.tree.ExistsPredicate;
3738
import com.facebook.presto.sql.tree.Expression;
3839
import com.facebook.presto.sql.tree.Extract;
@@ -198,6 +199,12 @@ protected String visitBooleanLiteral(BooleanLiteral node, Void context)
198199
return String.valueOf(node.getValue());
199200
}
200201

202+
@Override
203+
protected String visitEnumLiteral(EnumLiteral node, Void context)
204+
{
205+
return node.getType() + ": " + node.getValue();
206+
}
207+
201208
@Override
202209
protected String visitStringLiteral(StringLiteral node, Void context)
203210
{

0 commit comments

Comments
 (0)