1pub mod analyze_cmd;
46pub mod analyzer;
47pub mod ast;
48pub mod batch;
49pub mod binary;
50pub mod engine;
51pub mod evaluator;
52pub mod executor;
53pub mod executors;
54pub mod expr_typing;
55pub mod filter;
56pub mod filter_compiled;
57pub mod filter_optimizer;
58pub mod lexer;
59pub mod modes;
60pub mod optimizer;
61pub mod parser;
62pub mod planner;
63pub mod rag;
64pub mod renderer;
65pub mod similarity;
66pub mod sort;
67pub mod sql;
68pub mod sql_lowering;
69pub mod step;
70#[cfg(test)]
71pub(crate) mod test_support;
72pub mod unified;
73pub(crate) mod value_compare;
74
75pub use crate::storage::schema::{SqlTypeName, TypeModifier};
77pub use analyzer::{
78 analyze_create_table, resolve_declared_data_type, resolve_sql_type_name, AnalysisError,
79 AnalyzedColumnDef, AnalyzedCreateTableQuery,
80};
81pub use ast::{
82 AlterOperation, AlterQueueQuery, AlterTableQuery, AlterUserAttribute, AlterUserStmt, CompareOp,
83 CreateColumnDef, CreateQueueQuery, CreateTableQuery, CreateTimeSeriesQuery, CreateTreeQuery,
84 CteDefinition, CteQueryBuilder, DeleteQuery, DropCollectionQuery, DropDocumentQuery,
85 DropGraphQuery, DropKvQuery, DropQueueQuery, DropTableQuery, DropTimeSeriesQuery,
86 DropTreeQuery, DropVectorQuery, EdgeDirection, EdgePattern, FieldRef, Filter as AstFilter,
87 GrantObject, GrantObjectKind, GrantPrincipalRef, GrantStmt, GraphCommand, GraphPattern,
88 GraphQuery, InsertEntityType, InsertQuery, JoinCondition, JoinQuery, JoinType, NodePattern,
89 NodeSelector, OrderByClause, PathQuery, PolicyPrincipalRef, PolicyResourceRef, PolicyUserRef,
90 Projection, QueryExpr, QueryWithCte, RevokeStmt, SearchCommand, SelectItem, TableQuery,
91 TreeCommand, TreeNodeSpec, TreePosition, UpdateQuery, WithClause,
92};
93pub use engine::{
94 Binding, BindingBuilder, BindingIterator, Op, OpBGP, OpDisjunction, OpDistinct, OpExtend,
95 OpFilter, OpGroup, OpJoin, OpLeftJoin, OpMinus, OpNull, OpOrder, OpProject, OpReduced,
96 OpSequence, OpSlice, OpTable, OpTransform, OpTriple, OpUnion, OpVisitor, Pattern, QueryEngine,
97 QueryEngineFactory, QueryEngineRegistry, QueryIter, QueryIterBase, QueryIterFilter,
98 QueryIterJoin, QueryIterProject, QueryIterSlice, QueryIterSort, QueryIterUnion, TransformCopy,
99 TransformPushFilter, Triple, Var,
100};
101pub use executor::{QueryExecutor, QueryPlan, QueryResult};
102pub use executors::{
103 CteContext, CteExecutor, CteStats, ExecuteResult, GremlinExecutor, MultiModeExecutor,
104 NaturalExecutor, SparqlExecutor,
105};
106pub use filter::{Filter, FilterOp, Predicate};
107pub use lexer::{Lexer, LexerError, Position, Spanned, Token};
108pub use optimizer::{
109 ColumnStats, FilterRanker, RankedFilter, RankingConfig, StatsCollector, TableStats,
110};
111pub use parser::{parse, ParseError, Parser};
112pub use planner::{
113 CacheStats, CachedPlan, CardinalityEstimate, CostEstimator, OptimizationPass, PlanCache,
114 PlanCost, QueryOptimizer, QueryPlan as PlannerQueryPlan, QueryPlanner, QueryRewriter,
115 RewriteContext, RewriteRule,
116};
117pub use rag::{
118 ChunkSource, ContextChunk, EntityType, MultiSourceRetriever, QueryAnalysis, QueryIntent,
119 RagConfig, RagEngine, RetrievalContext, RetrievalStrategy, SimilarEntity,
120};
121pub use similarity::{SimilarityQuery, SimilarityResult};
122pub use sort::{Direction, NullsOrder, OrderBy, QueryLimits, SortKey};
123pub use sql::{parse_frontend, FrontendStatement, SqlCommand, SqlStatement};
124pub use step::{
125 AggregateStep, BarrierStep, BasicTraversal, BranchStep, ChooseStep, CollectingBarrierStep,
126 DedupStep, Direction as TraversalDirection, EdgeSourceStep, EdgeStep, ExecutionMode,
127 FilterStep, FlatMapStep, FoldStep, GroupStep, HasStep, IdStep, LimitStep, LoopState, MapStep,
128 OptionalStep, OrderStep, Path, PathStep, Predicate as StepPredicate, ProjectStep, PropertyStep,
129 RangeStep, ReducingBarrierStep, RepeatStep, SelectStep, SideEffectStep, SourceStep, Step,
130 StepPosition, StepResult, StoreStep, Traversal, TraversalParent, Traverser, TraverserGenerator,
131 TraverserRequirement, TraverserValue, UnionStep, ValueMapStep, VertexSourceStep, VertexStep,
132 WhereStep,
133};
134pub use unified::{
135 ExecutionError, GraphPath, MatchedEdge, MatchedNode, QueryStats, UnifiedExecutor,
136 UnifiedRecord, UnifiedResult,
137};
138
139pub fn is_universal_entity_source(table: &str) -> bool {
142 table.eq_ignore_ascii_case("any")
143 || table.eq_ignore_ascii_case("_any")
144 || table.eq_ignore_ascii_case("all")
145 || table.eq_ignore_ascii_case("entity")
146 || table.eq_ignore_ascii_case("universal")
147 || table.eq_ignore_ascii_case("mixed")
148 || table == "*"
149}