Commit 59b00082 authored by terrymanu's avatar terrymanu
Browse files

Merge remote-tracking branch 'origin/master'

parents e360c9c2 975d81f9
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -60,7 +60,7 @@
            <dependency>
                <groupId>com.dangdang</groupId>
                <artifactId>sharding-jdbc</artifactId>
                <version>${project.version}</version>
                <version>${project.parent.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
+1 −1
Original line number Diff line number Diff line
@@ -168,7 +168,7 @@ public abstract class AbstractRowSetResultSetAdapter extends AbstractUnsupported
    public boolean getBoolean(final int columnIndex) throws SQLException {
        Object cell = getObject(columnIndex);
        if (null == cell) {
            wasNullFlag = false;
            wasNullFlag = true;
            return false;
        }
        return (cell instanceof Boolean) ? (Boolean) cell : Boolean.valueOf(cell.toString());
+10 −4
Original line number Diff line number Diff line
@@ -59,7 +59,7 @@ public final class ResultSetFactory {
        }
        if (1 == filteredResultSets.size()) {
            log.trace("Sharding-JDBC: Only one result set");
            return filteredResultSets.get(0);
            return joinLimit(filteredResultSets.get(0), mergeContext);
        }
        mergeContext.buildContextWithResultSet((WrapperResultSet) filteredResultSets.get(0));
        return buildCoupling(buildReducer(filteredResultSets, mergeContext), mergeContext);
@@ -97,9 +97,7 @@ public final class ResultSetFactory {
        if (mergeContext.needToSort()) {
            currentResultSet = join(new MemoryOrderByCouplingResultSet(mergeContext.getCurrentOrderByKeys()), currentResultSet);
        }
        if (mergeContext.hasLimit()) {
            currentResultSet = join(new LimitCouplingResultSet(mergeContext.getLimit()), currentResultSet);
        }
        currentResultSet = joinLimit(currentResultSet, mergeContext);
        return currentResultSet;
    }
    
@@ -108,4 +106,12 @@ public final class ResultSetFactory {
        resultSet.init(preResultSet);
        return resultSet;
    }
    
    private static ResultSet joinLimit(final ResultSet preResultSet, final MergeContext mergeContext) throws SQLException {
        if (mergeContext.hasLimit()) {
            return join(new LimitCouplingResultSet(mergeContext.getLimit()), preResultSet);
        } else {
            return preResultSet;
        }
    }
}
+3 −0
Original line number Diff line number Diff line
@@ -108,6 +108,9 @@ public abstract class AbstractMySQLVisitor extends MySqlOutputVisitor implements
    
    @Override
    public final boolean visit(final SQLExprTableSource x) {
        if ("dual".equalsIgnoreCase(SQLUtil.getExactlyValue(x.getExpr().toString()))) {
            return super.visit(x);
        }
        return visit(x, getParseContext().addTable(x));
    }
    
+3 −0
Original line number Diff line number Diff line
@@ -32,6 +32,9 @@ public class MySQLInsertVisitor extends AbstractMySQLVisitor {
    @Override
    public boolean visit(final MySqlInsertStatement x) {
        getParseContext().setCurrentTable(x.getTableName().toString(), Optional.fromNullable(x.getAlias()));
        if (null == x.getValues()) {
            return super.visit(x);
        }
        for (int i = 0; i < x.getColumns().size(); i++) {
            getParseContext().addCondition(x.getColumns().get(i).toString(), x.getTableName().toString(), BinaryOperator.EQUAL, x.getValues().getValues().get(i), getDatabaseType(), getParameters());
        }
Loading