r0 := UnboundTable: three
  bar_id string
  value2 float64

r1 := UnboundTable: one
  c      int32
  f      float64
  foo_id string
  bar_id string

r2 := UnboundTable: two
  foo_id string
  value1 float64

r3 := Selection[r1]
  predicates:
    r1.f > 0

r4 := LeftJoin[r3, r2] r3.foo_id == r2.foo_id

r5 := Selection[r4]
  selections:
    c:            r3.c
    f:            r3.f
    foo_id:       r3.foo_id
    bar_id:       r3.bar_id
    foo_id_right: r2.foo_id
    value1:       r2.value1

r6 := InnerJoin[r5, r0] r3.bar_id == r0.bar_id

Selection[r6]
  selections:
    r3
    value1: r2.value1
    value2: r0.value2