Skip to content

Commit c8590ec

Browse files
committed
[fix][core] Modify function aliases and remove expr
1 parent a4c5880 commit c8590ec

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

core/src/main/java/org/apache/calcite/sql/SqlUtil.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -838,6 +838,14 @@ public static String deriveAliasFromOrdinal(int ordinal) {
838838
return GENERATED_EXPR_ALIAS_PREFIX + ordinal;
839839
}
840840

841+
public static String deriveAliasFromSqlNode(SqlNode sqlNode) {
842+
if (sqlNode instanceof SqlCharStringLiteral) {
843+
return ((SqlCharStringLiteral) sqlNode).toValue();
844+
}
845+
String deriveAlias = Util.replace(sqlNode.toString(), "`", "");
846+
return deriveAlias;
847+
}
848+
841849
/**
842850
* Whether the alias is generated by calcite.
843851
* @param alias not null

core/src/main/java/org/apache/calcite/sql/validate/SqlValidatorUtil.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -361,7 +361,11 @@ public static String alias(SqlNode node, int ordinal) {
361361
if (ordinal < 0) {
362362
return null;
363363
} else {
364-
return SqlUtil.deriveAliasFromOrdinal(ordinal);
364+
String alias = SqlUtil.deriveAliasFromSqlNode(node);
365+
if(alias.length()>255){
366+
return SqlUtil.deriveAliasFromOrdinal(ordinal);
367+
}
368+
return alias;
365369
}
366370
}
367371
}

0 commit comments

Comments
 (0)