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