-
Notifications
You must be signed in to change notification settings - Fork 4
/
TODO
88 lines (61 loc) · 1.93 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
* add the ability for construct to take a seq of maps for a node entry, and then
when pointed to in edges have an edge created per node.
* start using transactions
* Add a (graph-event-channel [g]) which will publish an event any time the graph
is modified.
* Add a sum operator and query form
* figure out an error handling policy and right some helpers to
- make it quick and easy to throw exceptions from query-plan builder
functions when bad arguments are passed
- report on errors that occurred during query processing
** maybe pipelines?
* Query form (ala construct and query) to:
- update node/edge
- delete node/edge
* extend expressions to work on edge property predicates
- path macro needs to do similar rebinding as the where macro
-----------
* recursive queries
* create a recur-query that will smartly be both local and remote
depending on whether it gets a proxy node as a result
------------
* implement recursive and iterative operators
----------------------------------------------------------
Move to records and a standard protocol for query.operators:
* Goal: standardize the interface and access to important operator info
- dataflow dependencies for optimizing query plan
- specific arguments by name for re-organizing operators, combining operators
methods:
* branch?
- replaces the operator/op-branch-map
* plan version
* instance version
-------------------------------
Longer Term:
-------------------------------
* look into jiraph versioning mechanism
-----------
* represent queries using a query specification, rather than the query plan
operator tree
* query spec map:
- paths
- selections
- expressions
- property-loads (to load as we traverse)
- projection
------------------
Minimized query plan:
* path(s)
* selection(s)
* properties to load
--
* sort
--
* limit, choose
--
* aggregate ops
--
* projection
-------------------------
Logging:
* logging via a log channel rather than via logjam directly