Skip to main content

uqa_sql/semantics/
mod.rs

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