(array: &ArrayData)
| 236 | } |
| 237 | |
| 238 | fn build_extend(array: &ArrayData) -> Extend<'_> { |
| 239 | match array.data_type() { |
| 240 | DataType::Null => null::build_extend(array), |
| 241 | DataType::Boolean => boolean::build_extend(array), |
| 242 | DataType::UInt8 => primitive::build_extend::<u8>(array), |
| 243 | DataType::UInt16 => primitive::build_extend::<u16>(array), |
| 244 | DataType::UInt32 => primitive::build_extend::<u32>(array), |
| 245 | DataType::UInt64 => primitive::build_extend::<u64>(array), |
| 246 | DataType::Int8 => primitive::build_extend::<i8>(array), |
| 247 | DataType::Int16 => primitive::build_extend::<i16>(array), |
| 248 | DataType::Int32 => primitive::build_extend::<i32>(array), |
| 249 | DataType::Int64 => primitive::build_extend::<i64>(array), |
| 250 | DataType::Float32 => primitive::build_extend::<f32>(array), |
| 251 | DataType::Float64 => primitive::build_extend::<f64>(array), |
| 252 | DataType::Date32 | DataType::Time32(_) | DataType::Interval(IntervalUnit::YearMonth) => { |
| 253 | primitive::build_extend::<i32>(array) |
| 254 | } |
| 255 | DataType::Date64 |
| 256 | | DataType::Time64(_) |
| 257 | | DataType::Timestamp(_, _) |
| 258 | | DataType::Duration(_) |
| 259 | | DataType::Interval(IntervalUnit::DayTime) => primitive::build_extend::<i64>(array), |
| 260 | DataType::Interval(IntervalUnit::MonthDayNano) => primitive::build_extend::<i128>(array), |
| 261 | DataType::Decimal32(_, _) => primitive::build_extend::<i32>(array), |
| 262 | DataType::Decimal64(_, _) => primitive::build_extend::<i64>(array), |
| 263 | DataType::Decimal128(_, _) => primitive::build_extend::<i128>(array), |
| 264 | DataType::Decimal256(_, _) => primitive::build_extend::<i256>(array), |
| 265 | DataType::Utf8 | DataType::Binary => variable_size::build_extend::<i32>(array), |
| 266 | DataType::LargeUtf8 | DataType::LargeBinary => variable_size::build_extend::<i64>(array), |
| 267 | DataType::BinaryView | DataType::Utf8View => unreachable!("should use build_extend_view"), |
| 268 | DataType::Map(_, _) | DataType::List(_) => list::build_extend::<i32>(array), |
| 269 | DataType::LargeList(_) => list::build_extend::<i64>(array), |
| 270 | DataType::ListView(_) => list_view::build_extend::<i32>(array), |
| 271 | DataType::LargeListView(_) => list_view::build_extend::<i64>(array), |
| 272 | DataType::Dictionary(_, _) => unreachable!("should use build_extend_dictionary"), |
| 273 | DataType::Struct(_) => structure::build_extend(array), |
| 274 | DataType::FixedSizeBinary(_) => fixed_binary::build_extend(array), |
| 275 | DataType::Float16 => primitive::build_extend::<f16>(array), |
| 276 | DataType::FixedSizeList(_, _) => fixed_size_list::build_extend(array), |
| 277 | DataType::Union(_, mode) => match mode { |
| 278 | UnionMode::Sparse => union::build_extend_sparse(array), |
| 279 | UnionMode::Dense => union::build_extend_dense(array), |
| 280 | }, |
| 281 | DataType::RunEndEncoded(_, _) => run::build_extend(array), |
| 282 | } |
| 283 | } |
| 284 | |
| 285 | fn build_extend_nulls(data_type: &DataType) -> ExtendNulls { |
| 286 | Box::new(match data_type { |
no test coverage detected