@@ -475,7 +475,9 @@ private Set<SQLSelectItem> groupColumnPushSelectList(List<SQLExpr> groupByItemLi
475
475
}
476
476
477
477
private boolean hasColumnOrAlia (String columnName , List <SQLSelectItem > selectColumns ) {
478
- return selectColumns .stream ().anyMatch (s -> (s .getAlias () != null && StringUtil .removeBackQuote (s .getAlias ()).equalsIgnoreCase (columnName )) || StringUtil .removeBackQuote (s .getExpr ().toString ()).equalsIgnoreCase (columnName ));
478
+ return selectColumns .stream ().anyMatch (s -> (s .getAlias () != null && StringUtil .removeBackQuote (s .getAlias ()).equalsIgnoreCase (columnName )) ||
479
+ ((s .getExpr () instanceof SQLPropertyExpr ) && StringUtil .removeBackQuote (((SQLPropertyExpr ) s .getExpr ()).getSimpleName ()).equalsIgnoreCase (columnName )) ||
480
+ StringUtil .removeBackQuote (s .getExpr ().toString ()).equalsIgnoreCase (columnName ));
479
481
}
480
482
481
483
private boolean hasShardingColumn (BaseTableConfig tc , String columnName ) {
@@ -571,9 +573,11 @@ private void parseAggGroupCommon(ShardingService service, SchemaConfig schema, S
571
573
mysqlSelectQuery , rrs , service .getCharset ().getResultsIndex ());
572
574
573
575
if (isDistinct ) {
574
- rrs .changeNodeSqlAfterAddLimit (statementToString (stmt ), 0 , -1 );
576
+ String sql = RouterUtil .removeSchema (statementToString (stmt ), schema .getName ());
577
+ rrs .changeNodeSqlAfterAddLimit (sql , 0 , -1 );
575
578
} else if (isGroupByColPushSelectList ) {
576
- rrs .changeNodeSqlAfterAddLimit (statementToString (stmt ), rrs .getLimitStart (), rrs .getLimitSize ());
579
+ String sql = RouterUtil .removeSchema (statementToString (stmt ), schema .getName ());
580
+ rrs .changeNodeSqlAfterAddLimit (sql , rrs .getLimitStart (), rrs .getLimitSize ());
577
581
}
578
582
}
579
583
@@ -614,13 +618,17 @@ private LinkedList<Item> handleSelectItems(List<SQLSelectItem> selectList, Route
614
618
String tName ;
615
619
String cName ;
616
620
if (sel .getExpr () instanceof SQLPropertyExpr ) {
617
- SQLPropertyExpr seli = (SQLPropertyExpr ) sel .getExpr ();
618
621
if (sel .getAlias () != null ) {
619
622
tName = tableName ;
620
623
cName = sel .getAlias ();
621
624
} else {
622
- tName = seli .getOwner ().toString ();
623
- cName = seli .getName ();
625
+ SQLPropertyExpr seli = (SQLPropertyExpr ) sel .getExpr ();
626
+ if (seli .getOwner () instanceof SQLPropertyExpr ) {
627
+ tName = ((SQLPropertyExpr ) seli .getOwner ()).getSimpleName ();
628
+ } else {
629
+ tName = seli .getOwner ().toString ();
630
+ }
631
+ cName = seli .getSimpleName ();
624
632
}
625
633
} else {
626
634
tName = tableName ;
@@ -680,7 +688,7 @@ private String[] buildGroupByCols(List<SQLExpr> groupByItems, Map<String, String
680
688
* eg:select id from (select h.id from hotnews h union
681
689
* select h.title from hotnews h ) as t1 group by t1.id;
682
690
*/
683
- column = sqlExpr . toString ();
691
+ column = (( SQLPropertyExpr ) sqlExpr ). getSimpleName ();
684
692
}
685
693
if (column == null ) {
686
694
column = sqlExpr .toString ();
0 commit comments