summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwangwei <[email protected]>2020-11-12 09:20:18 +0800
committerwangwei <[email protected]>2020-11-12 09:20:18 +0800
commit73006a0da5fe615192b9389fa699cd73290b7184 (patch)
treebb492ec8e34136c1dd1dea1f81828d4f972f741f
parent2f93243dcd35503447e6288dc7b870f50d0768a9 (diff)
fix(subQuery):子表查询优化,对子查询外层where条件补充,解决log_id重复导致筛选结果异常v3.3.201112
-rw-r--r--src/main/java/com/mesalab/qgw/dialect/ClickHouseDialect.java4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/main/java/com/mesalab/qgw/dialect/ClickHouseDialect.java b/src/main/java/com/mesalab/qgw/dialect/ClickHouseDialect.java
index fb4aec85..419b1ac5 100644
--- a/src/main/java/com/mesalab/qgw/dialect/ClickHouseDialect.java
+++ b/src/main/java/com/mesalab/qgw/dialect/ClickHouseDialect.java
@@ -393,7 +393,6 @@ public class ClickHouseDialect extends AbstractDataSourceDialect {
//判断三: where 条件列是否都在索引表中
setValidityByWhereExpressionsInSchema(param.getDbQuerySource().getWhereExpression(), masterTableSchema, indexTableSchema);
if (getSubIndexValidFlag() && isExist(indexTableSchema.getFullName())) {
- System.out.println(indexTableSchema.getFullName());
indexTable = indexTableSchema.getName();
break;
}
@@ -414,6 +413,9 @@ public class ClickHouseDialect extends AbstractDataSourceDialect {
StringBuffer subQuery = getSubquerySql(primaryKey, indexTable);
StringBuffer sb = new StringBuffer();
sb.append("select ").append(param.getDbQuerySource().getSelectItems()).append(" from ").append(param.getTableName()).append(" where ").append(primaryKey).append(" in ( ").append(subQuery).append(")");
+ if (StringUtil.isNotBlank(param.getDbQuerySource().getExpr())) {
+ sb.append(" and (").append(param.getDbQuerySource().getExpr()).append(")");
+ }
if (StringUtil.isNotBlank(param.getDbQuerySource().getOrderBy())) {
sb.append(" order by ").append(param.getDbQuerySource().getOrderBy());
}