Commit 08016322 authored by terrymanu's avatar terrymanu
Browse files

for #2084, use constructor to pass literals for LiteralExpressionSegment

parent b496545f
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -77,17 +77,17 @@ public final class ExpressionExtractor implements OptionalSQLSegmentExtractor {
     * @return literal expression segment
     */
    public LiteralExpressionSegment extractLiteralExpressionSegment(final ParserRuleContext expressionNode) {
        LiteralExpressionSegment result = new LiteralExpressionSegment(expressionNode.getStart().getStartIndex(), expressionNode.getStop().getStopIndex());
        Optional<ParserRuleContext> numberLiteralsNode = ExtractorUtils.findFirstChildNode(expressionNode, RuleName.NUMBER_LITERALS);
        Object literals = null;
        if (numberLiteralsNode.isPresent()) {
            result.setLiterals(NumberUtil.getExactlyNumber(numberLiteralsNode.get().getText(), 10));
            literals = NumberUtil.getExactlyNumber(numberLiteralsNode.get().getText(), 10);
        }
        Optional<ParserRuleContext> stringLiteralsNode = ExtractorUtils.findFirstChildNode(expressionNode, RuleName.STRING_LITERALS);
        if (stringLiteralsNode.isPresent()) {
            String text = stringLiteralsNode.get().getText();
            result.setLiterals(text.substring(1, text.length() - 1));
            literals = text.substring(1, text.length() - 1);
        }
        return result;
        return new LiteralExpressionSegment(expressionNode.getStart().getStartIndex(), expressionNode.getStop().getStopIndex(), literals);
    }
    
    // TODO extract column name and value from expression
+1 −3
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@ package org.apache.shardingsphere.core.parse.antlr.sql.segment.dml.expr;

import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
import org.apache.shardingsphere.core.parse.old.lexer.token.DefaultKeyword;
import org.apache.shardingsphere.core.parse.old.parser.expression.SQLExpression;
import org.apache.shardingsphere.core.parse.old.parser.expression.SQLNumberExpression;
@@ -34,14 +33,13 @@ import org.apache.shardingsphere.core.parse.old.parser.expression.SQLTextExpress
 */
@RequiredArgsConstructor
@Getter
@Setter
public final class LiteralExpressionSegment implements ExpressionSegment {
    
    private final int startIndex;
    
    private final int stopIndex;
    
    private Object literals;
    private final Object literals;
    
    @Override
    public SQLExpression getSQLExpression(final String sql) {