chain_builder/query/
mod.rs

1//! Query building functionality
2
3pub mod common;
4pub mod join;
5
6use crate::types::{Common, Statement};
7use serde_json::Value;
8
9/// Main query builder for constructing WHERE clauses and other query parts
10#[derive(Debug, Default, Clone, serde::Serialize, serde::Deserialize)]
11pub struct QueryBuilder {
12    /// WHERE clause statements
13    pub(crate) statement: Vec<Statement>,
14    /// Raw SQL statements
15    pub(crate) raw: Vec<(String, Option<Vec<Value>>)>,
16    /// JOIN clauses
17    pub(crate) join: Vec<join::JoinBuilder>,
18    /// Common clauses (WITH, UNION, LIMIT, etc.)
19    pub(crate) query_common: Vec<Common>,
20}
21
22/// SQL comparison operators
23#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, PartialEq)]
24pub enum Operator {
25    /// Equal (=)
26    Equal,
27    /// Not equal (!=)
28    NotEqual,
29    /// IN operator
30    In,
31    /// NOT IN operator
32    NotIn,
33    /// IS NULL
34    IsNull,
35    /// IS NOT NULL
36    IsNotNull,
37    /// EXISTS
38    Exists,
39    /// NOT EXISTS
40    NotExists,
41    /// BETWEEN
42    Between,
43    /// NOT BETWEEN
44    NotBetween,
45    /// LIKE
46    Like,
47    /// NOT LIKE
48    NotLike,
49    /// Greater than (>)
50    GreaterThan,
51    /// Greater than or equal (>=)
52    GreaterThanOrEqual,
53    /// Less than (<)
54    LessThan,
55    /// Less than or equal (<=)
56    LessThanOrEqual,
57    /// Greater or less than (<>)
58    GreaterORLessThan,
59}