diff --git a/src/main/java/com/alibaba/druid/hdriver/impl/execute/SingleTableQueryExecutePlan.java b/src/main/java/com/alibaba/druid/hdriver/impl/execute/SingleTableQueryExecutePlan.java index f56293b815..329f1e824f 100644 --- a/src/main/java/com/alibaba/druid/hdriver/impl/execute/SingleTableQueryExecutePlan.java +++ b/src/main/java/com/alibaba/druid/hdriver/impl/execute/SingleTableQueryExecutePlan.java @@ -184,8 +184,12 @@ public class SingleTableQueryExecutePlan extends SingleTableExecutePlan { } } } else { + List filters = new ArrayList(); + filters.add(parentFilter); + filters.add(filter); + FilterList.Operator filterOp = and ? FilterList.Operator.MUST_PASS_ALL : FilterList.Operator.MUST_PASS_ONE; - return new FilterList(filterOp, parentFilter, filter); + return new FilterList(filterOp, filters); } } diff --git a/src/test/java/com/alibaba/druid/hbase/HBaseDriverTest_getIndex_or.java b/src/test/java/com/alibaba/druid/hbase/HBaseDriverTest_getIndex_or.java index 35b5ff9f55..f154644707 100644 --- a/src/test/java/com/alibaba/druid/hbase/HBaseDriverTest_getIndex_or.java +++ b/src/test/java/com/alibaba/druid/hbase/HBaseDriverTest_getIndex_or.java @@ -15,7 +15,7 @@ public class HBaseDriverTest_getIndex_or extends TestCase { HDriver driver = new HDriver(); Connection conn = driver.connect("jdbc:druid-hbase:10.20.153.63", new Properties()); - PreparedStatement stmt = conn.prepareStatement("SELECT id, name, gender, salary FROM test_user where id = 3 or id = ?"); + PreparedStatement stmt = conn.prepareStatement("SELECT id, name, gender, salary FROM test_user where id = 3 or id = ? or name = 'user-4'"); stmt.setInt(1, 6); ResultSet rs = stmt.executeQuery();