1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
# name: test/sql/function/variant/variant_shredded_extract_nested.test
# group: [variant]
load __TEST_DIR__/nested_types.db readwrite v1.5.0
statement ok
SET variant_minimum_shredding_size = 0;
statement ok
create table list_variant as select
{
'id': l_orderkey,
'my_list': [
l_orderkey,
l_orderkey + 1,
l_orderkey + 2
],
'my_struct': {
'a': l_orderkey,
'b': l_orderkey + 30
}
}::variant as list_variant
from
range(5) t(l_orderkey)
statement ok
checkpoint
# Extract of a LIST without a CAST
query I
select
list_variant.my_list
from
list_variant
limit
1;
----
[0, 1, 2]
# Extract of a LIST with a CAST
query I
select
list_variant.my_list::BIGINT[]
from
list_variant
limit
1;
----
[0, 1, 2]
# Extract of a STRUCT without a CAST
query I
select
list_variant.my_struct
from
list_variant
limit 1;
----
{'a': 0, 'b': 30}
# Extract of a STRUCT with a CAST
query I
select
list_variant.my_struct::STRUCT(b BIGINT, a BIGINT)
from
list_variant
limit 1;
----
{'b': 30, 'a': 0}
query I
select
(list_variant.my_struct::STRUCT(b VARCHAR, a VARCHAR)).b[1]
from
list_variant
limit 1;
----
3
|