diff options
Diffstat (limited to 'database/src/query_syntax.rs')
| -rw-r--r-- | database/src/query_syntax.rs | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/database/src/query_syntax.rs b/database/src/query_syntax.rs index 9efc3d5..4b08307 100644 --- a/database/src/query_syntax.rs +++ b/database/src/query_syntax.rs @@ -76,7 +76,14 @@ impl Display for Sort { ) } Sort::TextSearch(path, value) => { - write!(f, "TEXT SEARCH {path} = {value:?}") + write!( + f, + "TEXT SEARCH {} = {value:?}", + path.iter() + .map(|p| p.to_string()) + .collect::<Vec<_>>() + .join(",") + ) } } } @@ -144,10 +151,13 @@ impl FromStr for Sort { } else if s == "RANDOM" { Sort::Random(1) } else if let Some(s) = s.strip_prefix("TEXT SEARCH ") - && let Some((path, value)) = s.split_once(" = ") + && let Some((paths, value)) = s.split_once(" = ") { Sort::TextSearch( - Path::from_str(path).map_err(|e| anyhow!("{e}"))?, + paths + .split(",") + .map(|p| Path::from_str(p).map_err(|e| anyhow!("{e}"))) + .collect::<Result<Vec<_>, _>>()?, value.to_owned(), ) } else if let Some((order, rest)) = s.split_once(" BY ") |