Extract point-operation keys from WHERE clause (WHERE pk = literal OR pk IN (...)).
(selection: Option<&ast::Expr>, info: &CollectionInfo)
| 148 | |
| 149 | /// Extract point-operation keys from WHERE clause (WHERE pk = literal OR pk IN (...)). |
| 150 | pub fn extract_point_keys(selection: Option<&ast::Expr>, info: &CollectionInfo) -> Vec<SqlValue> { |
| 151 | let pk = match &info.primary_key { |
| 152 | Some(pk) => pk.clone(), |
| 153 | None => return Vec::new(), |
| 154 | }; |
| 155 | |
| 156 | let expr = match selection { |
| 157 | Some(e) => e, |
| 158 | None => return Vec::new(), |
| 159 | }; |
| 160 | |
| 161 | let mut keys = Vec::new(); |
| 162 | collect_pk_equalities(expr, &pk, &mut keys); |
| 163 | keys |
| 164 | } |
| 165 | |
| 166 | fn collect_pk_equalities(expr: &ast::Expr, pk: &str, keys: &mut Vec<SqlValue>) { |
| 167 | match expr { |
no test coverage detected