Compare two rows by a single column's values.
(col: &ColumnData, a: usize, b: usize)
| 72 | |
| 73 | /// Compare two rows by a single column's values. |
| 74 | fn compare_column_values(col: &ColumnData, a: usize, b: usize) -> std::cmp::Ordering { |
| 75 | match col { |
| 76 | ColumnData::Timestamp(v) => v[a].cmp(&v[b]), |
| 77 | ColumnData::Float64(v) => v[a].partial_cmp(&v[b]).unwrap_or(std::cmp::Ordering::Equal), |
| 78 | ColumnData::Int64(v) => v[a].cmp(&v[b]), |
| 79 | ColumnData::Symbol(v) => v[a].cmp(&v[b]), |
| 80 | // Compare dict-encoded rows by their string IDs (lexicographic by ID, not string value). |
| 81 | ColumnData::DictEncoded { ids, .. } => ids[a].cmp(&ids[b]), |
| 82 | } |
| 83 | } |
| 84 | |
| 85 | /// Check if a query should use a tag-first projection. |
| 86 | /// |
no test coverage detected