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