(args: &[ArrayRef])
| 111 | } |
| 112 | |
| 113 | fn cardinality_inner(args: &[ArrayRef]) -> Result<ArrayRef> { |
| 114 | let [array] = take_function_args("cardinality", args)?; |
| 115 | match array.data_type() { |
| 116 | Null => Ok(Arc::new(UInt64Array::new_null(array.len()))), |
| 117 | List(_) => { |
| 118 | let list_array = as_list_array(array)?; |
| 119 | generic_list_cardinality::<i32>(list_array) |
| 120 | } |
| 121 | LargeList(_) => { |
| 122 | let list_array = as_large_list_array(array)?; |
| 123 | generic_list_cardinality::<i64>(list_array) |
| 124 | } |
| 125 | Map(_, _) => { |
| 126 | let map_array = as_map_array(array)?; |
| 127 | generic_map_cardinality(map_array) |
| 128 | } |
| 129 | arg_type => { |
| 130 | exec_err!("cardinality does not support type {arg_type}") |
| 131 | } |
| 132 | } |
| 133 | } |
| 134 | |
| 135 | fn generic_map_cardinality(array: &MapArray) -> Result<ArrayRef> { |
| 136 | let result: UInt64Array = array |
nothing calls this directly
no test coverage detected
searching dependent graphs…