Github user jihoonson commented on the pull request:
https://github.com/apache/tajo/pull/583#issuecomment-105843248
I focused on improving the broadcast join planning in this patch. I
evaluated performance with an example query which Tajo cannot fully exploit the
broadcast join opportunity.
### Query
```
default> select r_name, case when l_shipmode is null then 'N/O' else
l_shipmode end as s1 from region inner join ( select * from lineitem left outer
join nation on l_suppkey = n_nationkey ) t on n_regionkey = r_regionkey
```
### Data
* Input: TPC-H scale factor of 100
* Result: 14484 rows (185.7 KiB)
### Performance
* Before patch: 226.915 sec
* After patch: 49.647 sec
### Query plan
##### Before patch
```
-------------------------------------------------------------------------------
Execution Block Graph (TERMINAL - eb_1432720176114_0001_000006)
-------------------------------------------------------------------------------
|-eb_1432720176114_0001_000006
|-eb_1432720176114_0001_000005
|-eb_1432720176114_0001_000004
|-eb_1432720176114_0001_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
1: eb_1432720176114_0001_000001
2: eb_1432720176114_0001_000004
3: eb_1432720176114_0001_000005
4: eb_1432720176114_0001_000006
-------------------------------------------------------------------------------
=======================================================
Block Id: eb_1432720176114_0001_000001 [LEAF]
=======================================================
[Outgoing]
[q_1432720176114_0001] 1 => 5 (type=HASH_SHUFFLE,
key=tpch100.region.r_regionkey (INT8), num=1186)
SCAN(0) on tpch100.region
=> target list: tpch100.region.r_name (TEXT), tpch100.region.r_regionkey
(INT8)
=> out schema: {(2) tpch100.region.r_name (TEXT),
tpch100.region.r_regionkey (INT8)}
=> in schema: {(3) tpch100.region.r_regionkey (INT8),
tpch100.region.r_name (TEXT), tpch100.region.r_comment (TEXT)}
=======================================================
Block Id: eb_1432720176114_0001_000004 [LEAF]
=======================================================
[Outgoing]
[q_1432720176114_0001] 4 => 5 (type=HASH_SHUFFLE, key=tpch100.t.n_regionkey
(INT8), num=1186)
[Enforcers]
0: type=Broadcast, tables=tpch100.nation
TABLE_SUBQUERY(5) as tpch100.t
=> Targets: CASE WHEN tpch100.t.l_shipmode (TEXT) IS NULL THEN N/O ELSE
tpch100.t.l_shipmode (TEXT) END as s1, tpch100.t.n_regionkey (INT8)
=> out schema: {(2) s1 (TEXT), tpch100.t.n_regionkey (INT8)}
=> in schema: {(20) tpch100.t.l_orderkey (INT8), tpch100.t.l_partkey
(INT8), tpch100.t.l_suppkey (INT8), tpch100.t.l_linenumber (INT8),
tpch100.t.l_quantity (FLOAT8), tpch100.t.l_extendedprice (FLOAT8),
tpch100.t.l_discount (FLOAT8), tpch100.t.l_tax (FLOAT8), tpch100.t.l_returnflag
(TEXT), tpch100.t.l_linestatus (TEXT), tpch100.t.l_shipdate (TEXT),
tpch100.t.l_commitdate (TEXT), tpch100.t.l_receiptdate (TEXT),
tpch100.t.l_shipinstruct (TEXT), tpch100.t.l_shipmode (TEXT),
tpch100.t.l_comment (TEXT), tpch100.t.n_nationkey (INT8), tpch100.t.n_name
(TEXT), tpch100.t.n_regionkey (INT8), tpch100.t.n_comment (TEXT)}
PROJECTION(4)
=> Targets: tpch100.lineitem.l_orderkey (INT8),
tpch100.lineitem.l_partkey (INT8), tpch100.lineitem.l_suppkey (INT8),
tpch100.lineitem.l_linenumber (INT8), tpch100.lineitem.l_quantity (FLOAT8),
tpch100.lineitem.l_extendedprice (FLOAT8), tpch100.lineitem.l_discount
(FLOAT8), tpch100.lineitem.l_tax (FLOAT8), tpch100.lineitem.l_returnflag
(TEXT), tpch100.lineitem.l_linestatus (TEXT), tpch100.lineitem.l_shipdate
(TEXT), tpch100.lineitem.l_commitdate (TEXT), tpch100.lineitem.l_receiptdate
(TEXT), tpch100.lineitem.l_shipinstruct (TEXT), tpch100.lineitem.l_shipmode
(TEXT), tpch100.lineitem.l_comment (TEXT), tpch100.nation.n_nationkey (INT8),
tpch100.nation.n_name (TEXT), tpch100.nation.n_regionkey (INT8),
tpch100.nation.n_comment (TEXT)
=> out schema: {(20) tpch100.lineitem.l_orderkey (INT8),
tpch100.lineitem.l_partkey (INT8), tpch100.lineitem.l_suppkey (INT8),
tpch100.lineitem.l_linenumber (INT8), tpch100.lineitem.l_quantity (FLOAT8),
tpch100.lineitem.l_extendedprice (FLOAT8), tpch100.lineitem.l_discount
(FLOAT8), tpch100.lineitem.l_tax (FLOAT8), tpch100.lineitem.l_returnflag
(TEXT), tpch100.lineitem.l_linestatus (TEXT), tpch100.lineitem.l_shipdate
(TEXT), tpch100.lineitem.l_commitdate (TEXT), tpch100.lineitem.l_receiptdate
(TEXT), tpch100.lineitem.l_shipinstruct (TEXT), tpch100.lineitem.l_shipmode
(TEXT), tpch100.lineitem.l_comment (TEXT), tpch100.nation.n_nationkey (INT8),
tpch100.nation.n_name (TEXT), tpch100.nation.n_regionkey (INT8),
tpch100.nation.n_comment (TEXT)}
=> in schema: {(20) tpch100.lineitem.l_orderkey (INT8),
tpch100.lineitem.l_partkey (INT8), tpch100.lineitem.l_suppkey (INT8),
tpch100.lineitem.l_linenumber (INT8), tpch100.lineitem.l_quantity (FLOAT8),
tpch100.lineitem.l_extendedprice (FLOAT8), tpch100.lineitem.l_discount
(FLOAT8), tpch100.lineitem.l_tax (FLOAT8), tpch100.lineitem.l_returnflag
(TEXT), tpch100.lineitem.l_linestatus (TEXT), tpch100.lineitem.l_shipdate
(TEXT), tpch100.lineitem.l_commitdate (TEXT), tpch100.lineitem.l_receiptdate
(TEXT), tpch100.lineitem.l_shipinstruct (TEXT), tpch100.lineitem.l_shipmode
(TEXT), tpch100.lineitem.l_comment (TEXT), tpch100.nation.n_nationkey (INT8),
tpch100.nation.n_name (TEXT), tpch100.nation.n_regionkey (INT8),
tpch100.nation.n_comment (TEXT)}
JOIN(9)(LEFT_OUTER)
=> Join Cond: tpch100.lineitem.l_suppkey (INT8) =
tpch100.nation.n_nationkey (INT8)
=> target list: tpch100.lineitem.l_orderkey (INT8),
tpch100.lineitem.l_partkey (INT8), tpch100.lineitem.l_suppkey (INT8),
tpch100.lineitem.l_linenumber (INT8), tpch100.lineitem.l_quantity (FLOAT8),
tpch100.lineitem.l_extendedprice (FLOAT8), tpch100.lineitem.l_discount
(FLOAT8), tpch100.lineitem.l_tax (FLOAT8), tpch100.lineitem.l_returnflag
(TEXT), tpch100.lineitem.l_linestatus (TEXT), tpch100.lineitem.l_shipdate
(TEXT), tpch100.lineitem.l_commitdate (TEXT), tpch100.lineitem.l_receiptdate
(TEXT), tpch100.lineitem.l_shipinstruct (TEXT), tpch100.lineitem.l_shipmode
(TEXT), tpch100.lineitem.l_comment (TEXT), tpch100.nation.n_nationkey (INT8),
tpch100.nation.n_name (TEXT), tpch100.nation.n_regionkey (INT8),
tpch100.nation.n_comment (TEXT)
=> out schema: {(20) tpch100.lineitem.l_orderkey (INT8),
tpch100.lineitem.l_partkey (INT8), tpch100.lineitem.l_suppkey (INT8),
tpch100.lineitem.l_linenumber (INT8), tpch100.lineitem.l_quantity (FLOAT8),
tpch100.lineitem.l_extendedprice (FLOAT8), tpch100.lineitem.l_discount
(FLOAT8), tpch100.lineitem.l_tax (FLOAT8), tpch100.lineitem.l_returnflag
(TEXT), tpch100.lineitem.l_linestatus (TEXT), tpch100.lineitem.l_shipdate
(TEXT), tpch100.lineitem.l_commitdate (TEXT), tpch100.lineitem.l_receiptdate
(TEXT), tpch100.lineitem.l_shipinstruct (TEXT), tpch100.lineitem.l_shipmode
(TEXT), tpch100.lineitem.l_comment (TEXT), tpch100.nation.n_nationkey (INT8),
tpch100.nation.n_name (TEXT), tpch100.nation.n_regionkey (INT8),
tpch100.nation.n_comment (TEXT)}
=> in schema: {(20) tpch100.lineitem.l_orderkey (INT8),
tpch100.lineitem.l_partkey (INT8), tpch100.lineitem.l_suppkey (INT8),
tpch100.lineitem.l_linenumber (INT8), tpch100.lineitem.l_quantity (FLOAT8),
tpch100.lineitem.l_extendedprice (FLOAT8), tpch100.lineitem.l_discount
(FLOAT8), tpch100.lineitem.l_tax (FLOAT8), tpch100.lineitem.l_returnflag
(TEXT), tpch100.lineitem.l_linestatus (TEXT), tpch100.lineitem.l_shipdate
(TEXT), tpch100.lineitem.l_commitdate (TEXT), tpch100.lineitem.l_receiptdate
(TEXT), tpch100.lineitem.l_shipinstruct (TEXT), tpch100.lineitem.l_shipmode
(TEXT), tpch100.lineitem.l_comment (TEXT), tpch100.nation.n_nationkey (INT8),
tpch100.nation.n_name (TEXT), tpch100.nation.n_regionkey (INT8),
tpch100.nation.n_comment (TEXT)}
SCAN(2) on tpch100.nation
=> target list: tpch100.nation.n_nationkey (INT8),
tpch100.nation.n_name (TEXT), tpch100.nation.n_regionkey (INT8),
tpch100.nation.n_comment (TEXT)
=> out schema: {(4) tpch100.nation.n_nationkey (INT8),
tpch100.nation.n_name (TEXT), tpch100.nation.n_regionkey (INT8),
tpch100.nation.n_comment (TEXT)}
=> in schema: {(4) tpch100.nation.n_nationkey (INT8),
tpch100.nation.n_name (TEXT), tpch100.nation.n_regionkey (INT8),
tpch100.nation.n_comment (TEXT)}
SCAN(1) on tpch100.lineitem
=> target list: tpch100.lineitem.l_orderkey (INT8),
tpch100.lineitem.l_partkey (INT8), tpch100.lineitem.l_suppkey (INT8),
tpch100.lineitem.l_linenumber (INT8), tpch100.lineitem.l_quantity (FLOAT8),
tpch100.lineitem.l_extendedprice (FLOAT8), tpch100.lineitem.l_discount
(FLOAT8), tpch100.lineitem.l_tax (FLOAT8), tpch100.lineitem.l_returnflag
(TEXT), tpch100.lineitem.l_linestatus (TEXT), tpch100.lineitem.l_shipdate
(TEXT), tpch100.lineitem.l_commitdate (TEXT), tpch100.lineitem.l_receiptdate
(TEXT), tpch100.lineitem.l_shipinstruct (TEXT), tpch100.lineitem.l_shipmode
(TEXT), tpch100.lineitem.l_comment (TEXT)
=> out schema: {(16) tpch100.lineitem.l_orderkey (INT8),
tpch100.lineitem.l_partkey (INT8), tpch100.lineitem.l_suppkey (INT8),
tpch100.lineitem.l_linenumber (INT8), tpch100.lineitem.l_quantity (FLOAT8),
tpch100.lineitem.l_extendedprice (FLOAT8), tpch100.lineitem.l_discount
(FLOAT8), tpch100.lineitem.l_tax (FLOAT8), tpch100.lineitem.l_returnflag
(TEXT), tpch100.lineitem.l_linestatus (TEXT), tpch100.lineitem.l_shipdate
(TEXT), tpch100.lineitem.l_commitdate (TEXT), tpch100.lineitem.l_receiptdate
(TEXT), tpch100.lineitem.l_shipinstruct (TEXT), tpch100.lineitem.l_shipmode
(TEXT), tpch100.lineitem.l_comment (TEXT)}
=> in schema: {(16) tpch100.lineitem.l_orderkey (INT8),
tpch100.lineitem.l_partkey (INT8), tpch100.lineitem.l_suppkey (INT8),
tpch100.lineitem.l_linenumber (INT8), tpch100.lineitem.l_quantity (FLOAT8),
tpch100.lineitem.l_extendedprice (FLOAT8), tpch100.lineitem.l_discount
(FLOAT8), tpch100.lineitem.l_tax (FLOAT8), tpch100.lineitem.l_returnflag
(TEXT), tpch100.lineitem.l_linestatus (TEXT), tpch100.lineitem.l_shipdate
(TEXT), tpch100.lineitem.l_commitdate (TEXT), tpch100.lineitem.l_receiptdate
(TEXT), tpch100.lineitem.l_shipinstruct (TEXT), tpch100.lineitem.l_shipmode
(TEXT), tpch100.lineitem.l_comment (TEXT)}
=======================================================
Block Id: eb_1432720176114_0001_000005 [ROOT]
=======================================================
[Incoming]
[q_1432720176114_0001] 1 => 5 (type=HASH_SHUFFLE,
key=tpch100.region.r_regionkey (INT8), num=1186)
[q_1432720176114_0001] 4 => 5 (type=HASH_SHUFFLE, key=tpch100.t.n_regionkey
(INT8), num=1186)
JOIN(10)(INNER)
=> Join Cond: tpch100.t.n_regionkey (INT8) = tpch100.region.r_regionkey
(INT8)
=> target list: tpch100.region.r_name (TEXT), s1 (TEXT)
=> out schema: {(2) tpch100.region.r_name (TEXT), s1 (TEXT)}
=> in schema: {(4) tpch100.region.r_name (TEXT),
tpch100.region.r_regionkey (INT8), s1 (TEXT), tpch100.t.n_regionkey (INT8)}
SCAN(13) on eb_1432720176114_0001_000004
=> out schema: {(2) s1 (TEXT), tpch100.t.n_regionkey (INT8)}
=> in schema: {(2) s1 (TEXT), tpch100.t.n_regionkey (INT8)}
SCAN(12) on eb_1432720176114_0001_000001
=> out schema: {(2) tpch100.region.r_name (TEXT),
tpch100.region.r_regionkey (INT8)}
=> in schema: {(2) tpch100.region.r_name (TEXT),
tpch100.region.r_regionkey (INT8)}
=======================================================
Block Id: eb_1432720176114_0001_000006 [TERMINAL]
=======================================================
```
##### After patch
```
-------------------------------------------------------------------------------
Execution Block Graph (TERMINAL - eb_1432719753330_0002_000006)
-------------------------------------------------------------------------------
|-eb_1432719753330_0002_000006
|-eb_1432719753330_0002_000005
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
1: eb_1432719753330_0002_000005
2: eb_1432719753330_0002_000006
-------------------------------------------------------------------------------
=======================================================
Block Id: eb_1432719753330_0002_000005 [ROOT]
=======================================================
[Enforcers]
0: type=Broadcast, tables=tpch100.region
1: type=Broadcast, tables=tpch100.nation
JOIN(10)(INNER)
=> Join Cond: tpch100.t.n_regionkey (INT8) = tpch100.region.r_regionkey
(INT8)
=> target list: tpch100.region.r_name (TEXT), s1 (TEXT)
=> out schema: {(2) tpch100.region.r_name (TEXT), s1 (TEXT)}
=> in schema: {(4) tpch100.region.r_name (TEXT),
tpch100.region.r_regionkey (INT8), s1 (TEXT), tpch100.t.n_regionkey (INT8)}
TABLE_SUBQUERY(5) as tpch100.t
=> Targets: CASE WHEN tpch100.t.l_shipmode (TEXT) IS NULL THEN N/O
ELSE tpch100.t.l_shipmode (TEXT) END as s1, tpch100.t.n_regionkey (INT8)
=> out schema: {(2) s1 (TEXT), tpch100.t.n_regionkey (INT8)}
=> in schema: {(20) tpch100.t.l_orderkey (INT8), tpch100.t.l_partkey
(INT8), tpch100.t.l_suppkey (INT8), tpch100.t.l_linenumber (INT8),
tpch100.t.l_quantity (FLOAT8), tpch100.t.l_extendedprice (FLOAT8),
tpch100.t.l_discount (FLOAT8), tpch100.t.l_tax (FLOAT8), tpch100.t.l_returnflag
(TEXT), tpch100.t.l_linestatus (TEXT), tpch100.t.l_shipdate (TEXT),
tpch100.t.l_commitdate (TEXT), tpch100.t.l_receiptdate (TEXT),
tpch100.t.l_shipinstruct (TEXT), tpch100.t.l_shipmode (TEXT),
tpch100.t.l_comment (TEXT), tpch100.t.n_nationkey (INT8), tpch100.t.n_name
(TEXT), tpch100.t.n_regionkey (INT8), tpch100.t.n_comment (TEXT)}
PROJECTION(4)
=> Targets: tpch100.lineitem.l_orderkey (INT8),
tpch100.lineitem.l_partkey (INT8), tpch100.lineitem.l_suppkey (INT8),
tpch100.lineitem.l_linenumber (INT8), tpch100.lineitem.l_quantity (FLOAT8),
tpch100.lineitem.l_extendedprice (FLOAT8), tpch100.lineitem.l_discount
(FLOAT8), tpch100.lineitem.l_tax (FLOAT8), tpch100.lineitem.l_returnflag
(TEXT), tpch100.lineitem.l_linestatus (TEXT), tpch100.lineitem.l_shipdate
(TEXT), tpch100.lineitem.l_commitdate (TEXT), tpch100.lineitem.l_receiptdate
(TEXT), tpch100.lineitem.l_shipinstruct (TEXT), tpch100.lineitem.l_shipmode
(TEXT), tpch100.lineitem.l_comment (TEXT), tpch100.nation.n_nationkey (INT8),
tpch100.nation.n_name (TEXT), tpch100.nation.n_regionkey (INT8),
tpch100.nation.n_comment (TEXT)
=> out schema: {(20) tpch100.lineitem.l_orderkey (INT8),
tpch100.lineitem.l_partkey (INT8), tpch100.lineitem.l_suppkey (INT8),
tpch100.lineitem.l_linenumber (INT8), tpch100.lineitem.l_quantity (FLOAT8),
tpch100.lineitem.l_extendedprice (FLOAT8), tpch100.lineitem.l_discount
(FLOAT8), tpch100.lineitem.l_tax (FLOAT8), tpch100.lineitem.l_returnflag
(TEXT), tpch100.lineitem.l_linestatus (TEXT), tpch100.lineitem.l_shipdate
(TEXT), tpch100.lineitem.l_commitdate (TEXT), tpch100.lineitem.l_receiptdate
(TEXT), tpch100.lineitem.l_shipinstruct (TEXT), tpch100.lineitem.l_shipmode
(TEXT), tpch100.lineitem.l_comment (TEXT), tpch100.nation.n_nationkey (INT8),
tpch100.nation.n_name (TEXT), tpch100.nation.n_regionkey (INT8),
tpch100.nation.n_comment (TEXT)}
=> in schema: {(20) tpch100.lineitem.l_orderkey (INT8),
tpch100.lineitem.l_partkey (INT8), tpch100.lineitem.l_suppkey (INT8),
tpch100.lineitem.l_linenumber (INT8), tpch100.lineitem.l_quantity (FLOAT8),
tpch100.lineitem.l_extendedprice (FLOAT8), tpch100.lineitem.l_discount
(FLOAT8), tpch100.lineitem.l_tax (FLOAT8), tpch100.lineitem.l_returnflag
(TEXT), tpch100.lineitem.l_linestatus (TEXT), tpch100.lineitem.l_shipdate
(TEXT), tpch100.lineitem.l_commitdate (TEXT), tpch100.lineitem.l_receiptdate
(TEXT), tpch100.lineitem.l_shipinstruct (TEXT), tpch100.lineitem.l_shipmode
(TEXT), tpch100.lineitem.l_comment (TEXT), tpch100.nation.n_nationkey (INT8),
tpch100.nation.n_name (TEXT), tpch100.nation.n_regionkey (INT8),
tpch100.nation.n_comment (TEXT)}
JOIN(9)(LEFT_OUTER)
=> Join Cond: tpch100.lineitem.l_suppkey (INT8) =
tpch100.nation.n_nationkey (INT8)
=> target list: tpch100.lineitem.l_orderkey (INT8),
tpch100.lineitem.l_partkey (INT8), tpch100.lineitem.l_suppkey (INT8),
tpch100.lineitem.l_linenumber (INT8), tpch100.lineitem.l_quantity (FLOAT8),
tpch100.lineitem.l_extendedprice (FLOAT8), tpch100.lineitem.l_discount
(FLOAT8), tpch100.lineitem.l_tax (FLOAT8), tpch100.lineitem.l_returnflag
(TEXT), tpch100.lineitem.l_linestatus (TEXT), tpch100.lineitem.l_shipdate
(TEXT), tpch100.lineitem.l_commitdate (TEXT), tpch100.lineitem.l_receiptdate
(TEXT), tpch100.lineitem.l_shipinstruct (TEXT), tpch100.lineitem.l_shipmode
(TEXT), tpch100.lineitem.l_comment (TEXT), tpch100.nation.n_nationkey (INT8),
tpch100.nation.n_name (TEXT), tpch100.nation.n_regionkey (INT8),
tpch100.nation.n_comment (TEXT)
=> out schema: {(20) tpch100.lineitem.l_orderkey (INT8),
tpch100.lineitem.l_partkey (INT8), tpch100.lineitem.l_suppkey (INT8),
tpch100.lineitem.l_linenumber (INT8), tpch100.lineitem.l_quantity (FLOAT8),
tpch100.lineitem.l_extendedprice (FLOAT8), tpch100.lineitem.l_discount
(FLOAT8), tpch100.lineitem.l_tax (FLOAT8), tpch100.lineitem.l_returnflag
(TEXT), tpch100.lineitem.l_linestatus (TEXT), tpch100.lineitem.l_shipdate
(TEXT), tpch100.lineitem.l_commitdate (TEXT), tpch100.lineitem.l_receiptdate
(TEXT), tpch100.lineitem.l_shipinstruct (TEXT), tpch100.lineitem.l_shipmode
(TEXT), tpch100.lineitem.l_comment (TEXT), tpch100.nation.n_nationkey (INT8),
tpch100.nation.n_name (TEXT), tpch100.nation.n_regionkey (INT8),
tpch100.nation.n_comment (TEXT)}
=> in schema: {(20) tpch100.lineitem.l_orderkey (INT8),
tpch100.lineitem.l_partkey (INT8), tpch100.lineitem.l_suppkey (INT8),
tpch100.lineitem.l_linenumber (INT8), tpch100.lineitem.l_quantity (FLOAT8),
tpch100.lineitem.l_extendedprice (FLOAT8), tpch100.lineitem.l_discount
(FLOAT8), tpch100.lineitem.l_tax (FLOAT8), tpch100.lineitem.l_returnflag
(TEXT), tpch100.lineitem.l_linestatus (TEXT), tpch100.lineitem.l_shipdate
(TEXT), tpch100.lineitem.l_commitdate (TEXT), tpch100.lineitem.l_receiptdate
(TEXT), tpch100.lineitem.l_shipinstruct (TEXT), tpch100.lineitem.l_shipmode
(TEXT), tpch100.lineitem.l_comment (TEXT), tpch100.nation.n_nationkey (INT8),
tpch100.nation.n_name (TEXT), tpch100.nation.n_regionkey (INT8),
tpch100.nation.n_comment (TEXT)}
SCAN(2) on tpch100.nation
=> target list: tpch100.nation.n_nationkey (INT8),
tpch100.nation.n_name (TEXT), tpch100.nation.n_regionkey (INT8),
tpch100.nation.n_comment (TEXT)
=> out schema: {(4) tpch100.nation.n_nationkey (INT8),
tpch100.nation.n_name (TEXT), tpch100.nation.n_regionkey (INT8),
tpch100.nation.n_comment (TEXT)}
=> in schema: {(4) tpch100.nation.n_nationkey (INT8),
tpch100.nation.n_name (TEXT), tpch100.nation.n_regionkey (INT8),
tpch100.nation.n_comment (TEXT)}
SCAN(1) on tpch100.lineitem
=> target list: tpch100.lineitem.l_orderkey (INT8),
tpch100.lineitem.l_partkey (INT8), tpch100.lineitem.l_suppkey (INT8),
tpch100.lineitem.l_linenumber (INT8), tpch100.lineitem.l_quantity (FLOAT8),
tpch100.lineitem.l_extendedprice (FLOAT8), tpch100.lineitem.l_discount
(FLOAT8), tpch100.lineitem.l_tax (FLOAT8), tpch100.lineitem.l_returnflag
(TEXT), tpch100.lineitem.l_linestatus (TEXT), tpch100.lineitem.l_shipdate
(TEXT), tpch100.lineitem.l_commitdate (TEXT), tpch100.lineitem.l_receiptdate
(TEXT), tpch100.lineitem.l_shipinstruct (TEXT), tpch100.lineitem.l_shipmode
(TEXT), tpch100.lineitem.l_comment (TEXT)
=> out schema: {(16) tpch100.lineitem.l_orderkey (INT8),
tpch100.lineitem.l_partkey (INT8), tpch100.lineitem.l_suppkey (INT8),
tpch100.lineitem.l_linenumber (INT8), tpch100.lineitem.l_quantity (FLOAT8),
tpch100.lineitem.l_extendedprice (FLOAT8), tpch100.lineitem.l_discount
(FLOAT8), tpch100.lineitem.l_tax (FLOAT8), tpch100.lineitem.l_returnflag
(TEXT), tpch100.lineitem.l_linestatus (TEXT), tpch100.lineitem.l_shipdate
(TEXT), tpch100.lineitem.l_commitdate (TEXT), tpch100.lineitem.l_receiptdate
(TEXT), tpch100.lineitem.l_shipinstruct (TEXT), tpch100.lineitem.l_shipmode
(TEXT), tpch100.lineitem.l_comment (TEXT)}
=> in schema: {(16) tpch100.lineitem.l_orderkey (INT8),
tpch100.lineitem.l_partkey (INT8), tpch100.lineitem.l_suppkey (INT8),
tpch100.lineitem.l_linenumber (INT8), tpch100.lineitem.l_quantity (FLOAT8),
tpch100.lineitem.l_extendedprice (FLOAT8), tpch100.lineitem.l_discount
(FLOAT8), tpch100.lineitem.l_tax (FLOAT8), tpch100.lineitem.l_returnflag
(TEXT), tpch100.lineitem.l_linestatus (TEXT), tpch100.lineitem.l_shipdate
(TEXT), tpch100.lineitem.l_commitdate (TEXT), tpch100.lineitem.l_receiptdate
(TEXT), tpch100.lineitem.l_shipinstruct (TEXT), tpch100.lineitem.l_shipmode
(TEXT), tpch100.lineitem.l_comment (TEXT)}
SCAN(0) on tpch100.region
=> target list: tpch100.region.r_name (TEXT),
tpch100.region.r_regionkey (INT8)
=> out schema: {(2) tpch100.region.r_name (TEXT),
tpch100.region.r_regionkey (INT8)}
=> in schema: {(3) tpch100.region.r_regionkey (INT8),
tpch100.region.r_name (TEXT), tpch100.region.r_comment (TEXT)}
=======================================================
Block Id: eb_1432719753330_0002_000006 [TERMINAL]
=======================================================
```
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---