-
Couldn't load subscription status.
- Fork 1.7k
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
Describe the bug
While working on #12415, I found STRPOS can't accept a dictionary string as an argument.
To Reproduce
The following SQL can reproduce this bug
> create table test_source as values
('Andrew', 'X', 'datafusion📊🔥', '🔥'),
('Xiangpeng', 'Xiangpeng', 'datafusion数据融合', 'datafusion数据融合'),
('Raphael', 'R', 'datafusionДатаФусион', 'аФус'),
(NULL, 'R', NULL, '🔥');
0 row(s) fetched.
Elapsed 0.068 seconds.
> create table test_basic_operator as
select
arrow_cast(column1, 'Dictionary(Int32, Utf8)') as ascii_1,
arrow_cast(column2, 'Dictionary(Int32, Utf8)') as ascii_2,
arrow_cast(column3, 'Dictionary(Int32, Utf8)') as unicode_1,
arrow_cast(column4, 'Dictionary(Int32, Utf8)') as unicode_2
from test_source;
0 row(s) fetched.
Elapsed 0.043 seconds.
> SELECT
STRPOS(ascii_1, 'e'),
STRPOS(ascii_1, 'ang'),
STRPOS(ascii_1, NULL),
STRPOS(unicode_1, 'и'),
STRPOS(unicode_1, 'ион'),
STRPOS(unicode_1, NULL)
FROM test_basic_operator;
Execution error: Unsupported data type combination (Dictionary(Int32, Utf8), Utf8) for function strpos
Expected behavior
This SQL should work.
Additional context
Actually, it may be a bug in recent commits. I am really sure it worked until 26c8004 (#12619). After rebasing to the latest main branch, the test case added by #12618 is broken. The bug maybe caused by 524e56d..c21d025
2010YOUY01
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working