[feature](fe) support ANSI standard keyword for CURRENT_XXX #30550
support ANSI standard keywords: CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP LOCALTIME LOCALTIMESTAMP CURRENT_USER mysql> SELECT CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, LOCALTIME, LOCALTIMESTAMP, CURRENT_USER; +--------------+--------------+---------------------+-----------+---------------------+--------------+ | CURRENT_DATE | CURRENT_TIME | CURRENT_TIMESTAMP | LOCALTIME | LOCALTIMESTAMP | CURRENT_USER | +--------------+--------------+---------------------+-----------+---------------------+--------------+ | 2024-01-31 | 03:53:20 | 2024-01-31 03:53:20 | 03:53:20 | 2024-01-31 03:53:20 | 'root'@'%' | +--------------+--------------+---------------------+-----------+---------------------+--------------+ 1 row in set (0.07 sec)
This commit is contained in:
@ -262,6 +262,9 @@ import org.apache.doris.nereids.trees.expressions.functions.scalar.Array;
|
||||
import org.apache.doris.nereids.trees.expressions.functions.scalar.ArraySlice;
|
||||
import org.apache.doris.nereids.trees.expressions.functions.scalar.Char;
|
||||
import org.apache.doris.nereids.trees.expressions.functions.scalar.ConvertTo;
|
||||
import org.apache.doris.nereids.trees.expressions.functions.scalar.CurrentDate;
|
||||
import org.apache.doris.nereids.trees.expressions.functions.scalar.CurrentTime;
|
||||
import org.apache.doris.nereids.trees.expressions.functions.scalar.CurrentUser;
|
||||
import org.apache.doris.nereids.trees.expressions.functions.scalar.DayCeil;
|
||||
import org.apache.doris.nereids.trees.expressions.functions.scalar.DayFloor;
|
||||
import org.apache.doris.nereids.trees.expressions.functions.scalar.DaysAdd;
|
||||
@ -285,6 +288,7 @@ import org.apache.doris.nereids.trees.expressions.functions.scalar.MonthFloor;
|
||||
import org.apache.doris.nereids.trees.expressions.functions.scalar.MonthsAdd;
|
||||
import org.apache.doris.nereids.trees.expressions.functions.scalar.MonthsDiff;
|
||||
import org.apache.doris.nereids.trees.expressions.functions.scalar.MonthsSub;
|
||||
import org.apache.doris.nereids.trees.expressions.functions.scalar.Now;
|
||||
import org.apache.doris.nereids.trees.expressions.functions.scalar.SecondCeil;
|
||||
import org.apache.doris.nereids.trees.expressions.functions.scalar.SecondFloor;
|
||||
import org.apache.doris.nereids.trees.expressions.functions.scalar.SecondsAdd;
|
||||
@ -1751,6 +1755,36 @@ public class LogicalPlanBuilder extends DorisParserBaseVisitor<Object> {
|
||||
+ ", supported time unit: YEAR/MONTH/WEEK/DAY/HOUR/MINUTE/SECOND", ctx);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Expression visitCurrentDate(DorisParser.CurrentDateContext ctx) {
|
||||
return new CurrentDate().alias("CURRENT_DATE");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Expression visitCurrentTime(DorisParser.CurrentTimeContext ctx) {
|
||||
return new CurrentTime().alias("CURRENT_TIME");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Expression visitCurrentTimestamp(DorisParser.CurrentTimestampContext ctx) {
|
||||
return new Now().alias("CURRENT_TIMESTAMP");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Expression visitLocalTime(DorisParser.LocalTimeContext ctx) {
|
||||
return new CurrentTime().alias("LOCALTIME");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Expression visitLocalTimestamp(DorisParser.LocalTimestampContext ctx) {
|
||||
return new Now().alias("LOCALTIMESTAMP");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Expression visitCurrentUser(DorisParser.CurrentUserContext ctx) {
|
||||
return new CurrentUser().alias("CURRENT_USER");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Expression visitDoublePipes(DorisParser.DoublePipesContext ctx) {
|
||||
return ParserUtils.withOrigin(ctx, () -> {
|
||||
|
||||
Reference in New Issue
Block a user