Skip to content

Commit

Permalink
fix WhenClause
Browse files Browse the repository at this point in the history
  • Loading branch information
924060929 committed Jul 29, 2024
1 parent 0b43fa9 commit bd49bb6
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -38,20 +38,16 @@ public class JvmService {

private final JvmInfo jvmInfo;

private JvmStats jvmStats;

public JvmService() {
this.jvmInfo = JvmInfo.jvmInfo();
this.jvmStats = JvmStats.jvmStats();
}

public JvmInfo info() {
return this.jvmInfo;
}

public synchronized JvmStats stats() {
jvmStats = JvmStats.jvmStats();
return jvmStats;
return JvmStats.jvmStats();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import org.apache.doris.nereids.trees.expressions.Expression;
import org.apache.doris.nereids.trees.expressions.NamedExpression;
import org.apache.doris.nereids.trees.expressions.Slot;
import org.apache.doris.nereids.trees.expressions.WhenClause;
import org.apache.doris.nereids.trees.expressions.visitor.DefaultExpressionRewriter;
import org.apache.doris.nereids.trees.plans.Plan;
import org.apache.doris.nereids.trees.plans.logical.LogicalProject;
Expand Down Expand Up @@ -114,7 +115,9 @@ public Expression visit(Expression expression, ReplacerContext ctx) {
if (input.isEmpty() || expression instanceof Slot) {
return expression;
}
if (ctx.leftSlots.containsAll(input)) {
if (expression instanceof WhenClause) {
return super.visit(expression, ctx);
} else if (ctx.leftSlots.containsAll(input)) {
Alias alias = ctx.aliasMap.computeIfAbsent(expression, o -> new Alias(o));
ctx.leftAlias.add(alias);
return alias.toSlot();
Expand Down
38 changes: 38 additions & 0 deletions regression-test/suites/nereids_syntax_p0/join.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -273,4 +273,42 @@ suite("join") {
"""

order_qt_test "SELECT * FROM lineorder RIGHT SEMI JOIN supplier ON lineorder.lo_suppkey = supplier.s_suppkey and s_name='Supplier#000000029';"

multi_sql """
drop table if exists table_test1;
drop table if exists table_test2;
CREATE TABLE table_test1 (
id VARCHAR(20) NULL,
long1 BIGINT NULL,
long2 BIGINT NULL,
) ENGINE=OLAP
DUPLICATE KEY(id)
COMMENT 'olap'
DISTRIBUTED BY HASH(id) BUCKETS AUTO
PROPERTIES (
"replication_allocation" = "tag.location.default: 1"
);
CREATE TABLE table_test2 (
id VARCHAR(20) NULL,
re_long_4 BIGINT NULL,
) ENGINE=OLAP
DUPLICATE KEY(id)
COMMENT 'olap'
DISTRIBUTED BY HASH(id) BUCKETS AUTO
PROPERTIES (
"replication_allocation" = "tag.location.default: 1"
);
SELECT 1
from table_test1 b
WHERE (
CASE
WHEN b.long2=(SELECT re_long_4 FROM table_test2 limit 1) THEN (select long1 from table_test1 limit 1 )
WHEN b.long2=(SELECT re_long_4 FROM table_test2 limit 1) THEN (select long1 from table_test1 limit 1)
ELSE b.long2
END
)>0;
"""
}

0 comments on commit bd49bb6

Please sign in to comment.