walterddr commented on code in PR #9389: URL: https://github.com/apache/pinot/pull/9389#discussion_r969930925
########## pinot-common/src/main/java/org/apache/pinot/common/request/context/ExpressionContext.java: ########## @@ -31,37 +34,53 @@ */ public class ExpressionContext { public enum Type { - LITERAL, IDENTIFIER, FUNCTION + IDENTIFIER, FUNCTION, LITERAL_CONTEXT Review Comment: type should just named "LITERAL" ########## pinot-common/src/main/java/org/apache/pinot/common/request/context/ExpressionContext.java: ########## @@ -31,37 +34,53 @@ */ public class ExpressionContext { public enum Type { - LITERAL, IDENTIFIER, FUNCTION + IDENTIFIER, FUNCTION, LITERAL_CONTEXT } private final Type _type; private final String _value; private final FunctionContext _function; + // Only set when the _type is LITERAL_CONTEXT + @Nullable + private final LiteralContext _literal; - public static ExpressionContext forLiteral(String literal) { - return new ExpressionContext(Type.LITERAL, literal, null); + public static ExpressionContext forLiteralContext(Literal literal){ + return new ExpressionContext(Type.LITERAL_CONTEXT, null, null, new LiteralContext(literal)); + } + public static ExpressionContext forLiteralContext(FieldSpec.DataType type, Object val){ + return new ExpressionContext(Type.LITERAL_CONTEXT, null, null, new LiteralContext(type, val)); } public static ExpressionContext forIdentifier(String identifier) { - return new ExpressionContext(Type.IDENTIFIER, identifier, null); + return new ExpressionContext(Type.IDENTIFIER, identifier, null, null); } public static ExpressionContext forFunction(FunctionContext function) { - return new ExpressionContext(Type.FUNCTION, null, function); + return new ExpressionContext(Type.FUNCTION, null, function, null); } - private ExpressionContext(Type type, String value, FunctionContext function) { + private ExpressionContext(Type type, String value, FunctionContext function, LiteralContext literal) { _type = type; _value = value; _function = function; + _literal = literal; + } + + // TODO: Deprecate the usage of literal string. + public String getLiteralString() { + if (_literal == null || _literal.getValue() == null) { + return ""; + } + return _literal.getValue().toString(); } Review Comment: do ```suggestion @Deprecated public String getLiteralString() { // the usage of literal stored as string is deprecated. if (_literal == null || _literal.getValue() == null) { return ""; } return _literal.getValue().toString(); } ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org For additional commands, e-mail: commits-h...@pinot.apache.org