Skip to content

octet_length() function not working for StringView columns (SQLancer) #12149

@2010YOUY01

Description

@2010YOUY01

Describe the bug

Native StringView support for octet_length() has been added #11858
However it's not working for StringView column inside table

See reproducer in datafusion-cli
(Compiled from latest main using cargo run, commit a58416c)
The last query should work since this function should already have StringView support

DataFusion CLI v41.0.0
> create table t1(v1 text);
0 row(s) fetched.
Elapsed 0.058 seconds.

> insert into t1 values ('DataFusion'), ('datafusion');
+-------+
| count |
+-------+
| 2     |
+-------+
1 row(s) fetched.
Elapsed 0.047 seconds.

> create table t1_stringview as
select arrow_cast(v1, 'Utf8View') as v1
from t1;
0 row(s) fetched.
Elapsed 0.011 seconds.

# Now we have two equivalent tables `t1` and `t1_stringview`
# The difference is physical representation for string column (StringArray and StringViewArray)

> select octet_length(v1) from t1;
+---------------------+
| octet_length(t1.v1) |
+---------------------+
| 10                  |
| 10                  |
+---------------------+
2 row(s) fetched.
Elapsed 0.006 seconds.

> select octet_length(v1) from t1_stringview;
Arrow error: Compute error: length not supported for Utf8View

To Reproduce

No response

Expected behavior

No response

Additional context

Found by SQLancer #11030

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions