You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1.7 KiB
1.7 KiB
Operations on relations
Operations
from(...rels)
, can use chain notationleft_join(left, right, ...conds)
, similarly forright_join
,outer_join
)concat(...rels)
intersect(...rels)
, similarly forunion
diff(left, right)
, similarly forsym_diff
select(rel, binding: {..})
where(rel, ..conds)
take(rel, n)
skip(rel, n)
sort(rel, expr1, expr2: sort_dir)
group(rel, binding: {*key1: expr1, val1: expr2}, *ordering)
may order elements within groupswalk(pattern, ...conds, ...bindings)
walk_repeat(pattern, ...conds, ...bindings)
every element contains additional_iter
and_visited
fieldsvalues(data, ?Table)
nested_values(data, ?Table).extract(Table)
update(rel, Table)
delete(rel, Table)
insert(rel, Table)
upsert(rel, Table)
Helpers
print(rel)
print_schema(rel)
print_plan(rel)
print_optimized(rel)
Aggregation
- Aggregation functions should implement
.step()
and.result()
Differentiation
- function calls use parentheses, names start with lowercase letters or "_"
- aggregation calls are the same as function calls except that square brackets are used instead
- query calls are the same as function calls except that query names start with upper case or "#"
Others
- assoc magic better work
- language within query
- constraints and indices
- datetime and array types
- GUI and TUI
- query optimization
- regex as a value type
Walk(a:A-[e:E]->b:B,
a => (a.id == 10),
e => (e.id < 20, count[] <= 1, rand() => asc),
b: {
...b,
...e,
...a
})
Chain(a:A-[p:Path]->b:B,
_next => _hops < 10)