@@ -73,11 +73,14 @@ use std::str::FromStr;
73
73
use std:: sync:: Arc ;
74
74
75
75
use crate :: variation_const:: {
76
- DATE_32_TYPE_REF , DATE_64_TYPE_REF , DECIMAL_128_TYPE_REF , DECIMAL_256_TYPE_REF ,
77
- DEFAULT_CONTAINER_TYPE_REF , DEFAULT_TYPE_REF , INTERVAL_DAY_TIME_TYPE_REF ,
78
- INTERVAL_MONTH_DAY_NANO_TYPE_REF , INTERVAL_YEAR_MONTH_TYPE_REF ,
79
- LARGE_CONTAINER_TYPE_REF , TIMESTAMP_MICRO_TYPE_REF , TIMESTAMP_MILLI_TYPE_REF ,
80
- TIMESTAMP_NANO_TYPE_REF , TIMESTAMP_SECOND_TYPE_REF , UNSIGNED_INTEGER_TYPE_REF ,
76
+ DATE_32_TYPE_VARIATION_REF , DATE_64_TYPE_VARIATION_REF ,
77
+ DECIMAL_128_TYPE_VARIATION_REF , DECIMAL_256_TYPE_VARIATION_REF ,
78
+ DEFAULT_CONTAINER_TYPE_VARIATION_REF , DEFAULT_TYPE_VARIATION_REF ,
79
+ INTERVAL_DAY_TIME_TYPE_REF , INTERVAL_MONTH_DAY_NANO_TYPE_REF ,
80
+ INTERVAL_YEAR_MONTH_TYPE_REF , LARGE_CONTAINER_TYPE_VARIATION_REF ,
81
+ TIMESTAMP_MICRO_TYPE_VARIATION_REF , TIMESTAMP_MILLI_TYPE_VARIATION_REF ,
82
+ TIMESTAMP_NANO_TYPE_VARIATION_REF , TIMESTAMP_SECOND_TYPE_VARIATION_REF ,
83
+ UNSIGNED_INTEGER_TYPE_VARIATION_REF ,
81
84
} ;
82
85
83
86
enum ScalarFunctionType {
@@ -1130,62 +1133,62 @@ fn from_substrait_type(
1130
1133
Some ( s_kind) => match s_kind {
1131
1134
r#type:: Kind :: Bool ( _) => Ok ( DataType :: Boolean ) ,
1132
1135
r#type:: Kind :: I8 ( integer) => match integer. type_variation_reference {
1133
- DEFAULT_TYPE_REF => Ok ( DataType :: Int8 ) ,
1134
- UNSIGNED_INTEGER_TYPE_REF => Ok ( DataType :: UInt8 ) ,
1136
+ DEFAULT_TYPE_VARIATION_REF => Ok ( DataType :: Int8 ) ,
1137
+ UNSIGNED_INTEGER_TYPE_VARIATION_REF => Ok ( DataType :: UInt8 ) ,
1135
1138
v => not_impl_err ! (
1136
1139
"Unsupported Substrait type variation {v} of type {s_kind:?}"
1137
1140
) ,
1138
1141
} ,
1139
1142
r#type:: Kind :: I16 ( integer) => match integer. type_variation_reference {
1140
- DEFAULT_TYPE_REF => Ok ( DataType :: Int16 ) ,
1141
- UNSIGNED_INTEGER_TYPE_REF => Ok ( DataType :: UInt16 ) ,
1143
+ DEFAULT_TYPE_VARIATION_REF => Ok ( DataType :: Int16 ) ,
1144
+ UNSIGNED_INTEGER_TYPE_VARIATION_REF => Ok ( DataType :: UInt16 ) ,
1142
1145
v => not_impl_err ! (
1143
1146
"Unsupported Substrait type variation {v} of type {s_kind:?}"
1144
1147
) ,
1145
1148
} ,
1146
1149
r#type:: Kind :: I32 ( integer) => match integer. type_variation_reference {
1147
- DEFAULT_TYPE_REF => Ok ( DataType :: Int32 ) ,
1148
- UNSIGNED_INTEGER_TYPE_REF => Ok ( DataType :: UInt32 ) ,
1150
+ DEFAULT_TYPE_VARIATION_REF => Ok ( DataType :: Int32 ) ,
1151
+ UNSIGNED_INTEGER_TYPE_VARIATION_REF => Ok ( DataType :: UInt32 ) ,
1149
1152
v => not_impl_err ! (
1150
1153
"Unsupported Substrait type variation {v} of type {s_kind:?}"
1151
1154
) ,
1152
1155
} ,
1153
1156
r#type:: Kind :: I64 ( integer) => match integer. type_variation_reference {
1154
- DEFAULT_TYPE_REF => Ok ( DataType :: Int64 ) ,
1155
- UNSIGNED_INTEGER_TYPE_REF => Ok ( DataType :: UInt64 ) ,
1157
+ DEFAULT_TYPE_VARIATION_REF => Ok ( DataType :: Int64 ) ,
1158
+ UNSIGNED_INTEGER_TYPE_VARIATION_REF => Ok ( DataType :: UInt64 ) ,
1156
1159
v => not_impl_err ! (
1157
1160
"Unsupported Substrait type variation {v} of type {s_kind:?}"
1158
1161
) ,
1159
1162
} ,
1160
1163
r#type:: Kind :: Fp32 ( _) => Ok ( DataType :: Float32 ) ,
1161
1164
r#type:: Kind :: Fp64 ( _) => Ok ( DataType :: Float64 ) ,
1162
1165
r#type:: Kind :: Timestamp ( ts) => match ts. type_variation_reference {
1163
- TIMESTAMP_SECOND_TYPE_REF => {
1166
+ TIMESTAMP_SECOND_TYPE_VARIATION_REF => {
1164
1167
Ok ( DataType :: Timestamp ( TimeUnit :: Second , None ) )
1165
1168
}
1166
- TIMESTAMP_MILLI_TYPE_REF => {
1169
+ TIMESTAMP_MILLI_TYPE_VARIATION_REF => {
1167
1170
Ok ( DataType :: Timestamp ( TimeUnit :: Millisecond , None ) )
1168
1171
}
1169
- TIMESTAMP_MICRO_TYPE_REF => {
1172
+ TIMESTAMP_MICRO_TYPE_VARIATION_REF => {
1170
1173
Ok ( DataType :: Timestamp ( TimeUnit :: Microsecond , None ) )
1171
1174
}
1172
- TIMESTAMP_NANO_TYPE_REF => {
1175
+ TIMESTAMP_NANO_TYPE_VARIATION_REF => {
1173
1176
Ok ( DataType :: Timestamp ( TimeUnit :: Nanosecond , None ) )
1174
1177
}
1175
1178
v => not_impl_err ! (
1176
1179
"Unsupported Substrait type variation {v} of type {s_kind:?}"
1177
1180
) ,
1178
1181
} ,
1179
1182
r#type:: Kind :: Date ( date) => match date. type_variation_reference {
1180
- DATE_32_TYPE_REF => Ok ( DataType :: Date32 ) ,
1181
- DATE_64_TYPE_REF => Ok ( DataType :: Date64 ) ,
1183
+ DATE_32_TYPE_VARIATION_REF => Ok ( DataType :: Date32 ) ,
1184
+ DATE_64_TYPE_VARIATION_REF => Ok ( DataType :: Date64 ) ,
1182
1185
v => not_impl_err ! (
1183
1186
"Unsupported Substrait type variation {v} of type {s_kind:?}"
1184
1187
) ,
1185
1188
} ,
1186
1189
r#type:: Kind :: Binary ( binary) => match binary. type_variation_reference {
1187
- DEFAULT_CONTAINER_TYPE_REF => Ok ( DataType :: Binary ) ,
1188
- LARGE_CONTAINER_TYPE_REF => Ok ( DataType :: LargeBinary ) ,
1190
+ DEFAULT_CONTAINER_TYPE_VARIATION_REF => Ok ( DataType :: Binary ) ,
1191
+ LARGE_CONTAINER_TYPE_VARIATION_REF => Ok ( DataType :: LargeBinary ) ,
1189
1192
v => not_impl_err ! (
1190
1193
"Unsupported Substrait type variation {v} of type {s_kind:?}"
1191
1194
) ,
@@ -1194,8 +1197,8 @@ fn from_substrait_type(
1194
1197
Ok ( DataType :: FixedSizeBinary ( fixed. length ) )
1195
1198
}
1196
1199
r#type:: Kind :: String ( string) => match string. type_variation_reference {
1197
- DEFAULT_CONTAINER_TYPE_REF => Ok ( DataType :: Utf8 ) ,
1198
- LARGE_CONTAINER_TYPE_REF => Ok ( DataType :: LargeUtf8 ) ,
1200
+ DEFAULT_CONTAINER_TYPE_VARIATION_REF => Ok ( DataType :: Utf8 ) ,
1201
+ LARGE_CONTAINER_TYPE_VARIATION_REF => Ok ( DataType :: LargeUtf8 ) ,
1199
1202
v => not_impl_err ! (
1200
1203
"Unsupported Substrait type variation {v} of type {s_kind:?}"
1201
1204
) ,
@@ -1209,18 +1212,18 @@ fn from_substrait_type(
1209
1212
is_substrait_type_nullable ( inner_type) ?,
1210
1213
) ) ;
1211
1214
match list. type_variation_reference {
1212
- DEFAULT_CONTAINER_TYPE_REF => Ok ( DataType :: List ( field) ) ,
1213
- LARGE_CONTAINER_TYPE_REF => Ok ( DataType :: LargeList ( field) ) ,
1215
+ DEFAULT_CONTAINER_TYPE_VARIATION_REF => Ok ( DataType :: List ( field) ) ,
1216
+ LARGE_CONTAINER_TYPE_VARIATION_REF => Ok ( DataType :: LargeList ( field) ) ,
1214
1217
v => not_impl_err ! (
1215
1218
"Unsupported Substrait type variation {v} of type {s_kind:?}"
1216
1219
) ?,
1217
1220
}
1218
1221
}
1219
1222
r#type:: Kind :: Decimal ( d) => match d. type_variation_reference {
1220
- DECIMAL_128_TYPE_REF => {
1223
+ DECIMAL_128_TYPE_VARIATION_REF => {
1221
1224
Ok ( DataType :: Decimal128 ( d. precision as u8 , d. scale as i8 ) )
1222
1225
}
1223
- DECIMAL_256_TYPE_REF => {
1226
+ DECIMAL_256_TYPE_VARIATION_REF => {
1224
1227
Ok ( DataType :: Decimal256 ( d. precision as u8 , d. scale as i8 ) )
1225
1228
}
1226
1229
v => not_impl_err ! (
@@ -1397,55 +1400,65 @@ fn from_substrait_literal(
1397
1400
let scalar_value = match & lit. literal_type {
1398
1401
Some ( LiteralType :: Boolean ( b) ) => ScalarValue :: Boolean ( Some ( * b) ) ,
1399
1402
Some ( LiteralType :: I8 ( n) ) => match lit. type_variation_reference {
1400
- DEFAULT_TYPE_REF => ScalarValue :: Int8 ( Some ( * n as i8 ) ) ,
1401
- UNSIGNED_INTEGER_TYPE_REF => ScalarValue :: UInt8 ( Some ( * n as u8 ) ) ,
1403
+ DEFAULT_TYPE_VARIATION_REF => ScalarValue :: Int8 ( Some ( * n as i8 ) ) ,
1404
+ UNSIGNED_INTEGER_TYPE_VARIATION_REF => ScalarValue :: UInt8 ( Some ( * n as u8 ) ) ,
1402
1405
others => {
1403
1406
return substrait_err ! ( "Unknown type variation reference {others}" ) ;
1404
1407
}
1405
1408
} ,
1406
1409
Some ( LiteralType :: I16 ( n) ) => match lit. type_variation_reference {
1407
- DEFAULT_TYPE_REF => ScalarValue :: Int16 ( Some ( * n as i16 ) ) ,
1408
- UNSIGNED_INTEGER_TYPE_REF => ScalarValue :: UInt16 ( Some ( * n as u16 ) ) ,
1410
+ DEFAULT_TYPE_VARIATION_REF => ScalarValue :: Int16 ( Some ( * n as i16 ) ) ,
1411
+ UNSIGNED_INTEGER_TYPE_VARIATION_REF => ScalarValue :: UInt16 ( Some ( * n as u16 ) ) ,
1409
1412
others => {
1410
1413
return substrait_err ! ( "Unknown type variation reference {others}" ) ;
1411
1414
}
1412
1415
} ,
1413
1416
Some ( LiteralType :: I32 ( n) ) => match lit. type_variation_reference {
1414
- DEFAULT_TYPE_REF => ScalarValue :: Int32 ( Some ( * n) ) ,
1415
- UNSIGNED_INTEGER_TYPE_REF => ScalarValue :: UInt32 ( Some ( * n as u32 ) ) ,
1417
+ DEFAULT_TYPE_VARIATION_REF => ScalarValue :: Int32 ( Some ( * n) ) ,
1418
+ UNSIGNED_INTEGER_TYPE_VARIATION_REF => ScalarValue :: UInt32 ( Some ( * n as u32 ) ) ,
1416
1419
others => {
1417
1420
return substrait_err ! ( "Unknown type variation reference {others}" ) ;
1418
1421
}
1419
1422
} ,
1420
1423
Some ( LiteralType :: I64 ( n) ) => match lit. type_variation_reference {
1421
- DEFAULT_TYPE_REF => ScalarValue :: Int64 ( Some ( * n) ) ,
1422
- UNSIGNED_INTEGER_TYPE_REF => ScalarValue :: UInt64 ( Some ( * n as u64 ) ) ,
1424
+ DEFAULT_TYPE_VARIATION_REF => ScalarValue :: Int64 ( Some ( * n) ) ,
1425
+ UNSIGNED_INTEGER_TYPE_VARIATION_REF => ScalarValue :: UInt64 ( Some ( * n as u64 ) ) ,
1423
1426
others => {
1424
1427
return substrait_err ! ( "Unknown type variation reference {others}" ) ;
1425
1428
}
1426
1429
} ,
1427
1430
Some ( LiteralType :: Fp32 ( f) ) => ScalarValue :: Float32 ( Some ( * f) ) ,
1428
1431
Some ( LiteralType :: Fp64 ( f) ) => ScalarValue :: Float64 ( Some ( * f) ) ,
1429
1432
Some ( LiteralType :: Timestamp ( t) ) => match lit. type_variation_reference {
1430
- TIMESTAMP_SECOND_TYPE_REF => ScalarValue :: TimestampSecond ( Some ( * t) , None ) ,
1431
- TIMESTAMP_MILLI_TYPE_REF => ScalarValue :: TimestampMillisecond ( Some ( * t) , None ) ,
1432
- TIMESTAMP_MICRO_TYPE_REF => ScalarValue :: TimestampMicrosecond ( Some ( * t) , None ) ,
1433
- TIMESTAMP_NANO_TYPE_REF => ScalarValue :: TimestampNanosecond ( Some ( * t) , None ) ,
1433
+ TIMESTAMP_SECOND_TYPE_VARIATION_REF => {
1434
+ ScalarValue :: TimestampSecond ( Some ( * t) , None )
1435
+ }
1436
+ TIMESTAMP_MILLI_TYPE_VARIATION_REF => {
1437
+ ScalarValue :: TimestampMillisecond ( Some ( * t) , None )
1438
+ }
1439
+ TIMESTAMP_MICRO_TYPE_VARIATION_REF => {
1440
+ ScalarValue :: TimestampMicrosecond ( Some ( * t) , None )
1441
+ }
1442
+ TIMESTAMP_NANO_TYPE_VARIATION_REF => {
1443
+ ScalarValue :: TimestampNanosecond ( Some ( * t) , None )
1444
+ }
1434
1445
others => {
1435
1446
return substrait_err ! ( "Unknown type variation reference {others}" ) ;
1436
1447
}
1437
1448
} ,
1438
1449
Some ( LiteralType :: Date ( d) ) => ScalarValue :: Date32 ( Some ( * d) ) ,
1439
1450
Some ( LiteralType :: String ( s) ) => match lit. type_variation_reference {
1440
- DEFAULT_CONTAINER_TYPE_REF => ScalarValue :: Utf8 ( Some ( s. clone ( ) ) ) ,
1441
- LARGE_CONTAINER_TYPE_REF => ScalarValue :: LargeUtf8 ( Some ( s. clone ( ) ) ) ,
1451
+ DEFAULT_CONTAINER_TYPE_VARIATION_REF => ScalarValue :: Utf8 ( Some ( s. clone ( ) ) ) ,
1452
+ LARGE_CONTAINER_TYPE_VARIATION_REF => ScalarValue :: LargeUtf8 ( Some ( s. clone ( ) ) ) ,
1442
1453
others => {
1443
1454
return substrait_err ! ( "Unknown type variation reference {others}" ) ;
1444
1455
}
1445
1456
} ,
1446
1457
Some ( LiteralType :: Binary ( b) ) => match lit. type_variation_reference {
1447
- DEFAULT_CONTAINER_TYPE_REF => ScalarValue :: Binary ( Some ( b. clone ( ) ) ) ,
1448
- LARGE_CONTAINER_TYPE_REF => ScalarValue :: LargeBinary ( Some ( b. clone ( ) ) ) ,
1458
+ DEFAULT_CONTAINER_TYPE_VARIATION_REF => ScalarValue :: Binary ( Some ( b. clone ( ) ) ) ,
1459
+ LARGE_CONTAINER_TYPE_VARIATION_REF => {
1460
+ ScalarValue :: LargeBinary ( Some ( b. clone ( ) ) )
1461
+ }
1449
1462
others => {
1450
1463
return substrait_err ! ( "Unknown type variation reference {others}" ) ;
1451
1464
}
@@ -1484,11 +1497,10 @@ fn from_substrait_literal(
1484
1497
}
1485
1498
let element_type = elements[ 0 ] . data_type ( ) ;
1486
1499
match lit. type_variation_reference {
1487
- DEFAULT_CONTAINER_TYPE_REF => ScalarValue :: List ( ScalarValue :: new_list (
1488
- elements. as_slice ( ) ,
1489
- & element_type,
1490
- ) ) ,
1491
- LARGE_CONTAINER_TYPE_REF => ScalarValue :: LargeList (
1500
+ DEFAULT_CONTAINER_TYPE_VARIATION_REF => ScalarValue :: List (
1501
+ ScalarValue :: new_list ( elements. as_slice ( ) , & element_type) ,
1502
+ ) ,
1503
+ LARGE_CONTAINER_TYPE_VARIATION_REF => ScalarValue :: LargeList (
1492
1504
ScalarValue :: new_large_list ( elements. as_slice ( ) , & element_type) ,
1493
1505
) ,
1494
1506
others => {
@@ -1503,10 +1515,10 @@ fn from_substrait_literal(
1503
1515
name_idx,
1504
1516
) ?;
1505
1517
match lit. type_variation_reference {
1506
- DEFAULT_CONTAINER_TYPE_REF => {
1518
+ DEFAULT_CONTAINER_TYPE_VARIATION_REF => {
1507
1519
ScalarValue :: List ( ScalarValue :: new_list ( & [ ] , & element_type) )
1508
1520
}
1509
- LARGE_CONTAINER_TYPE_REF => ScalarValue :: LargeList (
1521
+ LARGE_CONTAINER_TYPE_VARIATION_REF => ScalarValue :: LargeList (
1510
1522
ScalarValue :: new_large_list ( & [ ] , & element_type) ,
1511
1523
) ,
1512
1524
others => {
@@ -1590,68 +1602,70 @@ fn from_substrait_null(
1590
1602
match kind {
1591
1603
r#type:: Kind :: Bool ( _) => Ok ( ScalarValue :: Boolean ( None ) ) ,
1592
1604
r#type:: Kind :: I8 ( integer) => match integer. type_variation_reference {
1593
- DEFAULT_TYPE_REF => Ok ( ScalarValue :: Int8 ( None ) ) ,
1594
- UNSIGNED_INTEGER_TYPE_REF => Ok ( ScalarValue :: UInt8 ( None ) ) ,
1605
+ DEFAULT_TYPE_VARIATION_REF => Ok ( ScalarValue :: Int8 ( None ) ) ,
1606
+ UNSIGNED_INTEGER_TYPE_VARIATION_REF => Ok ( ScalarValue :: UInt8 ( None ) ) ,
1595
1607
v => not_impl_err ! (
1596
1608
"Unsupported Substrait type variation {v} of type {kind:?}"
1597
1609
) ,
1598
1610
} ,
1599
1611
r#type:: Kind :: I16 ( integer) => match integer. type_variation_reference {
1600
- DEFAULT_TYPE_REF => Ok ( ScalarValue :: Int16 ( None ) ) ,
1601
- UNSIGNED_INTEGER_TYPE_REF => Ok ( ScalarValue :: UInt16 ( None ) ) ,
1612
+ DEFAULT_TYPE_VARIATION_REF => Ok ( ScalarValue :: Int16 ( None ) ) ,
1613
+ UNSIGNED_INTEGER_TYPE_VARIATION_REF => Ok ( ScalarValue :: UInt16 ( None ) ) ,
1602
1614
v => not_impl_err ! (
1603
1615
"Unsupported Substrait type variation {v} of type {kind:?}"
1604
1616
) ,
1605
1617
} ,
1606
1618
r#type:: Kind :: I32 ( integer) => match integer. type_variation_reference {
1607
- DEFAULT_TYPE_REF => Ok ( ScalarValue :: Int32 ( None ) ) ,
1608
- UNSIGNED_INTEGER_TYPE_REF => Ok ( ScalarValue :: UInt32 ( None ) ) ,
1619
+ DEFAULT_TYPE_VARIATION_REF => Ok ( ScalarValue :: Int32 ( None ) ) ,
1620
+ UNSIGNED_INTEGER_TYPE_VARIATION_REF => Ok ( ScalarValue :: UInt32 ( None ) ) ,
1609
1621
v => not_impl_err ! (
1610
1622
"Unsupported Substrait type variation {v} of type {kind:?}"
1611
1623
) ,
1612
1624
} ,
1613
1625
r#type:: Kind :: I64 ( integer) => match integer. type_variation_reference {
1614
- DEFAULT_TYPE_REF => Ok ( ScalarValue :: Int64 ( None ) ) ,
1615
- UNSIGNED_INTEGER_TYPE_REF => Ok ( ScalarValue :: UInt64 ( None ) ) ,
1626
+ DEFAULT_TYPE_VARIATION_REF => Ok ( ScalarValue :: Int64 ( None ) ) ,
1627
+ UNSIGNED_INTEGER_TYPE_VARIATION_REF => Ok ( ScalarValue :: UInt64 ( None ) ) ,
1616
1628
v => not_impl_err ! (
1617
1629
"Unsupported Substrait type variation {v} of type {kind:?}"
1618
1630
) ,
1619
1631
} ,
1620
1632
r#type:: Kind :: Fp32 ( _) => Ok ( ScalarValue :: Float32 ( None ) ) ,
1621
1633
r#type:: Kind :: Fp64 ( _) => Ok ( ScalarValue :: Float64 ( None ) ) ,
1622
1634
r#type:: Kind :: Timestamp ( ts) => match ts. type_variation_reference {
1623
- TIMESTAMP_SECOND_TYPE_REF => Ok ( ScalarValue :: TimestampSecond ( None , None ) ) ,
1624
- TIMESTAMP_MILLI_TYPE_REF => {
1635
+ TIMESTAMP_SECOND_TYPE_VARIATION_REF => {
1636
+ Ok ( ScalarValue :: TimestampSecond ( None , None ) )
1637
+ }
1638
+ TIMESTAMP_MILLI_TYPE_VARIATION_REF => {
1625
1639
Ok ( ScalarValue :: TimestampMillisecond ( None , None ) )
1626
1640
}
1627
- TIMESTAMP_MICRO_TYPE_REF => {
1641
+ TIMESTAMP_MICRO_TYPE_VARIATION_REF => {
1628
1642
Ok ( ScalarValue :: TimestampMicrosecond ( None , None ) )
1629
1643
}
1630
- TIMESTAMP_NANO_TYPE_REF => {
1644
+ TIMESTAMP_NANO_TYPE_VARIATION_REF => {
1631
1645
Ok ( ScalarValue :: TimestampNanosecond ( None , None ) )
1632
1646
}
1633
1647
v => not_impl_err ! (
1634
1648
"Unsupported Substrait type variation {v} of type {kind:?}"
1635
1649
) ,
1636
1650
} ,
1637
1651
r#type:: Kind :: Date ( date) => match date. type_variation_reference {
1638
- DATE_32_TYPE_REF => Ok ( ScalarValue :: Date32 ( None ) ) ,
1639
- DATE_64_TYPE_REF => Ok ( ScalarValue :: Date64 ( None ) ) ,
1652
+ DATE_32_TYPE_VARIATION_REF => Ok ( ScalarValue :: Date32 ( None ) ) ,
1653
+ DATE_64_TYPE_VARIATION_REF => Ok ( ScalarValue :: Date64 ( None ) ) ,
1640
1654
v => not_impl_err ! (
1641
1655
"Unsupported Substrait type variation {v} of type {kind:?}"
1642
1656
) ,
1643
1657
} ,
1644
1658
r#type:: Kind :: Binary ( binary) => match binary. type_variation_reference {
1645
- DEFAULT_CONTAINER_TYPE_REF => Ok ( ScalarValue :: Binary ( None ) ) ,
1646
- LARGE_CONTAINER_TYPE_REF => Ok ( ScalarValue :: LargeBinary ( None ) ) ,
1659
+ DEFAULT_CONTAINER_TYPE_VARIATION_REF => Ok ( ScalarValue :: Binary ( None ) ) ,
1660
+ LARGE_CONTAINER_TYPE_VARIATION_REF => Ok ( ScalarValue :: LargeBinary ( None ) ) ,
1647
1661
v => not_impl_err ! (
1648
1662
"Unsupported Substrait type variation {v} of type {kind:?}"
1649
1663
) ,
1650
1664
} ,
1651
1665
// FixedBinary is not supported because `None` doesn't have length
1652
1666
r#type:: Kind :: String ( string) => match string. type_variation_reference {
1653
- DEFAULT_CONTAINER_TYPE_REF => Ok ( ScalarValue :: Utf8 ( None ) ) ,
1654
- LARGE_CONTAINER_TYPE_REF => Ok ( ScalarValue :: LargeUtf8 ( None ) ) ,
1667
+ DEFAULT_CONTAINER_TYPE_VARIATION_REF => Ok ( ScalarValue :: Utf8 ( None ) ) ,
1668
+ LARGE_CONTAINER_TYPE_VARIATION_REF => Ok ( ScalarValue :: LargeUtf8 ( None ) ) ,
1655
1669
v => not_impl_err ! (
1656
1670
"Unsupported Substrait type variation {v} of type {kind:?}"
1657
1671
) ,
@@ -1671,12 +1685,12 @@ fn from_substrait_null(
1671
1685
true ,
1672
1686
) ;
1673
1687
match l. type_variation_reference {
1674
- DEFAULT_CONTAINER_TYPE_REF => Ok ( ScalarValue :: List ( Arc :: new (
1675
- GenericListArray :: new_null ( field. into ( ) , 1 ) ,
1676
- ) ) ) ,
1677
- LARGE_CONTAINER_TYPE_REF => Ok ( ScalarValue :: LargeList ( Arc :: new (
1678
- GenericListArray :: new_null ( field. into ( ) , 1 ) ,
1679
- ) ) ) ,
1688
+ DEFAULT_CONTAINER_TYPE_VARIATION_REF => Ok ( ScalarValue :: List (
1689
+ Arc :: new ( GenericListArray :: new_null ( field. into ( ) , 1 ) ) ,
1690
+ ) ) ,
1691
+ LARGE_CONTAINER_TYPE_VARIATION_REF => Ok ( ScalarValue :: LargeList (
1692
+ Arc :: new ( GenericListArray :: new_null ( field. into ( ) , 1 ) ) ,
1693
+ ) ) ,
1680
1694
v => not_impl_err ! (
1681
1695
"Unsupported Substrait type variation {v} of type {kind:?}"
1682
1696
) ,
0 commit comments