@@ -31,94 +31,113 @@ The nested subquery depicted as `<lateral>` is called a [lateral subquery](../la
3131### Examples
3232
3333_ Over evaluates each expression and emits it_
34- ``` mdtest-command
35- echo null | super -z -c 'over 1,2,"foo"' -
36- ```
37-
38- ``` mdtest-output
34+ ``` mdtest-spq
35+ # spq
36+ over 1,2,"foo"
37+ # input
38+ null
39+ # expected output
39401
40412
4142"foo"
4243```
43- _ The over clause is evaluated once per each input value_
44- ``` mdtest-command
45- echo "null null" | super -z -c 'over 1,2' -
46- ```
4744
48- ``` mdtest-output
45+ _ The over clause is evaluated once per each input value_
46+ ``` mdtest-spq
47+ # spq
48+ over 1,2
49+ # input
50+ null
51+ null
52+ # expected output
49531
50542
51551
52562
5357```
54- _ Array elements are enumerated_
55- ``` mdtest-command
56- echo null | super -z -c 'over [1,2],[3,4,5]' -
57- ```
5858
59- ``` mdtest-output
59+ _ Array elements are enumerated_
60+ ``` mdtest-spq
61+ # spq
62+ over [1,2],[3,4,5]
63+ # input
64+ null
65+ # expected output
60661
61672
62683
63694
64705
6571```
66- _ Over traversing an array_
67- ``` mdtest-command
68- echo '{a:[1,2,3]}' | super -z -c 'over a' -
69- ```
7072
71- ``` mdtest-output
73+ _ Over traversing an array_
74+ ``` mdtest-spq
75+ # spq
76+ over a
77+ # input
78+ {a:[1,2,3]}
79+ # expected output
72801
73812
74823
7583```
76- _ Filter the traversed values_
77-
78- ``` mdtest-command
79- echo '{a:[6,5,4]} {a:[3,2,1]}' | super -z -c 'over a |> this % 2 == 0' -
80- ```
8184
82- ``` mdtest-output
85+ _ Filter the traversed values_
86+ ``` mdtest-spq
87+ # spq
88+ over a | this % 2 == 0
89+ # input
90+ {a:[6,5,4]}
91+ {a:[3,2,1]}
92+ # expected output
83936
84944
85952
8696```
87- _ Aggregate the traversed values_
88-
89- ``` mdtest-command
90- echo '{a:[1,2]} {a:[3,4,5]}' | super -z -c 'over a |> sum(this)' -
91- ```
9297
93- ``` mdtest-output
98+ _ Aggregate the traversed values_
99+ ``` mdtest-spq
100+ # spq
101+ over a | sum(this)
102+ # input
103+ {a:[1,2]}
104+ {a:[3,4,5]}
105+ # expected output
9410615
95107```
96- _ Aggregate the traversed values in a lateral query_
97- ``` mdtest-command
98- echo '{a:[1,2]} {a:[3,4,5]}' | super -z -c 'over a => ( sum(this) )' -
99- ```
100108
101- ``` mdtest-output
109+ _ Aggregate the traversed values in a lateral query_
110+ ``` mdtest-spq
111+ # spq
112+ over a => ( sum(this) )
113+ # input
114+ {a:[1,2]}
115+ {a:[3,4,5]}
116+ # expected output
1021173
10311812
104119```
105- _ Access the outer values in a lateral query_
106- ``` mdtest-command
107- echo '{a:[1,2],s:"foo"} {a:[3,4,5],s:"bar"}' |
108- super -z -c 'over a with s => (sum(this) |> yield {s,sum:this})' -
109- ```
110120
111- ``` mdtest-output
121+ _ Access the outer values in a lateral query_
122+ ``` mdtest-spq
123+ # spq
124+ over a with s => (sum(this) | yield {s,sum:this})
125+ # input
126+ {a:[1,2],s:"foo"}
127+ {a:[3,4,5],s:"bar"}
128+ # expected output
112129{s:"foo",sum:3}
113130{s:"bar",sum:12}
114131```
115- _ Traverse a record by flattening it_
116- ``` mdtest-command
117- echo '{s:"foo",r:{a:1,b:2}} {s:"bar",r:{a:3,b:4}} ' |
118- super -z -c 'over flatten(r) with s => (yield {s,key:key[0],value})' -
119- ```
120132
121- ``` mdtest-output
133+ _ Traverse a record by flattening it_
134+ ``` mdtest-spq
135+ # spq
136+ over flatten(r) with s => (yield {s,key:key[0],value})
137+ # input
138+ {s:"foo",r:{a:1,b:2}}
139+ {s:"bar",r:{a:3,b:4}}
140+ # expected output
122141{s:"foo",key:"a",value:1}
123142{s:"foo",key:"b",value:2}
124143{s:"bar",key:"a",value:3}
0 commit comments