sea_query/extension/postgres/mod.rs
1pub use explain::PgExplainSerialize;
2pub use expr::*;
3pub use extension::*;
4pub use func::*;
5pub use ltree::*;
6pub use select::*;
7pub use types::*;
8
9use crate::types::BinOper;
10
11pub(crate) mod explain;
12pub(crate) mod expr;
13pub(crate) mod extension;
14pub(crate) mod func;
15pub(crate) mod interval;
16pub(crate) mod ltree;
17pub(crate) mod select;
18pub(crate) mod types;
19
20pub(crate) use explain::PgExplainOptions;
21
22/// Postgres-specific binary operators.
23///
24/// For all supported operators (including the standard ones), see [`BinOper`].
25#[derive(Debug, Clone, Copy, PartialEq, Eq)]
26#[non_exhaustive]
27pub enum PgBinOper {
28 ILike,
29 NotILike,
30 /// `@@`. Full-text search match
31 Matches,
32 /// `@>`. Contains operator - checks if left operand contains right operand (arrays, JSON)
33 Contains,
34 /// `<@`. Contained operator - checks if left operand is contained by right operand (arrays, JSON)
35 Contained,
36 /// `||`. String/Array concatenation operator
37 Concatenate,
38 /// `&&`. Overlap operator - checks if arrays have any elements in common
39 Overlap,
40 /// `%`. Text similarity operator,
41 /// requires `pg_trgm` extension
42 Similarity,
43 /// `<%`. Word similarity operator,
44 /// requires `pg_trgm` extension
45 WordSimilarity,
46 /// `<<%`. Strict word similarity operator,
47 /// requires `pg_trgm` extension
48 StrictWordSimilarity,
49 /// `<->`. Similarity distance operator,
50 /// requires `pg_trgm` extension
51 SimilarityDistance,
52 /// `<<->`. Word similarity distance operator,
53 /// requires `pg_trgm` extension
54 WordSimilarityDistance,
55 /// `<<<->`. Strict word similarity distance operator,
56 /// requires `pg_trgm` extension
57 StrictWordSimilarityDistance,
58 /// `->`. Retrieves JSON field as JSON value
59 GetJsonField,
60 /// `->>`. Retrieves JSON field and casts it to text
61 CastJsonField,
62 /// `~`. Regex operator, case sensitively
63 Regex,
64 /// `~*`. Regex operator, case-insensitively
65 RegexCaseInsensitive,
66 #[cfg(feature = "postgres-vector")]
67 /// `<->`. L2 (Euclidean) distance operator
68 EuclideanDistance,
69 #[cfg(feature = "postgres-vector")]
70 /// `<#>`. Negative inner product operator
71 NegativeInnerProduct,
72 #[cfg(feature = "postgres-vector")]
73 /// `<=>`. Cosine distance operator
74 CosineDistance,
75}
76
77impl From<PgBinOper> for BinOper {
78 fn from(o: PgBinOper) -> Self {
79 Self::PgOperator(o)
80 }
81}