-
Notifications
You must be signed in to change notification settings - Fork 3.8k
/
lookup_join_spans
54 lines (51 loc) · 1.33 KB
/
lookup_join_spans
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
exec-ddl
CREATE TABLE metrics (
id SERIAL PRIMARY KEY,
name STRING,
INDEX name_index (name)
)
----
exec-ddl
CREATE TABLE metric_values (
metric_id INT8,
time TIMESTAMPTZ,
value INT8,
PRIMARY KEY (metric_id, time)
)
----
opt
SELECT *
FROM metric_values
INNER JOIN metrics
ON metric_id=id
WHERE
time BETWEEN '2020-01-01 00:00:00+00:00' AND '2020-01-01 00:10:00+00:00' AND
name='cpu'
----
inner-join (lookup metric_values)
├── columns: metric_id:1!null time:2!null value:3 id:5!null name:6!null
├── lookup expression
│ └── filters
│ ├── metric_id:1 = id:5
│ └── (time:2 >= '2020-01-01 00:00:00+00:00') AND (time:2 <= '2020-01-01 00:10:00+00:00')
├── scan metrics@name_index
│ ├── columns: id:5!null name:6!null
│ └── constraint: /6/5: [/'cpu' - /'cpu']
└── filters (true)
opt
SELECT *
FROM metric_values
INNER JOIN metrics
ON metric_id=id
WHERE
time::STRING LIKE '202%' AND
name='cpu'
----
inner-join (lookup metric_values)
├── columns: metric_id:1!null time:2!null value:3 id:5!null name:6!null
├── key columns: [5] = [1]
├── scan metrics@name_index
│ ├── columns: id:5!null name:6!null
│ └── constraint: /6/5: [/'cpu' - /'cpu']
└── filters
└── time:2::STRING LIKE '202%'