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