From 72b32fcd53f2d0d81329298a6c0a7d08e084f769 Mon Sep 17 00:00:00 2001 From: Sergey Nuyanzin Date: Thu, 12 Dec 2024 13:17:13 +0100 Subject: [PATCH] [FLINK-36896][table] Table API `trim()` expression incorrectly translated to SQL --- .../table/expressions/ExpressionSerializationTest.java | 6 +++--- .../org/apache/flink/table/functions/SqlCallSyntax.java | 8 ++++---- 2 files changed, 7 insertions(+), 7 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 a1dce0724c64a..c94191755c0c1 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 @@ -172,13 +172,13 @@ public static Stream testData() { .expectStr("POSITION(`f0` IN 'ABC')"), TestSpec.forExpr($("f0").trim("ABC")) .withField("f0", DataTypes.STRING()) - .expectStr("TRIM BOTH 'ABC' FROM `f0`"), + .expectStr("TRIM(BOTH 'ABC' FROM `f0`)"), TestSpec.forExpr($("f0").trimLeading("ABC")) .withField("f0", DataTypes.STRING()) - .expectStr("TRIM LEADING 'ABC' FROM `f0`"), + .expectStr("TRIM(LEADING 'ABC' FROM `f0`)"), TestSpec.forExpr($("f0").trimTrailing("ABC")) .withField("f0", DataTypes.STRING()) - .expectStr("TRIM TRAILING 'ABC' FROM `f0`"), + .expectStr("TRIM(TRAILING 'ABC' FROM `f0`)"), TestSpec.forExpr($("f0").overlay("ABC", 2)) .withField("f0", DataTypes.STRING()) .expectStr("OVERLAY(`f0` PLACING 'ABC' FROM 2)"), 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 7552457bd9e1d..5193c256e372c 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 @@ -233,13 +233,13 @@ private String doUnParse( // leading & trailing is translated to BOTH if (trimLeading && trimTrailing) { - format = "TRIM BOTH %s FROM %s"; + format = "TRIM(BOTH %s FROM %s)"; } else if (trimLeading) { - format = "TRIM LEADING %s FROM %s"; + format = "TRIM(LEADING %s FROM %s)"; } else if (trimTrailing) { - format = "TRIM TRAILING %s FROM %s"; + format = "TRIM(TRAILING %s FROM %s)"; } else { - format = "TRIM %s FROM %s"; + format = "TRIM(%s FROM %s)"; } return String.format(