diff --git a/README.md b/README.md
index a316a14..c51da32 100644
--- a/README.md
+++ b/README.md
@@ -21,7 +21,7 @@
io.github.osinn
druid-multi-tenant-starter
- 1.4.1
+ 1.4.2
```
diff --git a/pom.xml b/pom.xml
index 3580fd3..4ba7210 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
io.github.osinn
druid-multi-tenant-starter
- 1.4.1
+ 1.4.2
druid-multi-tenant-starter
druid-multi-tenant-starter
diff --git a/src/main/java/com/github/osinn/druid/multi/tenant/plugin/parser/DefaultSqlParser.java b/src/main/java/com/github/osinn/druid/multi/tenant/plugin/parser/DefaultSqlParser.java
index 5e39171..17016b8 100644
--- a/src/main/java/com/github/osinn/druid/multi/tenant/plugin/parser/DefaultSqlParser.java
+++ b/src/main/java/com/github/osinn/druid/multi/tenant/plugin/parser/DefaultSqlParser.java
@@ -41,14 +41,11 @@ public String setTenantParameter(String sql) {
if (statement instanceof SQLSelectStatement) {
SQLSelectStatement sqlSelectStatement = (SQLSelectStatement) statement;
processSelectBody(sqlSelectStatement.getSelect().getQuery());
- }
- if (statement instanceof SQLInsertStatement) {
+ } else if (statement instanceof SQLInsertStatement) {
processInsert((SQLInsertStatement) statement);
- }
- if (statement instanceof SQLUpdateStatement) {
+ } else if (statement instanceof SQLUpdateStatement) {
processUpdate((SQLUpdateStatement) statement);
- }
- if (statement instanceof SQLDeleteStatement) {
+ } else if (statement instanceof SQLDeleteStatement) {
processDelete((SQLDeleteStatement) statement);
}
return statement.toString();
@@ -500,6 +497,9 @@ private String getAlias(SQLTableSource sqlTableSource) {
} else if (sqlJoinTableSource.getLeft() instanceof SQLExprTableSource) {
SQLExprTableSource sqlExprTableSource = (SQLExprTableSource) sqlJoinTableSource.getLeft();
return sqlExprTableSource.getAlias();
+ } else if (sqlJoinTableSource.getLeft() instanceof SQLSubqueryTableSource) {
+ SQLSubqueryTableSource sqlSubqueryTableSource = (SQLSubqueryTableSource) sqlJoinTableSource.getLeft();
+ return sqlSubqueryTableSource.getAlias();
} else {
return sqlJoinTableSource.getAlias();
}
diff --git a/src/test/java/com/github/osinn/osinn/sqlparser/test/TenantDemo.java b/src/test/java/com/github/osinn/osinn/sqlparser/test/TenantDemo.java
index 4eff89e..36d7848 100644
--- a/src/test/java/com/github/osinn/osinn/sqlparser/test/TenantDemo.java
+++ b/src/test/java/com/github/osinn/osinn/sqlparser/test/TenantDemo.java
@@ -80,6 +80,12 @@ public class TenantDemo {
private static final String sql39 = "SELECT id, name,tenant_id FROM role temp";
+ private static final String sql40 = "SELECT *\n" +
+ " from\n" +
+ " (SELECT * from test_t1) a \n" +
+ " LEFT JOIN test_t2 pd ON a.depository_id = pd.id\n" +
+ " LEFT JOIN test_t3 pi ON a.order_no = pi.order_no\n" +
+ " ORDER BY a.part_no";
public static void main(String[] args) {
DefaultSqlParser defaultSqlParser = new DefaultSqlParser();
@@ -90,7 +96,7 @@ public List getTenantIds() {
Long tenantId2 = 1540616731523944448L;
List tenantIdList = new ArrayList<>();
tenantIdList.add(tenantId);
- tenantIdList.add(tenantId2);
+// tenantIdList.add(tenantId2);
return tenantIdList;
}
@@ -194,6 +200,7 @@ public String getTenantIdColumn() {
System.out.println(defaultSqlParser.setTenantParameter(sql38));
System.out.println("------------------------------------- \n");
System.out.println(defaultSqlParser.setTenantParameter(sql39));
+ System.out.println(defaultSqlParser.setTenantParameter(sql40));
}
}