Copilot commented on code in PR #4248:
URL: https://github.com/apache/flink-cdc/pull/4248#discussion_r2745225011


##########
docs/content.zh/docs/core-concept/transform.md:
##########
@@ -180,13 +180,17 @@ Flink CDC 使用 [Calcite](https://calcite.apache.org/) 
来解析表达式并且
 | CURRENT_TIMESTAMP                                    | currentTimestamp()    
                               | Returns the current SQL timestamp in the local 
time zone, the return type is TIMESTAMP_LTZ(3).                                 
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
     |
 | NOW()                                                | now()                 
                               | Returns the current SQL timestamp in the local 
time zone, this is a synonym of CURRENT_TIMESTAMP.                              
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
     |
 | DATE_FORMAT(timestamp, string)                       | dateFormat(timestamp, 
string)                        | Converts timestamp to a value of string in the 
format specified by the date format string. The format string is compatible 
with Java's SimpleDateFormat.                                                   
                                                                                
                                                                                
                                                                                
                                                                                
         |
+| DATE_FORMAT(date, string)                            | dateFormat(date, 
string)                             | Converts given date to a value of string 
in the format specified by the format string. The format string is compatible 
with Java's SimpleDateFormat.                                                   
                                                                                
                                                                                
                                                                                
                                                                                
             |                                                                  
                                                                                
                                                                                
                                                                                
                                              
                              |
+| DATE_FORMAT(time, string)                            | dateFormat(time, 
string)                             | Converts given time to a value of string 
in the format specified by the format string. The format string is compatible 
with Java's SimpleDateFormat.                                                   
                                                                                
                                                                                
                                                                                
                                                                                
             |
 | TIMESTAMPADD(timeintervalunit, interval, timepoint)  | 
timestampadd(timeintervalunit, interval, timepoint)  | Returns the timestamp of 
timepoint2 after timepoint added interval. The unit for the interval is given 
by the first argument, which should be one of the following values: SECOND, 
MINUTE, HOUR, DAY, MONTH, or YEAR.                                              
                                                                                
                                                                                
                                                                                
                                 |
 | TIMESTAMPDIFF(timepointunit, timepoint1, timepoint2) | 
timestampDiff(timepointunit, timepoint1, timepoint2) | Returns the (signed) 
number of timepointunit between timepoint1 and timepoint2. The unit for the 
interval is given by the first argument, which should be one of the following 
values: SECOND, MINUTE, HOUR, DAY, MONTH, or YEAR.                              
                                                                                
                                                                                
                                                                                
                                     |
 | TO_DATE(string1[, string2])                          | toDate(string1[, 
string2])                           | Converts a date string string1 with 
format string2 (by default 'yyyy-MM-dd') to a date.                             
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                |
 | TO_TIMESTAMP(string1[, string2])                     | toTimestamp(string1[, 
string2])                      | Converts date time string string1 with format 
string2 (by default: 'yyyy-MM-dd HH:mm:ss') to a timestamp, without time zone.  
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
      |
+| TO_TIMESTAMP_LTZ(string1[, string2])                 | 
toTimestampLtz(string1[, string2])                   | Converts date time 
string string1 with format string2 (by default: 'yyyy-MM-dd HH:mm:ss') to a 
timestamp, with local time zone.                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                     |
 | FROM_UNIXTIME(numeric[, string])                     | 
fromUnixtime(NUMERIC[, STRING])                      | Returns a representation 
of the numeric argument as a value in string format (default is ‘yyyy-MM-dd 
HH:mm:ss’). numeric is an internal timestamp value representing seconds since 
‘1970-01-01 00:00:00’ UTC, such as produced by the UNIX_TIMESTAMP() function. 
The return value is expressed in the session time zone (specified in 
TableConfig). E.g., FROM_UNIXTIME(44) returns ‘1970-01-01 00:00:44’ if in UTC 
time zone, but returns ‘1970-01-01 09:00:44’ if in ‘Asia/Tokyo’ time zone.      
                                                |
 | UNIX_TIMESTAMP()                                     | unixTimestamp()       
                               | Gets current Unix timestamp in seconds. This 
function is not deterministic which means the value would be recalculated for 
each record.                                                                    
                                                                                
                                                                                
                                                                                
                                                                                
         |
 | UNIX_TIMESTAMP(string1[, string2])                   | 
unixTimestamp(STRING1[, STRING2])                    | Converts a date time 
string string1 with format string2 (by default: yyyy-MM-dd HH:mm:ss if not 
specified) to Unix timestamp (in seconds), using the specified timezone in 
table config.<br/>If a time zone is specified in the date time string and 
parsed by UTC+X format such as “yyyy-MM-dd HH:mm:ss.SSS X”, this function will 
use the specified timezone in the date time string instead of the timezone in 
table config. If the date time string can not be parsed, the default value 
Long.MIN_VALUE(-9223372036854775808) will be returned. |
+| DATE_ADD(date, int)                                  | dateAdd(date, int)    
                               | Add N days to given date data.                 
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
     |                                                                          
                                                                                
                                                                                
                                                                                
                                      
                                                                                
                                                                                
                |

Review Comment:
   The newly added DATE_FORMAT_TZ function is implemented in the code 
(TransformSqlOperatorTable.java lines 322-334) and tested (temporal.yaml), but 
is not documented in this file. Users need documentation to understand how to 
use this function, including its parameters and behavior.
   ```suggestion
   | DATE_ADD(date, int)                                  | dateAdd(date, int)  
                                 | Add N days to given date data.               
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
       |
   | DATE_FORMAT_TZ(timestamp, format, timezone)          | 
dateFormatTz(timestamp, format, timezone)            | Formats a timestamp or 
datetime value as a string using the given pattern and the specified time zone. 
The timezone argument can be a time zone ID (for example, 'UTC', 
'Asia/Shanghai') or an offset such as '+08:00'.                                 
                                                                    |
   ```



##########
docs/content/docs/core-concept/transform.md:
##########
@@ -112,91 +112,95 @@ Flink CDC uses [Calcite](https://calcite.apache.org/) to 
parse expressions and [
 
 ## Comparison Functions
 
-| Function             | Janino Code                                  | 
Description                                                     |
-|----------------------|----------------------------------------------|-----------------------------------------------------------------|
-| value1 = value2      | valueEquals(value1, value2)                  | 
Returns TRUE if value1 is equal to value2; returns FALSE if value1 or value2 is 
NULL. |
-| value1 <> value2     | !valueEquals(value1, value2)                 | 
Returns TRUE if value1 is not equal to value2; returns FALSE if value1 or 
value2 is NULL. |
-| value1 > value2      | greaterThan(value1, value2)                  | 
Returns TRUE if value1 is greater than value2; returns FALSE if value1 or 
value2 is NULL. |
-| value1 >= value2     | greaterThanOrEqual(value1, value2)               | 
Returns TRUE if value1 is greater than or equal to value2; returns FALSE if 
value1 or value2 is NULL. |
-| value1 < value2      | lessThan(value1, value2)                         | 
Returns TRUE if value1 is less than value2; returns FALSE if value1 or value2 
is NULL. |
-| value1 <= value2     | lessThanOrEqual(value1, value2)                  | 
Returns TRUE if value1 is less than or equal to value2; returns FALSE if value1 
or value2 is NULL. |
-| value IS NULL        | null == value                                | 
Returns TRUE if value is NULL.                                  |
-| value IS NOT NULL    | null != value                                | 
Returns TRUE if value is not NULL.                              |
-| value1 BETWEEN value2 AND value3 | betweenAsymmetric(value1, value2, value3) 
   | Returns TRUE if value1 is greater than or equal to value2 and less than or 
equal to value3. |
-| value1 NOT BETWEEN value2 AND value3 | notBetweenAsymmetric(value1, value2, 
value3) | Returns TRUE if value1 is less than value2 or greater than value3. |
-| string1 LIKE string2 | like(string1, string2)                       | 
Returns TRUE if string1 matches pattern string2.                |
-| string1 NOT LIKE string2 | notLike(string1, string2)                    | 
Returns TRUE if string1 does not match pattern string2.       |
-| value1 IN (value2 [, value3]* ) | in(value1, value2 [, value3]*)             
  | Returns TRUE if value1 exists in the given list (value2, value3, …). |
-| value1 NOT IN (value2 [, value3]* ) | notIn(value1, value2 [, value3]*)      
      | Returns TRUE if value1 does not exist in the given list (value2, 
value3, …).  |
+| Function                             | Janino Code                           
       | Description                                                            
                               |
+|--------------------------------------|----------------------------------------------|-------------------------------------------------------------------------------------------------------|
+| value1 = value2                      | valueEquals(value1, value2)           
       | Returns TRUE if value1 is equal to value2; returns FALSE if value1 or 
value2 is NULL.                 |
+| value1 <> value2                     | !valueEquals(value1, value2)          
       | Returns TRUE if value1 is not equal to value2; returns FALSE if value1 
or value2 is NULL.             |
+| value1 > value2                      | greaterThan(value1, value2)           
       | Returns TRUE if value1 is greater than value2; returns FALSE if value1 
or value2 is NULL.             |
+| value1 >= value2                     | greaterThanOrEqual(value1, value2)    
       | Returns TRUE if value1 is greater than or equal to value2; returns 
FALSE if value1 or value2 is NULL. |
+| value1 < value2                      | lessThan(value1, value2)              
       | Returns TRUE if value1 is less than value2; returns FALSE if value1 or 
value2 is NULL.                |
+| value1 <= value2                     | lessThanOrEqual(value1, value2)       
       | Returns TRUE if value1 is less than or equal to value2; returns FALSE 
if value1 or value2 is NULL.    |
+| value IS NULL                        | null == value                         
       | Returns TRUE if value is NULL.                                         
                               |
+| value IS NOT NULL                    | null != value                         
       | Returns TRUE if value is not NULL.                                     
                               |
+| value1 BETWEEN value2 AND value3     | betweenAsymmetric(value1, value2, 
value3)    | Returns TRUE if value1 is greater than or equal to value2 and less 
than or equal to value3.           |
+| value1 NOT BETWEEN value2 AND value3 | notBetweenAsymmetric(value1, value2, 
value3) | Returns TRUE if value1 is less than value2 or greater than value3.    
                                |
+| string1 LIKE string2                 | like(string1, string2)                
       | Returns TRUE if string1 matches pattern string2.                       
                               |
+| string1 NOT LIKE string2             | notLike(string1, string2)             
       | Returns TRUE if string1 does not match pattern string2.                
                               |
+| value1 IN (value2 [, value3]* )      | in(value1, value2 [, value3]*)        
       | Returns TRUE if value1 exists in the given list (value2, value3, …).   
                               |
+| value1 NOT IN (value2 [, value3]* )  | notIn(value1, value2 [, value3]*)     
       | Returns TRUE if value1 does not exist in the given list (value2, 
value3, …).                          |
 
 ## Logical Functions
 
-| Function             | Janino Code                 | Description             
                                        |
-|----------------------|-----------------------------|-----------------------------------------------------------------|
-| boolean1 OR boolean2 | boolean1 &#124;&#124; boolean2 | Returns TRUE if 
BOOLEAN1 is TRUE or BOOLEAN2 is TRUE.        |
-| boolean1 AND boolean2 | boolean1 && boolean2       | Returns TRUE if 
BOOLEAN1 and BOOLEAN2 are both TRUE.            |
-| NOT boolean          | !boolean                    | Returns TRUE if boolean 
is FALSE; returns FALSE if boolean is TRUE. |
-| boolean IS FALSE     | false == boolean            | Returns TRUE if boolean 
is FALSE; returns FALSE if boolean is TRUE. |
-| boolean IS NOT FALSE | true == boolean             | Returns TRUE if BOOLEAN 
is TRUE; returns FALSE if BOOLEAN is FALSE. |
-| boolean IS TRUE      | true == boolean             | Returns TRUE if BOOLEAN 
is TRUE; returns FALSE if BOOLEAN is FALSE. |
-| boolean IS NOT TRUE  | false == boolean            | Returns TRUE if boolean 
is FALSE; returns FALSE if boolean is TRUE. |
+| Function              | Janino Code                    | Description         
                                                |
+|-----------------------|--------------------------------|---------------------------------------------------------------------|
+| boolean1 OR boolean2  | boolean1 &#124;&#124; boolean2 | Returns TRUE if 
BOOLEAN1 is TRUE or BOOLEAN2 is TRUE.               |
+| boolean1 AND boolean2 | boolean1 && boolean2           | Returns TRUE if 
BOOLEAN1 and BOOLEAN2 are both TRUE.                |
+| NOT boolean           | !boolean                       | Returns TRUE if 
boolean is FALSE; returns FALSE if boolean is TRUE. |
+| boolean IS FALSE      | false == boolean               | Returns TRUE if 
boolean is FALSE; returns FALSE if boolean is TRUE. |
+| boolean IS NOT FALSE  | true == boolean                | Returns TRUE if 
BOOLEAN is TRUE; returns FALSE if BOOLEAN is FALSE. |
+| boolean IS TRUE       | true == boolean                | Returns TRUE if 
BOOLEAN is TRUE; returns FALSE if BOOLEAN is FALSE. |
+| boolean IS NOT TRUE   | false == boolean               | Returns TRUE if 
boolean is FALSE; returns FALSE if boolean is TRUE. |
 
 ## Arithmetic Functions
 
-| Function                           | Janino Code                 | 
Description                                                     |
-|------------------------------------|-----------------------------|-----------------------------------------------------------------|
-| numeric1 + numeric2                | numeric1 + numeric2         | Returns 
NUMERIC1 plus NUMERIC2.                                 |
-| numeric1 - numeric2                | numeric1 - numeric2         | Returns 
NUMERIC1 minus NUMERIC2.                                |
-| numeric1 * numeric2                | numeric1 * numeric2         | Returns 
NUMERIC1 multiplied by NUMERIC2.                        |
-| numeric1 / numeric2                | numeric1 / numeric2         | Returns 
NUMERIC1 divided by NUMERIC2.                          |
-| numeric1 % numeric2                | numeric1 % numeric2         | Returns 
the remainder (modulus) of numeric1 divided by numeric2. |
-| ABS(numeric)                       | abs(numeric)                | Returns 
the absolute value of numeric.                          |
-| CEIL(numeric)<br/>CEILING(numeric) | ceil(numeric)               | Rounds 
numeric up, and returns the smallest number that is greater than or equal to 
numeric. |
-| FLOOR(numeric)                     | floor(numeric)              | Rounds 
numeric down, and returns the largest number that is less than or equal to 
numeric. |
-| ROUND(numeric, int)                | round(numeric)              | Returns a 
number rounded to INT decimal places for NUMERIC.     |
-| UUID()                             | uuid()                      | Returns 
an UUID (Universally Unique Identifier) string (e.g., 
"3d3c68f7-f608-473f-b60c-b0c44ad4cc4e") according to RFC 4122 type 4 (pseudo 
randomly generated) UUID. |
+| Function                           | Janino Code         | Description       
                                                                                
                                                                   |
+|------------------------------------|---------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| numeric1 + numeric2                | numeric1 + numeric2 | Returns NUMERIC1 
plus NUMERIC2.                                                                  
                                                                    |
+| numeric1 - numeric2                | numeric1 - numeric2 | Returns NUMERIC1 
minus NUMERIC2.                                                                 
                                                                    |
+| numeric1 * numeric2                | numeric1 * numeric2 | Returns NUMERIC1 
multiplied by NUMERIC2.                                                         
                                                                    |
+| numeric1 / numeric2                | numeric1 / numeric2 | Returns NUMERIC1 
divided by NUMERIC2.                                                            
                                                                    |
+| numeric1 % numeric2                | numeric1 % numeric2 | Returns the 
remainder (modulus) of numeric1 divided by numeric2.                            
                                                                         |
+| ABS(numeric)                       | abs(numeric)        | Returns the 
absolute value of numeric.                                                      
                                                                         |
+| CEIL(numeric)<br/>CEILING(numeric) | ceil(numeric)       | Rounds numeric 
up, and returns the smallest number that is greater than or equal to numeric.   
                                                                      |
+| FLOOR(numeric)                     | floor(numeric)      | Rounds numeric 
down, and returns the largest number that is less than or equal to numeric.     
                                                                      |
+| ROUND(numeric, int)                | round(numeric)      | Returns a number 
rounded to INT decimal places for NUMERIC.                                      
                                                                    |
+| UUID()                             | uuid()              | Returns an UUID 
(Universally Unique Identifier) string (e.g., 
"3d3c68f7-f608-473f-b60c-b0c44ad4cc4e") according to RFC 4122 type 4 (pseudo 
randomly generated) UUID. |
 
 ## String Functions
 
-| Function             | Janino Code              | Description                
                                                                                
                                                                                
       |
-| -------------------- | ------------------------ 
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| string1 &#124;&#124; string2 | concat(string1, string2) | Returns the 
concatenation of STRING1 and STRING2.                                           
                                                                                
                      |
-| CHAR_LENGTH(string)  | charLength(string)       | Returns the number of 
characters in STRING.                                                           
                                                                                
            |
-| UPPER(string)        | upper(string)            | Returns string in 
uppercase.                                                                      
                                                                                
                |
-| LOWER(string) | lower(string) | Returns string in lowercase.                 
                                                                                
                                                                     |
-| TRIM(string1) | trim('BOTH',string1) | Returns a string that removes 
whitespaces at both sides.                                                      
                                                                                
    |
-| REGEXP_REPLACE(string1, string2, string3) | regexpReplace(string1, string2, 
string3) | Returns a string from STRING1 with all the substrings that match a 
regular expression STRING2 consecutively being replaced with STRING3. E.g., 
'foobar'.regexpReplace('oo\|ar', '') returns "fb". |
-| SUBSTR(string, integer1[, integer2]) | substr(string,integer1,integer2) | 
Returns a substring of STRING starting from position integer1 with length 
integer2 (to the end by default).                                               
                                        |
-| SUBSTRING(string FROM integer1 [ FOR integer2 ]) | 
substring(string,integer1,integer2) | Returns a substring of STRING starting 
from position integer1 with length integer2 (to the end by default).            
                                                                           |
-| CONCAT(string1, string2,…) | concat(string1, string2,…) | Returns a string 
that concatenates string1, string2, …. E.g., CONCAT('AA', 'BB', 'CC') returns 
'AABBCC'.                                                                       
                   |
+| Function                                         | Janino Code               
               | Description                                                    
                                                                                
                                                   |
+|--------------------------------------------------|------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| string1 &#124;&#124; string2                     | concat(string1, string2)  
               | Returns the concatenation of STRING1 and STRING2.              
                                                                                
                                                   |
+| CHAR_LENGTH(string)                              | charLength(string)        
               | Returns the number of characters in STRING.                    
                                                                                
                                                   |
+| UPPER(string)                                    | upper(string)             
               | Returns string in uppercase.                                   
                                                                                
                                                   |
+| LOWER(string)                                    | lower(string)             
               | Returns string in lowercase.                                   
                                                                                
                                                   |
+| TRIM(string1)                                    | trim('BOTH',string1)      
               | Returns a string that removes whitespaces at both sides.       
                                                                                
                                                   |
+| REGEXP_REPLACE(string1, string2, string3)        | regexpReplace(string1, 
string2, string3) | Returns a string from STRING1 with all the substrings that 
match a regular expression STRING2 consecutively being replaced with STRING3. 
E.g., 'foobar'.regexpReplace('oo\|ar', '') returns "fb". |
+| SUBSTR(string, integer1[, integer2])             | 
substr(string,integer1,integer2)         | Returns a substring of STRING 
starting from position integer1 with length integer2 (to the end by default).   
                                                                                
    |
+| SUBSTRING(string FROM integer1 [ FOR integer2 ]) | 
substring(string,integer1,integer2)      | Returns a substring of STRING 
starting from position integer1 with length integer2 (to the end by default).   
                                                                                
    |
+| CONCAT(string1, string2,…)                       | concat(string1, 
string2,…)               | Returns a string that concatenates string1, string2, 
…. E.g., CONCAT('AA', 'BB', 'CC') returns 'AABBCC'.                             
                                                             |
 
 ## Temporal Functions
 
-| Function             | Janino Code              | Description                
                       |
-| -------------------- | ------------------------ | 
------------------------------------------------- |
-| LOCALTIME | localtime() | Returns the current SQL time in the local time 
zone, the return type is TIME(0). |
-| LOCALTIMESTAMP | localtimestamp() | Returns the current SQL timestamp in 
local time zone, the return type is TIMESTAMP(3). |
-| CURRENT_TIME | currentTime() | Returns the current SQL time in the local 
time zone, this is a synonym of LOCAL_TIME. |
-| CURRENT_DATE                                         | currentDate() | 
Returns the current SQL date in the local time zone. |
-| CURRENT_TIMESTAMP | currentTimestamp() | Returns the current SQL timestamp 
in the local time zone, the return type is TIMESTAMP_LTZ(3). |
-| NOW() | now() | Returns the current SQL timestamp in the local time zone, 
this is a synonym of CURRENT_TIMESTAMP. |
-| DATE_FORMAT(timestamp, string) | dateFormat(timestamp, string) | Converts 
timestamp to a value of string in the format specified by the date format 
string. The format string is compatible with Java's SimpleDateFormat. |
-| TIMESTAMPADD(timeintervalunit, interval, timepoint)   | 
timestampadd(timeintervalunit, interval, timepoint)  | Returns the timestamp of 
timepoint2 after timepoint added interval. The unit for the interval is given 
by the first argument, which should be one of the following values: SECOND, 
MINUTE, HOUR, DAY, MONTH, or YEAR.     |
-| TIMESTAMPDIFF(timepointunit, timepoint1, timepoint2) | 
timestampDiff(timepointunit, timepoint1, timepoint2) | Returns the (signed) 
number of timepointunit between timepoint1 and timepoint2. The unit for the 
interval is given by the first argument, which should be one of the following 
values: SECOND, MINUTE, HOUR, DAY, MONTH, or YEAR. |
-| TO_DATE(string1[, string2]) | toDate(string1[, string2]) | Converts a date 
string string1 with format string2 (by default 'yyyy-MM-dd') to a date. |
-| TO_TIMESTAMP(string1[, string2]) | toTimestamp(string1[, string2]) | 
Converts date time string string1 with format string2 (by default: 'yyyy-MM-dd 
HH:mm:ss') to a timestamp, without time zone. |
-| FROM_UNIXTIME(numeric[, string]) | fromUnixtime(NUMERIC[, STRING]) | Returns 
a representation of the numeric argument as a value in string format (default 
is ‘yyyy-MM-dd HH:mm:ss’). numeric is an internal timestamp value representing 
seconds since ‘1970-01-01 00:00:00’ UTC, such as produced by the 
UNIX_TIMESTAMP() function. The return value is expressed in the session time 
zone (specified in TableConfig). E.g., FROM_UNIXTIME(44) returns ‘1970-01-01 
00:00:44’ if in UTC time zone, but returns ‘1970-01-01 09:00:44’ if in 
‘Asia/Tokyo’ time zone. |
-| UNIX_TIMESTAMP() | unixTimestamp() | Gets current Unix timestamp in seconds. 
This function is not deterministic which means the value would be recalculated 
for each record. |
-| UNIX_TIMESTAMP(string1[, string2]) | unixTimestamp(STRING1[, STRING2]) | 
Converts a date time string string1 with format string2 (by default: yyyy-MM-dd 
HH:mm:ss if not specified) to Unix timestamp (in seconds), using the specified 
timezone in table config.<br/>If a time zone is specified in the date time 
string and parsed by UTC+X format such as “yyyy-MM-dd HH:mm:ss.SSS X”, this 
function will use the specified timezone in the date time string instead of the 
timezone in table config. If the date time string can not be parsed, the 
default value Long.MIN_VALUE(-9223372036854775808) will be returned.|
+| Function                                             | Janino Code           
                               |   | Description                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
         |
+|------------------------------------------------------|------------------------------------------------------|:--|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| LOCALTIME                                            | localtime()           
                               |   | Returns the current SQL time in the local 
time zone, the return type is TIME(0).                                          
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
          |
+| LOCALTIMESTAMP                                       | localtimestamp()      
                               |   | Returns the current SQL timestamp in local 
time zone, the return type is TIMESTAMP(3).                                     
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
         |
+| CURRENT_TIME                                         | currentTime()         
                               |   | Returns the current SQL time in the local 
time zone, this is a synonym of LOCAL_TIME.                                     
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
          |
+| CURRENT_DATE                                         | currentDate()         
                               |   | Returns the current SQL date in the local 
time zone.                                                                      
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
          |
+| CURRENT_TIMESTAMP                                    | currentTimestamp()    
                               |   | Returns the current SQL timestamp in the 
local time zone, the return type is TIMESTAMP_LTZ(3).                           
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
           |
+| NOW()                                                | now()                 
                               |   | Returns the current SQL timestamp in the 
local time zone, this is a synonym of CURRENT_TIMESTAMP.                        
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
           |
+| DATE_FORMAT(timestamp, string)                       | dateFormat(timestamp, 
string)                        |   | Converts timestamp to a value of string in 
the format specified by the format string. The format string is compatible with 
Java's SimpleDateFormat.                                                        
                                                                                
                                                                                
                                                                                
                                                                                
         |
+| DATE_FORMAT(date, string)                            | dateFormat(date, 
string)                             |   | Converts given date to a value of 
string in the format specified by the format string. The format string is 
compatible with Java's SimpleDateFormat.                                        
                                                                                
                                                                                
                                                                                
                                                                                
                        |
+| DATE_FORMAT(time, string)                            | dateFormat(time, 
string)                             |   | Converts given time to a value of 
string in the format specified by the format string. The format string is 
compatible with Java's SimpleDateFormat.                                        
                                                                                
                                                                                
                                                                                
                                                                                
                        |
+| TIMESTAMPADD(timeintervalunit, interval, timepoint)  | 
timestampadd(timeintervalunit, interval, timepoint)  |   | Returns the 
timestamp of timepoint2 after timepoint added interval. The unit for the 
interval is given by the first argument, which should be one of the following 
values: SECOND, MINUTE, HOUR, DAY, MONTH, or YEAR.                              
                                                                                
                                                                                
                                                                                
                                                 |
+| TIMESTAMPDIFF(timepointunit, timepoint1, timepoint2) | 
timestampDiff(timepointunit, timepoint1, timepoint2) |   | Returns the (signed) 
number of timepointunit between timepoint1 and timepoint2. The unit for the 
interval is given by the first argument, which should be one of the following 
values: SECOND, MINUTE, HOUR, DAY, MONTH, or YEAR.                              
                                                                                
                                                                                
                                                                                
                                     |
+| TO_DATE(string1[, string2])                          | toDate(string1[, 
string2])                           |   | Converts a date string string1 with 
format string2 (by default 'yyyy-MM-dd') to a date.                             
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                |
+| TO_TIMESTAMP(string1[, string2])                     | toTimestamp(string1[, 
string2])                      |   | Converts date time string string1 with 
format string2 (by default: 'yyyy-MM-dd HH:mm:ss') to a timestamp, without time 
zone.                                                                           
                                                                                
                                                                                
                                                                                
                                                                                
             |
+| TO_TIMESTAMP_LTZ(string1[, string2])                 | 
toTimestampLtz(string1[, string2])                   |   | Converts date time 
string string1 with format string2 (by default: 'yyyy-MM-dd HH:mm:ss') to a 
timestamp, with local time zone.                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                     |
+| FROM_UNIXTIME(numeric[, string])                     | 
fromUnixtime(NUMERIC[, STRING])                      |   | Returns a 
representation of the numeric argument as a value in string format (default is 
‘yyyy-MM-dd HH:mm:ss’). numeric is an internal timestamp value representing 
seconds since ‘1970-01-01 00:00:00’ UTC, such as produced by the 
UNIX_TIMESTAMP() function. The return value is expressed in the session time 
zone (specified in TableConfig). E.g., FROM_UNIXTIME(44) returns ‘1970-01-01 
00:00:44’ if in UTC time zone, but returns ‘1970-01-01 09:00:44’ if in 
‘Asia/Tokyo’ time zone.                                                      |
+| UNIX_TIMESTAMP()                                     | unixTimestamp()       
                               |   | Gets current Unix timestamp in seconds. 
This function is not deterministic which means the value would be recalculated 
for each record.                                                                
                                                                                
                                                                                
                                                                                
                                                                                
             |
+| UNIX_TIMESTAMP(string1[, string2])                   | 
unixTimestamp(STRING1[, STRING2])                    |   | Converts a date time 
string string1 with format string2 (by default: yyyy-MM-dd HH:mm:ss if not 
specified) to Unix timestamp (in seconds), using the specified timezone in 
table config.<br/>If a time zone is specified in the date time string and 
parsed by UTC+X format such as “yyyy-MM-dd HH:mm:ss.SSS X”, this function will 
use the specified timezone in the date time string instead of the timezone in 
table config. If the date time string can not be parsed, the default value 
Long.MIN_VALUE(-9223372036854775808) will be returned. |
+| DATE_ADD(date, int)                                  | dateAdd(date, int)    
                               |   | Add N days to given date data.             
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
         |                                                                      
                                                                                
                                                                                
                                                                                
                                      
                                                                                
                                                                                
                    |

Review Comment:
   The description for DATE_ADD is incomplete. It reads "Add N days to given 
date data" but the word "data" should likely be "date" or "value". 
Additionally, the description could be more precise about what the function 
returns (e.g., "Adds N days to the given date and returns a string in 
'yyyy-MM-dd' format").
   ```suggestion
   | DATE_ADD(date, int)                                  | dateAdd(date, int)  
                                 |   | Adds N days to the given date and 
returns a string in 'yyyy-MM-dd' format.                                        
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                 |                                                              
                                                                                
                                                                                
                                                                                
                                             
                                                                                
                                                                                
                     |
   ```



##########
flink-cdc-composer/src/test/resources/specs/meta.yaml:
##########
@@ -47,15 +47,3 @@
     DataChangeEvent{tableId=foo.bar.baz, before=[], after=[-D, -1, false, -2, 
-3, -4, -5, -7.7, -88.88, -9876543210, -987654321098765432.10, 爱丽丝, 疯帽子, 
天地玄黄宇宙洪荒, 5LiA5LqM5LiJ5Zub5LqU, 5YWt5LiD5YWr5Lmd5Y2B, 
5ZC+6Lyp44Gv54yr44Gn44GC44KL, 1970-01-09T08:57:36.789723456, 
1970-01-10T15:49:27.891834561, 1970-01-11T22:41:18.912945612, 
1970-01-09T08:57:36.789723456+08:00, 1970-01-10T15:49:27.891834561+01:00, 
1970-01-11T22:41:18.912945612-04:00, 1970-01-09T08:57:36.789723456, 
1970-01-10T15:49:27.891834561, 1970-01-11T22:41:18.912945612, 2001-01-01, 
12:34:45, 23:45:07, 02:30:05, [2, 3, 5, 7, 11, 13, 17, 19], [二, san, 五, qi, 
十一], {1 -> yi, 2 -> er, 3 -> san}, {二 -> [E, R], 三 -> [S, A, N], 一 -> [Y, I]}, 
{name: STRING -> Derrida, length: INT -> 7}, [{"k":1},"hello",{"k":2}]], 
op=INSERT, meta=()}
     DataChangeEvent{tableId=foo.bar.baz, before=[], after=[+I, 0, null, null, 
null, null, null, null, null, null, null, null, null, null, null, null, null, 
null, null, null, null, null, null, null, null, null, null, null, null, null, 
null, null, null, null, null, null], op=INSERT, meta=()}
     DataChangeEvent{tableId=foo.bar.baz, before=[], after=[-D, 0, null, null, 
null, null, null, null, null, null, null, null, null, null, null, null, null, 
null, null, null, null, null, null, null, null, null, null, null, null, null, 
null, null, null, null, null, null], op=INSERT, meta=()}

Review Comment:
   This test case for "Downcase Post Converter" with FIELD_NAME_LOWER_CASE 
converter has been removed. The PR description mentions this is for FLINK-38906 
but doesn't explain why this test case was removed. If this test case removal 
is unintentional or unrelated to FLINK-38906, it should be reverted. If it's 
intentional, it should be explained in the PR description or moved to a 
separate PR.



##########
docs/content.zh/docs/core-concept/transform.md:
##########
@@ -180,13 +180,17 @@ Flink CDC 使用 [Calcite](https://calcite.apache.org/) 
来解析表达式并且
 | CURRENT_TIMESTAMP                                    | currentTimestamp()    
                               | Returns the current SQL timestamp in the local 
time zone, the return type is TIMESTAMP_LTZ(3).                                 
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
     |
 | NOW()                                                | now()                 
                               | Returns the current SQL timestamp in the local 
time zone, this is a synonym of CURRENT_TIMESTAMP.                              
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
     |
 | DATE_FORMAT(timestamp, string)                       | dateFormat(timestamp, 
string)                        | Converts timestamp to a value of string in the 
format specified by the date format string. The format string is compatible 
with Java's SimpleDateFormat.                                                   
                                                                                
                                                                                
                                                                                
                                                                                
         |
+| DATE_FORMAT(date, string)                            | dateFormat(date, 
string)                             | Converts given date to a value of string 
in the format specified by the format string. The format string is compatible 
with Java's SimpleDateFormat.                                                   
                                                                                
                                                                                
                                                                                
                                                                                
             |                                                                  
                                                                                
                                                                                
                                                                                
                                              
                              |
+| DATE_FORMAT(time, string)                            | dateFormat(time, 
string)                             | Converts given time to a value of string 
in the format specified by the format string. The format string is compatible 
with Java's SimpleDateFormat.                                                   
                                                                                
                                                                                
                                                                                
                                                                                
             |
 | TIMESTAMPADD(timeintervalunit, interval, timepoint)  | 
timestampadd(timeintervalunit, interval, timepoint)  | Returns the timestamp of 
timepoint2 after timepoint added interval. The unit for the interval is given 
by the first argument, which should be one of the following values: SECOND, 
MINUTE, HOUR, DAY, MONTH, or YEAR.                                              
                                                                                
                                                                                
                                                                                
                                 |
 | TIMESTAMPDIFF(timepointunit, timepoint1, timepoint2) | 
timestampDiff(timepointunit, timepoint1, timepoint2) | Returns the (signed) 
number of timepointunit between timepoint1 and timepoint2. The unit for the 
interval is given by the first argument, which should be one of the following 
values: SECOND, MINUTE, HOUR, DAY, MONTH, or YEAR.                              
                                                                                
                                                                                
                                                                                
                                     |
 | TO_DATE(string1[, string2])                          | toDate(string1[, 
string2])                           | Converts a date string string1 with 
format string2 (by default 'yyyy-MM-dd') to a date.                             
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                |
 | TO_TIMESTAMP(string1[, string2])                     | toTimestamp(string1[, 
string2])                      | Converts date time string string1 with format 
string2 (by default: 'yyyy-MM-dd HH:mm:ss') to a timestamp, without time zone.  
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
      |
+| TO_TIMESTAMP_LTZ(string1[, string2])                 | 
toTimestampLtz(string1[, string2])                   | Converts date time 
string string1 with format string2 (by default: 'yyyy-MM-dd HH:mm:ss') to a 
timestamp, with local time zone.                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                     |
 | FROM_UNIXTIME(numeric[, string])                     | 
fromUnixtime(NUMERIC[, STRING])                      | Returns a representation 
of the numeric argument as a value in string format (default is ‘yyyy-MM-dd 
HH:mm:ss’). numeric is an internal timestamp value representing seconds since 
‘1970-01-01 00:00:00’ UTC, such as produced by the UNIX_TIMESTAMP() function. 
The return value is expressed in the session time zone (specified in 
TableConfig). E.g., FROM_UNIXTIME(44) returns ‘1970-01-01 00:00:44’ if in UTC 
time zone, but returns ‘1970-01-01 09:00:44’ if in ‘Asia/Tokyo’ time zone.      
                                                |
 | UNIX_TIMESTAMP()                                     | unixTimestamp()       
                               | Gets current Unix timestamp in seconds. This 
function is not deterministic which means the value would be recalculated for 
each record.                                                                    
                                                                                
                                                                                
                                                                                
                                                                                
         |
 | UNIX_TIMESTAMP(string1[, string2])                   | 
unixTimestamp(STRING1[, STRING2])                    | Converts a date time 
string string1 with format string2 (by default: yyyy-MM-dd HH:mm:ss if not 
specified) to Unix timestamp (in seconds), using the specified timezone in 
table config.<br/>If a time zone is specified in the date time string and 
parsed by UTC+X format such as “yyyy-MM-dd HH:mm:ss.SSS X”, this function will 
use the specified timezone in the date time string instead of the timezone in 
table config. If the date time string can not be parsed, the default value 
Long.MIN_VALUE(-9223372036854775808) will be returned. |
+| DATE_ADD(date, int)                                  | dateAdd(date, int)    
                               | Add N days to given date data.                 
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
     |                                                                          
                                                                                
                                                                                
                                                                                
                                      
                                                                                
                                                                                
                |

Review Comment:
   The description for DATE_ADD is incomplete. It reads "Add N days to given 
date data" but the word "data" should likely be "date" or "value". 
Additionally, the description could be more precise about what the function 
returns (e.g., "Adds N days to the given date and returns a string in 
'yyyy-MM-dd' format").
   ```suggestion
   | DATE_ADD(date, int)                                  | dateAdd(date, int)  
                                 | Adds N days to the given date and returns a 
string in 'yyyy-MM-dd' format.                                                  
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
        |                                                                       
                                                                                
                                                                                
                                                                                
                                       
                                                                                
                                                                                
                  |
   ```



##########
docs/content/docs/core-concept/transform.md:
##########
@@ -112,91 +112,95 @@ Flink CDC uses [Calcite](https://calcite.apache.org/) to 
parse expressions and [
 
 ## Comparison Functions
 
-| Function             | Janino Code                                  | 
Description                                                     |
-|----------------------|----------------------------------------------|-----------------------------------------------------------------|
-| value1 = value2      | valueEquals(value1, value2)                  | 
Returns TRUE if value1 is equal to value2; returns FALSE if value1 or value2 is 
NULL. |
-| value1 <> value2     | !valueEquals(value1, value2)                 | 
Returns TRUE if value1 is not equal to value2; returns FALSE if value1 or 
value2 is NULL. |
-| value1 > value2      | greaterThan(value1, value2)                  | 
Returns TRUE if value1 is greater than value2; returns FALSE if value1 or 
value2 is NULL. |
-| value1 >= value2     | greaterThanOrEqual(value1, value2)               | 
Returns TRUE if value1 is greater than or equal to value2; returns FALSE if 
value1 or value2 is NULL. |
-| value1 < value2      | lessThan(value1, value2)                         | 
Returns TRUE if value1 is less than value2; returns FALSE if value1 or value2 
is NULL. |
-| value1 <= value2     | lessThanOrEqual(value1, value2)                  | 
Returns TRUE if value1 is less than or equal to value2; returns FALSE if value1 
or value2 is NULL. |
-| value IS NULL        | null == value                                | 
Returns TRUE if value is NULL.                                  |
-| value IS NOT NULL    | null != value                                | 
Returns TRUE if value is not NULL.                              |
-| value1 BETWEEN value2 AND value3 | betweenAsymmetric(value1, value2, value3) 
   | Returns TRUE if value1 is greater than or equal to value2 and less than or 
equal to value3. |
-| value1 NOT BETWEEN value2 AND value3 | notBetweenAsymmetric(value1, value2, 
value3) | Returns TRUE if value1 is less than value2 or greater than value3. |
-| string1 LIKE string2 | like(string1, string2)                       | 
Returns TRUE if string1 matches pattern string2.                |
-| string1 NOT LIKE string2 | notLike(string1, string2)                    | 
Returns TRUE if string1 does not match pattern string2.       |
-| value1 IN (value2 [, value3]* ) | in(value1, value2 [, value3]*)             
  | Returns TRUE if value1 exists in the given list (value2, value3, …). |
-| value1 NOT IN (value2 [, value3]* ) | notIn(value1, value2 [, value3]*)      
      | Returns TRUE if value1 does not exist in the given list (value2, 
value3, …).  |
+| Function                             | Janino Code                           
       | Description                                                            
                               |
+|--------------------------------------|----------------------------------------------|-------------------------------------------------------------------------------------------------------|
+| value1 = value2                      | valueEquals(value1, value2)           
       | Returns TRUE if value1 is equal to value2; returns FALSE if value1 or 
value2 is NULL.                 |
+| value1 <> value2                     | !valueEquals(value1, value2)          
       | Returns TRUE if value1 is not equal to value2; returns FALSE if value1 
or value2 is NULL.             |
+| value1 > value2                      | greaterThan(value1, value2)           
       | Returns TRUE if value1 is greater than value2; returns FALSE if value1 
or value2 is NULL.             |
+| value1 >= value2                     | greaterThanOrEqual(value1, value2)    
       | Returns TRUE if value1 is greater than or equal to value2; returns 
FALSE if value1 or value2 is NULL. |
+| value1 < value2                      | lessThan(value1, value2)              
       | Returns TRUE if value1 is less than value2; returns FALSE if value1 or 
value2 is NULL.                |
+| value1 <= value2                     | lessThanOrEqual(value1, value2)       
       | Returns TRUE if value1 is less than or equal to value2; returns FALSE 
if value1 or value2 is NULL.    |
+| value IS NULL                        | null == value                         
       | Returns TRUE if value is NULL.                                         
                               |
+| value IS NOT NULL                    | null != value                         
       | Returns TRUE if value is not NULL.                                     
                               |
+| value1 BETWEEN value2 AND value3     | betweenAsymmetric(value1, value2, 
value3)    | Returns TRUE if value1 is greater than or equal to value2 and less 
than or equal to value3.           |
+| value1 NOT BETWEEN value2 AND value3 | notBetweenAsymmetric(value1, value2, 
value3) | Returns TRUE if value1 is less than value2 or greater than value3.    
                                |
+| string1 LIKE string2                 | like(string1, string2)                
       | Returns TRUE if string1 matches pattern string2.                       
                               |
+| string1 NOT LIKE string2             | notLike(string1, string2)             
       | Returns TRUE if string1 does not match pattern string2.                
                               |
+| value1 IN (value2 [, value3]* )      | in(value1, value2 [, value3]*)        
       | Returns TRUE if value1 exists in the given list (value2, value3, …).   
                               |
+| value1 NOT IN (value2 [, value3]* )  | notIn(value1, value2 [, value3]*)     
       | Returns TRUE if value1 does not exist in the given list (value2, 
value3, …).                          |
 
 ## Logical Functions
 
-| Function             | Janino Code                 | Description             
                                        |
-|----------------------|-----------------------------|-----------------------------------------------------------------|
-| boolean1 OR boolean2 | boolean1 &#124;&#124; boolean2 | Returns TRUE if 
BOOLEAN1 is TRUE or BOOLEAN2 is TRUE.        |
-| boolean1 AND boolean2 | boolean1 && boolean2       | Returns TRUE if 
BOOLEAN1 and BOOLEAN2 are both TRUE.            |
-| NOT boolean          | !boolean                    | Returns TRUE if boolean 
is FALSE; returns FALSE if boolean is TRUE. |
-| boolean IS FALSE     | false == boolean            | Returns TRUE if boolean 
is FALSE; returns FALSE if boolean is TRUE. |
-| boolean IS NOT FALSE | true == boolean             | Returns TRUE if BOOLEAN 
is TRUE; returns FALSE if BOOLEAN is FALSE. |
-| boolean IS TRUE      | true == boolean             | Returns TRUE if BOOLEAN 
is TRUE; returns FALSE if BOOLEAN is FALSE. |
-| boolean IS NOT TRUE  | false == boolean            | Returns TRUE if boolean 
is FALSE; returns FALSE if boolean is TRUE. |
+| Function              | Janino Code                    | Description         
                                                |
+|-----------------------|--------------------------------|---------------------------------------------------------------------|
+| boolean1 OR boolean2  | boolean1 &#124;&#124; boolean2 | Returns TRUE if 
BOOLEAN1 is TRUE or BOOLEAN2 is TRUE.               |
+| boolean1 AND boolean2 | boolean1 && boolean2           | Returns TRUE if 
BOOLEAN1 and BOOLEAN2 are both TRUE.                |
+| NOT boolean           | !boolean                       | Returns TRUE if 
boolean is FALSE; returns FALSE if boolean is TRUE. |
+| boolean IS FALSE      | false == boolean               | Returns TRUE if 
boolean is FALSE; returns FALSE if boolean is TRUE. |
+| boolean IS NOT FALSE  | true == boolean                | Returns TRUE if 
BOOLEAN is TRUE; returns FALSE if BOOLEAN is FALSE. |
+| boolean IS TRUE       | true == boolean                | Returns TRUE if 
BOOLEAN is TRUE; returns FALSE if BOOLEAN is FALSE. |
+| boolean IS NOT TRUE   | false == boolean               | Returns TRUE if 
boolean is FALSE; returns FALSE if boolean is TRUE. |
 
 ## Arithmetic Functions
 
-| Function                           | Janino Code                 | 
Description                                                     |
-|------------------------------------|-----------------------------|-----------------------------------------------------------------|
-| numeric1 + numeric2                | numeric1 + numeric2         | Returns 
NUMERIC1 plus NUMERIC2.                                 |
-| numeric1 - numeric2                | numeric1 - numeric2         | Returns 
NUMERIC1 minus NUMERIC2.                                |
-| numeric1 * numeric2                | numeric1 * numeric2         | Returns 
NUMERIC1 multiplied by NUMERIC2.                        |
-| numeric1 / numeric2                | numeric1 / numeric2         | Returns 
NUMERIC1 divided by NUMERIC2.                          |
-| numeric1 % numeric2                | numeric1 % numeric2         | Returns 
the remainder (modulus) of numeric1 divided by numeric2. |
-| ABS(numeric)                       | abs(numeric)                | Returns 
the absolute value of numeric.                          |
-| CEIL(numeric)<br/>CEILING(numeric) | ceil(numeric)               | Rounds 
numeric up, and returns the smallest number that is greater than or equal to 
numeric. |
-| FLOOR(numeric)                     | floor(numeric)              | Rounds 
numeric down, and returns the largest number that is less than or equal to 
numeric. |
-| ROUND(numeric, int)                | round(numeric)              | Returns a 
number rounded to INT decimal places for NUMERIC.     |
-| UUID()                             | uuid()                      | Returns 
an UUID (Universally Unique Identifier) string (e.g., 
"3d3c68f7-f608-473f-b60c-b0c44ad4cc4e") according to RFC 4122 type 4 (pseudo 
randomly generated) UUID. |
+| Function                           | Janino Code         | Description       
                                                                                
                                                                   |
+|------------------------------------|---------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| numeric1 + numeric2                | numeric1 + numeric2 | Returns NUMERIC1 
plus NUMERIC2.                                                                  
                                                                    |
+| numeric1 - numeric2                | numeric1 - numeric2 | Returns NUMERIC1 
minus NUMERIC2.                                                                 
                                                                    |
+| numeric1 * numeric2                | numeric1 * numeric2 | Returns NUMERIC1 
multiplied by NUMERIC2.                                                         
                                                                    |
+| numeric1 / numeric2                | numeric1 / numeric2 | Returns NUMERIC1 
divided by NUMERIC2.                                                            
                                                                    |
+| numeric1 % numeric2                | numeric1 % numeric2 | Returns the 
remainder (modulus) of numeric1 divided by numeric2.                            
                                                                         |
+| ABS(numeric)                       | abs(numeric)        | Returns the 
absolute value of numeric.                                                      
                                                                         |
+| CEIL(numeric)<br/>CEILING(numeric) | ceil(numeric)       | Rounds numeric 
up, and returns the smallest number that is greater than or equal to numeric.   
                                                                      |
+| FLOOR(numeric)                     | floor(numeric)      | Rounds numeric 
down, and returns the largest number that is less than or equal to numeric.     
                                                                      |
+| ROUND(numeric, int)                | round(numeric)      | Returns a number 
rounded to INT decimal places for NUMERIC.                                      
                                                                    |
+| UUID()                             | uuid()              | Returns an UUID 
(Universally Unique Identifier) string (e.g., 
"3d3c68f7-f608-473f-b60c-b0c44ad4cc4e") according to RFC 4122 type 4 (pseudo 
randomly generated) UUID. |
 
 ## String Functions
 
-| Function             | Janino Code              | Description                
                                                                                
                                                                                
       |
-| -------------------- | ------------------------ 
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| string1 &#124;&#124; string2 | concat(string1, string2) | Returns the 
concatenation of STRING1 and STRING2.                                           
                                                                                
                      |
-| CHAR_LENGTH(string)  | charLength(string)       | Returns the number of 
characters in STRING.                                                           
                                                                                
            |
-| UPPER(string)        | upper(string)            | Returns string in 
uppercase.                                                                      
                                                                                
                |
-| LOWER(string) | lower(string) | Returns string in lowercase.                 
                                                                                
                                                                     |
-| TRIM(string1) | trim('BOTH',string1) | Returns a string that removes 
whitespaces at both sides.                                                      
                                                                                
    |
-| REGEXP_REPLACE(string1, string2, string3) | regexpReplace(string1, string2, 
string3) | Returns a string from STRING1 with all the substrings that match a 
regular expression STRING2 consecutively being replaced with STRING3. E.g., 
'foobar'.regexpReplace('oo\|ar', '') returns "fb". |
-| SUBSTR(string, integer1[, integer2]) | substr(string,integer1,integer2) | 
Returns a substring of STRING starting from position integer1 with length 
integer2 (to the end by default).                                               
                                        |
-| SUBSTRING(string FROM integer1 [ FOR integer2 ]) | 
substring(string,integer1,integer2) | Returns a substring of STRING starting 
from position integer1 with length integer2 (to the end by default).            
                                                                           |
-| CONCAT(string1, string2,…) | concat(string1, string2,…) | Returns a string 
that concatenates string1, string2, …. E.g., CONCAT('AA', 'BB', 'CC') returns 
'AABBCC'.                                                                       
                   |
+| Function                                         | Janino Code               
               | Description                                                    
                                                                                
                                                   |
+|--------------------------------------------------|------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| string1 &#124;&#124; string2                     | concat(string1, string2)  
               | Returns the concatenation of STRING1 and STRING2.              
                                                                                
                                                   |
+| CHAR_LENGTH(string)                              | charLength(string)        
               | Returns the number of characters in STRING.                    
                                                                                
                                                   |
+| UPPER(string)                                    | upper(string)             
               | Returns string in uppercase.                                   
                                                                                
                                                   |
+| LOWER(string)                                    | lower(string)             
               | Returns string in lowercase.                                   
                                                                                
                                                   |
+| TRIM(string1)                                    | trim('BOTH',string1)      
               | Returns a string that removes whitespaces at both sides.       
                                                                                
                                                   |
+| REGEXP_REPLACE(string1, string2, string3)        | regexpReplace(string1, 
string2, string3) | Returns a string from STRING1 with all the substrings that 
match a regular expression STRING2 consecutively being replaced with STRING3. 
E.g., 'foobar'.regexpReplace('oo\|ar', '') returns "fb". |
+| SUBSTR(string, integer1[, integer2])             | 
substr(string,integer1,integer2)         | Returns a substring of STRING 
starting from position integer1 with length integer2 (to the end by default).   
                                                                                
    |
+| SUBSTRING(string FROM integer1 [ FOR integer2 ]) | 
substring(string,integer1,integer2)      | Returns a substring of STRING 
starting from position integer1 with length integer2 (to the end by default).   
                                                                                
    |
+| CONCAT(string1, string2,…)                       | concat(string1, 
string2,…)               | Returns a string that concatenates string1, string2, 
…. E.g., CONCAT('AA', 'BB', 'CC') returns 'AABBCC'.                             
                                                             |
 
 ## Temporal Functions
 
-| Function             | Janino Code              | Description                
                       |
-| -------------------- | ------------------------ | 
------------------------------------------------- |
-| LOCALTIME | localtime() | Returns the current SQL time in the local time 
zone, the return type is TIME(0). |
-| LOCALTIMESTAMP | localtimestamp() | Returns the current SQL timestamp in 
local time zone, the return type is TIMESTAMP(3). |
-| CURRENT_TIME | currentTime() | Returns the current SQL time in the local 
time zone, this is a synonym of LOCAL_TIME. |
-| CURRENT_DATE                                         | currentDate() | 
Returns the current SQL date in the local time zone. |
-| CURRENT_TIMESTAMP | currentTimestamp() | Returns the current SQL timestamp 
in the local time zone, the return type is TIMESTAMP_LTZ(3). |
-| NOW() | now() | Returns the current SQL timestamp in the local time zone, 
this is a synonym of CURRENT_TIMESTAMP. |
-| DATE_FORMAT(timestamp, string) | dateFormat(timestamp, string) | Converts 
timestamp to a value of string in the format specified by the date format 
string. The format string is compatible with Java's SimpleDateFormat. |
-| TIMESTAMPADD(timeintervalunit, interval, timepoint)   | 
timestampadd(timeintervalunit, interval, timepoint)  | Returns the timestamp of 
timepoint2 after timepoint added interval. The unit for the interval is given 
by the first argument, which should be one of the following values: SECOND, 
MINUTE, HOUR, DAY, MONTH, or YEAR.     |
-| TIMESTAMPDIFF(timepointunit, timepoint1, timepoint2) | 
timestampDiff(timepointunit, timepoint1, timepoint2) | Returns the (signed) 
number of timepointunit between timepoint1 and timepoint2. The unit for the 
interval is given by the first argument, which should be one of the following 
values: SECOND, MINUTE, HOUR, DAY, MONTH, or YEAR. |
-| TO_DATE(string1[, string2]) | toDate(string1[, string2]) | Converts a date 
string string1 with format string2 (by default 'yyyy-MM-dd') to a date. |
-| TO_TIMESTAMP(string1[, string2]) | toTimestamp(string1[, string2]) | 
Converts date time string string1 with format string2 (by default: 'yyyy-MM-dd 
HH:mm:ss') to a timestamp, without time zone. |
-| FROM_UNIXTIME(numeric[, string]) | fromUnixtime(NUMERIC[, STRING]) | Returns 
a representation of the numeric argument as a value in string format (default 
is ‘yyyy-MM-dd HH:mm:ss’). numeric is an internal timestamp value representing 
seconds since ‘1970-01-01 00:00:00’ UTC, such as produced by the 
UNIX_TIMESTAMP() function. The return value is expressed in the session time 
zone (specified in TableConfig). E.g., FROM_UNIXTIME(44) returns ‘1970-01-01 
00:00:44’ if in UTC time zone, but returns ‘1970-01-01 09:00:44’ if in 
‘Asia/Tokyo’ time zone. |
-| UNIX_TIMESTAMP() | unixTimestamp() | Gets current Unix timestamp in seconds. 
This function is not deterministic which means the value would be recalculated 
for each record. |
-| UNIX_TIMESTAMP(string1[, string2]) | unixTimestamp(STRING1[, STRING2]) | 
Converts a date time string string1 with format string2 (by default: yyyy-MM-dd 
HH:mm:ss if not specified) to Unix timestamp (in seconds), using the specified 
timezone in table config.<br/>If a time zone is specified in the date time 
string and parsed by UTC+X format such as “yyyy-MM-dd HH:mm:ss.SSS X”, this 
function will use the specified timezone in the date time string instead of the 
timezone in table config. If the date time string can not be parsed, the 
default value Long.MIN_VALUE(-9223372036854775808) will be returned.|
+| Function                                             | Janino Code           
                               |   | Description                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
         |
+|------------------------------------------------------|------------------------------------------------------|:--|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| LOCALTIME                                            | localtime()           
                               |   | Returns the current SQL time in the local 
time zone, the return type is TIME(0).                                          
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
          |
+| LOCALTIMESTAMP                                       | localtimestamp()      
                               |   | Returns the current SQL timestamp in local 
time zone, the return type is TIMESTAMP(3).                                     
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
         |
+| CURRENT_TIME                                         | currentTime()         
                               |   | Returns the current SQL time in the local 
time zone, this is a synonym of LOCAL_TIME.                                     
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
          |
+| CURRENT_DATE                                         | currentDate()         
                               |   | Returns the current SQL date in the local 
time zone.                                                                      
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
          |
+| CURRENT_TIMESTAMP                                    | currentTimestamp()    
                               |   | Returns the current SQL timestamp in the 
local time zone, the return type is TIMESTAMP_LTZ(3).                           
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
           |
+| NOW()                                                | now()                 
                               |   | Returns the current SQL timestamp in the 
local time zone, this is a synonym of CURRENT_TIMESTAMP.                        
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
           |
+| DATE_FORMAT(timestamp, string)                       | dateFormat(timestamp, 
string)                        |   | Converts timestamp to a value of string in 
the format specified by the format string. The format string is compatible with 
Java's SimpleDateFormat.                                                        
                                                                                
                                                                                
                                                                                
                                                                                
         |
+| DATE_FORMAT(date, string)                            | dateFormat(date, 
string)                             |   | Converts given date to a value of 
string in the format specified by the format string. The format string is 
compatible with Java's SimpleDateFormat.                                        
                                                                                
                                                                                
                                                                                
                                                                                
                        |

Review Comment:
   The markdown table has an incorrect structure with an empty column header 
(third column marked with ":"). This will cause rendering issues. The table 
should have only 3 columns (Function, Janino Code, Description), not 4.
   ```suggestion
   | Function                                             | Janino Code         
                                 | Description                                  
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
       |
   
|------------------------------------------------------|------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
   | LOCALTIME                                            | localtime()         
                                 | Returns the current SQL time in the local 
time zone, the return type is TIME(0).                                          
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
          |
   | LOCALTIMESTAMP                                       | localtimestamp()    
                                 | Returns the current SQL timestamp in local 
time zone, the return type is TIMESTAMP(3).                                     
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
         |
   | CURRENT_TIME                                         | currentTime()       
                                 | Returns the current SQL time in the local 
time zone, this is a synonym of LOCAL_TIME.                                     
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
          |
   | CURRENT_DATE                                         | currentDate()       
                                 | Returns the current SQL date in the local 
time zone.                                                                      
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
          |
   | CURRENT_TIMESTAMP                                    | currentTimestamp()  
                                 | Returns the current SQL timestamp in the 
local time zone, the return type is TIMESTAMP_LTZ(3).                           
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
           |
   | NOW()                                                | now()               
                                 | Returns the current SQL timestamp in the 
local time zone, this is a synonym of CURRENT_TIMESTAMP.                        
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
           |
   | DATE_FORMAT(timestamp, string)                       | 
dateFormat(timestamp, string)                        | Converts timestamp to a 
value of string in the format specified by the format string. The format string 
is compatible with Java's SimpleDateFormat.                                     
                                                                                
                                                                                
                                                                                
                                                                                
                            |
   | DATE_FORMAT(date, string)                            | dateFormat(date, 
string)                             | Converts given date to a value of string 
in the format specified by the format string. The format string is compatible 
with Java's SimpleDateFormat.                                                   
                                                                                
                                                                                
                                                                                
                                                                                
             |
   ```



##########
docs/content/docs/core-concept/transform.md:
##########
@@ -112,91 +112,95 @@ Flink CDC uses [Calcite](https://calcite.apache.org/) to 
parse expressions and [
 
 ## Comparison Functions
 
-| Function             | Janino Code                                  | 
Description                                                     |
-|----------------------|----------------------------------------------|-----------------------------------------------------------------|
-| value1 = value2      | valueEquals(value1, value2)                  | 
Returns TRUE if value1 is equal to value2; returns FALSE if value1 or value2 is 
NULL. |
-| value1 <> value2     | !valueEquals(value1, value2)                 | 
Returns TRUE if value1 is not equal to value2; returns FALSE if value1 or 
value2 is NULL. |
-| value1 > value2      | greaterThan(value1, value2)                  | 
Returns TRUE if value1 is greater than value2; returns FALSE if value1 or 
value2 is NULL. |
-| value1 >= value2     | greaterThanOrEqual(value1, value2)               | 
Returns TRUE if value1 is greater than or equal to value2; returns FALSE if 
value1 or value2 is NULL. |
-| value1 < value2      | lessThan(value1, value2)                         | 
Returns TRUE if value1 is less than value2; returns FALSE if value1 or value2 
is NULL. |
-| value1 <= value2     | lessThanOrEqual(value1, value2)                  | 
Returns TRUE if value1 is less than or equal to value2; returns FALSE if value1 
or value2 is NULL. |
-| value IS NULL        | null == value                                | 
Returns TRUE if value is NULL.                                  |
-| value IS NOT NULL    | null != value                                | 
Returns TRUE if value is not NULL.                              |
-| value1 BETWEEN value2 AND value3 | betweenAsymmetric(value1, value2, value3) 
   | Returns TRUE if value1 is greater than or equal to value2 and less than or 
equal to value3. |
-| value1 NOT BETWEEN value2 AND value3 | notBetweenAsymmetric(value1, value2, 
value3) | Returns TRUE if value1 is less than value2 or greater than value3. |
-| string1 LIKE string2 | like(string1, string2)                       | 
Returns TRUE if string1 matches pattern string2.                |
-| string1 NOT LIKE string2 | notLike(string1, string2)                    | 
Returns TRUE if string1 does not match pattern string2.       |
-| value1 IN (value2 [, value3]* ) | in(value1, value2 [, value3]*)             
  | Returns TRUE if value1 exists in the given list (value2, value3, …). |
-| value1 NOT IN (value2 [, value3]* ) | notIn(value1, value2 [, value3]*)      
      | Returns TRUE if value1 does not exist in the given list (value2, 
value3, …).  |
+| Function                             | Janino Code                           
       | Description                                                            
                               |
+|--------------------------------------|----------------------------------------------|-------------------------------------------------------------------------------------------------------|
+| value1 = value2                      | valueEquals(value1, value2)           
       | Returns TRUE if value1 is equal to value2; returns FALSE if value1 or 
value2 is NULL.                 |
+| value1 <> value2                     | !valueEquals(value1, value2)          
       | Returns TRUE if value1 is not equal to value2; returns FALSE if value1 
or value2 is NULL.             |
+| value1 > value2                      | greaterThan(value1, value2)           
       | Returns TRUE if value1 is greater than value2; returns FALSE if value1 
or value2 is NULL.             |
+| value1 >= value2                     | greaterThanOrEqual(value1, value2)    
       | Returns TRUE if value1 is greater than or equal to value2; returns 
FALSE if value1 or value2 is NULL. |
+| value1 < value2                      | lessThan(value1, value2)              
       | Returns TRUE if value1 is less than value2; returns FALSE if value1 or 
value2 is NULL.                |
+| value1 <= value2                     | lessThanOrEqual(value1, value2)       
       | Returns TRUE if value1 is less than or equal to value2; returns FALSE 
if value1 or value2 is NULL.    |
+| value IS NULL                        | null == value                         
       | Returns TRUE if value is NULL.                                         
                               |
+| value IS NOT NULL                    | null != value                         
       | Returns TRUE if value is not NULL.                                     
                               |
+| value1 BETWEEN value2 AND value3     | betweenAsymmetric(value1, value2, 
value3)    | Returns TRUE if value1 is greater than or equal to value2 and less 
than or equal to value3.           |
+| value1 NOT BETWEEN value2 AND value3 | notBetweenAsymmetric(value1, value2, 
value3) | Returns TRUE if value1 is less than value2 or greater than value3.    
                                |
+| string1 LIKE string2                 | like(string1, string2)                
       | Returns TRUE if string1 matches pattern string2.                       
                               |
+| string1 NOT LIKE string2             | notLike(string1, string2)             
       | Returns TRUE if string1 does not match pattern string2.                
                               |
+| value1 IN (value2 [, value3]* )      | in(value1, value2 [, value3]*)        
       | Returns TRUE if value1 exists in the given list (value2, value3, …).   
                               |
+| value1 NOT IN (value2 [, value3]* )  | notIn(value1, value2 [, value3]*)     
       | Returns TRUE if value1 does not exist in the given list (value2, 
value3, …).                          |
 
 ## Logical Functions
 
-| Function             | Janino Code                 | Description             
                                        |
-|----------------------|-----------------------------|-----------------------------------------------------------------|
-| boolean1 OR boolean2 | boolean1 &#124;&#124; boolean2 | Returns TRUE if 
BOOLEAN1 is TRUE or BOOLEAN2 is TRUE.        |
-| boolean1 AND boolean2 | boolean1 && boolean2       | Returns TRUE if 
BOOLEAN1 and BOOLEAN2 are both TRUE.            |
-| NOT boolean          | !boolean                    | Returns TRUE if boolean 
is FALSE; returns FALSE if boolean is TRUE. |
-| boolean IS FALSE     | false == boolean            | Returns TRUE if boolean 
is FALSE; returns FALSE if boolean is TRUE. |
-| boolean IS NOT FALSE | true == boolean             | Returns TRUE if BOOLEAN 
is TRUE; returns FALSE if BOOLEAN is FALSE. |
-| boolean IS TRUE      | true == boolean             | Returns TRUE if BOOLEAN 
is TRUE; returns FALSE if BOOLEAN is FALSE. |
-| boolean IS NOT TRUE  | false == boolean            | Returns TRUE if boolean 
is FALSE; returns FALSE if boolean is TRUE. |
+| Function              | Janino Code                    | Description         
                                                |
+|-----------------------|--------------------------------|---------------------------------------------------------------------|
+| boolean1 OR boolean2  | boolean1 &#124;&#124; boolean2 | Returns TRUE if 
BOOLEAN1 is TRUE or BOOLEAN2 is TRUE.               |
+| boolean1 AND boolean2 | boolean1 && boolean2           | Returns TRUE if 
BOOLEAN1 and BOOLEAN2 are both TRUE.                |
+| NOT boolean           | !boolean                       | Returns TRUE if 
boolean is FALSE; returns FALSE if boolean is TRUE. |
+| boolean IS FALSE      | false == boolean               | Returns TRUE if 
boolean is FALSE; returns FALSE if boolean is TRUE. |
+| boolean IS NOT FALSE  | true == boolean                | Returns TRUE if 
BOOLEAN is TRUE; returns FALSE if BOOLEAN is FALSE. |
+| boolean IS TRUE       | true == boolean                | Returns TRUE if 
BOOLEAN is TRUE; returns FALSE if BOOLEAN is FALSE. |
+| boolean IS NOT TRUE   | false == boolean               | Returns TRUE if 
boolean is FALSE; returns FALSE if boolean is TRUE. |
 
 ## Arithmetic Functions
 
-| Function                           | Janino Code                 | 
Description                                                     |
-|------------------------------------|-----------------------------|-----------------------------------------------------------------|
-| numeric1 + numeric2                | numeric1 + numeric2         | Returns 
NUMERIC1 plus NUMERIC2.                                 |
-| numeric1 - numeric2                | numeric1 - numeric2         | Returns 
NUMERIC1 minus NUMERIC2.                                |
-| numeric1 * numeric2                | numeric1 * numeric2         | Returns 
NUMERIC1 multiplied by NUMERIC2.                        |
-| numeric1 / numeric2                | numeric1 / numeric2         | Returns 
NUMERIC1 divided by NUMERIC2.                          |
-| numeric1 % numeric2                | numeric1 % numeric2         | Returns 
the remainder (modulus) of numeric1 divided by numeric2. |
-| ABS(numeric)                       | abs(numeric)                | Returns 
the absolute value of numeric.                          |
-| CEIL(numeric)<br/>CEILING(numeric) | ceil(numeric)               | Rounds 
numeric up, and returns the smallest number that is greater than or equal to 
numeric. |
-| FLOOR(numeric)                     | floor(numeric)              | Rounds 
numeric down, and returns the largest number that is less than or equal to 
numeric. |
-| ROUND(numeric, int)                | round(numeric)              | Returns a 
number rounded to INT decimal places for NUMERIC.     |
-| UUID()                             | uuid()                      | Returns 
an UUID (Universally Unique Identifier) string (e.g., 
"3d3c68f7-f608-473f-b60c-b0c44ad4cc4e") according to RFC 4122 type 4 (pseudo 
randomly generated) UUID. |
+| Function                           | Janino Code         | Description       
                                                                                
                                                                   |
+|------------------------------------|---------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| numeric1 + numeric2                | numeric1 + numeric2 | Returns NUMERIC1 
plus NUMERIC2.                                                                  
                                                                    |
+| numeric1 - numeric2                | numeric1 - numeric2 | Returns NUMERIC1 
minus NUMERIC2.                                                                 
                                                                    |
+| numeric1 * numeric2                | numeric1 * numeric2 | Returns NUMERIC1 
multiplied by NUMERIC2.                                                         
                                                                    |
+| numeric1 / numeric2                | numeric1 / numeric2 | Returns NUMERIC1 
divided by NUMERIC2.                                                            
                                                                    |
+| numeric1 % numeric2                | numeric1 % numeric2 | Returns the 
remainder (modulus) of numeric1 divided by numeric2.                            
                                                                         |
+| ABS(numeric)                       | abs(numeric)        | Returns the 
absolute value of numeric.                                                      
                                                                         |
+| CEIL(numeric)<br/>CEILING(numeric) | ceil(numeric)       | Rounds numeric 
up, and returns the smallest number that is greater than or equal to numeric.   
                                                                      |
+| FLOOR(numeric)                     | floor(numeric)      | Rounds numeric 
down, and returns the largest number that is less than or equal to numeric.     
                                                                      |
+| ROUND(numeric, int)                | round(numeric)      | Returns a number 
rounded to INT decimal places for NUMERIC.                                      
                                                                    |
+| UUID()                             | uuid()              | Returns an UUID 
(Universally Unique Identifier) string (e.g., 
"3d3c68f7-f608-473f-b60c-b0c44ad4cc4e") according to RFC 4122 type 4 (pseudo 
randomly generated) UUID. |
 
 ## String Functions
 
-| Function             | Janino Code              | Description                
                                                                                
                                                                                
       |
-| -------------------- | ------------------------ 
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| string1 &#124;&#124; string2 | concat(string1, string2) | Returns the 
concatenation of STRING1 and STRING2.                                           
                                                                                
                      |
-| CHAR_LENGTH(string)  | charLength(string)       | Returns the number of 
characters in STRING.                                                           
                                                                                
            |
-| UPPER(string)        | upper(string)            | Returns string in 
uppercase.                                                                      
                                                                                
                |
-| LOWER(string) | lower(string) | Returns string in lowercase.                 
                                                                                
                                                                     |
-| TRIM(string1) | trim('BOTH',string1) | Returns a string that removes 
whitespaces at both sides.                                                      
                                                                                
    |
-| REGEXP_REPLACE(string1, string2, string3) | regexpReplace(string1, string2, 
string3) | Returns a string from STRING1 with all the substrings that match a 
regular expression STRING2 consecutively being replaced with STRING3. E.g., 
'foobar'.regexpReplace('oo\|ar', '') returns "fb". |
-| SUBSTR(string, integer1[, integer2]) | substr(string,integer1,integer2) | 
Returns a substring of STRING starting from position integer1 with length 
integer2 (to the end by default).                                               
                                        |
-| SUBSTRING(string FROM integer1 [ FOR integer2 ]) | 
substring(string,integer1,integer2) | Returns a substring of STRING starting 
from position integer1 with length integer2 (to the end by default).            
                                                                           |
-| CONCAT(string1, string2,…) | concat(string1, string2,…) | Returns a string 
that concatenates string1, string2, …. E.g., CONCAT('AA', 'BB', 'CC') returns 
'AABBCC'.                                                                       
                   |
+| Function                                         | Janino Code               
               | Description                                                    
                                                                                
                                                   |
+|--------------------------------------------------|------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| string1 &#124;&#124; string2                     | concat(string1, string2)  
               | Returns the concatenation of STRING1 and STRING2.              
                                                                                
                                                   |
+| CHAR_LENGTH(string)                              | charLength(string)        
               | Returns the number of characters in STRING.                    
                                                                                
                                                   |
+| UPPER(string)                                    | upper(string)             
               | Returns string in uppercase.                                   
                                                                                
                                                   |
+| LOWER(string)                                    | lower(string)             
               | Returns string in lowercase.                                   
                                                                                
                                                   |
+| TRIM(string1)                                    | trim('BOTH',string1)      
               | Returns a string that removes whitespaces at both sides.       
                                                                                
                                                   |
+| REGEXP_REPLACE(string1, string2, string3)        | regexpReplace(string1, 
string2, string3) | Returns a string from STRING1 with all the substrings that 
match a regular expression STRING2 consecutively being replaced with STRING3. 
E.g., 'foobar'.regexpReplace('oo\|ar', '') returns "fb". |
+| SUBSTR(string, integer1[, integer2])             | 
substr(string,integer1,integer2)         | Returns a substring of STRING 
starting from position integer1 with length integer2 (to the end by default).   
                                                                                
    |
+| SUBSTRING(string FROM integer1 [ FOR integer2 ]) | 
substring(string,integer1,integer2)      | Returns a substring of STRING 
starting from position integer1 with length integer2 (to the end by default).   
                                                                                
    |
+| CONCAT(string1, string2,…)                       | concat(string1, 
string2,…)               | Returns a string that concatenates string1, string2, 
…. E.g., CONCAT('AA', 'BB', 'CC') returns 'AABBCC'.                             
                                                             |
 
 ## Temporal Functions
 
-| Function             | Janino Code              | Description                
                       |
-| -------------------- | ------------------------ | 
------------------------------------------------- |
-| LOCALTIME | localtime() | Returns the current SQL time in the local time 
zone, the return type is TIME(0). |
-| LOCALTIMESTAMP | localtimestamp() | Returns the current SQL timestamp in 
local time zone, the return type is TIMESTAMP(3). |
-| CURRENT_TIME | currentTime() | Returns the current SQL time in the local 
time zone, this is a synonym of LOCAL_TIME. |
-| CURRENT_DATE                                         | currentDate() | 
Returns the current SQL date in the local time zone. |
-| CURRENT_TIMESTAMP | currentTimestamp() | Returns the current SQL timestamp 
in the local time zone, the return type is TIMESTAMP_LTZ(3). |
-| NOW() | now() | Returns the current SQL timestamp in the local time zone, 
this is a synonym of CURRENT_TIMESTAMP. |
-| DATE_FORMAT(timestamp, string) | dateFormat(timestamp, string) | Converts 
timestamp to a value of string in the format specified by the date format 
string. The format string is compatible with Java's SimpleDateFormat. |
-| TIMESTAMPADD(timeintervalunit, interval, timepoint)   | 
timestampadd(timeintervalunit, interval, timepoint)  | Returns the timestamp of 
timepoint2 after timepoint added interval. The unit for the interval is given 
by the first argument, which should be one of the following values: SECOND, 
MINUTE, HOUR, DAY, MONTH, or YEAR.     |
-| TIMESTAMPDIFF(timepointunit, timepoint1, timepoint2) | 
timestampDiff(timepointunit, timepoint1, timepoint2) | Returns the (signed) 
number of timepointunit between timepoint1 and timepoint2. The unit for the 
interval is given by the first argument, which should be one of the following 
values: SECOND, MINUTE, HOUR, DAY, MONTH, or YEAR. |
-| TO_DATE(string1[, string2]) | toDate(string1[, string2]) | Converts a date 
string string1 with format string2 (by default 'yyyy-MM-dd') to a date. |
-| TO_TIMESTAMP(string1[, string2]) | toTimestamp(string1[, string2]) | 
Converts date time string string1 with format string2 (by default: 'yyyy-MM-dd 
HH:mm:ss') to a timestamp, without time zone. |
-| FROM_UNIXTIME(numeric[, string]) | fromUnixtime(NUMERIC[, STRING]) | Returns 
a representation of the numeric argument as a value in string format (default 
is ‘yyyy-MM-dd HH:mm:ss’). numeric is an internal timestamp value representing 
seconds since ‘1970-01-01 00:00:00’ UTC, such as produced by the 
UNIX_TIMESTAMP() function. The return value is expressed in the session time 
zone (specified in TableConfig). E.g., FROM_UNIXTIME(44) returns ‘1970-01-01 
00:00:44’ if in UTC time zone, but returns ‘1970-01-01 09:00:44’ if in 
‘Asia/Tokyo’ time zone. |
-| UNIX_TIMESTAMP() | unixTimestamp() | Gets current Unix timestamp in seconds. 
This function is not deterministic which means the value would be recalculated 
for each record. |
-| UNIX_TIMESTAMP(string1[, string2]) | unixTimestamp(STRING1[, STRING2]) | 
Converts a date time string string1 with format string2 (by default: yyyy-MM-dd 
HH:mm:ss if not specified) to Unix timestamp (in seconds), using the specified 
timezone in table config.<br/>If a time zone is specified in the date time 
string and parsed by UTC+X format such as “yyyy-MM-dd HH:mm:ss.SSS X”, this 
function will use the specified timezone in the date time string instead of the 
timezone in table config. If the date time string can not be parsed, the 
default value Long.MIN_VALUE(-9223372036854775808) will be returned.|
+| Function                                             | Janino Code           
                               |   | Description                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
         |
+|------------------------------------------------------|------------------------------------------------------|:--|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| LOCALTIME                                            | localtime()           
                               |   | Returns the current SQL time in the local 
time zone, the return type is TIME(0).                                          
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
          |
+| LOCALTIMESTAMP                                       | localtimestamp()      
                               |   | Returns the current SQL timestamp in local 
time zone, the return type is TIMESTAMP(3).                                     
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
         |
+| CURRENT_TIME                                         | currentTime()         
                               |   | Returns the current SQL time in the local 
time zone, this is a synonym of LOCAL_TIME.                                     
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
          |
+| CURRENT_DATE                                         | currentDate()         
                               |   | Returns the current SQL date in the local 
time zone.                                                                      
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
          |
+| CURRENT_TIMESTAMP                                    | currentTimestamp()    
                               |   | Returns the current SQL timestamp in the 
local time zone, the return type is TIMESTAMP_LTZ(3).                           
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
           |
+| NOW()                                                | now()                 
                               |   | Returns the current SQL timestamp in the 
local time zone, this is a synonym of CURRENT_TIMESTAMP.                        
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
           |
+| DATE_FORMAT(timestamp, string)                       | dateFormat(timestamp, 
string)                        |   | Converts timestamp to a value of string in 
the format specified by the format string. The format string is compatible with 
Java's SimpleDateFormat.                                                        
                                                                                
                                                                                
                                                                                
                                                                                
         |
+| DATE_FORMAT(date, string)                            | dateFormat(date, 
string)                             |   | Converts given date to a value of 
string in the format specified by the format string. The format string is 
compatible with Java's SimpleDateFormat.                                        
                                                                                
                                                                                
                                                                                
                                                                                
                        |
+| DATE_FORMAT(time, string)                            | dateFormat(time, 
string)                             |   | Converts given time to a value of 
string in the format specified by the format string. The format string is 
compatible with Java's SimpleDateFormat.                                        
                                                                                
                                                                                
                                                                                
                                                                                
                        |
+| TIMESTAMPADD(timeintervalunit, interval, timepoint)  | 
timestampadd(timeintervalunit, interval, timepoint)  |   | Returns the 
timestamp of timepoint2 after timepoint added interval. The unit for the 
interval is given by the first argument, which should be one of the following 
values: SECOND, MINUTE, HOUR, DAY, MONTH, or YEAR.                              
                                                                                
                                                                                
                                                                                
                                                 |
+| TIMESTAMPDIFF(timepointunit, timepoint1, timepoint2) | 
timestampDiff(timepointunit, timepoint1, timepoint2) |   | Returns the (signed) 
number of timepointunit between timepoint1 and timepoint2. The unit for the 
interval is given by the first argument, which should be one of the following 
values: SECOND, MINUTE, HOUR, DAY, MONTH, or YEAR.                              
                                                                                
                                                                                
                                                                                
                                     |
+| TO_DATE(string1[, string2])                          | toDate(string1[, 
string2])                           |   | Converts a date string string1 with 
format string2 (by default 'yyyy-MM-dd') to a date.                             
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                |
+| TO_TIMESTAMP(string1[, string2])                     | toTimestamp(string1[, 
string2])                      |   | Converts date time string string1 with 
format string2 (by default: 'yyyy-MM-dd HH:mm:ss') to a timestamp, without time 
zone.                                                                           
                                                                                
                                                                                
                                                                                
                                                                                
             |
+| TO_TIMESTAMP_LTZ(string1[, string2])                 | 
toTimestampLtz(string1[, string2])                   |   | Converts date time 
string string1 with format string2 (by default: 'yyyy-MM-dd HH:mm:ss') to a 
timestamp, with local time zone.                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                     |
+| FROM_UNIXTIME(numeric[, string])                     | 
fromUnixtime(NUMERIC[, STRING])                      |   | Returns a 
representation of the numeric argument as a value in string format (default is 
‘yyyy-MM-dd HH:mm:ss’). numeric is an internal timestamp value representing 
seconds since ‘1970-01-01 00:00:00’ UTC, such as produced by the 
UNIX_TIMESTAMP() function. The return value is expressed in the session time 
zone (specified in TableConfig). E.g., FROM_UNIXTIME(44) returns ‘1970-01-01 
00:00:44’ if in UTC time zone, but returns ‘1970-01-01 09:00:44’ if in 
‘Asia/Tokyo’ time zone.                                                      |
+| UNIX_TIMESTAMP()                                     | unixTimestamp()       
                               |   | Gets current Unix timestamp in seconds. 
This function is not deterministic which means the value would be recalculated 
for each record.                                                                
                                                                                
                                                                                
                                                                                
                                                                                
             |
+| UNIX_TIMESTAMP(string1[, string2])                   | 
unixTimestamp(STRING1[, STRING2])                    |   | Converts a date time 
string string1 with format string2 (by default: yyyy-MM-dd HH:mm:ss if not 
specified) to Unix timestamp (in seconds), using the specified timezone in 
table config.<br/>If a time zone is specified in the date time string and 
parsed by UTC+X format such as “yyyy-MM-dd HH:mm:ss.SSS X”, this function will 
use the specified timezone in the date time string instead of the timezone in 
table config. If the date time string can not be parsed, the default value 
Long.MIN_VALUE(-9223372036854775808) will be returned. |
+| DATE_ADD(date, int)                                  | dateAdd(date, int)    
                               |   | Add N days to given date data.             
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
         |                                                                      
                                                                                
                                                                                
                                                                                
                                      
                                                                                
                                                                                
                    |

Review Comment:
   The newly added DATE_FORMAT_TZ function is implemented in the code 
(TransformSqlOperatorTable.java lines 322-334) and tested (temporal.yaml), but 
is not documented in this file. Users need documentation to understand how to 
use this function, including its parameters and behavior.
   ```suggestion
   | DATE_ADD(date, int)                                  | dateAdd(date, int)  
                                 |   | Add N days to given date data.           
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
           |
   | DATE_FORMAT_TZ(datetime, format, timezone)           | 
dateFormatTz(DATETIME, FORMAT, TIMEZONE)             |   | Formats a datetime 
value as a string using the given pattern and time zone. The semantics are the 
same as DATE_FORMAT, but the third argument specifies the time zone to use (for 
example, 'UTC', 'Europe/Berlin', or '+08:00').                                  
                                                                                
            |
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to