iridium-db 0.2.0

A high-performance vector-graph hybrid storage and indexing engine
use super::*;
#[cfg(feature = "plexus-mlir-opt")]
use crate::features::runtime::api::plexus::execute_serialized_plan_with_pipeline_name_override;
#[cfg(feature = "plexus-mlir-opt")]
use crate::features::runtime::api::plexus::execute_serialized_plan_with_pipeline_override;
use crate::features::runtime::api::plexus::PlexusIridiumEngine;
use ::plexus_engine::PlanEngine;
#[cfg(feature = "plexus-mlir-opt")]
use plexus_ir::PIPELINE_CORE;
use plexus_serde::{
    current_plan_version, deserialize_plan, serialize_plan, CmpOp, ColDef, ColKind, ExpandDir,
    Expr, LogicalType, Op, Plan, SortDir, Version,
};

fn serialized_plan_bytes(version: (u32, u32, u32), ops: Vec<Op>, root_op: u32) -> Vec<u8> {
    let plan = Plan {
        version: if version == (1, 0, 0) {
            current_plan_version("iridium-tests")
        } else {
            Version {
                major: version.0,
                minor: version.1,
                patch: version.2,
                producer: "iridium-tests".to_string(),
            }
        },
        ops,
        root_op,
    };
    serialize_plan(&plan).expect("serialize plan")
}

fn scan_nodes() -> Op {
    Op::ScanNodes {
        labels: Vec::new(),
        schema: vec![ColDef {
            name: "n".to_string(),
            kind: ColKind::Node,
            logical_type: LogicalType::NodeRef,
        }],
        must_labels: Vec::new(),
        forbidden_labels: Vec::new(),
        est_rows: 64,
        selectivity: 1.0,
        graph_ref: None,
    }
}

mod aggregate;
mod basic;
mod expand;
mod pipeline;
mod projection;