Yibo Dong created SPARK-60125:
---------------------------------

             Summary: regexp_instr ignores the specified regex group index
                 Key: SPARK-60125
                 URL: https://issues.apache.org/jira/browse/SPARK-60125
             Project: Spark
          Issue Type: Bug
          Components: SQL
    Affects Versions: 5.0.0
         Environment: Spark: 5.0.0-SNAPSHOT
Commit: 38422aefaf599ffb4cfa579d98898d95b1f02081
Java: OpenJDK 17.0.17
OS: macOS 15.7.4
            Reporter: Yibo Dong


h2. What happened

{{regexp_instr}} returns the start position of the full regex match even when a 
different capture group is selected using the third argument. This produces an 
incorrect result when the selected group starts after the full match.

h2. How to reproduce

Run the following SQL using {{spark-sql}}:

{code:sql}
SELECT regexp_instr('abc123', '([a-z]+)([0-9]+)', 2) AS position;
{code}

Save the SQL as {{repro.sql}} and run:

{code:bash}
spark-sql --master 'local[2]' 
  --conf spark.ui.enabled=false 
  -f repro.sql
{code}

h2. Expected result

The second capture group matches {{123}}, which starts at the fourth character 
of {{abc123}}. The result should be:

{code:text}
position
--------
4
{code}

h2. Actual result

The query returns the start position of the full match:

{code:text}
position
--------
1
{code}

h2. Additional information

Spark's  ocumentation defines the third argument, {{idx}}, as the matched regex 
group index.

The implementation appears to use the start position of the full match without 
considering the selected group index. 



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to