Expand description
Query Engine for RedDB
Provides query execution, filtering, sorting, and similarity search capabilities for the RedDB storage engine.
§Components
- filter: Filter predicates (Eq, Lt, Gt, Between, Like, etc.)
- sort: Sorting and ordering operations
- executor: Query plan execution
- similarity: Vector similarity search integration
- modes: Multi-mode query parsing (SQL, Gremlin, Cypher, SPARQL, Natural Language)
§Multi-Mode Parsing
The query engine supports multiple query languages with automatic mode detection:
ⓘ
use reddb::storage::query::modes::{parse_multi, detect_mode, QueryMode};
// Gremlin
let gremlin = parse_multi("g.V().hasLabel('host').out('connects')").unwrap();
// SPARQL
let sparql = parse_multi("SELECT ?host WHERE { ?host :hasIP ?ip }").unwrap();
// Natural language
let natural = parse_multi("find all hosts with ssh open").unwrap();§Example
ⓘ
use reddb::storage::query::{Query, Filter, OrderBy, Direction};
let query = Query::select("users")
.filter(Filter::eq("status", "active"))
.filter(Filter::gt("age", 18))
.order_by("created_at", Direction::Desc)
.limit(10);
let results = executor.execute(&query)?;Re-exports§
pub use crate::storage::schema::SqlTypeName;pub use crate::storage::schema::TypeModifier;pub use analyzer::analyze_create_table;pub use analyzer::resolve_declared_data_type;pub use analyzer::resolve_sql_type_name;pub use analyzer::AnalysisError;pub use analyzer::AnalyzedColumnDef;pub use analyzer::AnalyzedCreateTableQuery;pub use ast::AlterOperation;pub use ast::AlterQueueQuery;pub use ast::AlterTableQuery;pub use ast::AlterUserAttribute;pub use ast::AlterUserStmt;pub use ast::CompareOp;pub use ast::CreateColumnDef;pub use ast::CreateQueueQuery;pub use ast::CreateTableQuery;pub use ast::CreateTimeSeriesQuery;pub use ast::CreateTreeQuery;pub use ast::CreateVectorQuery;pub use ast::CteDefinition;pub use ast::CteQueryBuilder;pub use ast::DeleteQuery;pub use ast::DropCollectionQuery;pub use ast::DropDocumentQuery;pub use ast::DropGraphQuery;pub use ast::DropKvQuery;pub use ast::DropQueueQuery;pub use ast::DropTableQuery;pub use ast::DropTimeSeriesQuery;pub use ast::DropTreeQuery;pub use ast::DropVectorQuery;pub use ast::EdgeDirection;pub use ast::EdgePattern;pub use ast::FieldRef;pub use ast::Filter as AstFilter;pub use ast::GrantObject;pub use ast::GrantObjectKind;pub use ast::GrantPrincipalRef;pub use ast::GrantStmt;pub use ast::GraphCommand;pub use ast::GraphPattern;pub use ast::GraphQuery;pub use ast::InsertEntityType;pub use ast::InsertQuery;pub use ast::JoinCondition;pub use ast::JoinQuery;pub use ast::JoinType;pub use ast::NodePattern;pub use ast::NodeSelector;pub use ast::OrderByClause;pub use ast::PathQuery;pub use ast::PolicyPrincipalRef;pub use ast::PolicyResourceRef;pub use ast::PolicyUserRef;pub use ast::Projection;pub use ast::QueryExpr;pub use ast::QueryWithCte;pub use ast::RevokeStmt;pub use ast::SearchCommand;pub use ast::SelectItem;pub use ast::TableQuery;pub use ast::TreeCommand;pub use ast::TreeNodeSpec;pub use ast::TreePosition;pub use ast::UpdateQuery;pub use ast::WithClause;pub use engine::Binding;pub use engine::BindingBuilder;pub use engine::BindingIterator;pub use engine::Op;pub use engine::OpBGP;pub use engine::OpDisjunction;pub use engine::OpDistinct;pub use engine::OpExtend;pub use engine::OpFilter;pub use engine::OpGroup;pub use engine::OpJoin;pub use engine::OpLeftJoin;pub use engine::OpMinus;pub use engine::OpNull;pub use engine::OpOrder;pub use engine::OpProject;pub use engine::OpReduced;pub use engine::OpSequence;pub use engine::OpSlice;pub use engine::OpTable;pub use engine::OpTransform;pub use engine::OpTriple;pub use engine::OpUnion;pub use engine::OpVisitor;pub use engine::Pattern;pub use engine::QueryEngine;pub use engine::QueryEngineFactory;pub use engine::QueryEngineRegistry;pub use engine::QueryIter;pub use engine::QueryIterBase;pub use engine::QueryIterFilter;pub use engine::QueryIterJoin;pub use engine::QueryIterProject;pub use engine::QueryIterSlice;pub use engine::QueryIterSort;pub use engine::QueryIterUnion;pub use engine::TransformCopy;pub use engine::TransformPushFilter;pub use engine::Triple;pub use engine::Var;pub use executor::QueryExecutor;pub use executor::QueryPlan;pub use executor::QueryResult;pub use executors::CteContext;pub use executors::CteExecutor;pub use executors::CteStats;pub use executors::ExecuteResult;pub use executors::GremlinExecutor;pub use executors::MultiModeExecutor;pub use executors::NaturalExecutor;pub use executors::SparqlExecutor;pub use filter::Filter;pub use filter::FilterOp;pub use filter::Predicate;pub use lexer::Lexer;pub use lexer::LexerError;pub use lexer::Position;pub use lexer::Spanned;pub use lexer::Token;pub use optimizer::ColumnStats;pub use optimizer::FilterRanker;pub use optimizer::RankedFilter;pub use optimizer::RankingConfig;pub use optimizer::StatsCollector;pub use optimizer::TableStats;pub use parser::parse;pub use parser::ParseError;pub use parser::Parser;pub use planner::CacheStats;pub use planner::CachedPlan;pub use planner::CardinalityEstimate;pub use planner::CostEstimator;pub use planner::OptimizationPass;pub use planner::PlanCache;pub use planner::PlanCost;pub use planner::QueryOptimizer;pub use planner::QueryPlan as PlannerQueryPlan;pub use planner::QueryPlanner;pub use planner::QueryRewriter;pub use planner::RewriteContext;pub use planner::RewriteRule;pub use rag::ChunkSource;pub use rag::ContextChunk;pub use rag::EntityType;pub use rag::MultiSourceRetriever;pub use rag::QueryAnalysis;pub use rag::QueryIntent;pub use rag::RagConfig;pub use rag::RagEngine;pub use rag::RetrievalContext;pub use rag::RetrievalStrategy;pub use rag::SimilarEntity;pub use similarity::SimilarityQuery;pub use similarity::SimilarityResult;pub use sort::Direction;pub use sort::NullsOrder;pub use sort::OrderBy;pub use sort::QueryLimits;pub use sort::SortKey;pub use sql::parse_frontend;pub use sql::FrontendStatement;pub use sql::SqlCommand;pub use sql::SqlStatement;pub use step::AggregateStep;pub use step::BarrierStep;pub use step::BasicTraversal;pub use step::BranchStep;pub use step::ChooseStep;pub use step::CollectingBarrierStep;pub use step::DedupStep;pub use step::Direction as TraversalDirection;pub use step::EdgeSourceStep;pub use step::EdgeStep;pub use step::ExecutionMode;pub use step::FilterStep;pub use step::FlatMapStep;pub use step::FoldStep;pub use step::GroupStep;pub use step::HasStep;pub use step::IdStep;pub use step::LimitStep;pub use step::LoopState;pub use step::MapStep;pub use step::OptionalStep;pub use step::OrderStep;pub use step::Path;pub use step::PathStep;pub use step::Predicate as StepPredicate;pub use step::ProjectStep;pub use step::PropertyStep;pub use step::RangeStep;pub use step::ReducingBarrierStep;pub use step::RepeatStep;pub use step::SelectStep;pub use step::SideEffectStep;pub use step::SourceStep;pub use step::Step;pub use step::StepPosition;pub use step::StepResult;pub use step::StoreStep;pub use step::Traversal;pub use step::TraversalParent;pub use step::Traverser;pub use step::TraverserGenerator;pub use step::TraverserRequirement;pub use step::TraverserValue;pub use step::UnionStep;pub use step::ValueMapStep;pub use step::VertexSourceStep;pub use step::VertexStep;pub use step::WhereStep;pub use unified::ExecutionError;pub use unified::GraphPath;pub use unified::MatchedEdge;pub use unified::MatchedNode;pub use unified::QueryStats;pub use unified::UnifiedExecutor;pub use unified::UnifiedRecord;pub use unified::UnifiedResult;
Modules§
- analyze_
cmd - ANALYZE TABLE execution — Fase 5 P7 prereq.
- analyzer
- ast
- Unified Query AST
- batch
- Vectorised columnar execution — a ClickHouse-inspired batch path that runs in parallel to the existing Volcano iterators.
- binary
- GraphBinary Serialization
- engine
- Query Execution Engine
- evaluator
- Scalar expression evaluator — single owner of value-level
evaluation for SQL scalar
Exprtrees. - executor
- Query Executor for RedDB
- executors
- Multi-Mode Query Executors
- expr_
typing - Fase 3 expression typer.
- filter
- Filter Predicates for Query Engine
- filter_
compiled - Compiled filter interpreter — flat opcode evaluation.
- filter_
optimizer - Filter AST optimizer
- lexer
- RQL Lexer
- modes
- Multi-Mode Query Parser
- optimizer
- Query Optimizer
- parser
- RQL Parser
- planner
- Query Planning Layer
- rag
- RAG (Retrieval-Augmented Generation) Engine
- renderer
- AST → SQL/RQL renderer (partial subset for property round-trip tests).
- similarity
- Similarity Search Integration for Query Engine
- sort
- Sorting Operations for Query Engine
- sql
- sql_
lowering - step
- Step Architecture
- unified
- Unified Query Executor
- user_
params - User-supplied positional parameter binding for
$Nplaceholders.
Functions§
- is_
universal_ entity_ source - Returns true when the table source should be interpreted as the universal entity space (table, document, graph, vector mixed mode).