Loading sharding-core/sharding-core-parse/sharding-core-parse-common/src/main/java/org/apache/shardingsphere/core/parse/antlr/constant/LogicalOperator.java +2 −7 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package org.apache.shardingsphere.core.parse.antlr.constant; import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.apache.shardingsphere.core.parse.old.lexer.token.Symbol; /** * Logical operator. Loading @@ -29,10 +28,6 @@ import org.apache.shardingsphere.core.parse.old.lexer.token.Symbol; @NoArgsConstructor(access = AccessLevel.PRIVATE) public final class LogicalOperator { private static final String AND = "AND"; private static final String OR = "OR"; /** * Judge is logical operator or not. * Loading @@ -44,7 +39,7 @@ public final class LogicalOperator { } private static boolean isAndOperator(final String token) { return AND.equalsIgnoreCase(token) || Symbol.DOUBLE_AMP.getLiterals().equalsIgnoreCase(token); return "AND".equalsIgnoreCase(token) || "&&".equals(token); } /** Loading @@ -54,6 +49,6 @@ public final class LogicalOperator { * @return OR operator or not */ public static boolean isOrOperator(final String token) { return OR.equalsIgnoreCase(token) || Symbol.DOUBLE_BAR.getLiterals().equalsIgnoreCase(token); return "OR".equalsIgnoreCase(token) || "||".equals(token); } } sharding-core/sharding-core-parse/sharding-core-parse-common/src/main/java/org/apache/shardingsphere/core/parse/antlr/extractor/impl/dml/PredicateExtractor.java +13 −9 Original line number Diff line number Diff line Loading @@ -93,9 +93,9 @@ public final class PredicateExtractor implements OptionalSQLSegmentExtractor { return Optional.absent(); } OrPredicateSegment result = new OrPredicateSegment(); AndPredicateSegment newAndPredicate = new AndPredicateSegment(); newAndPredicate.getPredicates().add(predicate.get()); result.getAndPredicates().add(newAndPredicate); AndPredicateSegment andPredicate = new AndPredicateSegment(); andPredicate.getPredicates().add(predicate.get()); result.getAndPredicates().add(andPredicate); return Optional.of(result); } Loading Loading @@ -199,14 +199,18 @@ public final class PredicateExtractor implements OptionalSQLSegmentExtractor { return leftPredicate; } OrPredicateSegment result = new OrPredicateSegment(); for (AndPredicateSegment each : leftPredicate.getAndPredicates()) { for (AndPredicateSegment eachRightOr : rightPredicate.getAndPredicates()) { AndPredicateSegment tempList = new AndPredicateSegment(); tempList.getPredicates().addAll(each.getPredicates()); tempList.getPredicates().addAll(eachRightOr.getPredicates()); result.getAndPredicates().add(tempList); for (AndPredicateSegment eachLeftPredicate : leftPredicate.getAndPredicates()) { for (AndPredicateSegment eachRightPredicate : rightPredicate.getAndPredicates()) { result.getAndPredicates().add(getAndPredicateSegment(eachLeftPredicate, eachRightPredicate)); } } return result; } private AndPredicateSegment getAndPredicateSegment(final AndPredicateSegment leftPredicate, final AndPredicateSegment rightPredicate) { AndPredicateSegment result = new AndPredicateSegment(); result.getPredicates().addAll(leftPredicate.getPredicates()); result.getPredicates().addAll(rightPredicate.getPredicates()); return result; } } Loading
sharding-core/sharding-core-parse/sharding-core-parse-common/src/main/java/org/apache/shardingsphere/core/parse/antlr/constant/LogicalOperator.java +2 −7 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package org.apache.shardingsphere.core.parse.antlr.constant; import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.apache.shardingsphere.core.parse.old.lexer.token.Symbol; /** * Logical operator. Loading @@ -29,10 +28,6 @@ import org.apache.shardingsphere.core.parse.old.lexer.token.Symbol; @NoArgsConstructor(access = AccessLevel.PRIVATE) public final class LogicalOperator { private static final String AND = "AND"; private static final String OR = "OR"; /** * Judge is logical operator or not. * Loading @@ -44,7 +39,7 @@ public final class LogicalOperator { } private static boolean isAndOperator(final String token) { return AND.equalsIgnoreCase(token) || Symbol.DOUBLE_AMP.getLiterals().equalsIgnoreCase(token); return "AND".equalsIgnoreCase(token) || "&&".equals(token); } /** Loading @@ -54,6 +49,6 @@ public final class LogicalOperator { * @return OR operator or not */ public static boolean isOrOperator(final String token) { return OR.equalsIgnoreCase(token) || Symbol.DOUBLE_BAR.getLiterals().equalsIgnoreCase(token); return "OR".equalsIgnoreCase(token) || "||".equals(token); } }
sharding-core/sharding-core-parse/sharding-core-parse-common/src/main/java/org/apache/shardingsphere/core/parse/antlr/extractor/impl/dml/PredicateExtractor.java +13 −9 Original line number Diff line number Diff line Loading @@ -93,9 +93,9 @@ public final class PredicateExtractor implements OptionalSQLSegmentExtractor { return Optional.absent(); } OrPredicateSegment result = new OrPredicateSegment(); AndPredicateSegment newAndPredicate = new AndPredicateSegment(); newAndPredicate.getPredicates().add(predicate.get()); result.getAndPredicates().add(newAndPredicate); AndPredicateSegment andPredicate = new AndPredicateSegment(); andPredicate.getPredicates().add(predicate.get()); result.getAndPredicates().add(andPredicate); return Optional.of(result); } Loading Loading @@ -199,14 +199,18 @@ public final class PredicateExtractor implements OptionalSQLSegmentExtractor { return leftPredicate; } OrPredicateSegment result = new OrPredicateSegment(); for (AndPredicateSegment each : leftPredicate.getAndPredicates()) { for (AndPredicateSegment eachRightOr : rightPredicate.getAndPredicates()) { AndPredicateSegment tempList = new AndPredicateSegment(); tempList.getPredicates().addAll(each.getPredicates()); tempList.getPredicates().addAll(eachRightOr.getPredicates()); result.getAndPredicates().add(tempList); for (AndPredicateSegment eachLeftPredicate : leftPredicate.getAndPredicates()) { for (AndPredicateSegment eachRightPredicate : rightPredicate.getAndPredicates()) { result.getAndPredicates().add(getAndPredicateSegment(eachLeftPredicate, eachRightPredicate)); } } return result; } private AndPredicateSegment getAndPredicateSegment(final AndPredicateSegment leftPredicate, final AndPredicateSegment rightPredicate) { AndPredicateSegment result = new AndPredicateSegment(); result.getPredicates().addAll(leftPredicate.getPredicates()); result.getPredicates().addAll(rightPredicate.getPredicates()); return result; } }