fosk 0.1.1

In-memory SQL-like query engine and lightweight data store for testing and prototyping.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
use crate::parser::{analyzer::AnalyzedIdentifier, ast::{Column, Join, OrderBy, Predicate}};

#[derive(Debug, Clone)]
pub struct AnalyzedQuery {
    pub projection: Vec<AnalyzedIdentifier>, // qualified + typed
    pub collections: Vec<(String /*visible*/, String /*backing*/ )>,
    pub joins: Vec<Join>,
    pub criteria: Option<Predicate>,         // qualified + folded
    pub group_by: Vec<Column>,               // qualified
    pub having: Option<Predicate>,           // qualified + folded
    pub order_by: Vec<OrderBy>,  // OrderBy
    pub limit: Option<i64>,
    pub offset: Option<i64>,
}