Commit a216182a authored by tristaZero's avatar tristaZero
Browse files

Merge branch 'dev' of ssh://github.com/shardingjdbc/sharding-jdbc into dev

# Conflicts:
#	sharding-proxy/src/main/java/io/shardingsphere/shardingproxy/backend/jdbc/JDBCBackendHandler.java
parents efef9b80 fadb1343
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -94,14 +94,14 @@ public final class DQLMergeEngine implements MergeEngine {
    
    @Override
    public MergedResult merge() throws SQLException {
        if (queryResults.size() == 1) {
            return new IteratorStreamMergedResult(queryResults);
        }
        selectStatement.setIndexForItems(columnLabelIndexMap);
        return decorate(build());
    }
    
    private MergedResult build() throws SQLException {
        if (queryResults.size() == 1) {
            return new IteratorStreamMergedResult(queryResults);
        }
        if (!selectStatement.getGroupByItems().isEmpty() || !selectStatement.getAggregationSelectItems().isEmpty()) {
            return getGroupByMergedResult();
        }
+1 −1
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@ public final class ColumnMetaData {
    
    private final String columnName;
    
    private final String columnType;
    private final String dataType;
    
    private final boolean primaryKey;
}
+2 −2
Original line number Diff line number Diff line
@@ -36,7 +36,7 @@ import java.util.LinkedList;
@ToString
public final class TableMetaData {
    
    private final Collection<ColumnMetaData> columnMetaData;
    private final Collection<ColumnMetaData> columnMetaDataList;
    
    /**
     * Get all column names.
@@ -45,7 +45,7 @@ public final class TableMetaData {
     */
    public Collection<String> getAllColumnNames() {
        Collection<String> result = new LinkedList<>();
        for (ColumnMetaData each : columnMetaData) {
        for (ColumnMetaData each : columnMetaDataList) {
            result.add(each.getColumnName().toLowerCase());
        }
        return result;
+13 −12
Original line number Diff line number Diff line
@@ -15,49 +15,50 @@
 * </p>
 */

package io.shardingsphere.core.parsing.antlr.extractor.impl;
package io.shardingsphere.core.parsing.antlr.extractor.impl.definition.column;

import com.google.common.base.Optional;
import io.shardingsphere.core.parsing.antlr.extractor.CollectionSQLSegmentExtractor;
import io.shardingsphere.core.parsing.antlr.extractor.util.ExtractorUtils;
import io.shardingsphere.core.parsing.antlr.extractor.util.RuleName;
import io.shardingsphere.core.parsing.antlr.sql.segment.column.ColumnDefinitionSegment;
import io.shardingsphere.core.parsing.antlr.sql.segment.definition.column.ColumnDefinitionSegment;
import io.shardingsphere.core.parsing.antlr.sql.segment.definition.column.alter.AddColumnDefinitionSegment;
import org.antlr.v4.runtime.ParserRuleContext;

import java.util.Collection;
import java.util.LinkedList;

/**
 * Add column extractor.
 * Add column definition extractor.
 *
 * @author duhongjun
 */
public class AddColumnExtractor implements CollectionSQLSegmentExtractor {
public class AddColumnDefinitionExtractor implements CollectionSQLSegmentExtractor {
    
    private final ColumnDefinitionExtractor columnDefinitionExtractor = new ColumnDefinitionExtractor();
    
    @Override
    public final Collection<ColumnDefinitionSegment> extract(final ParserRuleContext ancestorNode) {
        Collection<ColumnDefinitionSegment> result = new LinkedList<>();
    public final Collection<AddColumnDefinitionSegment> extract(final ParserRuleContext ancestorNode) {
        Collection<AddColumnDefinitionSegment> result = new LinkedList<>();
        for (ParserRuleContext each : ExtractorUtils.getAllDescendantNodes(ancestorNode, RuleName.ADD_COLUMN)) {
            result.addAll(extractAddColumnDefinitions(each));
        }
        return result;
    }
    
    private Collection<ColumnDefinitionSegment> extractAddColumnDefinitions(final ParserRuleContext addColumnNode) {
        Collection<ColumnDefinitionSegment> result = new LinkedList<>();
    private Collection<AddColumnDefinitionSegment> extractAddColumnDefinitions(final ParserRuleContext addColumnNode) {
        Collection<AddColumnDefinitionSegment> result = new LinkedList<>();
        for (ParserRuleContext each : ExtractorUtils.getAllDescendantNodes(addColumnNode, RuleName.COLUMN_DEFINITION)) {
            Optional<ColumnDefinitionSegment> columnDefinitionSegment = columnDefinitionExtractor.extract(each);
            if (columnDefinitionSegment.isPresent()) {
                columnDefinitionSegment.get().setAdd(true);
                postExtractColumnDefinition(addColumnNode, columnDefinitionSegment.get());
                result.add(columnDefinitionSegment.get());
                AddColumnDefinitionSegment addColumnDefinitionSegment = new AddColumnDefinitionSegment(columnDefinitionSegment.get());
                postExtractColumnDefinition(addColumnNode, addColumnDefinitionSegment);
                result.add(addColumnDefinitionSegment);
            }
        }
        return result;
    }
    
    protected void postExtractColumnDefinition(final ParserRuleContext addColumnNode, final ColumnDefinitionSegment columnDefinitionSegment) {
    protected void postExtractColumnDefinition(final ParserRuleContext addColumnNode, final AddColumnDefinitionSegment addColumnDefinitionSegment) {
    }
}
+2 −2
Original line number Diff line number Diff line
@@ -15,13 +15,13 @@
 * </p>
 */

package io.shardingsphere.core.parsing.antlr.extractor.impl;
package io.shardingsphere.core.parsing.antlr.extractor.impl.definition.column;

import com.google.common.base.Optional;
import io.shardingsphere.core.parsing.antlr.extractor.OptionalSQLSegmentExtractor;
import io.shardingsphere.core.parsing.antlr.extractor.util.ExtractorUtils;
import io.shardingsphere.core.parsing.antlr.extractor.util.RuleName;
import io.shardingsphere.core.parsing.antlr.sql.segment.column.ColumnDefinitionSegment;
import io.shardingsphere.core.parsing.antlr.sql.segment.definition.column.ColumnDefinitionSegment;
import org.antlr.v4.runtime.ParserRuleContext;

/**
Loading