Skip to content

Add tests for support for DataType::Union #10161

@alamb

Description

@alamb

Is your feature request related to a problem or challenge?

As we saw on #10139 with @joroKr21 there is not any particularly good way to test the coverage of DataType::Union today with our tests.

Note this is different than the SQL UNION / UNION ALL feature in union.slt

Describe the solution you'd like

I would like some way to test DataType::Union , ideally via sqllogictest -- in union_type.slt

Describe alternatives you've considered

I think the ideal alternative is to create a function that creates a UnionArray from different columns and use that function to create some simple queries / data in union_type.slt

Something like make_union(col1, col2, ...) (similarly to make_array) that results in a single column output of UnionArray

--- create a single UNION with two members (String and F64) with the string variant
select make_union('a'::varchar, null::double)

--- create a single UNION with two members (String and F64) with the f64
select make_union(null::varchar, 1.234)

--- Error: can't figure out which variant to create
select make_union('a', 123.4)

An alternate, option would be to register tables specially for similarly to

match file_name {
"information_schema_table_types.slt" => {
info!("Registering local temporary table");
register_temp_table(test_ctx.session_ctx()).await;
)

We could create a UnionArray using the examples from https://docs.rs/arrow/latest/arrow/array/struct.UnionArray.html

Additional context

See #10139 (review)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions