1pub mod age_cypher;
10pub mod aggregates;
11pub mod cte_strategy;
12mod ctes;
13mod expression_shape;
14mod functions;
15mod projection;
16mod source_shape;
17pub use ctes::*;
18pub use expression_shape::*;
19pub use functions::*;
20pub use projection::*;
21pub use source_shape::*;
22
23pub const DOC_ID_COLUMN: &str = "_doc_id";
24pub const SCORE_COLUMN: &str = "_score";
25pub const TABLE_OID_COLUMN: &str = "tableoid";
26pub const XMIN_COLUMN: &str = "xmin";
27pub const META_QUALIFIER: &str = "_meta";
28pub const META_DOC_ID_COLUMN: &str = "doc_id";
29pub const META_SCORE_COLUMN: &str = "score";
30
31#[must_use]
33pub fn is_engine_pseudo_column(column: &str) -> bool {
34 matches!(
35 column,
36 DOC_ID_COLUMN | SCORE_COLUMN | TABLE_OID_COLUMN | XMIN_COLUMN
37 )
38}
39
40pub fn expr_contains_subquery(expr: &crate::ScalarExpr) -> bool {
41 expr.contains_subquery()
42}
43
44mod bound_columns;
45mod catalog_mutation;
46pub mod graph_functions;
47mod join_using;
48pub mod table_function_arguments;
49mod table_functions;
50pub use bound_columns::*;
51pub use catalog_mutation::*;
52pub use join_using::*;
53pub use table_functions::*;
54
55pub mod volatility;
56
57pub mod sets;
58
59pub mod grouping_sets;
60
61pub mod row_count;
62
63pub mod windows;
64
65pub mod effects;
66
67pub mod partition;
68
69pub mod scalar_projection;
70pub mod source_filters;
71
72pub mod join_predicates;
73
74pub mod cte_names;
75
76pub mod rules;
77
78pub mod cte_validation;
79
80pub mod locking;
81pub mod table_locks;
82
83pub fn doc_id_value(doc_id: uqa_core::DocId) -> Result<Value, SQLError> {
84 i64::try_from(doc_id).map(Value::Int).map_err(|_| {
85 SQLError::TypeMismatch(format!("document id {doc_id} exceeds the SQL BIGINT range"))
86 })
87}
88
89use crate::SQLError;
90use uqa_core::Value;
91
92pub use projection::query_plan_output_columns;
93
94pub use projection::{select_execution_stmt, should_defer_distinct_limit};
95
96pub mod view_rewrite;
97
98pub mod privileges;
99
100pub mod view_privileges;
101
102pub mod retrieval;
103pub mod text_indexes;
104
105pub mod mutation_qualifiers;
106
107pub mod referential;
108
109pub mod foreign_keys;
110pub mod period;
111
112pub mod conflict;
113
114pub mod returning;
115
116pub mod mutation_inputs;
117
118pub mod constraint_catalog;
119
120pub mod mutation_patch;
121
122pub mod mutation_privileges;
123
124pub mod generated_values;
125pub mod key_identity;
126pub mod merge;
127pub mod view_mutation;
128
129pub mod mutation_rows;
130
131pub mod graph_commands;
132
133pub mod runtime_scalars;
134
135pub mod portals;
136
137pub mod parameters;