[ 
https://issues.apache.org/jira/browse/CALCITE-5979?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17763232#comment-17763232
 ] 

Julian Hyde edited comment on CALCITE-5979 at 9/8/23 7:35 PM:
--------------------------------------------------------------

The simplest thing is to change the specification to match what is easy to 
implement. Specifically, to say that {{REGEXP_REPLACE}} supports Java regexp 
syntax. 

We can have a follow-up case to allow the {{REGEXP_xxx}} functions support BQ 
syntax, and to devise a flag to enable the BQ mode. In that case, list the 
cases where the current implementation is wrong. Over time, the demand to fix 
that follow-up case will grow, but we can defer it for a while.

As you can see, I'm punting on whether we have one operator or two. I really 
think that kicking the can down the road is the best strategy.


was (Author: julianhyde):
The simplest thing is to change the specification to match what is easy to 
implement. Specifically, to say that {{REGEXP_REPLACE}} supports Java regexp 
syntax. 

We can have a follow-up case to allow the {{REGEXP_xxx}} functions support BQ 
syntax, and to devise a flag to enable the BQ mode. In that case, list the 
cases where the current implementation is wrong. Over time, the demand to fix 
that follow-up case will grow, but we can defer it for a while.

> Add REGEXP_REPLACE function (enabled in BigQuery library)
> ---------------------------------------------------------
>
>                 Key: CALCITE-5979
>                 URL: https://issues.apache.org/jira/browse/CALCITE-5979
>             Project: Calcite
>          Issue Type: Task
>            Reporter: Jerin John
>            Assignee: Jerin John
>            Priority: Major
>              Labels: pull-request-available
>
> Add support for [REGEXP_REPLACE 
> |https://cloud.google.com/bigquery/docs/reference/standard-sql/string_functions#regexp_replace]
>  function from BigQuery.
> *{{REGEXP_REPLACE(value, regexp, replacement)}}*
> Returns a STRING where all substrings of {{value}} that match regular 
> expression {{regexp}} are replaced with {{{}replacement{}}}.
> backslashed-escaped digits (\1 to \9) can be used within the {{replacement}} 
> argument to insert text matching the corresponding parenthesized group in the 
> {{regexp}} pattern.
> Example (added one space between \ \ to override md formatting):
> {{SELECT REGEXP_REPLACE("abc'", "b(.)", "X\ \1") as result;}}
> |result|
> |aXc|



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

Reply via email to