protected boolean canConvertMapJoinToBucketMapJoin(
MapJoinOperator mapJoinOp,
ParseContext pGraphContext,
BucketJoinProcCtx context) throws SemanticException {
QBJoinTree joinCtx = pGraphContext.getMapJoinContext().get(mapJoinOp);
if (joinCtx == null) {
return false;
}
List<String> joinAliases = new ArrayList<String>();
String[] srcs = joinCtx.getBaseSrc();
String[] left = joinCtx.getLeftAliases();
List<String> mapAlias = joinCtx.getMapAliases();
String baseBigAlias = null;
for (String s : left) {
if (s != null) {
String subQueryAlias = QB.getAppendedAliasFromId(joinCtx.getId(), s);
if (!joinAliases.contains(subQueryAlias)) {
joinAliases.add(subQueryAlias);
if (!mapAlias.contains(s)) {
baseBigAlias = subQueryAlias;
}
}
}
}
for (String s : srcs) {
if (s != null) {
String subQueryAlias = QB.getAppendedAliasFromId(joinCtx.getId(), s);
if (!joinAliases.contains(subQueryAlias)) {
joinAliases.add(subQueryAlias);
if (!mapAlias.contains(s)) {
baseBigAlias = subQueryAlias;
}