Commit c7628df1 authored by terrymanu's avatar terrymanu
Browse files

for #2084, SubqueryConditionXXX => SubqueryPredicateXXX

parent f816f5e7
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -29,22 +29,22 @@ import java.util.Collection;
import java.util.Map;

/**
 * Subquery condition extractor.
 * Subquery predicate extractor.
 *
 * @author duhongjun
 */
public final class SubqueryConditionExtractor implements OptionalSQLSegmentExtractor {
public final class SubqueryPredicateExtractor implements OptionalSQLSegmentExtractor {
    
    private final SelectWhereExtractor selectWhereExtractor = new SelectWhereExtractor();
    
    @Override
    public Optional<SubqueryPredicateSegment> extract(final ParserRuleContext ancestorNode, final Map<ParserRuleContext, Integer> parameterMarkerIndexes) {
        Collection<ParserRuleContext> suQueryNodes = ExtractorUtils.getAllDescendantNodes(ancestorNode, RuleName.SUBQUERY);
        Collection<ParserRuleContext> subqueryNodes = ExtractorUtils.getAllDescendantNodes(ancestorNode, RuleName.SUBQUERY);
        SubqueryPredicateSegment result = new SubqueryPredicateSegment();
        for (ParserRuleContext each : suQueryNodes) {
            Optional<WhereSegment> condition = selectWhereExtractor.extract(each, parameterMarkerIndexes);
            if (condition.isPresent()) {
                result.getOrPredicates().add(condition.get().getOrPredicate());
        for (ParserRuleContext each : subqueryNodes) {
            Optional<WhereSegment> whereSegment = selectWhereExtractor.extract(each, parameterMarkerIndexes);
            if (whereSegment.isPresent()) {
                result.getOrPredicates().add(whereSegment.get().getOrPredicate());
            }
        }
        return Optional.of(result);
+4 −4
Original line number Diff line number Diff line
@@ -30,12 +30,12 @@ import org.apache.shardingsphere.core.parse.antlr.sql.statement.dml.SelectStatem
import org.apache.shardingsphere.core.rule.ShardingRule;

/**
 * Subquery condition filler.
 * Subquery predicate filler.
 *
 * @author duhongjun
 */
@Setter
public final class SubqueryConditionFiller implements SQLSegmentFiller<SubqueryPredicateSegment>, ShardingRuleAwareFiller, ShardingTableMetaDataAwareFiller {
public final class SubqueryPredicateFiller implements SQLSegmentFiller<SubqueryPredicateSegment>, ShardingRuleAwareFiller, ShardingTableMetaDataAwareFiller {
    
    private ShardingRule shardingRule;
    
@@ -44,9 +44,9 @@ public final class SubqueryConditionFiller implements SQLSegmentFiller<SubqueryP
    @Override
    public void fill(final SubqueryPredicateSegment sqlSegment, final SQLStatement sqlStatement) {
        SelectStatement selectStatement = (SelectStatement) sqlStatement;
        ShardingOrConditionFiller orConditionFiller = new ShardingOrConditionFiller(shardingRule, shardingTableMetaData);
        ShardingOrConditionFiller shardingOrConditionFiller = new ShardingOrConditionFiller(shardingRule, shardingTableMetaData);
        for (OrPredicateSegment each : sqlSegment.getOrPredicates()) {
            selectStatement.getSubqueryConditions().add(orConditionFiller.buildCondition(each, sqlStatement, shardingRule, shardingTableMetaData));
            selectStatement.getSubqueryConditions().add(shardingOrConditionFiller.buildCondition(each, sqlStatement, shardingRule, shardingTableMetaData));
        }
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -37,5 +37,5 @@
    <extractor-rule id="groupBy" extractor-class="org.apache.shardingsphere.core.parse.antlr.extractor.impl.dml.select.GroupByExtractor" />
    <extractor-rule id="orderBy" extractor-class="org.apache.shardingsphere.core.parse.antlr.extractor.impl.dml.select.OrderByExtractor" />
    <extractor-rule id="limit" extractor-class="org.apache.shardingsphere.core.parse.antlr.extractor.impl.dml.select.LimitExtractor" />
    <extractor-rule id="subqueryCondition" extractor-class="org.apache.shardingsphere.core.parse.antlr.extractor.impl.dml.select.SubqueryConditionExtractor" />
    <extractor-rule id="subqueryPredicate" extractor-class="org.apache.shardingsphere.core.parse.antlr.extractor.impl.dml.select.SubqueryPredicateExtractor" />
</extractor-rule-definition>
+1 −1
Original line number Diff line number Diff line
@@ -22,5 +22,5 @@
    <filler-rule sql-segment-class="org.apache.shardingsphere.core.parse.antlr.sql.segment.dml.assignment.SetAssignmentsSegment" filler-class="org.apache.shardingsphere.core.parse.antlr.filler.sharding.dml.ShardingSetAssignmentsFiller" />
    <filler-rule sql-segment-class="org.apache.shardingsphere.core.parse.antlr.sql.segment.dml.column.OnDuplicateKeyColumnsSegment" filler-class="org.apache.shardingsphere.core.parse.antlr.filler.sharding.dml.insert.OnDuplicateKeyColumnsFiller" />
    <filler-rule sql-segment-class="org.apache.shardingsphere.core.parse.antlr.sql.segment.dml.WhereSegment" filler-class="org.apache.shardingsphere.core.parse.antlr.filler.sharding.dml.ShardingWhereFiller" />
    <filler-rule sql-segment-class="org.apache.shardingsphere.core.parse.antlr.sql.segment.dml.predicate.SubqueryPredicateSegment" filler-class="org.apache.shardingsphere.core.parse.antlr.filler.sharding.dml.select.SubqueryConditionFiller" />
    <filler-rule sql-segment-class="org.apache.shardingsphere.core.parse.antlr.sql.segment.dml.predicate.SubqueryPredicateSegment" filler-class="org.apache.shardingsphere.core.parse.antlr.filler.sharding.dml.select.SubqueryPredicateFiller" />
</filler-rule-definition>
+1 −1
Original line number Diff line number Diff line
@@ -20,5 +20,5 @@
    <sql-statement-rule context="insert" sql-statement-class="org.apache.shardingsphere.core.parse.antlr.sql.statement.dml.InsertStatement" extractor-rule-refs="tables, insertColumns, insertValues, setAssignments" />
    <sql-statement-rule context="update" sql-statement-class="org.apache.shardingsphere.core.parse.antlr.sql.statement.dml.UpdateStatement" extractor-rule-refs="tableReferences, setAssignments, where" />
    <sql-statement-rule context="delete" sql-statement-class="org.apache.shardingsphere.core.parse.antlr.sql.statement.dml.DeleteStatement" extractor-rule-refs="tables, where" />
    <sql-statement-rule context="select" sql-statement-class="org.apache.shardingsphere.core.parse.antlr.sql.statement.dml.SelectStatement" extractor-rule-refs="tables, selectWhere, subqueryCondition"/>
    <sql-statement-rule context="select" sql-statement-class="org.apache.shardingsphere.core.parse.antlr.sql.statement.dml.SelectStatement" extractor-rule-refs="tables, selectWhere, subqueryPredicate"/>
</sql-statement-rule-definition>
Loading