Skip to main content

Module query

Module query 

Source
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 Expr trees.
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 $N placeholders.

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).