[ 
https://issues.apache.org/jira/browse/CALCITE-5451?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jess Balint closed CALCITE-5451.
--------------------------------

Resolved in release 1.33.0 (2023-02-06)

> Implement LPAD() and RPAD() functions
> -------------------------------------
>
>                 Key: CALCITE-5451
>                 URL: https://issues.apache.org/jira/browse/CALCITE-5451
>             Project: Calcite
>          Issue Type: Improvement
>            Reporter: Oliver Lee
>            Assignee: Oliver Lee
>            Priority: Minor
>              Labels: pull-request-available
>             Fix For: 1.33.0
>
>          Time Spent: 40m
>  Remaining Estimate: 0h
>
> Adding in LPAD() and RPAD()for BIG_QUERY as per 
> [https://g3doc.corp.google.com/company/teams/googlesql/reference/string_functions.md?cl=head#lpad]
>  and 
> [https://g3doc.corp.google.com/company/teams/googlesql/reference/string_functions.md?cl=head#rpad]
>  describes
>  
> {{LPAD(original_value, return_length[, pattern])}}
> {quote}Returns a {{STRING}} or {{BYTES}} value that consists of 
> {{original_value}} prepended with {{{}pattern{}}}. The {{return_length}} is 
> an {{INT64}} that specifies the length of the returned value. If 
> {{original_value}} is of type {{{}BYTES{}}}, {{return_length}} is the number 
> of bytes. If {{original_value}} is of type {{{}STRING{}}}, {{return_length}} 
> is the number of characters.
> The default value of {{pattern}} is a blank space.
> Both {{original_value}} and {{pattern}} must be the same data type.
> If {{return_length}} is less than or equal to the {{original_value}} length, 
> this function returns the {{original_value}} value, truncated to the value of 
> {{{}return_length{}}}. For example, {{LPAD('hello world', 7);}} returns 
> {{{}'hello w'{}}}.
> If {{{}original_value{}}}, {{{}return_length{}}}, or {{pattern}} is 
> {{{}NULL{}}}, this function returns {{{}NULL{}}}.
> This function returns an error if:
>  * {{return_length}} is negative
>  * {{pattern}} is empty{quote}
>  
> LPAD Examples:
> LPAD('12345', 8, 'a') -> "aaa12345"
> LPAD('12345', 8) -> "   12345"
> LPAD('12345', 8, 'ab') -> "aba12345"
> LPAD('12345', 8, 'a') -> "aaa12345"
> LPAD('12345', -3) -> error
> LPAD('12345', 3, '') -> error
>  
> ----
>  
> {{RPAD(original_value, return_length[, pattern])}}
>  
> {quote}Returns a {{STRING}} or {{BYTES}} value that consists of 
> {{original_value}} appended with {{{}pattern{}}}. The {{return_length}} 
> parameter is an {{INT64}} that specifies the length of the returned value. If 
> {{original_value}} is {{{}BYTES{}}}, {{return_length}} is the number of 
> bytes. If {{original_value}} is {{{}STRING{}}}, {{return_length}} is the 
> number of characters.
> The default value of {{pattern}} is a blank space.
> Both {{original_value}} and {{pattern}} must be the same data type.
> If {{return_length}} is less than or equal to the {{original_value}} length, 
> this function returns the {{original_value}} value, truncated to the value of 
> {{{}return_length{}}}. For example, {{RPAD('hello world', 7);}} returns 
> {{{}'hello w'{}}}.
> If {{{}original_value{}}}, {{{}return_length{}}}, or {{pattern}} is 
> {{{}NULL{}}}, this function returns {{{}NULL{}}}.
> This function returns an error if:
>  * {{return_length}} is negative
>  * {{pattern}} is empty{quote}
>  
> RPAD Examples:
> RPAD('12345', 8, 'a') -> "12345aaa"
> RPAD('12345', 8) -> "12345.  "
> RPAD('12345', 8, 'ab') -> "12345aba"
> RPAD('12345', 8, 'a') -> "12345aaa"
> RPAD('12345', -3) -> error
> RPAD('12345', 3, '') -> error



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to