Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -889,7 +889,6 @@ private void setColumnsDefineExpr(List<MVColumnItem> mvColumnItemList) {
for (Column column : rollupSchema) {
if (column.getName().equals(mvColumnItem.getName())) {
Expr defineExpr = mvColumnItem.getDefineExpr();
defineExpr.disableTableName();
column.setDefineExpr(defineExpr);
break;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ public static AggregateInfo create(
for (int i = 0; i < aggExprSize; i++) {
result.materializedSlots.add(i);
String label = (isPartialAgg ? "partial_" : "")
+ aggExprs.get(i).toSql() + "[#" + aggExprIds.get(i) + "]";
+ aggExprs.get(i).accept(ExprToSqlVisitor.INSTANCE, null) + "[#" + aggExprIds.get(i) + "]";
result.materializedSlotLabels.add(label);
}
return result;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,6 @@

package org.apache.doris.analysis;

import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.thrift.TAnalyticWindow;
import org.apache.doris.thrift.TAnalyticWindowBoundary;
import org.apache.doris.thrift.TAnalyticWindowBoundaryType;
Expand Down Expand Up @@ -130,19 +128,7 @@ public String toSql() {
StringBuilder sb = new StringBuilder();

if (expr != null) {
sb.append(expr.toSql()).append(" ");
}

sb.append(type.toString());
return sb.toString();
}

public String toSql(boolean disableTableName, boolean needExternalSql, TableType tableType,
TableIf table) {
StringBuilder sb = new StringBuilder();

if (expr != null) {
sb.append(expr.toSql(disableTableName, needExternalSql, tableType, table)).append(" ");
sb.append(expr.accept(ExprToSqlVisitor.INSTANCE, null)).append(" ");
}

sb.append(type.toString());
Expand Down Expand Up @@ -235,26 +221,6 @@ public String toSql() {
return sb.toString();
}

public String toSql(boolean disableTableName, boolean needExternalSql, TableType tableType,
TableIf table) {
if (toSqlString != null) {
return toSqlString;
}

StringBuilder sb = new StringBuilder();
sb.append(type.toString()).append(" ");

if (rightBoundary == null) {
sb.append(leftBoundary.toSql(disableTableName, needExternalSql, tableType, table));
} else {
sb.append("BETWEEN ").append(leftBoundary.toSql(disableTableName, needExternalSql, tableType, table))
.append(" AND ");
sb.append(rightBoundary.toSql(disableTableName, needExternalSql, tableType, table));
}

return sb.toString();
}

public TAnalyticWindow toThrift() {
TAnalyticWindow result = new TAnalyticWindow(type.toThrift());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,6 @@

import org.apache.doris.catalog.Function;
import org.apache.doris.catalog.Function.NullableMode;
import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.catalog.Type;
import org.apache.doris.thrift.TExprNode;
import org.apache.doris.thrift.TExprNodeType;
Expand Down Expand Up @@ -74,7 +72,7 @@ public TExprOpcode getOpcode() {
}

@SerializedName("op")
private final Operator op;
final Operator op;

/**
* constructor only used for Nereids.
Expand Down Expand Up @@ -107,7 +105,7 @@ protected ArithmeticExpr(ArithmeticExpr other) {

@Override
public String toString() {
return toSql();
return accept(ExprToSqlVisitor.INSTANCE, null);
}

@Override
Expand All @@ -116,23 +114,8 @@ public Expr clone() {
}

@Override
public String toSqlImpl() {
if (children.size() == 1) {
return op.toString() + " " + getChild(0).toSql();
} else {
return "(" + getChild(0).toSql() + " " + op.toString() + " " + getChild(1).toSql() + ")";
}
}

@Override
public String toSqlImpl(boolean disableTableName, boolean needExternalSql, TableType tableType,
TableIf table) {
if (children.size() == 1) {
return op.toString() + " " + getChild(0).toSql(disableTableName, needExternalSql, tableType, table);
} else {
return "(" + getChild(0).toSql(disableTableName, needExternalSql, tableType, table) + " " + op.toString()
+ " " + getChild(1).toSql(disableTableName, needExternalSql, tableType, table) + ")";
}
public <R, C> R accept(ExprVisitor<R, C> visitor, C context) {
return visitor.visitArithmeticExpr(this, context);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,6 @@
package org.apache.doris.analysis;

import org.apache.doris.catalog.ArrayType;
import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.catalog.Type;
import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.FormatOptions;
Expand Down Expand Up @@ -69,20 +67,8 @@ public int compareLiteral(LiteralExpr expr) {
}

@Override
protected String toSqlImpl() {
List<String> list = new ArrayList<>(children.size());
children.forEach(v -> list.add(v.toSqlImpl()));

return "[" + StringUtils.join(list, ", ") + "]";
}

@Override
protected String toSqlImpl(boolean disableTableName, boolean needExternalSql, TableType tableType,
TableIf table) {
List<String> list = new ArrayList<>(children.size());
children.forEach(v -> list.add(v.toSqlImpl(disableTableName, needExternalSql, tableType, table)));

return "[" + StringUtils.join(list, ", ") + "]";
public <R, C> R accept(ExprVisitor<R, C> visitor, C context) {
return visitor.visitArrayLiteral(this, context);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,6 @@

package org.apache.doris.analysis;

import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.thrift.TExprNode;

import com.google.gson.annotations.SerializedName;
Expand All @@ -34,7 +32,7 @@
@Deprecated
public class BetweenPredicate extends Predicate {
@SerializedName("inb")
private boolean isNotBetween;
boolean isNotBetween;

private BetweenPredicate() {
// use for serde only
Expand All @@ -57,19 +55,8 @@ protected void toThrift(TExprNode msg) {
}

@Override
public String toSqlImpl() {
String notStr = (isNotBetween) ? "NOT " : "";
return children.get(0).toSql() + " " + notStr + "BETWEEN "
+ children.get(1).toSql() + " AND " + children.get(2).toSql();
}

@Override
public String toSqlImpl(boolean disableTableName, boolean needExternalSql, TableType tableType,
TableIf table) {
String notStr = (isNotBetween) ? "NOT " : "";
return children.get(0).toSql(disableTableName, needExternalSql, tableType, table) + " " + notStr + "BETWEEN "
+ children.get(1).toSql(disableTableName, needExternalSql, tableType, table) + " AND " + children.get(2)
.toSql(disableTableName, needExternalSql, tableType, table);
public <R, C> R accept(ExprVisitor<R, C> visitor, C context) {
return visitor.visitBetweenPredicate(this, context);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,6 @@

import org.apache.doris.catalog.Function;
import org.apache.doris.catalog.Function.NullableMode;
import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.catalog.Type;
import org.apache.doris.thrift.TExprNode;
import org.apache.doris.thrift.TExprNodeType;
Expand Down Expand Up @@ -171,16 +169,8 @@ public boolean equals(Object obj) {
}

@Override
public String toSqlImpl() {
return "(" + getChild(0).toSql() + " " + op.toString() + " " + getChild(1).toSql() + ")";
}

@Override
public String toSqlImpl(boolean disableTableName, boolean needExternalSql, TableType tableType,
TableIf table) {
return "(" + getChild(0).toSql(disableTableName, needExternalSql, tableType, table)
+ " " + op.toString() + " "
+ getChild(1).toSql(disableTableName, needExternalSql, tableType, table) + ")";
public <R, C> R accept(ExprVisitor<R, C> visitor, C context) {
return visitor.visitBinaryPredicate(this, context);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@
package org.apache.doris.analysis;

import org.apache.doris.catalog.PrimitiveType;
import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.catalog.Type;
import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.FormatOptions;
Expand Down Expand Up @@ -104,14 +102,8 @@ public int compareLiteral(LiteralExpr expr) {
}

@Override
public String toSqlImpl() {
return value ? "TRUE" : "FALSE";
}

@Override
public String toSqlImpl(boolean disableTableName, boolean needExternalSql, TableType tableType,
TableIf table) {
return value ? "TRUE" : "FALSE";
public <R, C> R accept(ExprVisitor<R, C> visitor, C context) {
return visitor.visitBoolLiteral(this, context);
}

@Override
Expand Down
46 changes: 4 additions & 42 deletions fe/fe-core/src/main/java/org/apache/doris/analysis/CaseExpr.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,6 @@

package org.apache.doris.analysis;

import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.qe.ConnectContext;
import org.apache.doris.thrift.TCaseExpr;
import org.apache.doris.thrift.TExprNode;
Expand Down Expand Up @@ -66,9 +64,9 @@
*/
public class CaseExpr extends Expr {
@SerializedName("hce")
private boolean hasCaseExpr;
boolean hasCaseExpr;
@SerializedName("hee")
private boolean hasElseExpr;
boolean hasElseExpr;

private CaseExpr() {
// use for serde only
Expand Down Expand Up @@ -119,44 +117,8 @@ public boolean equals(Object obj) {
}

@Override
public String toSqlImpl() {
StringBuilder output = new StringBuilder("CASE");
int childIdx = 0;
if (hasCaseExpr) {
output.append(' ').append(children.get(childIdx++).toSql());
}
while (childIdx + 2 <= children.size()) {
output.append(" WHEN " + children.get(childIdx++).toSql());
output.append(" THEN " + children.get(childIdx++).toSql());
}
if (hasElseExpr) {
output.append(" ELSE " + children.get(children.size() - 1).toSql());
}
output.append(" END");
return output.toString();
}

@Override
public String toSqlImpl(boolean disableTableName, boolean needExternalSql, TableType tableType,
TableIf table) {
StringBuilder output = new StringBuilder("CASE");
int childIdx = 0;
if (hasCaseExpr) {
output.append(' ')
.append(children.get(childIdx++).toSql(disableTableName, needExternalSql, tableType, table));
}
while (childIdx + 2 <= children.size()) {
output.append(
" WHEN " + children.get(childIdx++).toSql(disableTableName, needExternalSql, tableType, table));
output.append(
" THEN " + children.get(childIdx++).toSql(disableTableName, needExternalSql, tableType, table));
}
if (hasElseExpr) {
output.append(" ELSE " + children.get(children.size() - 1)
.toSql(disableTableName, needExternalSql, tableType, table));
}
output.append(" END");
return output.toString();
public <R, C> R accept(ExprVisitor<R, C> visitor, C context) {
return visitor.visitCaseExpr(this, context);
}

@Override
Expand Down
15 changes: 2 additions & 13 deletions fe/fe-core/src/main/java/org/apache/doris/analysis/CastExpr.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,6 @@

package org.apache.doris.analysis;

import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.catalog.Type;
import org.apache.doris.common.FormatOptions;
import org.apache.doris.thrift.TExpr;
Expand Down Expand Up @@ -83,17 +81,8 @@ public Expr clone() {
}

@Override
public String toSqlImpl() {
return "CAST(" + getChild(0).toSql() + " AS " + type.toSql() + ")";
}

@Override
public String toSqlImpl(boolean disableTableName, boolean needExternalSql, TableType tableType, TableIf table) {
if (needExternalSql) {
return getChild(0).toSql(disableTableName, needExternalSql, tableType, table);
}
return "CAST(" + getChild(0).toSql(disableTableName, needExternalSql, tableType, table) + " AS "
+ type.toSql() + ")";
public <R, C> R accept(ExprVisitor<R, C> visitor, C context) {
return visitor.visitCastExpr(this, context);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@

package org.apache.doris.analysis;

import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.nereids.util.Utils;
import org.apache.doris.thrift.TColumnRef;
import org.apache.doris.thrift.TExprNode;
Expand Down Expand Up @@ -62,14 +60,8 @@ public void setColumnId(int id) {
}

@Override
protected String toSqlImpl() {
return columnName;
}

@Override
protected String toSqlImpl(boolean disableTableName, boolean needExternalSql, TableType tableType,
TableIf table) {
return columnName;
public <R, C> R accept(ExprVisitor<R, C> visitor, C context) {
return visitor.visitColumnRefExpr(this, context);
}

@Override
Expand Down
Loading