aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/tests/s-expressions/suites/Optimizers/AvoidFuseOfSameJoins.yql
blob: 9918cc7770497155555e8dda94d0b030972d71ab (plain) (blame)
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
87
#USE plato;
#
#$sample = (SELECT a.key as key, a.value as value FROM Input as a Join Input as b ON a.key = b.key);
#
#select * from $sample as x left join Input as y using (key);
#select * from $sample as x right join Input as y using (value);

(
(let world (block '(
  (let x (Read! world (DataSource '"yt" '"plato") (Key '('table (String '"Input"))) (Void) '()))
  (let world (Left! x))
  (let table0 (Right! x))
  (let output (block '(
    (let select (block '(
      (let core (EquiJoin '((block '(
        (let select (block '(
          (let core (EquiJoin '(table0 '"a") '(table0 '"b") '('Inner '"a" '"b" '('"a" '"key") '('"b" '"key") '()) '()))
          (let core (FlatMap core (lambda '(row) (block '(
            (let res (Struct))
            (let res (AddMember res '"key" (Member row '"a.key")))
            (let res (AddMember res '"value" (Member row '"a.value")))
            (let res (AsList res))
            (return res)
          )))))
          (return core)
        )))
        (return select)
      )) '"x") '(table0 '"y") '('Left '"x" '"y" '('"x" '"key") '('"y" '"key") '()) '()))
      (let core (FlatMap core (lambda '(row) (block '(
        (let res (AsList row))
        (return res)
      )))))
      (return core)
    )))
    (let select (Sort select '((Bool 'true) (Bool 'true) (Bool 'true)) (lambda '(row) '((Member row '"x.key") (Member row '"x.value") (Member row '"y.key")))))
    (return select)
  )))
  (let world (block '(
    (let result_sink (DataSink 'result))
    (let world (Write! world result_sink (Key) output '('('type) '('autoref))))
    (return (Commit! world result_sink))
  )))
  (return world)
)))
(let world (block '(
  (let x (Read! world (DataSource '"yt" '"plato") (Key '('table (String '"Input"))) (Void) '()))
  (let world (Left! x))
  (let table0 (Right! x))
  (let output (block '(
    (let select (block '(
      (let core (EquiJoin '((block '(
        (let select (block '(
          (let core (EquiJoin '(table0 '"a") '(table0 '"b") '('Inner '"a" '"b" '('"a" '"key") '('"b" '"key") '()) '()))
          (let core (FlatMap core (lambda '(row) (block '(
            (let res (Struct))
            (let res (AddMember res '"key" (Member row '"a.key")))
            (let res (AddMember res '"value" (Member row '"a.value")))
            (let res (AsList res))
            (return res)
          )))))
          (return core)
        )))
        (return select)
      )) '"x") '(table0 '"y") '('Right '"x" '"y" '('"x" '"value") '('"y" '"value") '()) '()))
      (let core (FlatMap core (lambda '(row) (block '(
        (let res (AsList row))
        (return res)
      )))))
      (return core)
    )))
    (let select (Sort select '((Bool 'true) (Bool 'true) (Bool 'true)) (lambda '(row) '((Member row '"x.key") (Member row '"x.value") (Member row '"y.key")))))
    (return select)
  )))
  (let world (block '(
    (let result_sink (DataSink 'result))
    (let world (Write! world result_sink (Key) output '('('type) '('autoref))))
    (return (Commit! world result_sink))
  )))
  (return world)
)))
(let world (block '(
  (let plato_sink (DataSink '"yt" '"plato"))
  (let world (Commit! world plato_sink))
  (return world)
)))
(return world)
)