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;
70
71pub fn doc_id_value(doc_id: uqa_core::DocId) -> Result<Value, SQLError> {
72    i64::try_from(doc_id).map(Value::Int).map_err(|_| {
73        SQLError::TypeMismatch(format!("document id {doc_id} exceeds the SQL BIGINT range"))
74    })
75}
76
77use crate::SQLError;
78use uqa_core::Value;
79
80pub use projection::query_plan_output_columns;
81
82pub use projection::{select_execution_stmt, should_defer_distinct_limit};
83
84pub mod view_rewrite;
85
86pub mod privileges;
87
88pub mod view_privileges;
89
90pub mod retrieval;
91pub mod text_indexes;
92
93pub mod mutation_qualifiers;
94
95pub mod referential;
96
97pub mod foreign_keys;
98pub mod period;
99
100pub mod conflict;
101
102pub mod returning;
103
104pub mod mutation_inputs;
105
106pub mod constraint_catalog;
107
108pub mod mutation_patch;
109
110pub mod mutation_privileges;
111
112pub mod merge;
113pub mod view_mutation;
114
115pub mod mutation_rows;
116
117pub mod graph_commands;
118
119pub mod runtime_scalars;
120
121pub mod portals;