Loading sharding-core/sharding-core-parse/sharding-core-parse-common/src/main/java/org/apache/shardingsphere/core/parse/antlr/extractor/impl/dml/select/SubqueryConditionExtractor.java→sharding-core/sharding-core-parse/sharding-core-parse-common/src/main/java/org/apache/shardingsphere/core/parse/antlr/extractor/impl/dml/select/SubqueryPredicateExtractor.java +7 −7 Original line number Diff line number Diff line Loading @@ -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); Loading sharding-core/sharding-core-parse/sharding-core-parse-common/src/main/java/org/apache/shardingsphere/core/parse/antlr/filler/sharding/dml/select/SubqueryConditionFiller.java→sharding-core/sharding-core-parse/sharding-core-parse-common/src/main/java/org/apache/shardingsphere/core/parse/antlr/filler/sharding/dml/select/SubqueryPredicateFiller.java +4 −4 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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)); } } } sharding-core/sharding-core-parse/sharding-core-parse-common/src/main/resources/META-INF/parsing-rule-definition/common/extractor-rule-definition.xml +1 −1 Original line number Diff line number Diff line Loading @@ -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> sharding-core/sharding-core-parse/sharding-core-parse-common/src/main/resources/META-INF/parsing-rule-definition/sharding/common/filler-rule-definition.xml +1 −1 Original line number Diff line number Diff line Loading @@ -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> sharding-core/sharding-core-parse/sharding-core-parse-mysql/src/main/resources/META-INF/parsing-rule-definition/encrypt/mysql/sql-statement-rule-definition.xml +1 −1 Original line number Diff line number Diff line Loading @@ -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
sharding-core/sharding-core-parse/sharding-core-parse-common/src/main/java/org/apache/shardingsphere/core/parse/antlr/extractor/impl/dml/select/SubqueryConditionExtractor.java→sharding-core/sharding-core-parse/sharding-core-parse-common/src/main/java/org/apache/shardingsphere/core/parse/antlr/extractor/impl/dml/select/SubqueryPredicateExtractor.java +7 −7 Original line number Diff line number Diff line Loading @@ -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); Loading
sharding-core/sharding-core-parse/sharding-core-parse-common/src/main/java/org/apache/shardingsphere/core/parse/antlr/filler/sharding/dml/select/SubqueryConditionFiller.java→sharding-core/sharding-core-parse/sharding-core-parse-common/src/main/java/org/apache/shardingsphere/core/parse/antlr/filler/sharding/dml/select/SubqueryPredicateFiller.java +4 −4 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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)); } } }
sharding-core/sharding-core-parse/sharding-core-parse-common/src/main/resources/META-INF/parsing-rule-definition/common/extractor-rule-definition.xml +1 −1 Original line number Diff line number Diff line Loading @@ -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>
sharding-core/sharding-core-parse/sharding-core-parse-common/src/main/resources/META-INF/parsing-rule-definition/sharding/common/filler-rule-definition.xml +1 −1 Original line number Diff line number Diff line Loading @@ -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>
sharding-core/sharding-core-parse/sharding-core-parse-mysql/src/main/resources/META-INF/parsing-rule-definition/encrypt/mysql/sql-statement-rule-definition.xml +1 −1 Original line number Diff line number Diff line Loading @@ -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>