Skip to content

bug: instr/position/strpos does not support COLLATE NOCASE while other string functions do #18705

@nojvek

Description

@nojvek

What happens?

SELECT strpos('HELLO' COLLATE NOCASE, 'el'); // returns 0 (no match found, but should return 2)

To Reproduce

SELECT contains('HELLO' COLLATE NOCASE, 'hEllO'); // returns true
SELECT starts_with('HELLO' COLLATE NOCASE, 'heL'); // returns true

SELECT strpos('HELLO' COLLATE NOCASE, 'el'); // returns 0 (no match found, but should return 2)
SELECT strpos('HELLO' COLLATE NOCASE, 'EL'); // returns 2 (match found)

contains and starts_with support COLLATE NOCASE, but strpos does not. I'd like to use motherduck to rank string searches with earlier matches ahead of later matches.

OS:

macOS 14.6.1 - Apple Silicon

DuckDB Version:

1.3

DuckDB Client:

Python

Hardware:

Macbook Air

Full Name:

Noj

Affiliation:

Recurrency

What is the latest build you tested with? If possible, we recommend testing with the latest nightly build.

I have tested with a stable release

Did you include all relevant data sets for reproducing the issue?

Yes

Did you include all code required to reproduce the issue?

  • Yes, I have

Did you include all relevant configuration (e.g., CPU architecture, Python version, Linux distribution) to reproduce the issue?

  • Yes, I have

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions