This is an automated email from the ASF dual-hosted git repository.

dwysakowicz pushed a commit to branch release-1.20
in repository https://gitbox.apache.org/repos/asf/flink.git


The following commit(s) were added to refs/heads/release-1.20 by this push:
     new bbe1946923e [FLINK-36840][table] Add correct call syntax for functions 
without `()` (#25756)
bbe1946923e is described below

commit bbe1946923ec72d0fb0af7199adc6314ba4fc128
Author: Gustavo de Morais <[email protected]>
AuthorDate: Fri Dec 6 17:44:11 2024 +0100

    [FLINK-36840][table] Add correct call syntax for functions without `()` 
(#25756)
---
 .../flink/table/expressions/ExpressionSerializationTest.java      | 8 +++++---
 .../apache/flink/table/functions/BuiltInFunctionDefinitions.java  | 5 +++++
 .../main/java/org/apache/flink/table/functions/SqlCallSyntax.java | 6 ++++++
 3 files changed, 16 insertions(+), 3 deletions(-)

diff --git 
a/flink-table/flink-table-api-java/src/test/java/org/apache/flink/table/expressions/ExpressionSerializationTest.java
 
b/flink-table/flink-table-api-java/src/test/java/org/apache/flink/table/expressions/ExpressionSerializationTest.java
index cee99c63273..a1dce0724c6 100644
--- 
a/flink-table/flink-table-api-java/src/test/java/org/apache/flink/table/expressions/ExpressionSerializationTest.java
+++ 
b/flink-table/flink-table-api-java/src/test/java/org/apache/flink/table/expressions/ExpressionSerializationTest.java
@@ -349,9 +349,11 @@ public class ExpressionSerializationTest {
                         .withField("f0", DataTypes.TIMESTAMP())
                         .withField("f1", DataTypes.TIMESTAMP())
                         .expectStr("TIMESTAMPDIFF(DAY, `f0`, `f1`)"),
-                
TestSpec.forExpr(Expressions.currentDate()).expectStr("CURRENT_DATE()"),
-                
TestSpec.forExpr(Expressions.currentTime()).expectStr("CURRENT_TIME()"),
-                
TestSpec.forExpr(Expressions.currentTimestamp()).expectStr("CURRENT_TIMESTAMP()"),
+                
TestSpec.forExpr(Expressions.currentDate()).expectStr("CURRENT_DATE"),
+                
TestSpec.forExpr(Expressions.currentTime()).expectStr("CURRENT_TIME"),
+                
TestSpec.forExpr(Expressions.currentTimestamp()).expectStr("CURRENT_TIMESTAMP"),
+                
TestSpec.forExpr(Expressions.localTimestamp()).expectStr("LOCALTIMESTAMP"),
+                
TestSpec.forExpr(Expressions.localTime()).expectStr("LOCALTIME"),
                 TestSpec.forExpr(Expressions.dateFormat($("f0"), 
lit("yyyy-MM-dd")))
                         .withField("f0", DataTypes.TIMESTAMP(3))
                         .expectStr("DATE_FORMAT(`f0`, 'yyyy-MM-dd')"),
diff --git 
a/flink-table/flink-table-common/src/main/java/org/apache/flink/table/functions/BuiltInFunctionDefinitions.java
 
b/flink-table/flink-table-common/src/main/java/org/apache/flink/table/functions/BuiltInFunctionDefinitions.java
index 80204ceeff6..9e58e1ca937 100644
--- 
a/flink-table/flink-table-common/src/main/java/org/apache/flink/table/functions/BuiltInFunctionDefinitions.java
+++ 
b/flink-table/flink-table-common/src/main/java/org/apache/flink/table/functions/BuiltInFunctionDefinitions.java
@@ -1863,6 +1863,7 @@ public final class BuiltInFunctionDefinitions {
             BuiltInFunctionDefinition.newBuilder()
                     .name("currentDate")
                     .sqlName("CURRENT_DATE")
+                    .callSyntax(SqlCallSyntax.NO_PARENTHESIS)
                     .kind(SCALAR)
                     .outputTypeStrategy(explicit(DATE().notNull()))
                     .build();
@@ -1871,6 +1872,7 @@ public final class BuiltInFunctionDefinitions {
             BuiltInFunctionDefinition.newBuilder()
                     .name("currentTime")
                     .sqlName("CURRENT_TIME")
+                    .callSyntax(SqlCallSyntax.NO_PARENTHESIS)
                     .kind(SCALAR)
                     .outputTypeStrategy(explicit(TIME().notNull()))
                     .build();
@@ -1878,6 +1880,7 @@ public final class BuiltInFunctionDefinitions {
     public static final BuiltInFunctionDefinition LOCAL_TIME =
             BuiltInFunctionDefinition.newBuilder()
                     .name("localTime")
+                    .callSyntax(SqlCallSyntax.NO_PARENTHESIS)
                     .kind(SCALAR)
                     .outputTypeStrategy(explicit(TIME().notNull()))
                     .build();
@@ -1886,6 +1889,7 @@ public final class BuiltInFunctionDefinitions {
             BuiltInFunctionDefinition.newBuilder()
                     .name("currentTimestamp")
                     .sqlName("CURRENT_TIMESTAMP")
+                    .callSyntax(SqlCallSyntax.NO_PARENTHESIS)
                     .kind(SCALAR)
                     .outputTypeStrategy(explicit(TIMESTAMP_LTZ(3).notNull()))
                     .build();
@@ -1909,6 +1913,7 @@ public final class BuiltInFunctionDefinitions {
     public static final BuiltInFunctionDefinition LOCAL_TIMESTAMP =
             BuiltInFunctionDefinition.newBuilder()
                     .name("localTimestamp")
+                    .callSyntax(SqlCallSyntax.NO_PARENTHESIS)
                     .kind(SCALAR)
                     .outputTypeStrategy(explicit(TIMESTAMP(3).notNull()))
                     .build();
diff --git 
a/flink-table/flink-table-common/src/main/java/org/apache/flink/table/functions/SqlCallSyntax.java
 
b/flink-table/flink-table-common/src/main/java/org/apache/flink/table/functions/SqlCallSyntax.java
index 479ca8d9be3..3052d0001f3 100644
--- 
a/flink-table/flink-table-common/src/main/java/org/apache/flink/table/functions/SqlCallSyntax.java
+++ 
b/flink-table/flink-table-common/src/main/java/org/apache/flink/table/functions/SqlCallSyntax.java
@@ -69,6 +69,12 @@ public interface SqlCallSyntax {
                 }
             };
 
+    /**
+     * Function syntax for functions without parenthesis (e.g., CURRENT_DATE, 
LOCALTIMESTAMP,
+     * LOCALTIME, CURRENT_TIMESTAMP, CURRENT_TIME).
+     */
+    SqlCallSyntax NO_PARENTHESIS = (sqlName, operands) -> sqlName;
+
     /**
      * Function syntax for handling DISTINCT aggregates. Special case. It does 
not have a syntax
      * itself, but modifies the syntax of the nested call.

Reply via email to