[fix](nereids) bucket shuffle and colocate join is not correctly recognized (#17807)

1. close (https://github.com/apache/doris/issues/16458) for nereids
2. varchar and string type should be treated as same type in bucket shuffle join scenario.
```
create table shuffle_join_t1 ( a varchar(10) not null )
create table shuffle_join_t2 ( a varchar(5) not null, b string not null, c char(3) not null )
```
the bellow 2 sqls can use bucket shuffle join
```
select * from shuffle_join_t1 t1 left join shuffle_join_t2 t2 on t1.a = t2.a;
select * from shuffle_join_t1 t1 left join shuffle_join_t2 t2 on t1.a = t2.b;
```
3. PushdownExpressionsInHashCondition should consider both hash and other conjuncts
4. visitPhysicalProject should handle MarkJoinSlotReference
This commit is contained in:
starocean999
2023-03-24 19:21:41 +08:00
committed by GitHub
parent 562f572311
commit 7bdd854fdc
21 changed files with 438 additions and 76 deletions

View File

@ -372,6 +372,11 @@ public abstract class Type {
|| isScalarType(PrimitiveType.STRING);
}
public boolean isVarcharOrStringType() {
return isScalarType(PrimitiveType.VARCHAR)
|| isScalarType(PrimitiveType.STRING);
}
public boolean isVarchar() {
return isScalarType(PrimitiveType.VARCHAR);
}