explain
-------------------------------
JOIN(8)(LEFT_OUTER)
  => Join Cond: default.t1.id (INT4) = default.t3.id (INT4)
  => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)
  => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)}
  => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)}
   SCAN(3) on default.jointable13 as t3
     => target list: default.t3.id (INT4)
     => out schema: {(1) default.t3.id (INT4)}
     => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)}
   JOIN(7)(LEFT_OUTER)
     => Join Cond: (default.t1.id (INT4) = default.t2.id (INT4) AND (concat(default.t1.name (TEXT),CAST (default.t2.id (INT4) AS TEXT)) = table11-11 OR concat(default.t1.name (TEXT),CAST (default.t2.id (INT4) AS TEXT)) = table11-33))
     => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)
     => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)}
     => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)}
      SCAN(1) on default.jointable12 as t2
        => target list: default.t2.id (INT4)
        => out schema: {(1) default.t2.id (INT4)}
        => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)}
      SCAN(0) on default.jointable11 as t1
        => target list: default.t1.id (INT4), default.t1.name (TEXT)
        => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)}
        => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)}
explain
-------------------------------
-------------------------------------------------------------------------------
Execution Block Graph (TERMINAL - eb_0000000000000_0000_000006)
-------------------------------------------------------------------------------
|-eb_0000000000000_0000_000006
   |-eb_0000000000000_0000_000005
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
1: eb_0000000000000_0000_000005
2: eb_0000000000000_0000_000006
-------------------------------------------------------------------------------

=======================================================
Block Id: eb_0000000000000_0000_000005 [ROOT]
=======================================================

[Enforcers]
 0: type=Broadcast, tables=default.t2
 1: type=Broadcast, tables=default.t3

JOIN(8)(LEFT_OUTER)
  => Join Cond: default.t1.id (INT4) = default.t3.id (INT4)
  => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)
  => out schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)}
  => in schema: {(4) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4), default.t3.id (INT4)}
   SCAN(3) on default.jointable13 as t3
     => target list: default.t3.id (INT4)
     => out schema: {(1) default.t3.id (INT4)}
     => in schema: {(2) default.t3.id (INT4), default.t3.name (TEXT)}
   JOIN(7)(LEFT_OUTER)
     => Join Cond: (default.t1.id (INT4) = default.t2.id (INT4) AND (concat(default.t1.name (TEXT),CAST (default.t2.id (INT4) AS TEXT)) = table11-11 OR concat(default.t1.name (TEXT),CAST (default.t2.id (INT4) AS TEXT)) = table11-33))
     => target list: default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)
     => out schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)}
     => in schema: {(3) default.t1.id (INT4), default.t1.name (TEXT), default.t2.id (INT4)}
      SCAN(1) on default.jointable12 as t2
        => target list: default.t2.id (INT4)
        => out schema: {(1) default.t2.id (INT4)}
        => in schema: {(2) default.t2.id (INT4), default.t2.name (TEXT)}
      SCAN(0) on default.jointable11 as t1
        => target list: default.t1.id (INT4), default.t1.name (TEXT)
        => out schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)}
        => in schema: {(2) default.t1.id (INT4), default.t1.name (TEXT)}

=======================================================
Block Id: eb_0000000000000_0000_000006 [TERMINAL]
=======================================================
