Skip to content

Commit e79bf2f

Browse files
guojn1githubgxll
authored andcommitted
[fix][dingo-calcite] Add substr function; support charLiteral alias
1 parent da13610 commit e79bf2f

File tree

3 files changed

+7
-3
lines changed

3 files changed

+7
-3
lines changed

dingo-calcite/src/main/java/io/dingodb/calcite/DingoParser.java

+5-3
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@
7272
import io.dingodb.calcite.program.DecorrelateProgram;
7373
import io.dingodb.calcite.rel.DingoCost;
7474
import io.dingodb.calcite.rel.LogicalExportData;
75-
import io.dingodb.calcite.rel.LogicalForUpdate;
7675
import io.dingodb.calcite.rel.logical.LogicalDingoRoot;
7776
import io.dingodb.calcite.rule.DingoRules;
7877
import io.dingodb.calcite.runtime.DingoResource;
@@ -97,7 +96,6 @@
9796
import org.apache.calcite.plan.ConventionTraitDef;
9897
import org.apache.calcite.plan.RelOptCluster;
9998
import org.apache.calcite.plan.RelOptRule;
100-
import org.apache.calcite.plan.RelOptTable;
10199
import org.apache.calcite.plan.RelTraitSet;
102100
import org.apache.calcite.plan.ViewExpanders;
103101
import org.apache.calcite.plan.volcano.AbstractConverter;
@@ -198,6 +196,11 @@ public boolean isOffsetLimitAllowed() {
198196
public boolean isInsertSubsetColumnsAllowed() {
199197
return false;
200198
}
199+
200+
@Override
201+
public boolean allowCharLiteralAlias() {
202+
return true;
203+
}
201204
});
202205

203206
@Getter
@@ -213,7 +216,6 @@ public boolean isInsertSubsetColumnsAllowed() {
213216

214217
public DingoParser(final @NonNull DingoParserContext context) {
215218
this.context = context;
216-
217219
// Create Planner.
218220
planner = new VolcanoPlanner(DingoCost.FACTORY, context);
219221
// Set to `true` to use `TopDownRuleDriver`, or `IterativeRuleDriver` is used.

dingo-calcite/src/main/java/io/dingodb/calcite/fun/DingoOperatorTable.java

+1
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ private void init() {
111111
funMap.put("NOW", SqlStdOperatorTable.CURRENT_TIMESTAMP);
112112
funMap.put("CURDATE", SqlStdOperatorTable.CURRENT_DATE);
113113
funMap.put("CURTIME", SqlStdOperatorTable.CURRENT_TIME);
114+
funMap.put("SUBSTR", SqlStdOperatorTable.SUBSTRING);
114115

115116
// number
116117
registerFunction(

dingo-exec/src/main/java/io/dingodb/exec/fun/DingoFunFactory.java

+1
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ private DingoFunFactory() {
4747
super(ExprConfig.ADVANCED);
4848
registerBinaryFun(SUBSTRING, Exprs.MID2);
4949
registerTertiaryFun(SUBSTRING, Exprs.MID3);
50+
registerTertiaryFun("SUBSTR", Exprs.MID3);
5051
registerBinaryFun(PowFunFactory.NAME, PowFunFactory.INSTANCE);
5152
registerNullaryFun(ThrowFun.NAME, ThrowFun.INSTANCE);
5253

0 commit comments

Comments
 (0)