main
Ziyang Hu 2 years ago
parent c84868aff0
commit 772ae5bbe0

@ -1,69 +1,3 @@
# Structure of the project
* Parser
* Query AST
* Typing support
* Logical plan/optimizers
* Physical plan/optimizers
* Runtime representation (values)
* DB interaction/(de)serialization
* Evaluator/interpreter/VM
* Plan executors
```
{
*id: id,
name: d.name[0]
}
```
```
$name
${name:?Int}
```
```
where a: b.id == c.id
trail
```
```
select ...
view X = select {} : Vertex
let z = select {} : Vertex
```
```
from(e:Employee)
.where(e.id > 10)
.select(x: {id: e.id, name: e.first_name ++ e.last_name})
.skip(10)
.take(20);
```
```
from(e:Employee-[hj:HasJob]->j:Job)
.where(e.id == 20)
.select({..j});
query DoThis(x:Int, y:Any) {
return select(-[v:V]->)
.where(v.id >= x, v.data == y);
}
```
```
query DoThat(r:Rel(*id: Int)) {
...
}
```
```
global query XXX() {
...
}
```
# Operations on relations
Operations

@ -9,12 +9,8 @@ USE_RTTI=1 DEBUG_LEVEL=0 make static_lib
## Edge key layout
* Different src/tgt
* Forward `[true, src_keys, null, tgt_keys]`
* Backward `[false, src_keys, null, tgt_keys]`
* Same src/tgt
* Forward `[null, src_keys, true, tgt_keys]`
* Backward `[null, src_keys, false, tgt_keys]`
* Forward `[true, *src_keys, *tgt_keys, *own_keys]`
* Backward `[false, *src_keys, *tgt_keys, *own_keys]`
## Isolation levels

@ -327,7 +327,7 @@ pub(crate) mod tests {
let ctx = sess.temp_ctx(true);
let s = r#"
From(e:Employee-[:Manages]?->s:Employee)
.Select(o: {boss: e.first_name ++ e.last_name, slave: s.first_name ++ s.last_name})
.Select(o: {boss: e.first_name ++ ' ' ++ e.last_name, slave: (s.first_name ++ ' ' ++ s.last_name) ~ 'NO~ONE'})
.Sort(o.boss => desc, o.slave)
"#;
let ra = build_relational_expr(

Loading…
Cancel
Save