pub mod analyze_cmd;
pub mod batch;
pub mod binary;
pub mod engine;
pub mod evaluator;
pub mod executor;
pub mod executors;
pub mod filter;
pub mod filter_compiled;
pub mod planner;
pub mod rag;
pub mod similarity;
pub mod sort;
pub mod step;
#[cfg(test)]
pub(crate) mod test_support;
pub mod unified;
pub mod user_params;
pub(crate) mod value_compare;
pub use engine::{
Binding, BindingBuilder, BindingIterator, Op, OpBGP, OpDisjunction, OpDistinct, OpExtend,
OpFilter, OpGroup, OpJoin, OpLeftJoin, OpMinus, OpNull, OpOrder, OpProject, OpReduced,
OpSequence, OpSlice, OpTable, OpTransform, OpTriple, OpUnion, OpVisitor, Pattern, QueryEngine,
QueryEngineFactory, QueryEngineRegistry, QueryIter, QueryIterBase, QueryIterFilter,
QueryIterJoin, QueryIterProject, QueryIterSlice, QueryIterSort, QueryIterUnion, TransformCopy,
TransformPushFilter, Triple, Var,
};
pub use executor::{QueryExecutor, QueryPlan, QueryResult};
pub use executors::{
CteContext, CteExecutor, CteStats, ExecuteResult, GremlinExecutor, MultiModeExecutor,
NaturalExecutor, SparqlExecutor,
};
pub use filter::{Filter, FilterOp, Predicate};
pub use planner::{
CacheStats, CachedPlan, CardinalityEstimate, CostEstimator, PlanCache, PlanCost,
QueryPlan as PlannerQueryPlan, QueryPlanner,
};
pub use rag::{
ChunkSource, ContextChunk, EntityType, MultiSourceRetriever, QueryAnalysis, QueryIntent,
RagConfig, RagEngine, RetrievalContext, RetrievalStrategy, SimilarEntity,
};
pub use reddb_types::{SqlTypeName, TypeModifier};
pub use similarity::{SimilarityQuery, SimilarityResult};
pub use sort::{Direction, NullsOrder, OrderBy, QueryLimits, SortKey};
pub use step::{
AggregateStep, BarrierStep, BasicTraversal, BranchStep, ChooseStep, CollectingBarrierStep,
DedupStep, Direction as TraversalDirection, EdgeSourceStep, EdgeStep, ExecutionMode,
FilterStep, FlatMapStep, FoldStep, GroupStep, HasStep, IdStep, LimitStep, LoopState, MapStep,
OptionalStep, OrderStep, Path, PathStep, Predicate as StepPredicate, ProjectStep, PropertyStep,
RangeStep, ReducingBarrierStep, RepeatStep, SelectStep, SideEffectStep, SourceStep, Step,
StepPosition, StepResult, StoreStep, Traversal, TraversalParent, Traverser, TraverserGenerator,
TraverserRequirement, TraverserValue, UnionStep, ValueMapStep, VertexSourceStep, VertexStep,
WhereStep,
};
pub use unified::{
ExecutionError, GraphPath, MatchedEdge, MatchedNode, QueryStats, UnifiedExecutor,
UnifiedRecord, UnifiedResult,
};
pub fn is_universal_entity_source(table: &str) -> bool {
table.eq_ignore_ascii_case("any")
|| table.eq_ignore_ascii_case("_any")
|| table.eq_ignore_ascii_case("all")
|| table.eq_ignore_ascii_case("entity")
|| table.eq_ignore_ascii_case("universal")
|| table.eq_ignore_ascii_case("mixed")
|| table == "*"
}