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;
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";
30pub fn expr_contains_subquery(expr: &crate::ScalarExpr) -> bool {
31    expr.contains_subquery()
32}
33
34mod bound_columns;
35mod catalog_mutation;
36pub mod graph_functions;
37mod join_using;
38pub mod table_function_arguments;
39mod table_functions;
40pub use bound_columns::*;
41pub use catalog_mutation::*;
42pub use join_using::*;
43pub use table_functions::*;
44
45pub mod volatility;
46
47pub mod sets;
48
49pub mod grouping_sets;
50
51pub mod row_count;
52
53pub mod windows;
54
55pub mod effects;
56
57pub mod partition;
58
59pub mod scalar_projection;
60pub mod source_filters;
61
62pub mod join_predicates;
63
64pub mod cte_names;
65
66pub mod rules;
67
68pub mod cte_validation;
69
70pub mod locking;
71pub mod table_locks;
72
73pub fn doc_id_value(doc_id: uqa_core::DocId) -> Result<Value, SQLError> {
74    i64::try_from(doc_id).map(Value::Int).map_err(|_| {
75        SQLError::TypeMismatch(format!("document id {doc_id} exceeds the SQL BIGINT range"))
76    })
77}
78
79use crate::SQLError;
80use uqa_core::Value;
81
82pub use projection::query_plan_output_columns;
83
84pub use projection::{select_execution_stmt, should_defer_distinct_limit};
85
86pub mod view_rewrite;
87
88pub mod privileges;
89
90pub mod view_privileges;
91
92pub mod retrieval;
93pub mod text_indexes;
94
95pub mod mutation_qualifiers;
96
97pub mod referential;
98
99pub mod foreign_keys;
100pub mod period;
101
102pub mod conflict;
103
104pub mod returning;
105
106pub mod mutation_inputs;
107
108pub mod constraint_catalog;
109
110pub mod mutation_patch;
111
112pub mod mutation_privileges;
113
114pub mod merge;
115pub mod view_mutation;
116
117pub mod mutation_rows;
118
119pub mod graph_commands;
120
121pub mod runtime_scalars;
122
123pub mod portals;
124
125pub mod parameters;