-----------------------------------------------------------display pushdown predicate feature-----------------------------------------------
create schema dfs_predicate_schema;
set current_schema = dfs_predicate_schema;
CREATE SERVER hdfs_server FOREIGN DATA WRAPPER HDFS_FDW OPTIONS (type 'hdfs', address '@hdfshostname@:@hdfsport@',hdfscfgpath '@hdfscfgpath@');
--1. explain predicate pushdown use case
set cstore_insert_mode = main;
--prepare, the a and b column could be pushed down, the t column can not be pushed down
drop table if exists dfs_predicate_01;
NOTICE: table "dfs_predicate_01" does not exist, skipping
create table dfs_predicate_01(a1 int, a2 int, p1 tinyint, p2 int2, p3 int4, p4 int8, non_p SMALLDATETIME)
tablespace hdfs_ts
distribute by hash(a1, a2);
--partition by values (p1, p2, p3, p4);
insert into dfs_predicate_01 values(1, 2, 3, 4, 5, 6, '2001-04-11 04:05:01');
insert into dfs_predicate_01 values(2, 3, 4, 5, 6, 7, '2002-04-12 04:05:02');
insert into dfs_predicate_01 values(3, 4, 5, 6, 7, 8, '2003-04-13 04:05:03');
insert into dfs_predicate_01 values(4, 5, 6, 7, 8, 9, '2004-04-14 04:05:04');
insert into dfs_predicate_01 values(5, 6, 7, 8, 9, 10, '2005-04-15 04:05:05');
drop table if exists temp_predicate_01;
NOTICE: table "temp_predicate_01" does not exist, skipping
create table temp_predicate_01 (a1 int, a2 int, p1 tinyint, p2 int2, p3 int4, p4 int8)
tablespace hdfs_ts
distribute by hash(a1, a2);
insert into temp_predicate_01 select a1, a2, p1, p2, p3, p4 from dfs_predicate_01;
create foreign table hdfs_predicate_01(a1 int, a2 int, p1 tinyint, p2 int2, p3 int4, p4 int8)
server hdfs_server
options(format 'orc', foldername '/@hdfsstoreplus@/dfs_init_004/tablespace_secondary/regression/dfs_predicate_schema.temp_predicate_01')
distribute by roundrobin;
drop table if exists normal_01;
NOTICE: table "normal_01" does not exist, skipping
create table normal_01 (a1 int, a2 int, p1 tinyint, p2 int2, p3 int4, p4 int8, non_p SMALLDATETIME);
insert into normal_01 select * from dfs_predicate_01;
drop table if exists dfs_predicate_02;
NOTICE: table "dfs_predicate_02" does not exist, skipping
create table dfs_predicate_02( a int, p5 date, p6 decimal(5, 2), p7 bpchar(10), p8 char, non_p SMALLDATETIME)
tablespace hdfs_ts;
--partition by values (p5, p6, p7, p8);
insert into dfs_predicate_02 values(1, '12-10-2016', 2.1, '3.1', 'a', '2001-10-11 16:53:00');
insert into dfs_predicate_02 values(2, '12-11-2016', 3.1, '4.1', 'b', '2001-10-12 16:53:00');
insert into dfs_predicate_02 values(3, '12-12-2016', 4.1, '5.1', 'c', '2001-10-13 16:53:00');
insert into dfs_predicate_02 values(4, '12-13-2016', 5.1, '6.1', 'd', '2001-10-14 16:53:00');
insert into dfs_predicate_02 values(5, '12-14-2016', 6.1, '7.1', 'e', '2001-10-15 16:53:00');
drop table if exists temp_predicate_02;
NOTICE: table "temp_predicate_02" does not exist, skipping
create table temp_predicate_02 ( a int, p5 date, p6 decimal(5, 2), p7 bpchar(10), p8 char)
tablespace hdfs_ts;
insert into temp_predicate_02 select a, p5, p6, p7, p8 from dfs_predicate_02;
create foreign table hdfs_predicate_02( a int, p5 date, p6 decimal(5, 2), p7 bpchar(10), p8 char)
server hdfs_server
options(format 'orc', foldername '/@hdfsstoreplus@/dfs_init_004/tablespace_secondary/regression/dfs_predicate_schema.temp_predicate_02')
distribute by roundrobin;
drop table if exists normal_02;
NOTICE: table "normal_02" does not exist, skipping
create table normal_02( a int, p5 date, p6 decimal(5, 2), p7 bpchar(10), p8 char, non_p SMALLDATETIME);
insert into normal_02 select * from dfs_predicate_02;
drop table if exists dfs_predicate_03;
NOTICE: table "dfs_predicate_03" does not exist, skipping
create table dfs_predicate_03(a int, p9 varchar(10), b clob, p11 text, p12 timestamp, non_p SMALLDATETIME)
tablespace hdfs_ts
partition by values (p9, p11, p12);
insert into dfs_predicate_03 values(1, '12-10-2016', '2.1', '3.1', '2003-04-10 04:05:06', '2001-10-11 16:53:01');
insert into dfs_predicate_03 values(2, '12-11-2016', '3.1', '4.1', '2003-04-11 04:05:06', '2001-10-12 16:53:02');
insert into dfs_predicate_03 values(3, '12-12-2016', '4.1', '5.1', '2003-04-12 04:05:06', '2001-10-13 16:53:03');
insert into dfs_predicate_03 values(4, '12-13-2016', '5.1', '6.1', '2003-04-13 04:05:06', '2001-10-14 16:53:04');
insert into dfs_predicate_03 values(5, '12-14-2016', '6.1', '7.1', '2003-04-14 04:05:06', '2001-10-15 16:53:05');
drop table if exists temp_predicate_03;
NOTICE: table "temp_predicate_03" does not exist, skipping
create table temp_predicate_03 (a int, p9 varchar(10), b clob, p11 text, p12 timestamp)
tablespace hdfs_ts;
insert into temp_predicate_03 select a , p9, b, p11, p12 from dfs_predicate_03;
create foreign table hdfs_predicate_03(a int, p9 varchar(10), b clob, p11 text, p12 timestamp)
server hdfs_server
options(format 'orc', foldername '/@hdfsstoreplus@/dfs_init_004/tablespace_secondary/regression/dfs_predicate_schema.temp_predicate_03')
distribute by roundrobin;
drop table if exists normal_03;
NOTICE: table "normal_03" does not exist, skipping
create table normal_03(a int, p9 varchar(10), b clob, p11 text, p12 timestamp, non_p SMALLDATETIME);
insert into normal_03 select * from dfs_predicate_03;
select * from dfs_predicate_01 order by 1;
a1 | a2 | p1 | p2 | p3 | p4 | non_p
----+----+----+----+----+----+--------------------------
1 | 2 | 3 | 4 | 5 | 6 | Wed Apr 11 04:05:00 2001
2 | 3 | 4 | 5 | 6 | 7 | Fri Apr 12 04:05:00 2002
3 | 4 | 5 | 6 | 7 | 8 | Sun Apr 13 04:05:00 2003
4 | 5 | 6 | 7 | 8 | 9 | Wed Apr 14 04:05:00 2004
5 | 6 | 7 | 8 | 9 | 10 | Fri Apr 15 04:05:00 2005
(5 rows)
select * from dfs_predicate_02 order by 1;
a | p5 | p6 | p7 | p8 | non_p
---+--------------------------+------+------------+----+--------------------------
1 | Sat Dec 10 00:00:00 2016 | 2.10 | 3.1 | a | Thu Oct 11 16:53:00 2001
2 | Sun Dec 11 00:00:00 2016 | 3.10 | 4.1 | b | Fri Oct 12 16:53:00 2001
3 | Mon Dec 12 00:00:00 2016 | 4.10 | 5.1 | c | Sat Oct 13 16:53:00 2001
4 | Tue Dec 13 00:00:00 2016 | 5.10 | 6.1 | d | Sun Oct 14 16:53:00 2001
5 | Wed Dec 14 00:00:00 2016 | 6.10 | 7.1 | e | Mon Oct 15 16:53:00 2001
(5 rows)
select * from dfs_predicate_03 order by 1;
a | p9 | b | p11 | p12 | non_p
---+------------+-----+-----+--------------------------+--------------------------
1 | 12-10-2016 | 2.1 | 3.1 | Thu Apr 10 04:05:06 2003 | Thu Oct 11 16:53:00 2001
2 | 12-11-2016 | 3.1 | 4.1 | Fri Apr 11 04:05:06 2003 | Fri Oct 12 16:53:00 2001
3 | 12-12-2016 | 4.1 | 5.1 | Sat Apr 12 04:05:06 2003 | Sat Oct 13 16:53:00 2001
4 | 12-13-2016 | 5.1 | 6.1 | Sun Apr 13 04:05:06 2003 | Sun Oct 14 16:53:00 2001
5 | 12-14-2016 | 6.1 | 7.1 | Mon Apr 14 04:05:06 2003 | Mon Oct 15 16:53:00 2001
(5 rows)
CREATE OR REPLACE FUNCTION predicate_clause_test(
TestName VARCHAR,
nor_tbl VARCHAR,
dfs_tbl VARCHAR,
predicate_clause VARCHAR
) RETURNS TEXT
AS $$
DECLARE
count_result INTEGER;
BEGIN
EXECUTE
'
select count(*)
from ( select * from '|| nor_tbl ||' where '|| predicate_clause ||'
MINUS ALL
select * from '|| dfs_tbl ||' where '|| predicate_clause ||'
)
'
INTO count_result;
return TestName || ' return code:' || count_result;
END;
$$ LANGUAGE plpgsql;
---------test HDFS table
----------------------------check explain
--The first category, check explain
--------------------------------------------------
set explain_perf_mode=normal;
--use case1: pushdown predicate
explain (verbose, costs off) select count(*) from dfs_predicate_01 where a1 = 1 and a2 = 2;
QUERY PLAN
----------------------------------------------------------------------------------------------------------------------------------------------------------------
Row Adapter
Output: (pg_catalog.count(*))
-> Vector Aggregate
Output: pg_catalog.count(*)
-> Vector Streaming (type: GATHER)
Output: (count(*))
-> Vector Aggregate
Output: count(*)
-> Vector Append
-> Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_01.a1, dfs_predicate_schema.dfs_predicate_01.a2
Pushdown Predicate Filter: ((dfs_predicate_schema.dfs_predicate_01.a1 = 1) AND (dfs_predicate_schema.dfs_predicate_01.a2 = 2))
-> Vector Adapter
Output: ('Dummy')
-> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_01.a1, cstore.dfs_predicate_01.a2
Filter: ((cstore.dfs_predicate_01.a1 = 1) AND (cstore.dfs_predicate_01.a2 = 2))
(19 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_01 where p1 = 4::tinyint and p2 = 5 and p3 = 6 and p4 = 7 ;
QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Row Adapter
Output: (pg_catalog.count(*))
-> Vector Aggregate
Output: pg_catalog.count(*)
-> Vector Streaming (type: GATHER)
Output: (count(*))
-> Vector Aggregate
Output: count(*)
-> Vector Append
-> Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_01.a1, dfs_predicate_schema.dfs_predicate_01.a2
Pushdown Predicate Filter: ((dfs_predicate_schema.dfs_predicate_01.p1 = '4'::tinyint) AND (dfs_predicate_schema.dfs_predicate_01.p2 = 5) AND (dfs_predicate_schema.dfs_predicate_01.p3 = 6) AND (dfs_predicate_schema.dfs_predicate_01.p4 = 7))
-> Vector Adapter
Output: ('Dummy')
-> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_01.a1, cstore.dfs_predicate_01.a2
Filter: ((cstore.dfs_predicate_01.p1 = '4'::tinyint) AND (cstore.dfs_predicate_01.p2 = 5) AND (cstore.dfs_predicate_01.p3 = 6) AND (cstore.dfs_predicate_01.p4 = 7))
(19 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_01 where p1 = 4::tinyint and p2 = 5 and p3 = 6 and p4 = 7 and a1 = 1 and a2 = 2 ;
QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Row Adapter
Output: (pg_catalog.count(*))
-> Vector Aggregate
Output: pg_catalog.count(*)
-> Vector Streaming (type: GATHER)
Output: (count(*))
-> Vector Aggregate
Output: count(*)
-> Vector Append
-> Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_01.a1, dfs_predicate_schema.dfs_predicate_01.a2
Pushdown Predicate Filter: ((dfs_predicate_schema.dfs_predicate_01.p1 = '4'::tinyint) AND (dfs_predicate_schema.dfs_predicate_01.p2 = 5) AND (dfs_predicate_schema.dfs_predicate_01.p3 = 6) AND (dfs_predicate_schema.dfs_predicate_01.p4 = 7) AND (dfs_predicate_schema.dfs_predicate_01.a1 = 1) AND (dfs_predicate_schema.dfs_predicate_01.a2 = 2))
-> Vector Adapter
Output: ('Dummy')
-> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_01.a1, cstore.dfs_predicate_01.a2
Filter: ((cstore.dfs_predicate_01.p1 = '4'::tinyint) AND (cstore.dfs_predicate_01.p2 = 5) AND (cstore.dfs_predicate_01.p3 = 6) AND (cstore.dfs_predicate_01.p4 = 7) AND (cstore.dfs_predicate_01.a1 = 1) AND (cstore.dfs_predicate_01.a2 = 2))
(19 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_03 where b is null;
QUERY PLAN
------------------------------------------------------------------------------------------------------------------------
Row Adapter
Output: (pg_catalog.count(*))
-> Vector Aggregate
Output: pg_catalog.count(*)
-> Vector Streaming (type: GATHER)
Output: (count(*))
-> Vector Aggregate
Output: count(*)
-> Vector Append
-> Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_03.a
Pushdown Predicate Filter: (dfs_predicate_schema.dfs_predicate_03.b IS NULL)
-> Vector Adapter
Output: ('Dummy')
-> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_03.a
Filter: (cstore.dfs_predicate_03.b IS NULL)
(19 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_02 where p5 > '12-10-2016' and p6 = 2.1 and p7 = '3.1' and p8 = 'a';
QUERY PLAN
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Row Adapter
Output: (pg_catalog.count(*))
-> Vector Aggregate
Output: pg_catalog.count(*)
-> Vector Streaming (type: GATHER)
Output: (count(*))
-> Vector Aggregate
Output: count(*)
-> Vector Append
-> Dfs Scan on dfs_predicate_schema.dfs_predicate_02
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_02.a
Pushdown Predicate Filter: ((dfs_predicate_schema.dfs_predicate_02.p5 > 'Sat Dec 10 00:00:00 2016'::timestamp without time zone) AND (dfs_predicate_schema.dfs_predicate_02.p6 = 2.1) AND (dfs_predicate_schema.dfs_predicate_02.p7 = '3.1'::bpchar) AND (dfs_predicate_schema.dfs_predicate_02.p8 = 'a'::bpchar))
-> Vector Adapter
Output: ('Dummy')
-> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_02 dfs_predicate_02
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_02.a
Filter: ((cstore.dfs_predicate_02.p5 > 'Sat Dec 10 00:00:00 2016'::timestamp without time zone) AND (cstore.dfs_predicate_02.p6 = 2.1) AND (cstore.dfs_predicate_02.p7 = '3.1'::bpchar) AND (cstore.dfs_predicate_02.p8 = 'a'::bpchar))
(19 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_02 where p5 > '12-10-2016' and p6 = 2.1 and p7 = '3.1' and p8 = 'a' and a =1;
QUERY PLAN
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Row Adapter
Output: (pg_catalog.count(*))
-> Vector Aggregate
Output: pg_catalog.count(*)
-> Vector Streaming (type: GATHER)
Output: (count(*))
-> Vector Aggregate
Output: count(*)
-> Vector Append
-> Dfs Scan on dfs_predicate_schema.dfs_predicate_02
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_02.a
Pushdown Predicate Filter: ((dfs_predicate_schema.dfs_predicate_02.p5 > 'Sat Dec 10 00:00:00 2016'::timestamp without time zone) AND (dfs_predicate_schema.dfs_predicate_02.p6 = 2.1) AND (dfs_predicate_schema.dfs_predicate_02.p7 = '3.1'::bpchar) AND (dfs_predicate_schema.dfs_predicate_02.p8 = 'a'::bpchar) AND (dfs_predicate_schema.dfs_predicate_02.a = 1))
-> Vector Adapter
Output: ('Dummy')
-> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_02 dfs_predicate_02
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_02.a
Filter: ((cstore.dfs_predicate_02.p5 > 'Sat Dec 10 00:00:00 2016'::timestamp without time zone) AND (cstore.dfs_predicate_02.p6 = 2.1) AND (cstore.dfs_predicate_02.p7 = '3.1'::bpchar) AND (cstore.dfs_predicate_02.p8 = 'a'::bpchar) AND (cstore.dfs_predicate_02.a = 1))
(19 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_01 where a1 = 2 and a2 = 3;
QUERY PLAN
----------------------------------------------------------------------------------------------------------------------------------------------------------------
Row Adapter
Output: (pg_catalog.count(*))
-> Vector Aggregate
Output: pg_catalog.count(*)
-> Vector Streaming (type: GATHER)
Output: (count(*))
Node/s: datanode12
-> Vector Aggregate
Output: count(*)
-> Vector Append
-> Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_01.a1, dfs_predicate_schema.dfs_predicate_01.a2
Pushdown Predicate Filter: ((dfs_predicate_schema.dfs_predicate_01.a1 = 2) AND (dfs_predicate_schema.dfs_predicate_01.a2 = 3))
-> Vector Adapter
Output: ('Dummy')
-> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_01.a1, cstore.dfs_predicate_01.a2
Filter: ((cstore.dfs_predicate_01.a1 = 2) AND (cstore.dfs_predicate_01.a2 = 3))
(20 rows)
--use case non-pushdown predicate clause
explain (verbose, costs off) select count(*) from dfs_predicate_01 where p1 = 4::tinyint or p2 = 5 and p3 = 6 and p4 = 7;
QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Row Adapter
Output: (pg_catalog.count(*))
-> Vector Aggregate
Output: pg_catalog.count(*)
-> Vector Streaming (type: GATHER)
Output: (count(*))
-> Vector Aggregate
Output: count(*)
-> Vector Append
-> Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_01.a1, dfs_predicate_schema.dfs_predicate_01.a2
Filter: ((dfs_predicate_schema.dfs_predicate_01.p1 = '4'::tinyint) OR ((dfs_predicate_schema.dfs_predicate_01.p2 = 5) AND (dfs_predicate_schema.dfs_predicate_01.p3 = 6) AND (dfs_predicate_schema.dfs_predicate_01.p4 = 7)))
-> Vector Adapter
Output: ('Dummy')
-> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_01.a1, cstore.dfs_predicate_01.a2
Filter: ((cstore.dfs_predicate_01.p1 = '4'::tinyint) OR ((cstore.dfs_predicate_01.p2 = 5) AND (cstore.dfs_predicate_01.p3 = 6) AND (cstore.dfs_predicate_01.p4 = 7)))
(19 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_03 where p9 = '12-10-2016' and p11 = '3.1' and p12='2003-04-10 04:05:06';
QUERY PLAN
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Row Adapter
Output: (pg_catalog.count(*))
-> Vector Aggregate
Output: pg_catalog.count(*)
-> Vector Streaming (type: GATHER)
Output: (count(*))
-> Vector Aggregate
Output: count(*)
-> Vector Append
-> Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_03.a
Filter: (((dfs_predicate_schema.dfs_predicate_03.p9)::text = '12-10-2016'::text) AND (dfs_predicate_schema.dfs_predicate_03.p11 = '3.1'::text) AND (dfs_predicate_schema.dfs_predicate_03.p12 = 'Thu Apr 10 04:05:06 2003'::timestamp without time zone))
-> Vector Adapter
Output: ('Dummy')
-> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_03.a
Filter: (((cstore.dfs_predicate_03.p9)::text = '12-10-2016'::text) AND (cstore.dfs_predicate_03.p11 = '3.1'::text) AND (cstore.dfs_predicate_03.p12 = 'Thu Apr 10 04:05:06 2003'::timestamp without time zone))
(19 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_03 where p11 = '3.1';
QUERY PLAN
------------------------------------------------------------------------------------------------------------------------
Row Adapter
Output: (pg_catalog.count(*))
-> Vector Aggregate
Output: pg_catalog.count(*)
-> Vector Streaming (type: GATHER)
Output: (count(*))
-> Vector Aggregate
Output: count(*)
-> Vector Append
-> Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_03.a
Filter: (dfs_predicate_schema.dfs_predicate_03.p11 = '3.1'::text)
-> Vector Adapter
Output: ('Dummy')
-> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_03.a
Filter: (cstore.dfs_predicate_03.p11 = '3.1'::text)
(19 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_03 where p9 = '12-10-2016' and b = '2.1';
QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------------------------------
Row Adapter
Output: (pg_catalog.count(*))
-> Vector Aggregate
Output: pg_catalog.count(*)
-> Vector Streaming (type: GATHER)
Output: (count(*))
-> Vector Aggregate
Output: count(*)
-> Vector Append
-> Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_03.a
Filter: ((dfs_predicate_schema.dfs_predicate_03.p9)::text = '12-10-2016'::text)
Pushdown Predicate Filter: (dfs_predicate_schema.dfs_predicate_03.b = '2.1'::text)
-> Vector Adapter
Output: ('Dummy')
-> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_03.a
Filter: (((cstore.dfs_predicate_03.p9)::text = '12-10-2016'::text) AND (cstore.dfs_predicate_03.b = '2.1'::text))
(20 rows)
--use case mixed predicate clause
explain (verbose, costs off) select count(*) from dfs_predicate_03 where p9 = '12-10-2016' and a = 1;
QUERY PLAN
-----------------------------------------------------------------------------------------------------------------------------------------------
Row Adapter
Output: (pg_catalog.count(*))
-> Vector Aggregate
Output: pg_catalog.count(*)
-> Vector Streaming (type: GATHER)
Output: (count(*))
-> Vector Aggregate
Output: count(*)
-> Vector Append
-> Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_03.a
Filter: ((dfs_predicate_schema.dfs_predicate_03.p9)::text = '12-10-2016'::text)
Pushdown Predicate Filter: (dfs_predicate_schema.dfs_predicate_03.a = 1)
-> Vector Adapter
Output: ('Dummy')
-> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_03.a
Filter: (((cstore.dfs_predicate_03.p9)::text = '12-10-2016'::text) AND (cstore.dfs_predicate_03.a = 1))
(20 rows)
--------------------------------------------------
set explain_perf_mode=pretty;
--use case1: pushdown predicate
explain (verbose, costs off) select count(*) from dfs_predicate_01 where a1 = 1 and a2 = 2;
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Dfs Scan on dfs_predicate_schema.dfs_predicate_01
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
(8 rows)
Predicate Information (identified by plan id)
----------------------------------------------------------------------------------------------------------------------------------------
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Pushdown Predicate Filter: ((dfs_predicate_schema.dfs_predicate_01.a1 = 1) AND (dfs_predicate_schema.dfs_predicate_01.a2 = 2))
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Filter: ((cstore.dfs_predicate_01.a1 = 1) AND (cstore.dfs_predicate_01.a2 = 2))
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_01.a1, dfs_predicate_schema.dfs_predicate_01.a2
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_01.a1, cstore.dfs_predicate_01.a2
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_01 where p1 = 4::tinyint and p2 = 5 and p3 = 6 and p4 = 7 ;
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Dfs Scan on dfs_predicate_schema.dfs_predicate_01
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
(8 rows)
Predicate Information (identified by plan id)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Pushdown Predicate Filter: ((dfs_predicate_schema.dfs_predicate_01.p1 = '4'::tinyint) AND (dfs_predicate_schema.dfs_predicate_01.p2 = 5) AND (dfs_predicate_schema.dfs_predicate_01.p3 = 6) AND (dfs_predicate_schema.dfs_predicate_01.p4 = 7))
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Filter: ((cstore.dfs_predicate_01.p1 = '4'::tinyint) AND (cstore.dfs_predicate_01.p2 = 5) AND (cstore.dfs_predicate_01.p3 = 6) AND (cstore.dfs_predicate_01.p4 = 7))
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_01.a1, dfs_predicate_schema.dfs_predicate_01.a2
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_01.a1, cstore.dfs_predicate_01.a2
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_01 where p1 = 4::tinyint and p2 = 5 and p3 = 6 and p4 = 7 and a1 = 1 and a2 = 2 ;
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Dfs Scan on dfs_predicate_schema.dfs_predicate_01
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
(8 rows)
Predicate Information (identified by plan id)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Pushdown Predicate Filter: ((dfs_predicate_schema.dfs_predicate_01.p1 = '4'::tinyint) AND (dfs_predicate_schema.dfs_predicate_01.p2 = 5) AND (dfs_predicate_schema.dfs_predicate_01.p3 = 6) AND (dfs_predicate_schema.dfs_predicate_01.p4 = 7) AND (dfs_predicate_schema.dfs_predicate_01.a1 = 1) AND (dfs_predicate_schema.dfs_predicate_01.a2 = 2))
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Filter: ((cstore.dfs_predicate_01.p1 = '4'::tinyint) AND (cstore.dfs_predicate_01.p2 = 5) AND (cstore.dfs_predicate_01.p3 = 6) AND (cstore.dfs_predicate_01.p4 = 7) AND (cstore.dfs_predicate_01.a1 = 1) AND (cstore.dfs_predicate_01.a2 = 2))
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_01.a1, dfs_predicate_schema.dfs_predicate_01.a2
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_01.a1, cstore.dfs_predicate_01.a2
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_03 where b is null;
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
(8 rows)
Predicate Information (identified by plan id)
------------------------------------------------------------------------------------------
6 --Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Pushdown Predicate Filter: (dfs_predicate_schema.dfs_predicate_03.b IS NULL)
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Filter: (cstore.dfs_predicate_03.b IS NULL)
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_03.a
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_03.a
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_02 where p5 > '12-10-2016' and p6 = 2.1 and p7 = '3.1' and p8 = 'a';
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Dfs Scan on dfs_predicate_schema.dfs_predicate_02
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_02 dfs_predicate_02
(8 rows)
Predicate Information (identified by plan id)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_02
Pushdown Predicate Filter: ((dfs_predicate_schema.dfs_predicate_02.p5 > 'Sat Dec 10 00:00:00 2016'::timestamp without time zone) AND (dfs_predicate_schema.dfs_predicate_02.p6 = 2.1) AND (dfs_predicate_schema.dfs_predicate_02.p7 = '3.1'::bpchar) AND (dfs_predicate_schema.dfs_predicate_02.p8 = 'a'::bpchar))
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_02 dfs_predicate_02
Filter: ((cstore.dfs_predicate_02.p5 > 'Sat Dec 10 00:00:00 2016'::timestamp without time zone) AND (cstore.dfs_predicate_02.p6 = 2.1) AND (cstore.dfs_predicate_02.p7 = '3.1'::bpchar) AND (cstore.dfs_predicate_02.p8 = 'a'::bpchar))
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_02
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_02.a
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_02 dfs_predicate_02
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_02.a
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_02 where p5 > '12-10-2016' and p6 = 2.1 and p7 = '3.1' and p8 = 'a' and a =1;
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Dfs Scan on dfs_predicate_schema.dfs_predicate_02
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_02 dfs_predicate_02
(8 rows)
Predicate Information (identified by plan id)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_02
Pushdown Predicate Filter: ((dfs_predicate_schema.dfs_predicate_02.p5 > 'Sat Dec 10 00:00:00 2016'::timestamp without time zone) AND (dfs_predicate_schema.dfs_predicate_02.p6 = 2.1) AND (dfs_predicate_schema.dfs_predicate_02.p7 = '3.1'::bpchar) AND (dfs_predicate_schema.dfs_predicate_02.p8 = 'a'::bpchar) AND (dfs_predicate_schema.dfs_predicate_02.a = 1))
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_02 dfs_predicate_02
Filter: ((cstore.dfs_predicate_02.p5 > 'Sat Dec 10 00:00:00 2016'::timestamp without time zone) AND (cstore.dfs_predicate_02.p6 = 2.1) AND (cstore.dfs_predicate_02.p7 = '3.1'::bpchar) AND (cstore.dfs_predicate_02.p8 = 'a'::bpchar) AND (cstore.dfs_predicate_02.a = 1))
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_02
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_02.a
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_02 dfs_predicate_02
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_02.a
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_01 where a1 = 2 and a2 = 3;
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Dfs Scan on dfs_predicate_schema.dfs_predicate_01
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
(8 rows)
Predicate Information (identified by plan id)
----------------------------------------------------------------------------------------------------------------------------------------
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Pushdown Predicate Filter: ((dfs_predicate_schema.dfs_predicate_01.a1 = 2) AND (dfs_predicate_schema.dfs_predicate_01.a2 = 3))
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Filter: ((cstore.dfs_predicate_01.a1 = 2) AND (cstore.dfs_predicate_01.a2 = 3))
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
Node/s: datanode12
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_01.a1, dfs_predicate_schema.dfs_predicate_01.a2
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_01.a1, cstore.dfs_predicate_01.a2
(18 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
--use case non-pushdown predicate clause
explain (verbose, costs off) select count(*) from dfs_predicate_01 where p1 = 4::tinyint or p2 = 5 and p3 = 6 and p4 = 7;
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Dfs Scan on dfs_predicate_schema.dfs_predicate_01
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
(8 rows)
Predicate Information (identified by plan id)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Filter: ((dfs_predicate_schema.dfs_predicate_01.p1 = '4'::tinyint) OR ((dfs_predicate_schema.dfs_predicate_01.p2 = 5) AND (dfs_predicate_schema.dfs_predicate_01.p3 = 6) AND (dfs_predicate_schema.dfs_predicate_01.p4 = 7)))
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Filter: ((cstore.dfs_predicate_01.p1 = '4'::tinyint) OR ((cstore.dfs_predicate_01.p2 = 5) AND (cstore.dfs_predicate_01.p3 = 6) AND (cstore.dfs_predicate_01.p4 = 7)))
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_01.a1, dfs_predicate_schema.dfs_predicate_01.a2
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_01.a1, cstore.dfs_predicate_01.a2
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_03 where p9 = '12-10-2016' and p11 = '3.1' and p12='2003-04-10 04:05:06';
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
(8 rows)
Predicate Information (identified by plan id)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
6 --Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Filter: (((dfs_predicate_schema.dfs_predicate_03.p9)::text = '12-10-2016'::text) AND (dfs_predicate_schema.dfs_predicate_03.p11 = '3.1'::text) AND (dfs_predicate_schema.dfs_predicate_03.p12 = 'Thu Apr 10 04:05:06 2003'::timestamp without time zone))
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Filter: (((cstore.dfs_predicate_03.p9)::text = '12-10-2016'::text) AND (cstore.dfs_predicate_03.p11 = '3.1'::text) AND (cstore.dfs_predicate_03.p12 = 'Thu Apr 10 04:05:06 2003'::timestamp without time zone))
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_03.a
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_03.a
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_03 where p11 = '3.1';
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
(8 rows)
Predicate Information (identified by plan id)
------------------------------------------------------------------------------------------
6 --Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Filter: (dfs_predicate_schema.dfs_predicate_03.p11 = '3.1'::text)
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Filter: (cstore.dfs_predicate_03.p11 = '3.1'::text)
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_03.a
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_03.a
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_03 where p9 = '12-10-2016' and b = '2.1';
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
(8 rows)
Predicate Information (identified by plan id)
---------------------------------------------------------------------------------------------------------------------------
6 --Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Filter: ((dfs_predicate_schema.dfs_predicate_03.p9)::text = '12-10-2016'::text)
Pushdown Predicate Filter: (dfs_predicate_schema.dfs_predicate_03.b = '2.1'::text)
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Filter: (((cstore.dfs_predicate_03.p9)::text = '12-10-2016'::text) AND (cstore.dfs_predicate_03.b = '2.1'::text))
(5 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_03.a
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_03.a
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
--use case mixed predicate clause
explain (verbose, costs off) select count(*) from dfs_predicate_03 where p9 = '12-10-2016' and a = 1;
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
(8 rows)
Predicate Information (identified by plan id)
-----------------------------------------------------------------------------------------------------------------
6 --Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Filter: ((dfs_predicate_schema.dfs_predicate_03.p9)::text = '12-10-2016'::text)
Pushdown Predicate Filter: (dfs_predicate_schema.dfs_predicate_03.a = 1)
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Filter: (((cstore.dfs_predicate_03.p9)::text = '12-10-2016'::text) AND (cstore.dfs_predicate_03.a = 1))
(5 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_03.a
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_03.a
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
--------------------------------------------------
set explain_perf_mode=summary;
--use case1: pushdown predicate
explain (verbose, costs off) select count(*) from dfs_predicate_01 where a1 = 1 and a2 = 2;
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Dfs Scan on dfs_predicate_schema.dfs_predicate_01
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
(8 rows)
Predicate Information (identified by plan id)
----------------------------------------------------------------------------------------------------------------------------------------
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Pushdown Predicate Filter: ((dfs_predicate_schema.dfs_predicate_01.a1 = 1) AND (dfs_predicate_schema.dfs_predicate_01.a2 = 2))
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Filter: ((cstore.dfs_predicate_01.a1 = 1) AND (cstore.dfs_predicate_01.a2 = 2))
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_01.a1, dfs_predicate_schema.dfs_predicate_01.a2
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_01.a1, cstore.dfs_predicate_01.a2
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_01 where p1 = 4::tinyint and p2 = 5 and p3 = 6 and p4 = 7 ;
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Dfs Scan on dfs_predicate_schema.dfs_predicate_01
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
(8 rows)
Predicate Information (identified by plan id)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Pushdown Predicate Filter: ((dfs_predicate_schema.dfs_predicate_01.p1 = '4'::tinyint) AND (dfs_predicate_schema.dfs_predicate_01.p2 = 5) AND (dfs_predicate_schema.dfs_predicate_01.p3 = 6) AND (dfs_predicate_schema.dfs_predicate_01.p4 = 7))
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Filter: ((cstore.dfs_predicate_01.p1 = '4'::tinyint) AND (cstore.dfs_predicate_01.p2 = 5) AND (cstore.dfs_predicate_01.p3 = 6) AND (cstore.dfs_predicate_01.p4 = 7))
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_01.a1, dfs_predicate_schema.dfs_predicate_01.a2
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_01.a1, cstore.dfs_predicate_01.a2
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_01 where p1 = 4::tinyint and p2 = 5 and p3 = 6 and p4 = 7 and a1 = 1 and a2 = 2 ;
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Dfs Scan on dfs_predicate_schema.dfs_predicate_01
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
(8 rows)
Predicate Information (identified by plan id)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Pushdown Predicate Filter: ((dfs_predicate_schema.dfs_predicate_01.p1 = '4'::tinyint) AND (dfs_predicate_schema.dfs_predicate_01.p2 = 5) AND (dfs_predicate_schema.dfs_predicate_01.p3 = 6) AND (dfs_predicate_schema.dfs_predicate_01.p4 = 7) AND (dfs_predicate_schema.dfs_predicate_01.a1 = 1) AND (dfs_predicate_schema.dfs_predicate_01.a2 = 2))
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Filter: ((cstore.dfs_predicate_01.p1 = '4'::tinyint) AND (cstore.dfs_predicate_01.p2 = 5) AND (cstore.dfs_predicate_01.p3 = 6) AND (cstore.dfs_predicate_01.p4 = 7) AND (cstore.dfs_predicate_01.a1 = 1) AND (cstore.dfs_predicate_01.a2 = 2))
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_01.a1, dfs_predicate_schema.dfs_predicate_01.a2
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_01.a1, cstore.dfs_predicate_01.a2
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_03 where b is null;
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
(8 rows)
Predicate Information (identified by plan id)
------------------------------------------------------------------------------------------
6 --Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Pushdown Predicate Filter: (dfs_predicate_schema.dfs_predicate_03.b IS NULL)
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Filter: (cstore.dfs_predicate_03.b IS NULL)
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_03.a
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_03.a
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_02 where p5 > '12-10-2016' and p6 = 2.1 and p7 = '3.1' and p8 = 'a';
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Dfs Scan on dfs_predicate_schema.dfs_predicate_02
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_02 dfs_predicate_02
(8 rows)
Predicate Information (identified by plan id)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_02
Pushdown Predicate Filter: ((dfs_predicate_schema.dfs_predicate_02.p5 > 'Sat Dec 10 00:00:00 2016'::timestamp without time zone) AND (dfs_predicate_schema.dfs_predicate_02.p6 = 2.1) AND (dfs_predicate_schema.dfs_predicate_02.p7 = '3.1'::bpchar) AND (dfs_predicate_schema.dfs_predicate_02.p8 = 'a'::bpchar))
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_02 dfs_predicate_02
Filter: ((cstore.dfs_predicate_02.p5 > 'Sat Dec 10 00:00:00 2016'::timestamp without time zone) AND (cstore.dfs_predicate_02.p6 = 2.1) AND (cstore.dfs_predicate_02.p7 = '3.1'::bpchar) AND (cstore.dfs_predicate_02.p8 = 'a'::bpchar))
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_02
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_02.a
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_02 dfs_predicate_02
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_02.a
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_02 where p5 > '12-10-2016' and p6 = 2.1 and p7 = '3.1' and p8 = 'a' and a =1;
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Dfs Scan on dfs_predicate_schema.dfs_predicate_02
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_02 dfs_predicate_02
(8 rows)
Predicate Information (identified by plan id)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_02
Pushdown Predicate Filter: ((dfs_predicate_schema.dfs_predicate_02.p5 > 'Sat Dec 10 00:00:00 2016'::timestamp without time zone) AND (dfs_predicate_schema.dfs_predicate_02.p6 = 2.1) AND (dfs_predicate_schema.dfs_predicate_02.p7 = '3.1'::bpchar) AND (dfs_predicate_schema.dfs_predicate_02.p8 = 'a'::bpchar) AND (dfs_predicate_schema.dfs_predicate_02.a = 1))
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_02 dfs_predicate_02
Filter: ((cstore.dfs_predicate_02.p5 > 'Sat Dec 10 00:00:00 2016'::timestamp without time zone) AND (cstore.dfs_predicate_02.p6 = 2.1) AND (cstore.dfs_predicate_02.p7 = '3.1'::bpchar) AND (cstore.dfs_predicate_02.p8 = 'a'::bpchar) AND (cstore.dfs_predicate_02.a = 1))
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_02
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_02.a
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_02 dfs_predicate_02
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_02.a
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_01 where a1 = 2 and a2 = 3;
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Dfs Scan on dfs_predicate_schema.dfs_predicate_01
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
(8 rows)
Predicate Information (identified by plan id)
----------------------------------------------------------------------------------------------------------------------------------------
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Pushdown Predicate Filter: ((dfs_predicate_schema.dfs_predicate_01.a1 = 2) AND (dfs_predicate_schema.dfs_predicate_01.a2 = 3))
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Filter: ((cstore.dfs_predicate_01.a1 = 2) AND (cstore.dfs_predicate_01.a2 = 3))
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
Node/s: datanode12
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_01.a1, dfs_predicate_schema.dfs_predicate_01.a2
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_01.a1, cstore.dfs_predicate_01.a2
(18 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
--use case non-pushdown predicate clause
explain (verbose, costs off) select count(*) from dfs_predicate_01 where p1 = 4::tinyint or p2 = 5 and p3 = 6 and p4 = 7;
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Dfs Scan on dfs_predicate_schema.dfs_predicate_01
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
(8 rows)
Predicate Information (identified by plan id)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Filter: ((dfs_predicate_schema.dfs_predicate_01.p1 = '4'::tinyint) OR ((dfs_predicate_schema.dfs_predicate_01.p2 = 5) AND (dfs_predicate_schema.dfs_predicate_01.p3 = 6) AND (dfs_predicate_schema.dfs_predicate_01.p4 = 7)))
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Filter: ((cstore.dfs_predicate_01.p1 = '4'::tinyint) OR ((cstore.dfs_predicate_01.p2 = 5) AND (cstore.dfs_predicate_01.p3 = 6) AND (cstore.dfs_predicate_01.p4 = 7)))
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_01.a1, dfs_predicate_schema.dfs_predicate_01.a2
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_01.a1, cstore.dfs_predicate_01.a2
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_03 where p9 = '12-10-2016' and p11 = '3.1' and p12='2003-04-10 04:05:06';
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
(8 rows)
Predicate Information (identified by plan id)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
6 --Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Filter: (((dfs_predicate_schema.dfs_predicate_03.p9)::text = '12-10-2016'::text) AND (dfs_predicate_schema.dfs_predicate_03.p11 = '3.1'::text) AND (dfs_predicate_schema.dfs_predicate_03.p12 = 'Thu Apr 10 04:05:06 2003'::timestamp without time zone))
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Filter: (((cstore.dfs_predicate_03.p9)::text = '12-10-2016'::text) AND (cstore.dfs_predicate_03.p11 = '3.1'::text) AND (cstore.dfs_predicate_03.p12 = 'Thu Apr 10 04:05:06 2003'::timestamp without time zone))
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_03.a
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_03.a
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_03 where p11 = '3.1';
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
(8 rows)
Predicate Information (identified by plan id)
------------------------------------------------------------------------------------------
6 --Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Filter: (dfs_predicate_schema.dfs_predicate_03.p11 = '3.1'::text)
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Filter: (cstore.dfs_predicate_03.p11 = '3.1'::text)
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_03.a
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_03.a
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_03 where p9 = '12-10-2016' and b = '2.1';
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
(8 rows)
Predicate Information (identified by plan id)
---------------------------------------------------------------------------------------------------------------------------
6 --Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Filter: ((dfs_predicate_schema.dfs_predicate_03.p9)::text = '12-10-2016'::text)
Pushdown Predicate Filter: (dfs_predicate_schema.dfs_predicate_03.b = '2.1'::text)
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Filter: (((cstore.dfs_predicate_03.p9)::text = '12-10-2016'::text) AND (cstore.dfs_predicate_03.b = '2.1'::text))
(5 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_03.a
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_03.a
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
--use case mixed predicate clause
explain (verbose, costs off) select count(*) from dfs_predicate_03 where p9 = '12-10-2016' and a = 1;
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
(8 rows)
Predicate Information (identified by plan id)
-----------------------------------------------------------------------------------------------------------------
6 --Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Filter: ((dfs_predicate_schema.dfs_predicate_03.p9)::text = '12-10-2016'::text)
Pushdown Predicate Filter: (dfs_predicate_schema.dfs_predicate_03.a = 1)
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Filter: (((cstore.dfs_predicate_03.p9)::text = '12-10-2016'::text) AND (cstore.dfs_predicate_03.a = 1))
(5 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_03.a
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_03.a
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
--------------------------------------------------
set explain_perf_mode=run;
--use case1: pushdown predicate
explain (verbose, costs off) select count(*) from dfs_predicate_01 where a1 = 1 and a2 = 2;
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Dfs Scan on dfs_predicate_schema.dfs_predicate_01
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
(8 rows)
Predicate Information (identified by plan id)
----------------------------------------------------------------------------------------------------------------------------------------
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Pushdown Predicate Filter: ((dfs_predicate_schema.dfs_predicate_01.a1 = 1) AND (dfs_predicate_schema.dfs_predicate_01.a2 = 2))
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Filter: ((cstore.dfs_predicate_01.a1 = 1) AND (cstore.dfs_predicate_01.a2 = 2))
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_01.a1, dfs_predicate_schema.dfs_predicate_01.a2
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_01.a1, cstore.dfs_predicate_01.a2
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_01 where p1 = 4::tinyint and p2 = 5 and p3 = 6 and p4 = 7 ;
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Dfs Scan on dfs_predicate_schema.dfs_predicate_01
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
(8 rows)
Predicate Information (identified by plan id)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Pushdown Predicate Filter: ((dfs_predicate_schema.dfs_predicate_01.p1 = '4'::tinyint) AND (dfs_predicate_schema.dfs_predicate_01.p2 = 5) AND (dfs_predicate_schema.dfs_predicate_01.p3 = 6) AND (dfs_predicate_schema.dfs_predicate_01.p4 = 7))
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Filter: ((cstore.dfs_predicate_01.p1 = '4'::tinyint) AND (cstore.dfs_predicate_01.p2 = 5) AND (cstore.dfs_predicate_01.p3 = 6) AND (cstore.dfs_predicate_01.p4 = 7))
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_01.a1, dfs_predicate_schema.dfs_predicate_01.a2
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_01.a1, cstore.dfs_predicate_01.a2
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_01 where p1 = 4::tinyint and p2 = 5 and p3 = 6 and p4 = 7 and a1 = 1 and a2 = 2 ;
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Dfs Scan on dfs_predicate_schema.dfs_predicate_01
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
(8 rows)
Predicate Information (identified by plan id)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Pushdown Predicate Filter: ((dfs_predicate_schema.dfs_predicate_01.p1 = '4'::tinyint) AND (dfs_predicate_schema.dfs_predicate_01.p2 = 5) AND (dfs_predicate_schema.dfs_predicate_01.p3 = 6) AND (dfs_predicate_schema.dfs_predicate_01.p4 = 7) AND (dfs_predicate_schema.dfs_predicate_01.a1 = 1) AND (dfs_predicate_schema.dfs_predicate_01.a2 = 2))
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Filter: ((cstore.dfs_predicate_01.p1 = '4'::tinyint) AND (cstore.dfs_predicate_01.p2 = 5) AND (cstore.dfs_predicate_01.p3 = 6) AND (cstore.dfs_predicate_01.p4 = 7) AND (cstore.dfs_predicate_01.a1 = 1) AND (cstore.dfs_predicate_01.a2 = 2))
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_01.a1, dfs_predicate_schema.dfs_predicate_01.a2
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_01.a1, cstore.dfs_predicate_01.a2
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_03 where b is null;
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
(8 rows)
Predicate Information (identified by plan id)
------------------------------------------------------------------------------------------
6 --Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Pushdown Predicate Filter: (dfs_predicate_schema.dfs_predicate_03.b IS NULL)
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Filter: (cstore.dfs_predicate_03.b IS NULL)
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_03.a
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_03.a
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_02 where p5 > '12-10-2016' and p6 = 2.1 and p7 = '3.1' and p8 = 'a';
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Dfs Scan on dfs_predicate_schema.dfs_predicate_02
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_02 dfs_predicate_02
(8 rows)
Predicate Information (identified by plan id)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_02
Pushdown Predicate Filter: ((dfs_predicate_schema.dfs_predicate_02.p5 > 'Sat Dec 10 00:00:00 2016'::timestamp without time zone) AND (dfs_predicate_schema.dfs_predicate_02.p6 = 2.1) AND (dfs_predicate_schema.dfs_predicate_02.p7 = '3.1'::bpchar) AND (dfs_predicate_schema.dfs_predicate_02.p8 = 'a'::bpchar))
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_02 dfs_predicate_02
Filter: ((cstore.dfs_predicate_02.p5 > 'Sat Dec 10 00:00:00 2016'::timestamp without time zone) AND (cstore.dfs_predicate_02.p6 = 2.1) AND (cstore.dfs_predicate_02.p7 = '3.1'::bpchar) AND (cstore.dfs_predicate_02.p8 = 'a'::bpchar))
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_02
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_02.a
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_02 dfs_predicate_02
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_02.a
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_02 where p5 > '12-10-2016' and p6 = 2.1 and p7 = '3.1' and p8 = 'a' and a =1;
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Dfs Scan on dfs_predicate_schema.dfs_predicate_02
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_02 dfs_predicate_02
(8 rows)
Predicate Information (identified by plan id)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_02
Pushdown Predicate Filter: ((dfs_predicate_schema.dfs_predicate_02.p5 > 'Sat Dec 10 00:00:00 2016'::timestamp without time zone) AND (dfs_predicate_schema.dfs_predicate_02.p6 = 2.1) AND (dfs_predicate_schema.dfs_predicate_02.p7 = '3.1'::bpchar) AND (dfs_predicate_schema.dfs_predicate_02.p8 = 'a'::bpchar) AND (dfs_predicate_schema.dfs_predicate_02.a = 1))
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_02 dfs_predicate_02
Filter: ((cstore.dfs_predicate_02.p5 > 'Sat Dec 10 00:00:00 2016'::timestamp without time zone) AND (cstore.dfs_predicate_02.p6 = 2.1) AND (cstore.dfs_predicate_02.p7 = '3.1'::bpchar) AND (cstore.dfs_predicate_02.p8 = 'a'::bpchar) AND (cstore.dfs_predicate_02.a = 1))
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_02
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_02.a
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_02 dfs_predicate_02
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_02.a
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_01 where a1 = 2 and a2 = 3;
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Dfs Scan on dfs_predicate_schema.dfs_predicate_01
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
(8 rows)
Predicate Information (identified by plan id)
----------------------------------------------------------------------------------------------------------------------------------------
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Pushdown Predicate Filter: ((dfs_predicate_schema.dfs_predicate_01.a1 = 2) AND (dfs_predicate_schema.dfs_predicate_01.a2 = 3))
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Filter: ((cstore.dfs_predicate_01.a1 = 2) AND (cstore.dfs_predicate_01.a2 = 3))
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
Node/s: datanode12
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_01.a1, dfs_predicate_schema.dfs_predicate_01.a2
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_01.a1, cstore.dfs_predicate_01.a2
(18 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
--use case non-pushdown predicate clause
explain (verbose, costs off) select count(*) from dfs_predicate_01 where p1 = 4::tinyint or p2 = 5 and p3 = 6 and p4 = 7;
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Dfs Scan on dfs_predicate_schema.dfs_predicate_01
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
(8 rows)
Predicate Information (identified by plan id)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Filter: ((dfs_predicate_schema.dfs_predicate_01.p1 = '4'::tinyint) OR ((dfs_predicate_schema.dfs_predicate_01.p2 = 5) AND (dfs_predicate_schema.dfs_predicate_01.p3 = 6) AND (dfs_predicate_schema.dfs_predicate_01.p4 = 7)))
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Filter: ((cstore.dfs_predicate_01.p1 = '4'::tinyint) OR ((cstore.dfs_predicate_01.p2 = 5) AND (cstore.dfs_predicate_01.p3 = 6) AND (cstore.dfs_predicate_01.p4 = 7)))
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Dfs Scan on dfs_predicate_schema.dfs_predicate_01
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_01.a1, dfs_predicate_schema.dfs_predicate_01.a2
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_01 dfs_predicate_01
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_01.a1, cstore.dfs_predicate_01.a2
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_03 where p9 = '12-10-2016' and p11 = '3.1' and p12='2003-04-10 04:05:06';
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
(8 rows)
Predicate Information (identified by plan id)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
6 --Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Filter: (((dfs_predicate_schema.dfs_predicate_03.p9)::text = '12-10-2016'::text) AND (dfs_predicate_schema.dfs_predicate_03.p11 = '3.1'::text) AND (dfs_predicate_schema.dfs_predicate_03.p12 = 'Thu Apr 10 04:05:06 2003'::timestamp without time zone))
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Filter: (((cstore.dfs_predicate_03.p9)::text = '12-10-2016'::text) AND (cstore.dfs_predicate_03.p11 = '3.1'::text) AND (cstore.dfs_predicate_03.p12 = 'Thu Apr 10 04:05:06 2003'::timestamp without time zone))
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_03.a
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_03.a
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_03 where p11 = '3.1';
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
(8 rows)
Predicate Information (identified by plan id)
------------------------------------------------------------------------------------------
6 --Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Filter: (dfs_predicate_schema.dfs_predicate_03.p11 = '3.1'::text)
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Filter: (cstore.dfs_predicate_03.p11 = '3.1'::text)
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_03.a
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_03.a
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
explain (verbose, costs off) select count(*) from dfs_predicate_03 where p9 = '12-10-2016' and b = '2.1';
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
(8 rows)
Predicate Information (identified by plan id)
---------------------------------------------------------------------------------------------------------------------------
6 --Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Filter: ((dfs_predicate_schema.dfs_predicate_03.p9)::text = '12-10-2016'::text)
Pushdown Predicate Filter: (dfs_predicate_schema.dfs_predicate_03.b = '2.1'::text)
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Filter: (((cstore.dfs_predicate_03.p9)::text = '12-10-2016'::text) AND (cstore.dfs_predicate_03.b = '2.1'::text))
(5 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_03.a
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_03.a
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
--use case mixed predicate clause
explain (verbose, costs off) select count(*) from dfs_predicate_03 where p9 = '12-10-2016' and a = 1;
id | operation
----+----------------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Append(6, 7)
6 | -> Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
7 | -> Vector Adapter
8 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
(8 rows)
Predicate Information (identified by plan id)
-----------------------------------------------------------------------------------------------------------------
6 --Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Filter: ((dfs_predicate_schema.dfs_predicate_03.p9)::text = '12-10-2016'::text)
Pushdown Predicate Filter: (dfs_predicate_schema.dfs_predicate_03.a = 1)
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Filter: (((cstore.dfs_predicate_03.p9)::text = '12-10-2016'::text) AND (cstore.dfs_predicate_03.a = 1))
(5 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Append(6, 7)
6 --Partitioned Dfs Scan on dfs_predicate_schema.dfs_predicate_03
Output: 'Dummy'
Distribute Key: dfs_predicate_schema.dfs_predicate_03.a
7 --Vector Adapter
Output: ('Dummy')
8 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_dfs_predicate_03 dfs_predicate_03
Output: 'Dummy'
Distribute Key: cstore.dfs_predicate_03.a
(17 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
----------------------------test HDFS foreign table
set explain_perf_mode=normal;
--use case1: pushdown predicate
explain (verbose, costs off) select count(*) from hdfs_predicate_01 where a1 = 1 and a2 = 2;
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_01.a1, dfs_predicate_schema.hdfs_predicate_01.a2) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
--?.*
--?.*
Row Adapter
Output: (pg_catalog.count(*))
-> Vector Aggregate
Output: pg_catalog.count(*)
-> Vector Streaming (type: GATHER)
Output: (count(*))
-> Vector Aggregate
Output: count(*)
-> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Output: 'Dummy'
Pushdown Predicate Filter: ((hdfs_predicate_01.a1 = 1) AND (hdfs_predicate_01.a2 = 2))
Server Type: hdfs
--?.*
(13 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_01 where p1 = 4::tinyint and p2 = 5 and p3 = 6 and p4 = 7 ;
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_01.p1, dfs_predicate_schema.hdfs_predicate_01.p2, dfs_predicate_schema.hdfs_predicate_01.p3, dfs_predicate_schema.hdfs_predicate_01.p4) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
--?.*
--?.*
Row Adapter
Output: (pg_catalog.count(*))
-> Vector Aggregate
Output: pg_catalog.count(*)
-> Vector Streaming (type: GATHER)
Output: (count(*))
-> Vector Aggregate
Output: count(*)
-> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Output: 'Dummy'
Pushdown Predicate Filter: ((hdfs_predicate_01.p1 = '4'::tinyint) AND (hdfs_predicate_01.p2 = 5) AND (hdfs_predicate_01.p3 = 6) AND (hdfs_predicate_01.p4 = 7))
Server Type: hdfs
--?.*
(13 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_01 where p1 = 4::tinyint and p2 = 5 and p3 = 6 and p4 = 7 and a1 = 1 and a2 = 2 ;
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_01.p1, dfs_predicate_schema.hdfs_predicate_01.p2, dfs_predicate_schema.hdfs_predicate_01.p3, dfs_predicate_schema.hdfs_predicate_01.p4, dfs_predicate_schema.hdfs_predicate_01.a1, dfs_predicate_schema.hdfs_predicate_01.a2) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
--?.*
--?.*
Row Adapter
Output: (pg_catalog.count(*))
-> Vector Aggregate
Output: pg_catalog.count(*)
-> Vector Streaming (type: GATHER)
Output: (count(*))
-> Vector Aggregate
Output: count(*)
-> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Output: 'Dummy'
Pushdown Predicate Filter: ((hdfs_predicate_01.p1 = '4'::tinyint) AND (hdfs_predicate_01.p2 = 5) AND (hdfs_predicate_01.p3 = 6) AND (hdfs_predicate_01.p4 = 7) AND (hdfs_predicate_01.a1 = 1) AND (hdfs_predicate_01.a2 = 2))
Server Type: hdfs
--?.*
(13 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_03 where b is null;
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_03.b) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
--?.*
--?.*
Row Adapter
Output: (pg_catalog.count(*))
-> Vector Aggregate
Output: pg_catalog.count(*)
-> Vector Streaming (type: GATHER)
Output: (count(*))
-> Vector Aggregate
Output: count(*)
-> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Output: 'Dummy'
Pushdown Predicate Filter: (hdfs_predicate_03.b IS NULL)
Server Type: hdfs
--?.*
(13 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_02 where p5 > '12-10-2016' and p6 = 2.1 and p7 = '3.1' and p8 = 'a';
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_02.p5, dfs_predicate_schema.hdfs_predicate_02.p6, dfs_predicate_schema.hdfs_predicate_02.p7, dfs_predicate_schema.hdfs_predicate_02.p8) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
--?.*
--?.*
Row Adapter
Output: (pg_catalog.count(*))
-> Vector Aggregate
Output: pg_catalog.count(*)
-> Vector Streaming (type: GATHER)
Output: (count(*))
-> Vector Aggregate
Output: count(*)
-> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_02
Output: 'Dummy'
Pushdown Predicate Filter: ((hdfs_predicate_02.p5 > 'Sat Dec 10 00:00:00 2016'::timestamp without time zone) AND (hdfs_predicate_02.p6 = 2.1) AND (hdfs_predicate_02.p7 = '3.1'::bpchar) AND (hdfs_predicate_02.p8 = 'a'::bpchar))
Server Type: hdfs
--?.*
(13 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_02 where p5 > '12-10-2016' and p6 = 2.1 and p7 = '3.1' and p8 = 'a' and a =1;
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_02.p5, dfs_predicate_schema.hdfs_predicate_02.p6, dfs_predicate_schema.hdfs_predicate_02.p7, dfs_predicate_schema.hdfs_predicate_02.p8, dfs_predicate_schema.hdfs_predicate_02.a) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
--?.*
--?.*
Row Adapter
Output: (pg_catalog.count(*))
-> Vector Aggregate
Output: pg_catalog.count(*)
-> Vector Streaming (type: GATHER)
Output: (count(*))
-> Vector Aggregate
Output: count(*)
-> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_02
Output: 'Dummy'
Pushdown Predicate Filter: ((hdfs_predicate_02.p5 > 'Sat Dec 10 00:00:00 2016'::timestamp without time zone) AND (hdfs_predicate_02.p6 = 2.1) AND (hdfs_predicate_02.p7 = '3.1'::bpchar) AND (hdfs_predicate_02.p8 = 'a'::bpchar) AND (hdfs_predicate_02.a = 1))
Server Type: hdfs
--?.*
(13 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_01 where a1 = 2 and a2 = 3;
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_01.a1, dfs_predicate_schema.hdfs_predicate_01.a2) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
--?.*
--?.*
Row Adapter
Output: (pg_catalog.count(*))
-> Vector Aggregate
Output: pg_catalog.count(*)
-> Vector Streaming (type: GATHER)
Output: (count(*))
Node/s: All datanodes
-> Vector Aggregate
Output: count(*)
-> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Output: 'Dummy'
Pushdown Predicate Filter: ((hdfs_predicate_01.a1 = 2) AND (hdfs_predicate_01.a2 = 3))
Server Type: hdfs
--?.*
(14 rows)
--use case non-pushdown predicate clause
explain (verbose, costs off) select count(*) from hdfs_predicate_01 where p1 = 4::tinyint or p2 = 5 and p3 = 6 and p4 = 7;
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_01.p1, dfs_predicate_schema.hdfs_predicate_01.p2, dfs_predicate_schema.hdfs_predicate_01.p3, dfs_predicate_schema.hdfs_predicate_01.p4) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
--?.*
--?.*
Row Adapter
Output: (pg_catalog.count(*))
-> Vector Aggregate
Output: pg_catalog.count(*)
-> Vector Streaming (type: GATHER)
Output: (count(*))
-> Vector Aggregate
Output: count(*)
-> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Output: 'Dummy'
Filter: ((hdfs_predicate_01.p1 = '4'::tinyint) OR ((hdfs_predicate_01.p2 = 5) AND (hdfs_predicate_01.p3 = 6) AND (hdfs_predicate_01.p4 = 7)))
Server Type: hdfs
--?.*
(13 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_03 where p9 = '12-10-2016' and p11 = '3.1' and p12='2003-04-10 04:05:06';
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_03.p9, dfs_predicate_schema.hdfs_predicate_03.p11, dfs_predicate_schema.hdfs_predicate_03.p12) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
--?.*
--?.*
Row Adapter
Output: (pg_catalog.count(*))
-> Vector Aggregate
Output: pg_catalog.count(*)
-> Vector Streaming (type: GATHER)
Output: (count(*))
-> Vector Aggregate
Output: count(*)
-> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Output: 'Dummy'
Pushdown Predicate Filter: (((hdfs_predicate_03.p9)::text = '12-10-2016'::text) AND (hdfs_predicate_03.p11 = '3.1'::text) AND (hdfs_predicate_03.p12 = 'Thu Apr 10 04:05:06 2003'::timestamp without time zone))
Server Type: hdfs
--?.*
(13 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_03 where p11 = '3.1';
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_03.p11) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
--?.*
--?.*
Row Adapter
Output: (pg_catalog.count(*))
-> Vector Aggregate
Output: pg_catalog.count(*)
-> Vector Streaming (type: GATHER)
Output: (count(*))
-> Vector Aggregate
Output: count(*)
-> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Output: 'Dummy'
Pushdown Predicate Filter: (hdfs_predicate_03.p11 = '3.1'::text)
Server Type: hdfs
--?.*
(13 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_03 where p9 = '12-10-2016' and b = '2.1';
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_03.p9, dfs_predicate_schema.hdfs_predicate_03.b) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
--?.*
--?.*
Row Adapter
Output: (pg_catalog.count(*))
-> Vector Aggregate
Output: pg_catalog.count(*)
-> Vector Streaming (type: GATHER)
Output: (count(*))
-> Vector Aggregate
Output: count(*)
-> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Output: 'Dummy'
Pushdown Predicate Filter: (((hdfs_predicate_03.p9)::text = '12-10-2016'::text) AND (hdfs_predicate_03.b = '2.1'::text))
Server Type: hdfs
--?.*
(13 rows)
--use case mixed predicate clause
explain (verbose, costs off) select count(*) from hdfs_predicate_03 where p9 = '12-10-2016' and a = 1;
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_03.p9, dfs_predicate_schema.hdfs_predicate_03.a) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
--?.*
--?.*
Row Adapter
Output: (pg_catalog.count(*))
-> Vector Aggregate
Output: pg_catalog.count(*)
-> Vector Streaming (type: GATHER)
Output: (count(*))
-> Vector Aggregate
Output: count(*)
-> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Output: 'Dummy'
Pushdown Predicate Filter: (((hdfs_predicate_03.p9)::text = '12-10-2016'::text) AND (hdfs_predicate_03.a = 1))
Server Type: hdfs
--?.*
(13 rows)
--------------------------------------------------
set explain_perf_mode=pretty;
--use case1: pushdown predicate
explain (verbose, costs off) select count(*) from hdfs_predicate_01 where a1 = 1 and a2 = 2;
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_01.a1, dfs_predicate_schema.hdfs_predicate_01.a2) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
(5 rows)
Predicate Information (identified by plan id)
------------------------------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Pushdown Predicate Filter: ((hdfs_predicate_01.a1 = 1) AND (hdfs_predicate_01.a2 = 2))
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_01 where p1 = 4::tinyint and p2 = 5 and p3 = 6 and p4 = 7 ;
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_01.p1, dfs_predicate_schema.hdfs_predicate_01.p2, dfs_predicate_schema.hdfs_predicate_01.p3, dfs_predicate_schema.hdfs_predicate_01.p4) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
(5 rows)
Predicate Information (identified by plan id)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Pushdown Predicate Filter: ((hdfs_predicate_01.p1 = '4'::tinyint) AND (hdfs_predicate_01.p2 = 5) AND (hdfs_predicate_01.p3 = 6) AND (hdfs_predicate_01.p4 = 7))
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_01 where p1 = 4::tinyint and p2 = 5 and p3 = 6 and p4 = 7 and a1 = 1 and a2 = 2 ;
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_01.p1, dfs_predicate_schema.hdfs_predicate_01.p2, dfs_predicate_schema.hdfs_predicate_01.p3, dfs_predicate_schema.hdfs_predicate_01.p4, dfs_predicate_schema.hdfs_predicate_01.a1, dfs_predicate_schema.hdfs_predicate_01.a2) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
(5 rows)
Predicate Information (identified by plan id)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Pushdown Predicate Filter: ((hdfs_predicate_01.p1 = '4'::tinyint) AND (hdfs_predicate_01.p2 = 5) AND (hdfs_predicate_01.p3 = 6) AND (hdfs_predicate_01.p4 = 7) AND (hdfs_predicate_01.a1 = 1) AND (hdfs_predicate_01.a2 = 2))
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_03 where b is null;
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_03.b) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
(5 rows)
Predicate Information (identified by plan id)
---------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Pushdown Predicate Filter: (hdfs_predicate_03.b IS NULL)
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_02 where p5 > '12-10-2016' and p6 = 2.1 and p7 = '3.1' and p8 = 'a';
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_02.p5, dfs_predicate_schema.hdfs_predicate_02.p6, dfs_predicate_schema.hdfs_predicate_02.p7, dfs_predicate_schema.hdfs_predicate_02.p8) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_02
(5 rows)
Predicate Information (identified by plan id)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_02
Pushdown Predicate Filter: ((hdfs_predicate_02.p5 > 'Sat Dec 10 00:00:00 2016'::timestamp without time zone) AND (hdfs_predicate_02.p6 = 2.1) AND (hdfs_predicate_02.p7 = '3.1'::bpchar) AND (hdfs_predicate_02.p8 = 'a'::bpchar))
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_02
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_02 where p5 > '12-10-2016' and p6 = 2.1 and p7 = '3.1' and p8 = 'a' and a =1;
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_02.p5, dfs_predicate_schema.hdfs_predicate_02.p6, dfs_predicate_schema.hdfs_predicate_02.p7, dfs_predicate_schema.hdfs_predicate_02.p8, dfs_predicate_schema.hdfs_predicate_02.a) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_02
(5 rows)
Predicate Information (identified by plan id)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_02
Pushdown Predicate Filter: ((hdfs_predicate_02.p5 > 'Sat Dec 10 00:00:00 2016'::timestamp without time zone) AND (hdfs_predicate_02.p6 = 2.1) AND (hdfs_predicate_02.p7 = '3.1'::bpchar) AND (hdfs_predicate_02.p8 = 'a'::bpchar) AND (hdfs_predicate_02.a = 1))
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_02
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_01 where a1 = 2 and a2 = 3;
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_01.a1, dfs_predicate_schema.hdfs_predicate_01.a2) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
(5 rows)
Predicate Information (identified by plan id)
------------------------------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Pushdown Predicate Filter: ((hdfs_predicate_01.a1 = 2) AND (hdfs_predicate_01.a2 = 3))
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
Node/s: All datanodes
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Output: 'Dummy'
(11 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
--use case non-pushdown predicate clause
explain (verbose, costs off) select count(*) from hdfs_predicate_01 where p1 = 4::tinyint or p2 = 5 and p3 = 6 and p4 = 7;
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_01.p1, dfs_predicate_schema.hdfs_predicate_01.p2, dfs_predicate_schema.hdfs_predicate_01.p3, dfs_predicate_schema.hdfs_predicate_01.p4) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
(5 rows)
Predicate Information (identified by plan id)
-------------------------------------------------------------------------------------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Filter: ((hdfs_predicate_01.p1 = '4'::tinyint) OR ((hdfs_predicate_01.p2 = 5) AND (hdfs_predicate_01.p3 = 6) AND (hdfs_predicate_01.p4 = 7)))
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_03 where p9 = '12-10-2016' and p11 = '3.1' and p12='2003-04-10 04:05:06';
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_03.p9, dfs_predicate_schema.hdfs_predicate_03.p11, dfs_predicate_schema.hdfs_predicate_03.p12) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
(5 rows)
Predicate Information (identified by plan id)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Pushdown Predicate Filter: (((hdfs_predicate_03.p9)::text = '12-10-2016'::text) AND (hdfs_predicate_03.p11 = '3.1'::text) AND (hdfs_predicate_03.p12 = 'Thu Apr 10 04:05:06 2003'::timestamp without time zone))
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_03 where p11 = '3.1';
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_03.p11) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
(5 rows)
Predicate Information (identified by plan id)
--------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Pushdown Predicate Filter: (hdfs_predicate_03.p11 = '3.1'::text)
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_03 where p9 = '12-10-2016' and b = '2.1';
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_03.p9, dfs_predicate_schema.hdfs_predicate_03.b) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
(5 rows)
Predicate Information (identified by plan id)
----------------------------------------------------------------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Pushdown Predicate Filter: (((hdfs_predicate_03.p9)::text = '12-10-2016'::text) AND (hdfs_predicate_03.b = '2.1'::text))
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
--use case mixed predicate clause
explain (verbose, costs off) select count(*) from hdfs_predicate_03 where p9 = '12-10-2016' and a = 1;
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_03.p9, dfs_predicate_schema.hdfs_predicate_03.a) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
(5 rows)
Predicate Information (identified by plan id)
------------------------------------------------------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Pushdown Predicate Filter: (((hdfs_predicate_03.p9)::text = '12-10-2016'::text) AND (hdfs_predicate_03.a = 1))
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
--------------------------------------------------
set explain_perf_mode=summary;
--use case1: pushdown predicate
explain (verbose, costs off) select count(*) from hdfs_predicate_01 where a1 = 1 and a2 = 2;
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_01.a1, dfs_predicate_schema.hdfs_predicate_01.a2) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
(5 rows)
Predicate Information (identified by plan id)
------------------------------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Pushdown Predicate Filter: ((hdfs_predicate_01.a1 = 1) AND (hdfs_predicate_01.a2 = 2))
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_01 where p1 = 4::tinyint and p2 = 5 and p3 = 6 and p4 = 7 ;
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_01.p1, dfs_predicate_schema.hdfs_predicate_01.p2, dfs_predicate_schema.hdfs_predicate_01.p3, dfs_predicate_schema.hdfs_predicate_01.p4) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
(5 rows)
Predicate Information (identified by plan id)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Pushdown Predicate Filter: ((hdfs_predicate_01.p1 = '4'::tinyint) AND (hdfs_predicate_01.p2 = 5) AND (hdfs_predicate_01.p3 = 6) AND (hdfs_predicate_01.p4 = 7))
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_01 where p1 = 4::tinyint and p2 = 5 and p3 = 6 and p4 = 7 and a1 = 1 and a2 = 2 ;
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_01.p1, dfs_predicate_schema.hdfs_predicate_01.p2, dfs_predicate_schema.hdfs_predicate_01.p3, dfs_predicate_schema.hdfs_predicate_01.p4, dfs_predicate_schema.hdfs_predicate_01.a1, dfs_predicate_schema.hdfs_predicate_01.a2) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
(5 rows)
Predicate Information (identified by plan id)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Pushdown Predicate Filter: ((hdfs_predicate_01.p1 = '4'::tinyint) AND (hdfs_predicate_01.p2 = 5) AND (hdfs_predicate_01.p3 = 6) AND (hdfs_predicate_01.p4 = 7) AND (hdfs_predicate_01.a1 = 1) AND (hdfs_predicate_01.a2 = 2))
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_03 where b is null;
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_03.b) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
(5 rows)
Predicate Information (identified by plan id)
---------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Pushdown Predicate Filter: (hdfs_predicate_03.b IS NULL)
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_02 where p5 > '12-10-2016' and p6 = 2.1 and p7 = '3.1' and p8 = 'a';
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_02.p5, dfs_predicate_schema.hdfs_predicate_02.p6, dfs_predicate_schema.hdfs_predicate_02.p7, dfs_predicate_schema.hdfs_predicate_02.p8) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_02
(5 rows)
Predicate Information (identified by plan id)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_02
Pushdown Predicate Filter: ((hdfs_predicate_02.p5 > 'Sat Dec 10 00:00:00 2016'::timestamp without time zone) AND (hdfs_predicate_02.p6 = 2.1) AND (hdfs_predicate_02.p7 = '3.1'::bpchar) AND (hdfs_predicate_02.p8 = 'a'::bpchar))
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_02
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_02 where p5 > '12-10-2016' and p6 = 2.1 and p7 = '3.1' and p8 = 'a' and a =1;
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_02.p5, dfs_predicate_schema.hdfs_predicate_02.p6, dfs_predicate_schema.hdfs_predicate_02.p7, dfs_predicate_schema.hdfs_predicate_02.p8, dfs_predicate_schema.hdfs_predicate_02.a) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_02
(5 rows)
Predicate Information (identified by plan id)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_02
Pushdown Predicate Filter: ((hdfs_predicate_02.p5 > 'Sat Dec 10 00:00:00 2016'::timestamp without time zone) AND (hdfs_predicate_02.p6 = 2.1) AND (hdfs_predicate_02.p7 = '3.1'::bpchar) AND (hdfs_predicate_02.p8 = 'a'::bpchar) AND (hdfs_predicate_02.a = 1))
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_02
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_01 where a1 = 2 and a2 = 3;
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_01.a1, dfs_predicate_schema.hdfs_predicate_01.a2) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
(5 rows)
Predicate Information (identified by plan id)
------------------------------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Pushdown Predicate Filter: ((hdfs_predicate_01.a1 = 2) AND (hdfs_predicate_01.a2 = 3))
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
Node/s: All datanodes
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Output: 'Dummy'
(11 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
--use case non-pushdown predicate clause
explain (verbose, costs off) select count(*) from hdfs_predicate_01 where p1 = 4::tinyint or p2 = 5 and p3 = 6 and p4 = 7;
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_01.p1, dfs_predicate_schema.hdfs_predicate_01.p2, dfs_predicate_schema.hdfs_predicate_01.p3, dfs_predicate_schema.hdfs_predicate_01.p4) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
(5 rows)
Predicate Information (identified by plan id)
-------------------------------------------------------------------------------------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Filter: ((hdfs_predicate_01.p1 = '4'::tinyint) OR ((hdfs_predicate_01.p2 = 5) AND (hdfs_predicate_01.p3 = 6) AND (hdfs_predicate_01.p4 = 7)))
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_03 where p9 = '12-10-2016' and p11 = '3.1' and p12='2003-04-10 04:05:06';
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_03.p9, dfs_predicate_schema.hdfs_predicate_03.p11, dfs_predicate_schema.hdfs_predicate_03.p12) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
(5 rows)
Predicate Information (identified by plan id)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Pushdown Predicate Filter: (((hdfs_predicate_03.p9)::text = '12-10-2016'::text) AND (hdfs_predicate_03.p11 = '3.1'::text) AND (hdfs_predicate_03.p12 = 'Thu Apr 10 04:05:06 2003'::timestamp without time zone))
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_03 where p11 = '3.1';
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_03.p11) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
(5 rows)
Predicate Information (identified by plan id)
--------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Pushdown Predicate Filter: (hdfs_predicate_03.p11 = '3.1'::text)
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_03 where p9 = '12-10-2016' and b = '2.1';
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_03.p9, dfs_predicate_schema.hdfs_predicate_03.b) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
(5 rows)
Predicate Information (identified by plan id)
----------------------------------------------------------------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Pushdown Predicate Filter: (((hdfs_predicate_03.p9)::text = '12-10-2016'::text) AND (hdfs_predicate_03.b = '2.1'::text))
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
--use case mixed predicate clause
explain (verbose, costs off) select count(*) from hdfs_predicate_03 where p9 = '12-10-2016' and a = 1;
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_03.p9, dfs_predicate_schema.hdfs_predicate_03.a) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
(5 rows)
Predicate Information (identified by plan id)
------------------------------------------------------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Pushdown Predicate Filter: (((hdfs_predicate_03.p9)::text = '12-10-2016'::text) AND (hdfs_predicate_03.a = 1))
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
--------------------------------------------------
set explain_perf_mode=run;
--use case1: pushdown predicate
explain (verbose, costs off) select count(*) from hdfs_predicate_01 where a1 = 1 and a2 = 2;
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_01.a1, dfs_predicate_schema.hdfs_predicate_01.a2) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
(5 rows)
Predicate Information (identified by plan id)
------------------------------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Pushdown Predicate Filter: ((hdfs_predicate_01.a1 = 1) AND (hdfs_predicate_01.a2 = 2))
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_01 where p1 = 4::tinyint and p2 = 5 and p3 = 6 and p4 = 7 ;
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_01.p1, dfs_predicate_schema.hdfs_predicate_01.p2, dfs_predicate_schema.hdfs_predicate_01.p3, dfs_predicate_schema.hdfs_predicate_01.p4) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
(5 rows)
Predicate Information (identified by plan id)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Pushdown Predicate Filter: ((hdfs_predicate_01.p1 = '4'::tinyint) AND (hdfs_predicate_01.p2 = 5) AND (hdfs_predicate_01.p3 = 6) AND (hdfs_predicate_01.p4 = 7))
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_01 where p1 = 4::tinyint and p2 = 5 and p3 = 6 and p4 = 7 and a1 = 1 and a2 = 2 ;
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_01.p1, dfs_predicate_schema.hdfs_predicate_01.p2, dfs_predicate_schema.hdfs_predicate_01.p3, dfs_predicate_schema.hdfs_predicate_01.p4, dfs_predicate_schema.hdfs_predicate_01.a1, dfs_predicate_schema.hdfs_predicate_01.a2) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
(5 rows)
Predicate Information (identified by plan id)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Pushdown Predicate Filter: ((hdfs_predicate_01.p1 = '4'::tinyint) AND (hdfs_predicate_01.p2 = 5) AND (hdfs_predicate_01.p3 = 6) AND (hdfs_predicate_01.p4 = 7) AND (hdfs_predicate_01.a1 = 1) AND (hdfs_predicate_01.a2 = 2))
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_03 where b is null;
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_03.b) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
(5 rows)
Predicate Information (identified by plan id)
---------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Pushdown Predicate Filter: (hdfs_predicate_03.b IS NULL)
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_02 where p5 > '12-10-2016' and p6 = 2.1 and p7 = '3.1' and p8 = 'a';
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_02.p5, dfs_predicate_schema.hdfs_predicate_02.p6, dfs_predicate_schema.hdfs_predicate_02.p7, dfs_predicate_schema.hdfs_predicate_02.p8) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_02
(5 rows)
Predicate Information (identified by plan id)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_02
Pushdown Predicate Filter: ((hdfs_predicate_02.p5 > 'Sat Dec 10 00:00:00 2016'::timestamp without time zone) AND (hdfs_predicate_02.p6 = 2.1) AND (hdfs_predicate_02.p7 = '3.1'::bpchar) AND (hdfs_predicate_02.p8 = 'a'::bpchar))
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_02
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_02 where p5 > '12-10-2016' and p6 = 2.1 and p7 = '3.1' and p8 = 'a' and a =1;
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_02.p5, dfs_predicate_schema.hdfs_predicate_02.p6, dfs_predicate_schema.hdfs_predicate_02.p7, dfs_predicate_schema.hdfs_predicate_02.p8, dfs_predicate_schema.hdfs_predicate_02.a) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_02
(5 rows)
Predicate Information (identified by plan id)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_02
Pushdown Predicate Filter: ((hdfs_predicate_02.p5 > 'Sat Dec 10 00:00:00 2016'::timestamp without time zone) AND (hdfs_predicate_02.p6 = 2.1) AND (hdfs_predicate_02.p7 = '3.1'::bpchar) AND (hdfs_predicate_02.p8 = 'a'::bpchar) AND (hdfs_predicate_02.a = 1))
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_02
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_01 where a1 = 2 and a2 = 3;
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_01.a1, dfs_predicate_schema.hdfs_predicate_01.a2) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
(5 rows)
Predicate Information (identified by plan id)
------------------------------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Pushdown Predicate Filter: ((hdfs_predicate_01.a1 = 2) AND (hdfs_predicate_01.a2 = 3))
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
Node/s: All datanodes
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Output: 'Dummy'
(11 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
--use case non-pushdown predicate clause
explain (verbose, costs off) select count(*) from hdfs_predicate_01 where p1 = 4::tinyint or p2 = 5 and p3 = 6 and p4 = 7;
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_01.p1, dfs_predicate_schema.hdfs_predicate_01.p2, dfs_predicate_schema.hdfs_predicate_01.p3, dfs_predicate_schema.hdfs_predicate_01.p4) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
(5 rows)
Predicate Information (identified by plan id)
-------------------------------------------------------------------------------------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Filter: ((hdfs_predicate_01.p1 = '4'::tinyint) OR ((hdfs_predicate_01.p2 = 5) AND (hdfs_predicate_01.p3 = 6) AND (hdfs_predicate_01.p4 = 7)))
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_01
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_03 where p9 = '12-10-2016' and p11 = '3.1' and p12='2003-04-10 04:05:06';
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_03.p9, dfs_predicate_schema.hdfs_predicate_03.p11, dfs_predicate_schema.hdfs_predicate_03.p12) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
(5 rows)
Predicate Information (identified by plan id)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Pushdown Predicate Filter: (((hdfs_predicate_03.p9)::text = '12-10-2016'::text) AND (hdfs_predicate_03.p11 = '3.1'::text) AND (hdfs_predicate_03.p12 = 'Thu Apr 10 04:05:06 2003'::timestamp without time zone))
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_03 where p11 = '3.1';
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_03.p11) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
(5 rows)
Predicate Information (identified by plan id)
--------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Pushdown Predicate Filter: (hdfs_predicate_03.p11 = '3.1'::text)
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
explain (verbose, costs off) select count(*) from hdfs_predicate_03 where p9 = '12-10-2016' and b = '2.1';
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_03.p9, dfs_predicate_schema.hdfs_predicate_03.b) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
(5 rows)
Predicate Information (identified by plan id)
----------------------------------------------------------------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Pushdown Predicate Filter: (((hdfs_predicate_03.p9)::text = '12-10-2016'::text) AND (hdfs_predicate_03.b = '2.1'::text))
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
--use case mixed predicate clause
explain (verbose, costs off) select count(*) from hdfs_predicate_03 where p9 = '12-10-2016' and a = 1;
WARNING: Statistics in some tables or columns(dfs_predicate_schema.hdfs_predicate_03.p9, dfs_predicate_schema.hdfs_predicate_03.a) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
id | operation
----+-------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Aggregate
3 | -> Vector Streaming (type: GATHER)
4 | -> Vector Aggregate
5 | -> Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
(5 rows)
Predicate Information (identified by plan id)
------------------------------------------------------------------------------------------------------------------------
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Pushdown Predicate Filter: (((hdfs_predicate_03.p9)::text = '12-10-2016'::text) AND (hdfs_predicate_03.a = 1))
Server Type: hdfs
(3 rows)
Targetlist Information (identified by plan id)
---------------------------------------------------------------------
1 --Row Adapter
Output: (pg_catalog.count(*))
2 --Vector Aggregate
Output: pg_catalog.count(*)
3 --Vector Streaming (type: GATHER)
Output: (count(*))
4 --Vector Aggregate
Output: count(*)
5 --Vector Foreign Scan on dfs_predicate_schema.hdfs_predicate_03
Output: 'Dummy'
(10 rows)
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)
----------------------------result check
--------------------------------------------------pushdown predicate
select predicate_clause_test('Test predicate clause(p1 = 4::tinyint):', 'normal_01', 'dfs_predicate_01', 'p1 = 4::tinyint');
predicate_clause_test
-------------------------------------------------------
Test predicate clause(p1 = 4::tinyint): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p1 < 4::tinyint):', 'normal_01', 'dfs_predicate_01', 'p1 < 4::tinyint');
predicate_clause_test
-------------------------------------------------------
Test predicate clause(p1 < 4::tinyint): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p1 > 4::tinyint):', 'normal_01', 'dfs_predicate_01', 'p1 > 4::tinyint');
predicate_clause_test
-------------------------------------------------------
Test predicate clause(p1 > 4::tinyint): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p1 <= 4::tinyint):', 'normal_01', 'dfs_predicate_01', 'p1 <= 4::tinyint');
predicate_clause_test
--------------------------------------------------------
Test predicate clause(p1 <= 4::tinyint): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p1 >= 4::tinyint):', 'normal_01', 'dfs_predicate_01', 'p1 >= 4::tinyint');
predicate_clause_test
--------------------------------------------------------
Test predicate clause(p1 >= 4::tinyint): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p1 <> 4::tinyint):', 'normal_01', 'dfs_predicate_01', 'p1 <> 4::tinyint');
predicate_clause_test
--------------------------------------------------------
Test predicate clause(p1 <> 4::tinyint): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p1 != 4::tinyint):', 'normal_01', 'dfs_predicate_01', 'p1 != 4::tinyint');
predicate_clause_test
--------------------------------------------------------
Test predicate clause(p1 != 4::tinyint): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p1 is null):', 'normal_01', 'dfs_predicate_01', 'p1 is null');
predicate_clause_test
--------------------------------------------------
Test predicate clause(p1 is null): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p1 is not null):', 'normal_01', 'dfs_predicate_01', 'p1 is not null');
predicate_clause_test
------------------------------------------------------
Test predicate clause(p1 is not null): return code:0
(1 row)
select * from dfs_predicate_01 where p1 is null;
a1 | a2 | p1 | p2 | p3 | p4 | non_p
----+----+----+----+----+----+-------
(0 rows)
select * from dfs_predicate_01 where p1 > 100::tinyint;
a1 | a2 | p1 | p2 | p3 | p4 | non_p
----+----+----+----+----+----+-------
(0 rows)
select * from dfs_predicate_01 where p1 <-10::tinyint;
a1 | a2 | p1 | p2 | p3 | p4 | non_p
----+----+----+----+----+----+-------
(0 rows)
select predicate_clause_test('Test predicate clause(p2 = 4):', 'normal_01', 'dfs_predicate_01', 'p2 = 4');
predicate_clause_test
----------------------------------------------
Test predicate clause(p2 = 4): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p2 < 4):', 'normal_01', 'dfs_predicate_01', 'p2 < 4');
predicate_clause_test
----------------------------------------------
Test predicate clause(p2 < 4): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p2 > 4):', 'normal_01', 'dfs_predicate_01', 'p2 > 4');
predicate_clause_test
----------------------------------------------
Test predicate clause(p2 > 4): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p2 <= 4):', 'normal_01', 'dfs_predicate_01', 'p2 <= 4');
predicate_clause_test
-----------------------------------------------
Test predicate clause(p2 <= 4): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p2 >= 4):', 'normal_01', 'dfs_predicate_01', 'p2 >= 4');
predicate_clause_test
-----------------------------------------------
Test predicate clause(p2 >= 4): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p2 <> 4):', 'normal_01', 'dfs_predicate_01', 'p2 <> 4');
predicate_clause_test
-----------------------------------------------
Test predicate clause(p2 <> 4): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p2 != 4):', 'normal_01', 'dfs_predicate_01', 'p2 != 4');
predicate_clause_test
-----------------------------------------------
Test predicate clause(p2 != 4): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p2 is null):', 'normal_01', 'dfs_predicate_01', 'p2 is null');
predicate_clause_test
--------------------------------------------------
Test predicate clause(p2 is null): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p2 is not null):', 'normal_01', 'dfs_predicate_01', 'p2 is not null');
predicate_clause_test
------------------------------------------------------
Test predicate clause(p2 is not null): return code:0
(1 row)
select * from dfs_predicate_01 where p2 is null;
a1 | a2 | p1 | p2 | p3 | p4 | non_p
----+----+----+----+----+----+-------
(0 rows)
select * from dfs_predicate_01 where p2 > 100::tinyint;
a1 | a2 | p1 | p2 | p3 | p4 | non_p
----+----+----+----+----+----+-------
(0 rows)
select * from dfs_predicate_01 where p2 <-10::tinyint;
a1 | a2 | p1 | p2 | p3 | p4 | non_p
----+----+----+----+----+----+-------
(0 rows)
select predicate_clause_test('Test predicate clause(p3 = 6):', 'normal_01', 'dfs_predicate_01', 'p3 = 6');
predicate_clause_test
----------------------------------------------
Test predicate clause(p3 = 6): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p3 < 6):', 'normal_01', 'dfs_predicate_01', 'p3 < 6');
predicate_clause_test
----------------------------------------------
Test predicate clause(p3 < 6): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p3 > 6):', 'normal_01', 'dfs_predicate_01', 'p3 > 6');
predicate_clause_test
----------------------------------------------
Test predicate clause(p3 > 6): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p3 <= 6):', 'normal_01', 'dfs_predicate_01', 'p3 <= 6');
predicate_clause_test
-----------------------------------------------
Test predicate clause(p3 <= 6): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p3 >= 6):', 'normal_01', 'dfs_predicate_01', 'p3 >= 6');
predicate_clause_test
-----------------------------------------------
Test predicate clause(p3 >= 6): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p3 <> 6):', 'normal_01', 'dfs_predicate_01', 'p3 <> 6');
predicate_clause_test
-----------------------------------------------
Test predicate clause(p3 <> 6): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p3 != 6):', 'normal_01', 'dfs_predicate_01', 'p3 != 6');
predicate_clause_test
-----------------------------------------------
Test predicate clause(p3 != 6): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p3 is null):', 'normal_01', 'dfs_predicate_01', 'p3 is null');
predicate_clause_test
--------------------------------------------------
Test predicate clause(p3 is null): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p3 is not null):', 'normal_01', 'dfs_predicate_01', 'p3 is not null');
predicate_clause_test
------------------------------------------------------
Test predicate clause(p3 is not null): return code:0
(1 row)
select * from dfs_predicate_01 where p3 is null;
a1 | a2 | p1 | p2 | p3 | p4 | non_p
----+----+----+----+----+----+-------
(0 rows)
select * from dfs_predicate_01 where p3 > 100::tinyint;
a1 | a2 | p1 | p2 | p3 | p4 | non_p
----+----+----+----+----+----+-------
(0 rows)
select * from dfs_predicate_01 where p3 <-10::tinyint;
a1 | a2 | p1 | p2 | p3 | p4 | non_p
----+----+----+----+----+----+-------
(0 rows)
select predicate_clause_test('Test predicate clause(p4 = 7):', 'normal_01', 'dfs_predicate_01', 'p4 = 7');
predicate_clause_test
----------------------------------------------
Test predicate clause(p4 = 7): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p4 < 7):', 'normal_01', 'dfs_predicate_01', 'p4 < 7');
predicate_clause_test
----------------------------------------------
Test predicate clause(p4 < 7): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p4 > 7):', 'normal_01', 'dfs_predicate_01', 'p4 > 7');
predicate_clause_test
----------------------------------------------
Test predicate clause(p4 > 7): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p4 <= 7):', 'normal_01', 'dfs_predicate_01', 'p4 <= 7');
predicate_clause_test
-----------------------------------------------
Test predicate clause(p4 <= 7): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p4 >= 7):', 'normal_01', 'dfs_predicate_01', 'p4 >= 7');
predicate_clause_test
-----------------------------------------------
Test predicate clause(p4 >= 7): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p4 <> 7):', 'normal_01', 'dfs_predicate_01', 'p4 <> 7');
predicate_clause_test
-----------------------------------------------
Test predicate clause(p4 <> 7): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p4 != 7):', 'normal_01', 'dfs_predicate_01', 'p4 != 7');
predicate_clause_test
-----------------------------------------------
Test predicate clause(p4 != 7): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p4 is null):', 'normal_01', 'dfs_predicate_01', 'p4 is null');
predicate_clause_test
--------------------------------------------------
Test predicate clause(p4 is null): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p4 is not null):', 'normal_01', 'dfs_predicate_01', 'p4 is not null');
predicate_clause_test
------------------------------------------------------
Test predicate clause(p4 is not null): return code:0
(1 row)
select * from dfs_predicate_01 where p4 is null;
a1 | a2 | p1 | p2 | p3 | p4 | non_p
----+----+----+----+----+----+-------
(0 rows)
select * from dfs_predicate_01 where p4 > 100::tinyint;
a1 | a2 | p1 | p2 | p3 | p4 | non_p
----+----+----+----+----+----+-------
(0 rows)
select * from dfs_predicate_01 where p4 <-10::tinyint;
a1 | a2 | p1 | p2 | p3 | p4 | non_p
----+----+----+----+----+----+-------
(0 rows)
--test p5
select count(*) from ( select * from normal_02 where p5 = '12-10-2016' MINUS ALL select * from dfs_predicate_02 where p5 = '12-10-2016' );
count
-------
0
(1 row)
select count(*) from ( select * from normal_02 where p5 < '12-10-2016' MINUS ALL select * from dfs_predicate_02 where p5 < '12-10-2016' );
count
-------
0
(1 row)
select count(*) from ( select * from normal_02 where p5 > '12-10-2016' MINUS ALL select * from dfs_predicate_02 where p5 > '12-10-2016' );
count
-------
0
(1 row)
select count(*) from ( select * from normal_02 where p5 <= '12-10-2016' MINUS ALL select * from dfs_predicate_02 where p5 <= '12-10-2016' );
count
-------
0
(1 row)
select count(*) from ( select * from normal_02 where p5 >= '12-10-2016' MINUS ALL select * from dfs_predicate_02 where p5 >= '12-10-2016' );
count
-------
0
(1 row)
select count(*) from ( select * from normal_02 where p5 <> '12-10-2016' MINUS ALL select * from dfs_predicate_02 where p5 <> '12-10-2016' );
count
-------
0
(1 row)
select count(*) from ( select * from normal_02 where p5 != '12-10-2016' MINUS ALL select * from dfs_predicate_02 where p5 != '12-10-2016' );
count
-------
0
(1 row)
select count(*) from ( select * from normal_02 where p5 is null MINUS ALL select * from dfs_predicate_02 where p5 is null );
count
-------
0
(1 row)
select count(*) from ( select * from normal_02 where p5 is not null MINUS ALL select * from dfs_predicate_02 where p5 is not null );
count
-------
0
(1 row)
select * from dfs_predicate_02 where p5 is null;
a | p5 | p6 | p7 | p8 | non_p
---+----+----+----+----+-------
(0 rows)
select * from dfs_predicate_02 where p5 > '12-15-2016';
a | p5 | p6 | p7 | p8 | non_p
---+----+----+----+----+-------
(0 rows)
select * from dfs_predicate_02 where p5 < '12-9-2016';
a | p5 | p6 | p7 | p8 | non_p
---+----+----+----+----+-------
(0 rows)
--test p6 deciaml type
select predicate_clause_test('Test predicate clause(p6 = 3.1):', 'normal_02', 'dfs_predicate_02', 'p6 = 3.1');
predicate_clause_test
------------------------------------------------
Test predicate clause(p6 = 3.1): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p6 < 3.1):', 'normal_02', 'dfs_predicate_02', 'p6 < 3.1');
predicate_clause_test
------------------------------------------------
Test predicate clause(p6 < 3.1): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p6 > 3.1):', 'normal_02', 'dfs_predicate_02', 'p6 > 3.1');
predicate_clause_test
------------------------------------------------
Test predicate clause(p6 > 3.1): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p6 <= 3.1):', 'normal_02', 'dfs_predicate_02', 'p6 <= 3.1');
predicate_clause_test
-------------------------------------------------
Test predicate clause(p6 <= 3.1): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p6 >= 3.1):', 'normal_02', 'dfs_predicate_02', 'p6 >= 3.1');
predicate_clause_test
-------------------------------------------------
Test predicate clause(p6 >= 3.1): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p6 <> 3.1):', 'normal_02', 'dfs_predicate_02', 'p6 <> 3.1');
predicate_clause_test
-------------------------------------------------
Test predicate clause(p6 <> 3.1): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p6 != 3.1):', 'normal_02', 'dfs_predicate_02', 'p6 != 3.1');
predicate_clause_test
-------------------------------------------------
Test predicate clause(p6 != 3.1): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p6 is null):', 'normal_02', 'dfs_predicate_02', 'p6 is null');
predicate_clause_test
--------------------------------------------------
Test predicate clause(p6 is null): return code:0
(1 row)
select predicate_clause_test('Test predicate clause(p6 is not null):', 'normal_02', 'dfs_predicate_02', 'p6 is not null');
predicate_clause_test
------------------------------------------------------
Test predicate clause(p6 is not null): return code:0
(1 row)
select * from dfs_predicate_02 where p6 is not null order by 1;
a | p5 | p6 | p7 | p8 | non_p
---+--------------------------+------+------------+----+--------------------------
1 | Sat Dec 10 00:00:00 2016 | 2.10 | 3.1 | a | Thu Oct 11 16:53:00 2001
2 | Sun Dec 11 00:00:00 2016 | 3.10 | 4.1 | b | Fri Oct 12 16:53:00 2001
3 | Mon Dec 12 00:00:00 2016 | 4.10 | 5.1 | c | Sat Oct 13 16:53:00 2001
4 | Tue Dec 13 00:00:00 2016 | 5.10 | 6.1 | d | Sun Oct 14 16:53:00 2001
5 | Wed Dec 14 00:00:00 2016 | 6.10 | 7.1 | e | Mon Oct 15 16:53:00 2001
(5 rows)
select * from dfs_predicate_02 where p6 < '2.1' ;
a | p5 | p6 | p7 | p8 | non_p
---+----+----+----+----+-------
(0 rows)
select * from dfs_predicate_02 where p6 > '6.1' ;
a | p5 | p6 | p7 | p8 | non_p
---+----+----+----+----+-------
(0 rows)
--test p7 bpchar
select count(*) from ( select * from normal_02 where p7 = '5.1' MINUS ALL select * from dfs_predicate_02 where p7 = '5.1' );
count
-------
0
(1 row)
select count(*) from ( select * from normal_02 where p7 < '5.1' MINUS ALL select * from dfs_predicate_02 where p7 < '5.1' );
count
-------
0
(1 row)
select count(*) from ( select * from normal_02 where p7 > '5.1' MINUS ALL select * from dfs_predicate_02 where p7 > '5.1' );
count
-------
0
(1 row)
select count(*) from ( select * from normal_02 where p7 <= '5.1' MINUS ALL select * from dfs_predicate_02 where p7 <= '5.1' );
count
-------
0
(1 row)
select count(*) from ( select * from normal_02 where p7 >= '5.1' MINUS ALL select * from dfs_predicate_02 where p7 >= '5.1' );
count
-------
0
(1 row)
select count(*) from ( select * from normal_02 where p7 <> '5.1' MINUS ALL select * from dfs_predicate_02 where p7 <> '5.1' );
count
-------
0
(1 row)
select count(*) from ( select * from normal_02 where p7 != '5.1' MINUS ALL select * from dfs_predicate_02 where p7 != '5.1' );
count
-------
0
(1 row)
select count(*) from ( select * from normal_02 where p7 is null MINUS ALL select * from dfs_predicate_02 where p7 is null );
count
-------
0
(1 row)
select count(*) from ( select * from normal_02 where p7 is not null MINUS ALL select * from dfs_predicate_02 where p7 is not null );
count
-------
0
(1 row)
select * from dfs_predicate_02 where p7 is null;
a | p5 | p6 | p7 | p8 | non_p
---+----+----+----+----+-------
(0 rows)
select * from dfs_predicate_02 where p7 < '3.1' ;
a | p5 | p6 | p7 | p8 | non_p
---+----+----+----+----+-------
(0 rows)
select * from dfs_predicate_02 where p7 > '7.1' ;
a | p5 | p6 | p7 | p8 | non_p
---+----+----+----+----+-------
(0 rows)
--test p8
select count(*) from ( select * from normal_02 where p8 = 'c' MINUS ALL select * from dfs_predicate_02 where p8 = 'c' );
count
-------
0
(1 row)
select count(*) from ( select * from normal_02 where p8 < 'c' MINUS ALL select * from dfs_predicate_02 where p8 < 'c' );
count
-------
0
(1 row)
select count(*) from ( select * from normal_02 where p8 > 'c' MINUS ALL select * from dfs_predicate_02 where p8 > 'c' );
count
-------
0
(1 row)
select count(*) from ( select * from normal_02 where p8 <= 'c' MINUS ALL select * from dfs_predicate_02 where p8 <= 'c' );
count
-------
0
(1 row)
select count(*) from ( select * from normal_02 where p8 >= 'c' MINUS ALL select * from dfs_predicate_02 where p8 >= 'c' );
count
-------
0
(1 row)
select count(*) from ( select * from normal_02 where p8 <> 'c' MINUS ALL select * from dfs_predicate_02 where p8 <> 'c' );
count
-------
0
(1 row)
select count(*) from ( select * from normal_02 where p8 != 'c' MINUS ALL select * from dfs_predicate_02 where p8 != 'c' );
count
-------
0
(1 row)
select count(*) from ( select * from normal_02 where p8 is null MINUS ALL select * from dfs_predicate_02 where p8 is null );
count
-------
0
(1 row)
select count(*) from ( select * from normal_02 where p8 is not null MINUS ALL select * from dfs_predicate_02 where p8 is not null );
count
-------
0
(1 row)
select * from dfs_predicate_02 where p8 is null;
a | p5 | p6 | p7 | p8 | non_p
---+----+----+----+----+-------
(0 rows)
select * from dfs_predicate_02 where p8 < 'a' ;
a | p5 | p6 | p7 | p8 | non_p
---+----+----+----+----+-------
(0 rows)
select * from dfs_predicate_02 where p8 > 'e' ;
a | p5 | p6 | p7 | p8 | non_p
---+----+----+----+----+-------
(0 rows)
--currently, do not push down the parition column clause
--test p9 varchar
select count(*) from ( select p9 from normal_03 where p9 = '12-12-2016' MINUS ALL select p9 from dfs_predicate_03 where p9 = '12-12-2016' );
count
-------
0
(1 row)
select count(*) from ( select p9 from normal_03 where p9 < '12-12-2016' MINUS ALL select p9 from dfs_predicate_03 where p9 < '12-12-2016' );
count
-------
0
(1 row)
select count(*) from ( select p9 from normal_03 where p9 > '12-12-2016' MINUS ALL select p9 from dfs_predicate_03 where p9 > '12-12-2016' );
count
-------
0
(1 row)
select count(*) from ( select p9 from normal_03 where p9 <= '12-12-2016' MINUS ALL select p9 from dfs_predicate_03 where p9 <= '12-12-2016' );
count
-------
0
(1 row)
select count(*) from ( select p9 from normal_03 where p9 >= '12-12-2016' MINUS ALL select p9 from dfs_predicate_03 where p9 >= '12-12-2016' );
count
-------
0
(1 row)
select count(*) from ( select p9 from normal_03 where p9 <> '12-12-2016' MINUS ALL select p9 from dfs_predicate_03 where p9 <> '12-12-2016' );
count
-------
0
(1 row)
select count(*) from ( select p9 from normal_03 where p9 != '12-12-2016' MINUS ALL select p9 from dfs_predicate_03 where p9 != '12-12-2016' );
count
-------
0
(1 row)
select count(*) from ( select p9 from normal_03 where p9 is null MINUS ALL select p9 from dfs_predicate_03 where p9 is null );
count
-------
0
(1 row)
select count(*) from ( select p9 from normal_03 where p9 is not null MINUS ALL select p9 from dfs_predicate_03 where p9 is not null );
count
-------
0
(1 row)
select * from dfs_predicate_03 where p9 is null;
a | p9 | b | p11 | p12 | non_p
---+----+---+-----+-----+-------
(0 rows)
select p9 from dfs_predicate_03 where p9 < '12-10-2016' ;
p9
----
(0 rows)
select p9 from dfs_predicate_03 where p9 > '12-16-2016' ;
p9
----
(0 rows)
-- test p11 text type
select count(*) from ( select a, p9, p11, p12, non_p from normal_03 where p11 = '5.1' MINUS ALL select a, p9, p11, p12, non_p from dfs_predicate_03 where p11 = '5.1' );
count
-------
0
(1 row)
select count(*) from ( select a, p9, p11, p12, non_p from normal_03 where p11 < '5.1' MINUS ALL select a, p9, p11, p12, non_p from dfs_predicate_03 where p11 < '5.1' );
count
-------
0
(1 row)
select count(*) from ( select a, p9, p11, p12, non_p from normal_03 where p11 > '5.1' MINUS ALL select a, p9, p11, p12, non_p from dfs_predicate_03 where p11 > '5.1' );
count
-------
0
(1 row)
select count(*) from ( select a, p9, p11, p12, non_p from normal_03 where p11 <= '5.1' MINUS ALL select a, p9, p11, p12, non_p from dfs_predicate_03 where p11 <= '5.1' );
count
-------
0
(1 row)
select count(*) from ( select a, p9, p11, p12, non_p from normal_03 where p11 >= '5.1' MINUS ALL select a, p9, p11, p12, non_p from dfs_predicate_03 where p11 >= '5.1' );
count
-------
0
(1 row)
select count(*) from ( select a, p9, p11, p12, non_p from normal_03 where p11 <> '5.1' MINUS ALL select a, p9, p11, p12, non_p from dfs_predicate_03 where p11 <> '5.1' );
count
-------
0
(1 row)
select count(*) from ( select a, p9, p11, p12, non_p from normal_03 where p11 != '5.1' MINUS ALL select a, p9, p11, p12, non_p from dfs_predicate_03 where p11 != '5.1' );
count
-------
0
(1 row)
select count(*) from ( select a, p9, p11, p12, non_p from normal_03 where p11 is null MINUS ALL select a, p9, p11, p12, non_p from dfs_predicate_03 where p11 is null );
count
-------
0
(1 row)
select count(*) from ( select a, p9, p11, p12, non_p from normal_03 where p11 is not null MINUS ALL select a, p9, p11, p12, non_p from dfs_predicate_03 where p11 is not null );
count
-------
0
(1 row)
select a, p9, p11, p12, non_p from dfs_predicate_03 where p11 < '3.1' ;
a | p9 | p11 | p12 | non_p
---+----+-----+-----+-------
(0 rows)
select a, p9, p11, p12, non_p from dfs_predicate_03 where p11 > '7.1' ;
a | p9 | p11 | p12 | non_p
---+----+-----+-----+-------
(0 rows)
-- test p12 timestamp type
select count(*) from ( select a, p9, p11, p12, non_p from normal_03 where p12 = '2003-04-13 04:05:06' MINUS ALL select a, p9, p11, p12, non_p from dfs_predicate_03 where p12 = '2003-04-13 04:05:06' );
count
-------
0
(1 row)
select count(*) from ( select a, p9, p11, p12, non_p from normal_03 where p12 < '2003-04-13 04:05:06' MINUS ALL select a, p9, p11, p12, non_p from dfs_predicate_03 where p12 < '2003-04-13 04:05:06' );
count
-------
0
(1 row)
select count(*) from ( select a, p9, p11, p12, non_p from normal_03 where p12 > '2003-04-13 04:05:06' MINUS ALL select a, p9, p11, p12, non_p from dfs_predicate_03 where p12 > '2003-04-13 04:05:06' );
count
-------
0
(1 row)
select count(*) from ( select a, p9, p11, p12, non_p from normal_03 where p12 <= '2003-04-13 04:05:06' MINUS ALL select a, p9, p11, p12, non_p from dfs_predicate_03 where p12 <= '2003-04-13 04:05:06' );
count
-------
0
(1 row)
select count(*) from ( select a, p9, p11, p12, non_p from normal_03 where p12 >= '2003-04-13 04:05:06' MINUS ALL select a, p9, p11, p12, non_p from dfs_predicate_03 where p12 >= '2003-04-13 04:05:06' );
count
-------
0
(1 row)
select count(*) from ( select a, p9, p11, p12, non_p from normal_03 where p12 <> '2003-04-13 04:05:06' MINUS ALL select a, p9, p11, p12, non_p from dfs_predicate_03 where p12 <> '2003-04-13 04:05:06' );
count
-------
0
(1 row)
select count(*) from ( select a, p9, p11, p12, non_p from normal_03 where p12 != '2003-04-13 04:05:06' MINUS ALL select a, p9, p11, p12, non_p from dfs_predicate_03 where p12 != '2003-04-13 04:05:06' );
count
-------
0
(1 row)
select count(*) from ( select a, p9, p11, p12, non_p from normal_03 where p12 is null MINUS ALL select a, p9, p11, p12, non_p from dfs_predicate_03 where p12 is null );
count
-------
0
(1 row)
select count(*) from ( select a, p9, p11, p12, non_p from normal_03 where p12 is not null MINUS ALL select a, p9, p11, p12, non_p from dfs_predicate_03 where p12 is not null );
count
-------
0
(1 row)
select a, p9, p11, p12, non_p from dfs_predicate_03 where p12 is null;
a | p9 | p11 | p12 | non_p
---+----+-----+-----+-------
(0 rows)
select a, p9, p11, p12, non_p from dfs_predicate_03 where p12 < '2003-04-10 04:05:06' ;
a | p9 | p11 | p12 | non_p
---+----+-----+-----+-------
(0 rows)
select a, p9, p11, p12, non_p from dfs_predicate_03 where p12 > '2003-04-14 04:05:06' ;
a | p9 | p11 | p12 | non_p
---+----+-----+-----+-------
(0 rows)
CREATE FOREIGN TABLE customer_address_ext
(
ca_address_sk integer ,
ca_address_id char(16) ,
ca_street_number char(10) ,
ca_street_name varchar(60) ,
ca_street_type char(15) ,
ca_suite_number char(10) ,
ca_city varchar(60) ,
ca_county varchar(30) ,
ca_state char(2) ,
ca_zip char(10) ,
ca_country varchar(20) ,
ca_gmt_offset decimal(5,2) ,
ca_location_type char(20)
)
SERVER gsmpp_server
OPTIONS(location 'gsfs://10.185.180.195:9990/tpcds100x/customer_address.dat',
FORMAT 'TEXT' ,
DELIMITER '|',
encoding 'utf8',
mode 'Normal'
)
with customer_address_err
;
explain (verbose, costs off) select count(*) from customer_address_ext;
id | operation
----+------------------------------------------------------------------------
1 | -> Aggregate
2 | -> Streaming (type: GATHER)
3 | -> Aggregate
4 | -> Foreign Scan on dfs_predicate_schema.customer_address_ext
(4 rows)
Targetlist Information (identified by plan id)
-----------------------------------------------------------------
1 --Aggregate
Output: pg_catalog.count(*)
2 --Streaming (type: GATHER)
Output: (count(*))
3 --Aggregate
Output: count(*)
4 --Foreign Scan on dfs_predicate_schema.customer_address_ext
(7 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
drop table predicate_dfs1;
ERROR: table "predicate_dfs1" does not exist
create table predicate_dfs1(a int, b decimal(1,1), c decimal(18,0), d decimal(18,18), e decimal(25,23), f decimal(25,25)) tablespace hdfs_ts;
set cstore_insert_mode='main';
insert into predicate_dfs1 values(1, 0, 0, 0, 0, 0);
insert into predicate_dfs1 values(1, 0.1, -1, 0.2, 3, -0.5);
explain (verbose, costs off) select * from predicate_dfs1 where b <> 0;
id | operation
----+---------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.predicate_dfs1
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_predicate_dfs1 predicate_dfs1
(7 rows)
Predicate Information (identified by plan id)
------------------------------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.predicate_dfs1
Pushdown Predicate Filter: (dfs_predicate_schema.predicate_dfs1.b <> 0::numeric)
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_predicate_dfs1 predicate_dfs1
Filter: (cstore.predicate_dfs1.b <> 0::numeric)
(4 rows)
Targetlist Information (identified by plan id)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.predicate_dfs1.a, dfs_predicate_schema.predicate_dfs1.b, dfs_predicate_schema.predicate_dfs1.c, dfs_predicate_schema.predicate_dfs1.d, dfs_predicate_schema.predicate_dfs1.e, dfs_predicate_schema.predicate_dfs1.f
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.predicate_dfs1.a, dfs_predicate_schema.predicate_dfs1.b, dfs_predicate_schema.predicate_dfs1.c, dfs_predicate_schema.predicate_dfs1.d, dfs_predicate_schema.predicate_dfs1.e, dfs_predicate_schema.predicate_dfs1.f
3 --Vector Result
Output: dfs_predicate_schema.predicate_dfs1.a, dfs_predicate_schema.predicate_dfs1.b, dfs_predicate_schema.predicate_dfs1.c, dfs_predicate_schema.predicate_dfs1.d, dfs_predicate_schema.predicate_dfs1.e, dfs_predicate_schema.predicate_dfs1.f
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.predicate_dfs1
Output: dfs_predicate_schema.predicate_dfs1.a, dfs_predicate_schema.predicate_dfs1.b, dfs_predicate_schema.predicate_dfs1.c, dfs_predicate_schema.predicate_dfs1.d, dfs_predicate_schema.predicate_dfs1.e, dfs_predicate_schema.predicate_dfs1.f
Distribute Key: dfs_predicate_schema.predicate_dfs1.a
6 --Vector Adapter
Output: cstore.predicate_dfs1.a, cstore.predicate_dfs1.b, cstore.predicate_dfs1.c, cstore.predicate_dfs1.d, cstore.predicate_dfs1.e, cstore.predicate_dfs1.f
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_predicate_dfs1 predicate_dfs1
Output: cstore.predicate_dfs1.a, cstore.predicate_dfs1.b, cstore.predicate_dfs1.c, cstore.predicate_dfs1.d, cstore.predicate_dfs1.e, cstore.predicate_dfs1.f
Distribute Key: cstore.predicate_dfs1.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from predicate_dfs1 where b <> 0;
a | b | c | d | e | f
---+----+----+---------------------+---------------------------+-----------------------------
1 | .1 | -1 | .200000000000000000 | 3.00000000000000000000000 | -.5000000000000000000000000
(1 row)
explain (verbose, costs off) select * from predicate_dfs1 where c = 0.0;
id | operation
----+---------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.predicate_dfs1
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_predicate_dfs1 predicate_dfs1
(7 rows)
Predicate Information (identified by plan id)
--------------------------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.predicate_dfs1
Pushdown Predicate Filter: (dfs_predicate_schema.predicate_dfs1.c = 0.0)
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_predicate_dfs1 predicate_dfs1
Filter: (cstore.predicate_dfs1.c = 0.0)
(4 rows)
Targetlist Information (identified by plan id)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.predicate_dfs1.a, dfs_predicate_schema.predicate_dfs1.b, dfs_predicate_schema.predicate_dfs1.c, dfs_predicate_schema.predicate_dfs1.d, dfs_predicate_schema.predicate_dfs1.e, dfs_predicate_schema.predicate_dfs1.f
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.predicate_dfs1.a, dfs_predicate_schema.predicate_dfs1.b, dfs_predicate_schema.predicate_dfs1.c, dfs_predicate_schema.predicate_dfs1.d, dfs_predicate_schema.predicate_dfs1.e, dfs_predicate_schema.predicate_dfs1.f
3 --Vector Result
Output: dfs_predicate_schema.predicate_dfs1.a, dfs_predicate_schema.predicate_dfs1.b, dfs_predicate_schema.predicate_dfs1.c, dfs_predicate_schema.predicate_dfs1.d, dfs_predicate_schema.predicate_dfs1.e, dfs_predicate_schema.predicate_dfs1.f
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.predicate_dfs1
Output: dfs_predicate_schema.predicate_dfs1.a, dfs_predicate_schema.predicate_dfs1.b, dfs_predicate_schema.predicate_dfs1.c, dfs_predicate_schema.predicate_dfs1.d, dfs_predicate_schema.predicate_dfs1.e, dfs_predicate_schema.predicate_dfs1.f
Distribute Key: dfs_predicate_schema.predicate_dfs1.a
6 --Vector Adapter
Output: cstore.predicate_dfs1.a, cstore.predicate_dfs1.b, cstore.predicate_dfs1.c, cstore.predicate_dfs1.d, cstore.predicate_dfs1.e, cstore.predicate_dfs1.f
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_predicate_dfs1 predicate_dfs1
Output: cstore.predicate_dfs1.a, cstore.predicate_dfs1.b, cstore.predicate_dfs1.c, cstore.predicate_dfs1.d, cstore.predicate_dfs1.e, cstore.predicate_dfs1.f
Distribute Key: cstore.predicate_dfs1.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from predicate_dfs1 where c = 0.0;
a | b | c | d | e | f
---+-----+---+----------------------+---------------------------+-----------------------------
1 | 0.0 | 0 | 0.000000000000000000 | 0.00000000000000000000000 | 0.0000000000000000000000000
(1 row)
explain (verbose, costs off) select * from predicate_dfs1 where d = .0;
id | operation
----+---------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.predicate_dfs1
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_predicate_dfs1 predicate_dfs1
(7 rows)
Predicate Information (identified by plan id)
--------------------------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.predicate_dfs1
Pushdown Predicate Filter: (dfs_predicate_schema.predicate_dfs1.d = 0.0)
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_predicate_dfs1 predicate_dfs1
Filter: (cstore.predicate_dfs1.d = 0.0)
(4 rows)
Targetlist Information (identified by plan id)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.predicate_dfs1.a, dfs_predicate_schema.predicate_dfs1.b, dfs_predicate_schema.predicate_dfs1.c, dfs_predicate_schema.predicate_dfs1.d, dfs_predicate_schema.predicate_dfs1.e, dfs_predicate_schema.predicate_dfs1.f
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.predicate_dfs1.a, dfs_predicate_schema.predicate_dfs1.b, dfs_predicate_schema.predicate_dfs1.c, dfs_predicate_schema.predicate_dfs1.d, dfs_predicate_schema.predicate_dfs1.e, dfs_predicate_schema.predicate_dfs1.f
3 --Vector Result
Output: dfs_predicate_schema.predicate_dfs1.a, dfs_predicate_schema.predicate_dfs1.b, dfs_predicate_schema.predicate_dfs1.c, dfs_predicate_schema.predicate_dfs1.d, dfs_predicate_schema.predicate_dfs1.e, dfs_predicate_schema.predicate_dfs1.f
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.predicate_dfs1
Output: dfs_predicate_schema.predicate_dfs1.a, dfs_predicate_schema.predicate_dfs1.b, dfs_predicate_schema.predicate_dfs1.c, dfs_predicate_schema.predicate_dfs1.d, dfs_predicate_schema.predicate_dfs1.e, dfs_predicate_schema.predicate_dfs1.f
Distribute Key: dfs_predicate_schema.predicate_dfs1.a
6 --Vector Adapter
Output: cstore.predicate_dfs1.a, cstore.predicate_dfs1.b, cstore.predicate_dfs1.c, cstore.predicate_dfs1.d, cstore.predicate_dfs1.e, cstore.predicate_dfs1.f
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_predicate_dfs1 predicate_dfs1
Output: cstore.predicate_dfs1.a, cstore.predicate_dfs1.b, cstore.predicate_dfs1.c, cstore.predicate_dfs1.d, cstore.predicate_dfs1.e, cstore.predicate_dfs1.f
Distribute Key: cstore.predicate_dfs1.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from predicate_dfs1 where d = .0;
a | b | c | d | e | f
---+-----+---+----------------------+---------------------------+-----------------------------
1 | 0.0 | 0 | 0.000000000000000000 | 0.00000000000000000000000 | 0.0000000000000000000000000
(1 row)
explain (verbose, costs off) select * from predicate_dfs1 where e != 0.0;
id | operation
----+---------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.predicate_dfs1
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_predicate_dfs1 predicate_dfs1
(7 rows)
Predicate Information (identified by plan id)
--------------------------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.predicate_dfs1
Pushdown Predicate Filter: (dfs_predicate_schema.predicate_dfs1.e <> 0.0)
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_predicate_dfs1 predicate_dfs1
Filter: (cstore.predicate_dfs1.e <> 0.0)
(4 rows)
Targetlist Information (identified by plan id)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.predicate_dfs1.a, dfs_predicate_schema.predicate_dfs1.b, dfs_predicate_schema.predicate_dfs1.c, dfs_predicate_schema.predicate_dfs1.d, dfs_predicate_schema.predicate_dfs1.e, dfs_predicate_schema.predicate_dfs1.f
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.predicate_dfs1.a, dfs_predicate_schema.predicate_dfs1.b, dfs_predicate_schema.predicate_dfs1.c, dfs_predicate_schema.predicate_dfs1.d, dfs_predicate_schema.predicate_dfs1.e, dfs_predicate_schema.predicate_dfs1.f
3 --Vector Result
Output: dfs_predicate_schema.predicate_dfs1.a, dfs_predicate_schema.predicate_dfs1.b, dfs_predicate_schema.predicate_dfs1.c, dfs_predicate_schema.predicate_dfs1.d, dfs_predicate_schema.predicate_dfs1.e, dfs_predicate_schema.predicate_dfs1.f
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.predicate_dfs1
Output: dfs_predicate_schema.predicate_dfs1.a, dfs_predicate_schema.predicate_dfs1.b, dfs_predicate_schema.predicate_dfs1.c, dfs_predicate_schema.predicate_dfs1.d, dfs_predicate_schema.predicate_dfs1.e, dfs_predicate_schema.predicate_dfs1.f
Distribute Key: dfs_predicate_schema.predicate_dfs1.a
6 --Vector Adapter
Output: cstore.predicate_dfs1.a, cstore.predicate_dfs1.b, cstore.predicate_dfs1.c, cstore.predicate_dfs1.d, cstore.predicate_dfs1.e, cstore.predicate_dfs1.f
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_predicate_dfs1 predicate_dfs1
Output: cstore.predicate_dfs1.a, cstore.predicate_dfs1.b, cstore.predicate_dfs1.c, cstore.predicate_dfs1.d, cstore.predicate_dfs1.e, cstore.predicate_dfs1.f
Distribute Key: cstore.predicate_dfs1.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from predicate_dfs1 where e != 0.0;
a | b | c | d | e | f
---+----+----+---------------------+---------------------------+-----------------------------
1 | .1 | -1 | .200000000000000000 | 3.00000000000000000000000 | -.5000000000000000000000000
(1 row)
explain (verbose, costs off) select * from predicate_dfs1 where f != .0;
id | operation
----+---------------------------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.predicate_dfs1
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_predicate_dfs1 predicate_dfs1
(7 rows)
Predicate Information (identified by plan id)
--------------------------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.predicate_dfs1
Pushdown Predicate Filter: (dfs_predicate_schema.predicate_dfs1.f <> 0.0)
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_predicate_dfs1 predicate_dfs1
Filter: (cstore.predicate_dfs1.f <> 0.0)
(4 rows)
Targetlist Information (identified by plan id)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.predicate_dfs1.a, dfs_predicate_schema.predicate_dfs1.b, dfs_predicate_schema.predicate_dfs1.c, dfs_predicate_schema.predicate_dfs1.d, dfs_predicate_schema.predicate_dfs1.e, dfs_predicate_schema.predicate_dfs1.f
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.predicate_dfs1.a, dfs_predicate_schema.predicate_dfs1.b, dfs_predicate_schema.predicate_dfs1.c, dfs_predicate_schema.predicate_dfs1.d, dfs_predicate_schema.predicate_dfs1.e, dfs_predicate_schema.predicate_dfs1.f
3 --Vector Result
Output: dfs_predicate_schema.predicate_dfs1.a, dfs_predicate_schema.predicate_dfs1.b, dfs_predicate_schema.predicate_dfs1.c, dfs_predicate_schema.predicate_dfs1.d, dfs_predicate_schema.predicate_dfs1.e, dfs_predicate_schema.predicate_dfs1.f
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.predicate_dfs1
Output: dfs_predicate_schema.predicate_dfs1.a, dfs_predicate_schema.predicate_dfs1.b, dfs_predicate_schema.predicate_dfs1.c, dfs_predicate_schema.predicate_dfs1.d, dfs_predicate_schema.predicate_dfs1.e, dfs_predicate_schema.predicate_dfs1.f
Distribute Key: dfs_predicate_schema.predicate_dfs1.a
6 --Vector Adapter
Output: cstore.predicate_dfs1.a, cstore.predicate_dfs1.b, cstore.predicate_dfs1.c, cstore.predicate_dfs1.d, cstore.predicate_dfs1.e, cstore.predicate_dfs1.f
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_predicate_dfs1 predicate_dfs1
Output: cstore.predicate_dfs1.a, cstore.predicate_dfs1.b, cstore.predicate_dfs1.c, cstore.predicate_dfs1.d, cstore.predicate_dfs1.e, cstore.predicate_dfs1.f
Distribute Key: cstore.predicate_dfs1.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from predicate_dfs1 where f != .0;
a | b | c | d | e | f
---+----+----+---------------------+---------------------------+-----------------------------
1 | .1 | -1 | .200000000000000000 | 3.00000000000000000000000 | -.5000000000000000000000000
(1 row)
drop table predicate_dfs1;
reset cstore_insert_mode;
create table predicate_dfs2(a int, b char(2), c varchar(2), d char, e varchar) tablespace hdfs_ts;
set cstore_insert_mode='main';
insert into predicate_dfs2 values(1, '12', '12', '1', '12');
select * from predicate_dfs2 where b > '1' and c > '1' and d > '0' and e > '1';
a | b | c | d | e
---+----+----+---+----
1 | 12 | 12 | 1 | 12
(1 row)
select * from predicate_dfs2 where b = '12' and c = '12' and d = '1' and e = '12';
a | b | c | d | e
---+----+----+---+----
1 | 12 | 12 | 1 | 12
(1 row)
select * from predicate_dfs2 where b < '123' and c < '123' and d < '123' and e < '123';
a | b | c | d | e
---+----+----+---+----
1 | 12 | 12 | 1 | 12
(1 row)
drop table predicate_dfs2;
reset cstore_insert_mode;
--predicate is self-inconsistent
set cstore_insert_mode=auto;
create table item_inventory_plan ( location_id number(35,0) not null , item_id number(20,5) not null )
tablespace hdfs_ts distribute by hash(item_id);
create table location ( location_id number(18,0) not null , district_cd varchar(50) null, location_mgr_associate_id number(18,18) null )
tablespace hdfs_ts distribute by hash(location_id);
INSERT INTO ITEM_INVENTORY_PLAN VALUES (1, 0.12);
INSERT INTO ITEM_INVENTORY_PLAN VALUES (1, 0.12);
INSERT INTO LOCATION VALUES (2, 'CHINA', 0.1238790);
INSERT INTO LOCATION VALUES (2, 'CHINA' , 0.2328787);
INSERT INTO LOCATION VALUES (5, 'NICAR' , -0.7887879 );
analyze ITEM_INVENTORY_PLAN;
analyze LOCATION;
explain SELECT dt.Column_005
FROM (
SELECT (loc_1.location_id + loc_1.location_mgr_associate_id) Column_005
FROM (SELECT loc.location_id
FROM item_inventory_plan iip
INNER JOIN location loc
ON iip.LOCATION_ID = loc.LOCATION_ID
AND iip.location_id >= 13
AND loc.location_id <= 8
AND iip.item_id >= '13.99000') dt1,
location loc_1
GROUP BY 1) dt;
QUERY PLAN
------------------------------------------
Result (cost=0.00..0.01 rows=1 width=0)
One-Time Filter: false
(2 rows)
drop table item_inventory_plan;
drop table location;
reset cstore_insert_mode;
--cross type test
set cstore_insert_mode=main;
create table t1(a char(6)) tablespace hdfs_ts;
create table t2(a char(8)) tablespace hdfs_ts;
create table t3(a varchar(6)) tablespace hdfs_ts;
create table t4(a varchar(8)) tablespace hdfs_ts;
create table t5(a varchar) tablespace hdfs_ts;
create table t6(a text) tablespace hdfs_ts;
create table t7(a int) tablespace hdfs_ts;
create table t8(a int2) tablespace hdfs_ts;
create table t9(a int8) tablespace hdfs_ts;
create table t10(b int, a float4) tablespace hdfs_ts;
create table t11(b int, a float8) tablespace hdfs_ts;
insert into t1 values('15');
insert into t2 values('15');
insert into t3 values('15');
insert into t4 values('15');
insert into t5 values('15');
insert into t6 values('15');
insert into t7 values(15);
insert into t8 values(15);
insert into t9 values(15);
insert into t10 values(1, 15);
insert into t11 values(1, 15);
analyze t1;
analyze t2;
analyze t3;
analyze t4;
analyze t5;
analyze t6;
analyze t7;
analyze t8;
analyze t9;
analyze t10;
analyze t11;
explain (verbose, costs off) select * from t1,t2 where t1.a=t2.a;
id | operation
----+---------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Sonic Hash Join (4,8)
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t2
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t2 t2
8 | -> Vector Append(9, 10)
9 | -> Dfs Scan on dfs_predicate_schema.t1
10 | -> Vector Adapter
11 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t1 t1
(11 rows)
Predicate Information (identified by plan id)
----------------------------------------------------------------------------
3 --Vector Sonic Hash Join (4,8)
Hash Cond: (dfs_predicate_schema.t2.a = dfs_predicate_schema.t1.a)
(2 rows)
Targetlist Information (identified by plan id)
----------------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t1.a, dfs_predicate_schema.t2.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t1.a, dfs_predicate_schema.t2.a
3 --Vector Sonic Hash Join (4,8)
Output: dfs_predicate_schema.t1.a, dfs_predicate_schema.t2.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t2
Output: dfs_predicate_schema.t2.a
Distribute Key: dfs_predicate_schema.t2.a
6 --Vector Adapter
Output: cstore.t2.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t2 t2
Output: cstore.t2.a
Distribute Key: cstore.t2.a
8 --Vector Append(9, 10)
9 --Dfs Scan on dfs_predicate_schema.t1
Output: dfs_predicate_schema.t1.a
Distribute Key: dfs_predicate_schema.t1.a
10 --Vector Adapter
Output: cstore.t1.a
11 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t1 t1
Output: cstore.t1.a
Distribute Key: cstore.t1.a
(24 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t1,t2 where t1.a=t2.a;
a | a
--------+----------
15 | 15
(1 row)
explain (verbose, costs off) select * from t1 where a = (select a from t2);
id | operation
----+---------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 13)
5 | -> Dfs Scan on dfs_predicate_schema.t1
6 | -> Row Adapter [5, InitPlan 1 (returns $0)]
7 | -> Vector Streaming(type: BROADCAST)
8 | -> Vector Result
9 | -> Vector Append(10, 11)
10 | -> Dfs Scan on dfs_predicate_schema.t2
11 | -> Vector Adapter
12 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t2 t2
13 | -> Vector Adapter
14 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t1 t1
(14 rows)
Predicate Information (identified by plan id)
--------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t1
Filter: (dfs_predicate_schema.t1.a = $0)
14 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t1 t1
Filter: (cstore.t1.a = $0)
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t1.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t1.a
6 --Row Adapter
Output: dfs_predicate_schema.t2.a
7 --Vector Streaming(type: BROADCAST)
Output: dfs_predicate_schema.t2.a
8 --Vector Result
Output: dfs_predicate_schema.t2.a
9 --Vector Append(10, 11)
10 --Dfs Scan on dfs_predicate_schema.t2
Output: dfs_predicate_schema.t2.a
Distribute Key: dfs_predicate_schema.t2.a
11 --Vector Adapter
Output: cstore.t2.a
12 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t2 t2
Output: cstore.t2.a
Distribute Key: cstore.t2.a
3 --Vector Result
Output: dfs_predicate_schema.t1.a
4 --Vector Append(5, 13)
5 --Dfs Scan on dfs_predicate_schema.t1
Output: dfs_predicate_schema.t1.a
Distribute Key: dfs_predicate_schema.t1.a
13 --Vector Adapter
Output: cstore.t1.a
14 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t1 t1
Output: cstore.t1.a
Distribute Key: cstore.t1.a
(30 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t1 where a = (select a from t2);
a
--------
15
(1 row)
explain (verbose, costs off) select * from t3 where a = (select a from t2);
id | operation
----+---------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 13)
5 | -> Dfs Scan on dfs_predicate_schema.t3
6 | -> Row Adapter [5, InitPlan 1 (returns $0)]
7 | -> Vector Streaming(type: BROADCAST)
8 | -> Vector Result
9 | -> Vector Append(10, 11)
10 | -> Dfs Scan on dfs_predicate_schema.t2
11 | -> Vector Adapter
12 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t2 t2
13 | -> Vector Adapter
14 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t3 t3
(14 rows)
Predicate Information (identified by plan id)
--------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t3
Filter: ((dfs_predicate_schema.t3.a)::bpchar = $0)
14 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t3 t3
Filter: ((cstore.t3.a)::bpchar = $0)
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t3.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t3.a
6 --Row Adapter
Output: dfs_predicate_schema.t2.a
7 --Vector Streaming(type: BROADCAST)
Output: dfs_predicate_schema.t2.a
8 --Vector Result
Output: dfs_predicate_schema.t2.a
9 --Vector Append(10, 11)
10 --Dfs Scan on dfs_predicate_schema.t2
Output: dfs_predicate_schema.t2.a
Distribute Key: dfs_predicate_schema.t2.a
11 --Vector Adapter
Output: cstore.t2.a
12 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t2 t2
Output: cstore.t2.a
Distribute Key: cstore.t2.a
3 --Vector Result
Output: dfs_predicate_schema.t3.a
4 --Vector Append(5, 13)
5 --Dfs Scan on dfs_predicate_schema.t3
Output: dfs_predicate_schema.t3.a
Distribute Key: dfs_predicate_schema.t3.a
13 --Vector Adapter
Output: cstore.t3.a
14 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t3 t3
Output: cstore.t3.a
Distribute Key: cstore.t3.a
(30 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t3 where a = (select a from t2);
a
----
15
(1 row)
explain (verbose, costs off) select * from t1 where a = (select a from t3);
id | operation
----+---------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 13)
5 | -> Dfs Scan on dfs_predicate_schema.t1
6 | -> Row Adapter [5, InitPlan 1 (returns $0)]
7 | -> Vector Streaming(type: BROADCAST)
8 | -> Vector Result
9 | -> Vector Append(10, 11)
10 | -> Dfs Scan on dfs_predicate_schema.t3
11 | -> Vector Adapter
12 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t3 t3
13 | -> Vector Adapter
14 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t1 t1
(14 rows)
Predicate Information (identified by plan id)
--------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t1
Filter: (dfs_predicate_schema.t1.a = ($0)::bpchar)
14 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t1 t1
Filter: (cstore.t1.a = ($0)::bpchar)
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t1.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t1.a
6 --Row Adapter
Output: dfs_predicate_schema.t3.a
7 --Vector Streaming(type: BROADCAST)
Output: dfs_predicate_schema.t3.a
8 --Vector Result
Output: dfs_predicate_schema.t3.a
9 --Vector Append(10, 11)
10 --Dfs Scan on dfs_predicate_schema.t3
Output: dfs_predicate_schema.t3.a
Distribute Key: dfs_predicate_schema.t3.a
11 --Vector Adapter
Output: cstore.t3.a
12 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t3 t3
Output: cstore.t3.a
Distribute Key: cstore.t3.a
3 --Vector Result
Output: dfs_predicate_schema.t1.a
4 --Vector Append(5, 13)
5 --Dfs Scan on dfs_predicate_schema.t1
Output: dfs_predicate_schema.t1.a
Distribute Key: dfs_predicate_schema.t1.a
13 --Vector Adapter
Output: cstore.t1.a
14 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t1 t1
Output: cstore.t1.a
Distribute Key: cstore.t1.a
(30 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t1 where a = (select a from t3);
a
--------
15
(1 row)
explain (verbose, costs off) select * from t1 where a = (select a from t4);
id | operation
----+---------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 13)
5 | -> Dfs Scan on dfs_predicate_schema.t1
6 | -> Row Adapter [5, InitPlan 1 (returns $0)]
7 | -> Vector Streaming(type: BROADCAST)
8 | -> Vector Result
9 | -> Vector Append(10, 11)
10 | -> Dfs Scan on dfs_predicate_schema.t4
11 | -> Vector Adapter
12 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t4 t4
13 | -> Vector Adapter
14 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t1 t1
(14 rows)
Predicate Information (identified by plan id)
--------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t1
Filter: (dfs_predicate_schema.t1.a = ($0)::bpchar)
14 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t1 t1
Filter: (cstore.t1.a = ($0)::bpchar)
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t1.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t1.a
6 --Row Adapter
Output: dfs_predicate_schema.t4.a
7 --Vector Streaming(type: BROADCAST)
Output: dfs_predicate_schema.t4.a
8 --Vector Result
Output: dfs_predicate_schema.t4.a
9 --Vector Append(10, 11)
10 --Dfs Scan on dfs_predicate_schema.t4
Output: dfs_predicate_schema.t4.a
Distribute Key: dfs_predicate_schema.t4.a
11 --Vector Adapter
Output: cstore.t4.a
12 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t4 t4
Output: cstore.t4.a
Distribute Key: cstore.t4.a
3 --Vector Result
Output: dfs_predicate_schema.t1.a
4 --Vector Append(5, 13)
5 --Dfs Scan on dfs_predicate_schema.t1
Output: dfs_predicate_schema.t1.a
Distribute Key: dfs_predicate_schema.t1.a
13 --Vector Adapter
Output: cstore.t1.a
14 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t1 t1
Output: cstore.t1.a
Distribute Key: cstore.t1.a
(30 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t1 where a = (select a from t4);
a
--------
15
(1 row)
explain (verbose, costs off) select * from t3 where a = (select a from t4);
id | operation
----+---------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 13)
5 | -> Dfs Scan on dfs_predicate_schema.t3
6 | -> Row Adapter [5, InitPlan 1 (returns $0)]
7 | -> Vector Streaming(type: BROADCAST)
8 | -> Vector Result
9 | -> Vector Append(10, 11)
10 | -> Dfs Scan on dfs_predicate_schema.t4
11 | -> Vector Adapter
12 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t4 t4
13 | -> Vector Adapter
14 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t3 t3
(14 rows)
Predicate Information (identified by plan id)
------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t3
Filter: ((dfs_predicate_schema.t3.a)::text = ($0)::text)
14 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t3 t3
Filter: ((cstore.t3.a)::text = ($0)::text)
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t3.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t3.a
6 --Row Adapter
Output: dfs_predicate_schema.t4.a
7 --Vector Streaming(type: BROADCAST)
Output: dfs_predicate_schema.t4.a
8 --Vector Result
Output: dfs_predicate_schema.t4.a
9 --Vector Append(10, 11)
10 --Dfs Scan on dfs_predicate_schema.t4
Output: dfs_predicate_schema.t4.a
Distribute Key: dfs_predicate_schema.t4.a
11 --Vector Adapter
Output: cstore.t4.a
12 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t4 t4
Output: cstore.t4.a
Distribute Key: cstore.t4.a
3 --Vector Result
Output: dfs_predicate_schema.t3.a
4 --Vector Append(5, 13)
5 --Dfs Scan on dfs_predicate_schema.t3
Output: dfs_predicate_schema.t3.a
Distribute Key: dfs_predicate_schema.t3.a
13 --Vector Adapter
Output: cstore.t3.a
14 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t3 t3
Output: cstore.t3.a
Distribute Key: cstore.t3.a
(30 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t3 where a = (select a from t4);
a
----
15
(1 row)
explain (verbose, costs off) select * from t1 where a = (select a from t5);
id | operation
----+---------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 13)
5 | -> Dfs Scan on dfs_predicate_schema.t1
6 | -> Row Adapter [5, InitPlan 1 (returns $0)]
7 | -> Vector Streaming(type: BROADCAST)
8 | -> Vector Result
9 | -> Vector Append(10, 11)
10 | -> Dfs Scan on dfs_predicate_schema.t5
11 | -> Vector Adapter
12 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t5 t5
13 | -> Vector Adapter
14 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t1 t1
(14 rows)
Predicate Information (identified by plan id)
--------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t1
Filter: (dfs_predicate_schema.t1.a = ($0)::bpchar)
14 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t1 t1
Filter: (cstore.t1.a = ($0)::bpchar)
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t1.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t1.a
6 --Row Adapter
Output: dfs_predicate_schema.t5.a
7 --Vector Streaming(type: BROADCAST)
Output: dfs_predicate_schema.t5.a
8 --Vector Result
Output: dfs_predicate_schema.t5.a
9 --Vector Append(10, 11)
10 --Dfs Scan on dfs_predicate_schema.t5
Output: dfs_predicate_schema.t5.a
Distribute Key: dfs_predicate_schema.t5.a
11 --Vector Adapter
Output: cstore.t5.a
12 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t5 t5
Output: cstore.t5.a
Distribute Key: cstore.t5.a
3 --Vector Result
Output: dfs_predicate_schema.t1.a
4 --Vector Append(5, 13)
5 --Dfs Scan on dfs_predicate_schema.t1
Output: dfs_predicate_schema.t1.a
Distribute Key: dfs_predicate_schema.t1.a
13 --Vector Adapter
Output: cstore.t1.a
14 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t1 t1
Output: cstore.t1.a
Distribute Key: cstore.t1.a
(30 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t1 where a = (select a from t5);
a
--------
15
(1 row)
explain (verbose, costs off) select * from t1 where a = (select a from t6);
id | operation
----+---------------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 13)
5 | -> Dfs Scan on dfs_predicate_schema.t1
6 | -> Row Adapter [5, InitPlan 1 (returns $0)]
7 | -> Vector Streaming(type: BROADCAST)
8 | -> Vector Result
9 | -> Vector Append(10, 11)
10 | -> Dfs Scan on dfs_predicate_schema.t6
11 | -> Vector Adapter
12 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t6 t6
13 | -> Vector Adapter
14 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t1 t1
(14 rows)
Predicate Information (identified by plan id)
--------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t1
Filter: ((dfs_predicate_schema.t1.a)::text = $0)
14 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t1 t1
Filter: ((cstore.t1.a)::text = $0)
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t1.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t1.a
6 --Row Adapter
Output: dfs_predicate_schema.t6.a
7 --Vector Streaming(type: BROADCAST)
Output: dfs_predicate_schema.t6.a
8 --Vector Result
Output: dfs_predicate_schema.t6.a
9 --Vector Append(10, 11)
10 --Dfs Scan on dfs_predicate_schema.t6
Output: dfs_predicate_schema.t6.a
Distribute Key: dfs_predicate_schema.t6.a
11 --Vector Adapter
Output: cstore.t6.a
12 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t6 t6
Output: cstore.t6.a
Distribute Key: cstore.t6.a
3 --Vector Result
Output: dfs_predicate_schema.t1.a
4 --Vector Append(5, 13)
5 --Dfs Scan on dfs_predicate_schema.t1
Output: dfs_predicate_schema.t1.a
Distribute Key: dfs_predicate_schema.t1.a
13 --Vector Adapter
Output: cstore.t1.a
14 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t1 t1
Output: cstore.t1.a
Distribute Key: cstore.t1.a
(30 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t1 where a = (select a from t6);
a
--------
15
(1 row)
explain (verbose, costs off) select * from t1 where a='15'::char(8);
id | operation
----+---------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t1
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t1 t1
(7 rows)
Predicate Information (identified by plan id)
------------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t1
Filter: (dfs_predicate_schema.t1.a = '15 '::character(8))
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t1 t1
Filter: (cstore.t1.a = '15 '::character(8))
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t1.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t1.a
3 --Vector Result
Output: dfs_predicate_schema.t1.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t1
Output: dfs_predicate_schema.t1.a
Distribute Key: dfs_predicate_schema.t1.a
6 --Vector Adapter
Output: cstore.t1.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t1 t1
Output: cstore.t1.a
Distribute Key: cstore.t1.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t1 where a='15'::char(8);
a
--------
15
(1 row)
explain (verbose, costs off) select * from t1 where a='15'::char(4);
id | operation
----+---------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t1
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t1 t1
(7 rows)
Predicate Information (identified by plan id)
--------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t1
Filter: (dfs_predicate_schema.t1.a = '15 '::character(4))
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t1 t1
Filter: (cstore.t1.a = '15 '::character(4))
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t1.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t1.a
3 --Vector Result
Output: dfs_predicate_schema.t1.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t1
Output: dfs_predicate_schema.t1.a
Distribute Key: dfs_predicate_schema.t1.a
6 --Vector Adapter
Output: cstore.t1.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t1 t1
Output: cstore.t1.a
Distribute Key: cstore.t1.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t1 where a='15'::char(4);
a
--------
15
(1 row)
explain (verbose, costs off) select * from t1 where a='15';
id | operation
----+---------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t1
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t1 t1
(7 rows)
Predicate Information (identified by plan id)
-------------------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t1
Pushdown Predicate Filter: (dfs_predicate_schema.t1.a = '15'::bpchar)
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t1 t1
Filter: (cstore.t1.a = '15'::bpchar)
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t1.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t1.a
3 --Vector Result
Output: dfs_predicate_schema.t1.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t1
Output: dfs_predicate_schema.t1.a
Distribute Key: dfs_predicate_schema.t1.a
6 --Vector Adapter
Output: cstore.t1.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t1 t1
Output: cstore.t1.a
Distribute Key: cstore.t1.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t1 where a='15';
a
--------
15
(1 row)
explain (verbose, costs off) select * from t1 where a='15'::varchar(8);
id | operation
----+---------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t1
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t1 t1
(7 rows)
Predicate Information (identified by plan id)
-------------------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t1
Pushdown Predicate Filter: (dfs_predicate_schema.t1.a = '15'::bpchar)
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t1 t1
Filter: (cstore.t1.a = '15'::bpchar)
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t1.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t1.a
3 --Vector Result
Output: dfs_predicate_schema.t1.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t1
Output: dfs_predicate_schema.t1.a
Distribute Key: dfs_predicate_schema.t1.a
6 --Vector Adapter
Output: cstore.t1.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t1 t1
Output: cstore.t1.a
Distribute Key: cstore.t1.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t1 where a='15'::varchar(8);
a
--------
15
(1 row)
explain (verbose, costs off) select * from t1 where a='15'::varchar(4);
id | operation
----+---------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t1
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t1 t1
(7 rows)
Predicate Information (identified by plan id)
-------------------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t1
Pushdown Predicate Filter: (dfs_predicate_schema.t1.a = '15'::bpchar)
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t1 t1
Filter: (cstore.t1.a = '15'::bpchar)
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t1.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t1.a
3 --Vector Result
Output: dfs_predicate_schema.t1.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t1
Output: dfs_predicate_schema.t1.a
Distribute Key: dfs_predicate_schema.t1.a
6 --Vector Adapter
Output: cstore.t1.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t1 t1
Output: cstore.t1.a
Distribute Key: cstore.t1.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t1 where a='15'::varchar(4);
a
--------
15
(1 row)
explain (verbose, costs off) select * from t3 where a='15'::varchar(4);
id | operation
----+---------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t3
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t3 t3
(7 rows)
Predicate Information (identified by plan id)
-------------------------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t3
Pushdown Predicate Filter: ((dfs_predicate_schema.t3.a)::text = '15'::text)
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t3 t3
Filter: ((cstore.t3.a)::text = '15'::text)
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t3.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t3.a
3 --Vector Result
Output: dfs_predicate_schema.t3.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t3
Output: dfs_predicate_schema.t3.a
Distribute Key: dfs_predicate_schema.t3.a
6 --Vector Adapter
Output: cstore.t3.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t3 t3
Output: cstore.t3.a
Distribute Key: cstore.t3.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t3 where a='15'::varchar(4);
a
----
15
(1 row)
explain (verbose, costs off) select * from t3 where a='15'::varchar(8);
id | operation
----+---------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t3
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t3 t3
(7 rows)
Predicate Information (identified by plan id)
-------------------------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t3
Pushdown Predicate Filter: ((dfs_predicate_schema.t3.a)::text = '15'::text)
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t3 t3
Filter: ((cstore.t3.a)::text = '15'::text)
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t3.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t3.a
3 --Vector Result
Output: dfs_predicate_schema.t3.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t3
Output: dfs_predicate_schema.t3.a
Distribute Key: dfs_predicate_schema.t3.a
6 --Vector Adapter
Output: cstore.t3.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t3 t3
Output: cstore.t3.a
Distribute Key: cstore.t3.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t3 where a='15'::varchar(8);
a
----
15
(1 row)
explain (verbose, costs off) select * from t3 where a='15';
id | operation
----+---------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t3
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t3 t3
(7 rows)
Predicate Information (identified by plan id)
-------------------------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t3
Pushdown Predicate Filter: ((dfs_predicate_schema.t3.a)::text = '15'::text)
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t3 t3
Filter: ((cstore.t3.a)::text = '15'::text)
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t3.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t3.a
3 --Vector Result
Output: dfs_predicate_schema.t3.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t3
Output: dfs_predicate_schema.t3.a
Distribute Key: dfs_predicate_schema.t3.a
6 --Vector Adapter
Output: cstore.t3.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t3 t3
Output: cstore.t3.a
Distribute Key: cstore.t3.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t3 where a='15';
a
----
15
(1 row)
explain (verbose, costs off) select * from t3 where a='15'::char(4);
id | operation
----+---------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t3
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t3 t3
(7 rows)
Predicate Information (identified by plan id)
------------------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t3
Filter: ((dfs_predicate_schema.t3.a)::bpchar = '15 '::character(4))
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t3 t3
Filter: ((cstore.t3.a)::bpchar = '15 '::character(4))
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t3.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t3.a
3 --Vector Result
Output: dfs_predicate_schema.t3.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t3
Output: dfs_predicate_schema.t3.a
Distribute Key: dfs_predicate_schema.t3.a
6 --Vector Adapter
Output: cstore.t3.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t3 t3
Output: cstore.t3.a
Distribute Key: cstore.t3.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t3 where a='15'::char(4);
a
----
15
(1 row)
explain (verbose, costs off) select * from t3 where a='15'::char(8);
id | operation
----+---------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t3
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t3 t3
(7 rows)
Predicate Information (identified by plan id)
----------------------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t3
Filter: ((dfs_predicate_schema.t3.a)::bpchar = '15 '::character(8))
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t3 t3
Filter: ((cstore.t3.a)::bpchar = '15 '::character(8))
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t3.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t3.a
3 --Vector Result
Output: dfs_predicate_schema.t3.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t3
Output: dfs_predicate_schema.t3.a
Distribute Key: dfs_predicate_schema.t3.a
6 --Vector Adapter
Output: cstore.t3.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t3 t3
Output: cstore.t3.a
Distribute Key: cstore.t3.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t3 where a='15'::char(8);
a
----
15
(1 row)
explain (verbose, costs off) select * from t3 where a='15'::char;
id | operation
----+---------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t3
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t3 t3
(7 rows)
Predicate Information (identified by plan id)
---------------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t3
Filter: ((dfs_predicate_schema.t3.a)::bpchar = '1'::character(1))
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t3 t3
Filter: ((cstore.t3.a)::bpchar = '1'::character(1))
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t3.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t3.a
3 --Vector Result
Output: dfs_predicate_schema.t3.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t3
Output: dfs_predicate_schema.t3.a
Distribute Key: dfs_predicate_schema.t3.a
6 --Vector Adapter
Output: cstore.t3.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t3 t3
Output: cstore.t3.a
Distribute Key: cstore.t3.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t3 where a='15'::char;
a
---
(0 rows)
explain (verbose, costs off) select * from t3 where a='15'::bpchar;
id | operation
----+---------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t3
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t3 t3
(7 rows)
Predicate Information (identified by plan id)
----------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t3
Filter: ((dfs_predicate_schema.t3.a)::bpchar = '15'::bpchar)
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t3 t3
Filter: ((cstore.t3.a)::bpchar = '15'::bpchar)
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t3.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t3.a
3 --Vector Result
Output: dfs_predicate_schema.t3.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t3
Output: dfs_predicate_schema.t3.a
Distribute Key: dfs_predicate_schema.t3.a
6 --Vector Adapter
Output: cstore.t3.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t3 t3
Output: cstore.t3.a
Distribute Key: cstore.t3.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t3 where a='15'::bpchar;
a
----
15
(1 row)
explain (verbose, costs off) select * from t5 where a='15';
id | operation
----+---------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t5
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t5 t5
(7 rows)
Predicate Information (identified by plan id)
-------------------------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t5
Pushdown Predicate Filter: ((dfs_predicate_schema.t5.a)::text = '15'::text)
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t5 t5
Filter: ((cstore.t5.a)::text = '15'::text)
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t5.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t5.a
3 --Vector Result
Output: dfs_predicate_schema.t5.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t5
Output: dfs_predicate_schema.t5.a
Distribute Key: dfs_predicate_schema.t5.a
6 --Vector Adapter
Output: cstore.t5.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t5 t5
Output: cstore.t5.a
Distribute Key: cstore.t5.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t5 where a='15';
a
----
15
(1 row)
explain (verbose, costs off) select * from t5 where a='15'::char(4);
id | operation
----+---------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t5
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t5 t5
(7 rows)
Predicate Information (identified by plan id)
------------------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t5
Filter: ((dfs_predicate_schema.t5.a)::bpchar = '15 '::character(4))
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t5 t5
Filter: ((cstore.t5.a)::bpchar = '15 '::character(4))
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t5.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t5.a
3 --Vector Result
Output: dfs_predicate_schema.t5.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t5
Output: dfs_predicate_schema.t5.a
Distribute Key: dfs_predicate_schema.t5.a
6 --Vector Adapter
Output: cstore.t5.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t5 t5
Output: cstore.t5.a
Distribute Key: cstore.t5.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t5 where a='15'::char(4);
a
----
15
(1 row)
explain (verbose, costs off) select * from t5 where a='15'::char(8);
id | operation
----+---------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t5
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t5 t5
(7 rows)
Predicate Information (identified by plan id)
----------------------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t5
Filter: ((dfs_predicate_schema.t5.a)::bpchar = '15 '::character(8))
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t5 t5
Filter: ((cstore.t5.a)::bpchar = '15 '::character(8))
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t5.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t5.a
3 --Vector Result
Output: dfs_predicate_schema.t5.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t5
Output: dfs_predicate_schema.t5.a
Distribute Key: dfs_predicate_schema.t5.a
6 --Vector Adapter
Output: cstore.t5.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t5 t5
Output: cstore.t5.a
Distribute Key: cstore.t5.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t5 where a='15'::char(8);
a
----
15
(1 row)
explain (verbose, costs off) select * from t5 where a='15'::char;
id | operation
----+---------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t5
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t5 t5
(7 rows)
Predicate Information (identified by plan id)
---------------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t5
Filter: ((dfs_predicate_schema.t5.a)::bpchar = '1'::character(1))
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t5 t5
Filter: ((cstore.t5.a)::bpchar = '1'::character(1))
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t5.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t5.a
3 --Vector Result
Output: dfs_predicate_schema.t5.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t5
Output: dfs_predicate_schema.t5.a
Distribute Key: dfs_predicate_schema.t5.a
6 --Vector Adapter
Output: cstore.t5.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t5 t5
Output: cstore.t5.a
Distribute Key: cstore.t5.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t5 where a='15'::char;
a
---
(0 rows)
explain (verbose, costs off) select * from t5 where a='15'::bpchar;
id | operation
----+---------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t5
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t5 t5
(7 rows)
Predicate Information (identified by plan id)
----------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t5
Filter: ((dfs_predicate_schema.t5.a)::bpchar = '15'::bpchar)
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t5 t5
Filter: ((cstore.t5.a)::bpchar = '15'::bpchar)
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t5.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t5.a
3 --Vector Result
Output: dfs_predicate_schema.t5.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t5
Output: dfs_predicate_schema.t5.a
Distribute Key: dfs_predicate_schema.t5.a
6 --Vector Adapter
Output: cstore.t5.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t5 t5
Output: cstore.t5.a
Distribute Key: cstore.t5.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t5 where a='15'::bpchar;
a
----
15
(1 row)
explain (verbose, costs off) select * from t6 where a='15';
id | operation
----+---------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t6
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t6 t6
(7 rows)
Predicate Information (identified by plan id)
-----------------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t6
Pushdown Predicate Filter: (dfs_predicate_schema.t6.a = '15'::text)
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t6 t6
Filter: (cstore.t6.a = '15'::text)
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t6.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t6.a
3 --Vector Result
Output: dfs_predicate_schema.t6.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t6
Output: dfs_predicate_schema.t6.a
Distribute Key: dfs_predicate_schema.t6.a
6 --Vector Adapter
Output: cstore.t6.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t6 t6
Output: cstore.t6.a
Distribute Key: cstore.t6.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t6 where a='15';
a
----
15
(1 row)
explain (verbose, costs off) select * from t6 where a='15'::char(4);
id | operation
----+---------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t6
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t6 t6
(7 rows)
Predicate Information (identified by plan id)
-----------------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t6
Pushdown Predicate Filter: (dfs_predicate_schema.t6.a = '15'::text)
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t6 t6
Filter: (cstore.t6.a = '15'::text)
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t6.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t6.a
3 --Vector Result
Output: dfs_predicate_schema.t6.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t6
Output: dfs_predicate_schema.t6.a
Distribute Key: dfs_predicate_schema.t6.a
6 --Vector Adapter
Output: cstore.t6.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t6 t6
Output: cstore.t6.a
Distribute Key: cstore.t6.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t6 where a='15'::char(4);
a
----
15
(1 row)
explain (verbose, costs off) select * from t6 where a='15'::char(8);
id | operation
----+---------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t6
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t6 t6
(7 rows)
Predicate Information (identified by plan id)
-----------------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t6
Pushdown Predicate Filter: (dfs_predicate_schema.t6.a = '15'::text)
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t6 t6
Filter: (cstore.t6.a = '15'::text)
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t6.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t6.a
3 --Vector Result
Output: dfs_predicate_schema.t6.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t6
Output: dfs_predicate_schema.t6.a
Distribute Key: dfs_predicate_schema.t6.a
6 --Vector Adapter
Output: cstore.t6.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t6 t6
Output: cstore.t6.a
Distribute Key: cstore.t6.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t6 where a='15'::char(8);
a
----
15
(1 row)
explain (verbose, costs off) select * from t6 where a='15'::char;
id | operation
----+---------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t6
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t6 t6
(7 rows)
Predicate Information (identified by plan id)
----------------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t6
Pushdown Predicate Filter: (dfs_predicate_schema.t6.a = '1'::text)
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t6 t6
Filter: (cstore.t6.a = '1'::text)
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t6.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t6.a
3 --Vector Result
Output: dfs_predicate_schema.t6.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t6
Output: dfs_predicate_schema.t6.a
Distribute Key: dfs_predicate_schema.t6.a
6 --Vector Adapter
Output: cstore.t6.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t6 t6
Output: cstore.t6.a
Distribute Key: cstore.t6.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t6 where a='15'::char;
a
---
(0 rows)
explain (verbose, costs off) select * from t6 where a='15'::bpchar;
id | operation
----+---------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t6
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t6 t6
(7 rows)
Predicate Information (identified by plan id)
-----------------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t6
Pushdown Predicate Filter: (dfs_predicate_schema.t6.a = '15'::text)
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t6 t6
Filter: (cstore.t6.a = '15'::text)
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t6.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t6.a
3 --Vector Result
Output: dfs_predicate_schema.t6.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t6
Output: dfs_predicate_schema.t6.a
Distribute Key: dfs_predicate_schema.t6.a
6 --Vector Adapter
Output: cstore.t6.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t6 t6
Output: cstore.t6.a
Distribute Key: cstore.t6.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t6 where a='15'::bpchar;
a
----
15
(1 row)
explain (verbose, costs off) select * from t7 where a = 15::int2;
id | operation
----+---------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t7
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t7 t7
(7 rows)
Predicate Information (identified by plan id)
-------------------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t7
Pushdown Predicate Filter: (dfs_predicate_schema.t7.a = 15::smallint)
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t7 t7
Filter: (cstore.t7.a = 15::smallint)
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t7.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t7.a
3 --Vector Result
Output: dfs_predicate_schema.t7.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t7
Output: dfs_predicate_schema.t7.a
Distribute Key: dfs_predicate_schema.t7.a
6 --Vector Adapter
Output: cstore.t7.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t7 t7
Output: cstore.t7.a
Distribute Key: cstore.t7.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t7 where a = 15::int2;
a
----
15
(1 row)
explain (verbose, costs off) select * from t7 where a = 15::int8;
id | operation
----+---------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t7
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t7 t7
(7 rows)
Predicate Information (identified by plan id)
-----------------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t7
Pushdown Predicate Filter: (dfs_predicate_schema.t7.a = 15::bigint)
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t7 t7
Filter: (cstore.t7.a = 15::bigint)
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t7.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t7.a
3 --Vector Result
Output: dfs_predicate_schema.t7.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t7
Output: dfs_predicate_schema.t7.a
Distribute Key: dfs_predicate_schema.t7.a
6 --Vector Adapter
Output: cstore.t7.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t7 t7
Output: cstore.t7.a
Distribute Key: cstore.t7.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t7 where a = 15::int8;
a
----
15
(1 row)
explain (verbose, costs off) select * from t7 where a = 15;
id | operation
----+---------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t7
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t7 t7
(7 rows)
Predicate Information (identified by plan id)
---------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t7
Pushdown Predicate Filter: (dfs_predicate_schema.t7.a = 15)
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t7 t7
Filter: (cstore.t7.a = 15)
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t7.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t7.a
3 --Vector Result
Output: dfs_predicate_schema.t7.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t7
Output: dfs_predicate_schema.t7.a
Distribute Key: dfs_predicate_schema.t7.a
6 --Vector Adapter
Output: cstore.t7.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t7 t7
Output: cstore.t7.a
Distribute Key: cstore.t7.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t7 where a = 15;
a
----
15
(1 row)
explain (verbose, costs off) select * from t8 where a = 15::int4;
id | operation
----+---------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t8
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t8 t8
(7 rows)
Predicate Information (identified by plan id)
---------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t8
Pushdown Predicate Filter: (dfs_predicate_schema.t8.a = 15)
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t8 t8
Filter: (cstore.t8.a = 15)
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t8.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t8.a
3 --Vector Result
Output: dfs_predicate_schema.t8.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t8
Output: dfs_predicate_schema.t8.a
Distribute Key: dfs_predicate_schema.t8.a
6 --Vector Adapter
Output: cstore.t8.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t8 t8
Output: cstore.t8.a
Distribute Key: cstore.t8.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t8 where a = 15::int4;
a
----
15
(1 row)
explain (verbose, costs off) select * from t8 where a = 15::int8;
id | operation
----+---------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t8
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t8 t8
(7 rows)
Predicate Information (identified by plan id)
-----------------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t8
Pushdown Predicate Filter: (dfs_predicate_schema.t8.a = 15::bigint)
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t8 t8
Filter: (cstore.t8.a = 15::bigint)
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t8.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t8.a
3 --Vector Result
Output: dfs_predicate_schema.t8.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t8
Output: dfs_predicate_schema.t8.a
Distribute Key: dfs_predicate_schema.t8.a
6 --Vector Adapter
Output: cstore.t8.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t8 t8
Output: cstore.t8.a
Distribute Key: cstore.t8.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t8 where a = 15::int8;
a
----
15
(1 row)
explain (verbose, costs off) select * from t8 where a = 15;
id | operation
----+---------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t8
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t8 t8
(7 rows)
Predicate Information (identified by plan id)
---------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t8
Pushdown Predicate Filter: (dfs_predicate_schema.t8.a = 15)
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t8 t8
Filter: (cstore.t8.a = 15)
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t8.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t8.a
3 --Vector Result
Output: dfs_predicate_schema.t8.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t8
Output: dfs_predicate_schema.t8.a
Distribute Key: dfs_predicate_schema.t8.a
6 --Vector Adapter
Output: cstore.t8.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t8 t8
Output: cstore.t8.a
Distribute Key: cstore.t8.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t8 where a = 15;
a
----
15
(1 row)
explain (verbose, costs off) select * from t9 where a = 15::int4;
id | operation
----+---------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t9
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t9 t9
(7 rows)
Predicate Information (identified by plan id)
---------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t9
Pushdown Predicate Filter: (dfs_predicate_schema.t9.a = 15)
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t9 t9
Filter: (cstore.t9.a = 15)
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t9.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t9.a
3 --Vector Result
Output: dfs_predicate_schema.t9.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t9
Output: dfs_predicate_schema.t9.a
Distribute Key: dfs_predicate_schema.t9.a
6 --Vector Adapter
Output: cstore.t9.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t9 t9
Output: cstore.t9.a
Distribute Key: cstore.t9.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t9 where a = 15::int4;
a
----
15
(1 row)
explain (verbose, costs off) select * from t9 where a = 15::int2;
id | operation
----+---------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t9
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t9 t9
(7 rows)
Predicate Information (identified by plan id)
-------------------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t9
Pushdown Predicate Filter: (dfs_predicate_schema.t9.a = 15::smallint)
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t9 t9
Filter: (cstore.t9.a = 15::smallint)
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t9.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t9.a
3 --Vector Result
Output: dfs_predicate_schema.t9.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t9
Output: dfs_predicate_schema.t9.a
Distribute Key: dfs_predicate_schema.t9.a
6 --Vector Adapter
Output: cstore.t9.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t9 t9
Output: cstore.t9.a
Distribute Key: cstore.t9.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t9 where a = 15::int2;
a
----
15
(1 row)
explain (verbose, costs off) select * from t9 where a = 15;
id | operation
----+---------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t9
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t9 t9
(7 rows)
Predicate Information (identified by plan id)
---------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t9
Pushdown Predicate Filter: (dfs_predicate_schema.t9.a = 15)
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t9 t9
Filter: (cstore.t9.a = 15)
(4 rows)
Targetlist Information (identified by plan id)
--------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t9.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t9.a
3 --Vector Result
Output: dfs_predicate_schema.t9.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t9
Output: dfs_predicate_schema.t9.a
Distribute Key: dfs_predicate_schema.t9.a
6 --Vector Adapter
Output: cstore.t9.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t9 t9
Output: cstore.t9.a
Distribute Key: cstore.t9.a
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t9 where a = 15;
a
----
15
(1 row)
explain (verbose, costs off) select * from t10 where a = 15::float8;
id | operation
----+-----------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t10
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t10 t10
(7 rows)
Predicate Information (identified by plan id)
----------------------------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t10
Pushdown Predicate Filter: (dfs_predicate_schema.t10.a = 15::double precision)
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t10 t10
Filter: (cstore.t10.a = 15::double precision)
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t10.b, dfs_predicate_schema.t10.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t10.b, dfs_predicate_schema.t10.a
3 --Vector Result
Output: dfs_predicate_schema.t10.b, dfs_predicate_schema.t10.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t10
Output: dfs_predicate_schema.t10.b, dfs_predicate_schema.t10.a
Distribute Key: dfs_predicate_schema.t10.b
6 --Vector Adapter
Output: cstore.t10.b, cstore.t10.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t10 t10
Output: cstore.t10.b, cstore.t10.a
Distribute Key: cstore.t10.b
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t10 where a = 15::float8;
b | a
---+----
1 | 15
(1 row)
explain (verbose, costs off) select * from t10 where a = 15;
id | operation
----+-----------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t10
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t10 t10
(7 rows)
Predicate Information (identified by plan id)
----------------------------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t10
Pushdown Predicate Filter: (dfs_predicate_schema.t10.a = 15::double precision)
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t10 t10
Filter: (cstore.t10.a = 15::double precision)
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t10.b, dfs_predicate_schema.t10.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t10.b, dfs_predicate_schema.t10.a
3 --Vector Result
Output: dfs_predicate_schema.t10.b, dfs_predicate_schema.t10.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t10
Output: dfs_predicate_schema.t10.b, dfs_predicate_schema.t10.a
Distribute Key: dfs_predicate_schema.t10.b
6 --Vector Adapter
Output: cstore.t10.b, cstore.t10.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t10 t10
Output: cstore.t10.b, cstore.t10.a
Distribute Key: cstore.t10.b
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t10 where a = 15;
b | a
---+----
1 | 15
(1 row)
explain (verbose, costs off) select * from t11 where a = 15::float4;
id | operation
----+-----------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t11
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t11 t11
(7 rows)
Predicate Information (identified by plan id)
----------------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t11
Pushdown Predicate Filter: (dfs_predicate_schema.t11.a = 15::real)
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t11 t11
Filter: (cstore.t11.a = 15::real)
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t11.b, dfs_predicate_schema.t11.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t11.b, dfs_predicate_schema.t11.a
3 --Vector Result
Output: dfs_predicate_schema.t11.b, dfs_predicate_schema.t11.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t11
Output: dfs_predicate_schema.t11.b, dfs_predicate_schema.t11.a
Distribute Key: dfs_predicate_schema.t11.b
6 --Vector Adapter
Output: cstore.t11.b, cstore.t11.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t11 t11
Output: cstore.t11.b, cstore.t11.a
Distribute Key: cstore.t11.b
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t11 where a = 15::float4;
b | a
---+----
1 | 15
(1 row)
explain (verbose, costs off) select * from t11 where a = 15;
id | operation
----+-----------------------------------------------------------------------------
1 | -> Row Adapter
2 | -> Vector Streaming (type: GATHER)
3 | -> Vector Result
4 | -> Vector Append(5, 6)
5 | -> Dfs Scan on dfs_predicate_schema.t11
6 | -> Vector Adapter
7 | -> Seq Scan on cstore.pg_delta_dfs_predicate_schema_t11 t11
(7 rows)
Predicate Information (identified by plan id)
----------------------------------------------------------------------------------------
5 --Dfs Scan on dfs_predicate_schema.t11
Pushdown Predicate Filter: (dfs_predicate_schema.t11.a = 15::double precision)
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t11 t11
Filter: (cstore.t11.a = 15::double precision)
(4 rows)
Targetlist Information (identified by plan id)
------------------------------------------------------------------------
1 --Row Adapter
Output: dfs_predicate_schema.t11.b, dfs_predicate_schema.t11.a
2 --Vector Streaming (type: GATHER)
Output: dfs_predicate_schema.t11.b, dfs_predicate_schema.t11.a
3 --Vector Result
Output: dfs_predicate_schema.t11.b, dfs_predicate_schema.t11.a
4 --Vector Append(5, 6)
5 --Dfs Scan on dfs_predicate_schema.t11
Output: dfs_predicate_schema.t11.b, dfs_predicate_schema.t11.a
Distribute Key: dfs_predicate_schema.t11.b
6 --Vector Adapter
Output: cstore.t11.b, cstore.t11.a
7 --Seq Scan on cstore.pg_delta_dfs_predicate_schema_t11 t11
Output: cstore.t11.b, cstore.t11.a
Distribute Key: cstore.t11.b
(15 rows)
====== Query Summary =====
--------------------------------
System available mem: 262144KB
Query Max mem: 262144KB
--? Query estimated mem: .*
(3 rows)
select * from t11 where a = 15;
b | a
---+----
1 | 15
(1 row)
reset cstore_insert_mode;
drop foreign table customer_address_ext;
drop schema dfs_predicate_schema cascade;
NOTICE: drop cascades to 24 other objects
DETAIL: drop cascades to table dfs_predicate_01
drop cascades to table temp_predicate_01
drop cascades to foreign table hdfs_predicate_01
drop cascades to table normal_01
drop cascades to table dfs_predicate_02
drop cascades to table temp_predicate_02
drop cascades to foreign table hdfs_predicate_02
drop cascades to table normal_02
drop cascades to table dfs_predicate_03
drop cascades to table temp_predicate_03
drop cascades to foreign table hdfs_predicate_03
drop cascades to table normal_03
drop cascades to function predicate_clause_test(character varying,character varying,character varying,character varying)
drop cascades to table t1
drop cascades to table t2
drop cascades to table t3
drop cascades to table t4
drop cascades to table t5
drop cascades to table t6
drop cascades to table t7
drop cascades to table t8
drop cascades to table t9
drop cascades to table t10
drop cascades to table t11
drop server hdfs_server cascade;