blob: 02843c00104360be64cb1774cec36ed6b952dd19 [file] [log] [blame]
select * from functional_kudu.zipcode_incomes where id = '8600000US00601'
---- PLAN
F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
Per-Host Resources: mem-estimate=0B mem-reservation=0B
PLAN-ROOT SINK
| mem-estimate=0B mem-reservation=0B
|
00:SCAN KUDU [functional_kudu.zipcode_incomes]
kudu predicates: id = '8600000US00601'
mem-estimate=0B mem-reservation=0B
tuple-ids=0 row-size=124B cardinality=1
---- DISTRIBUTEDPLAN
F01:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
Per-Host Resources: mem-estimate=0B mem-reservation=0B
PLAN-ROOT SINK
| mem-estimate=0B mem-reservation=0B
|
01:EXCHANGE [UNPARTITIONED]
mem-estimate=0B mem-reservation=0B
tuple-ids=0 row-size=124B cardinality=1
F00:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
Per-Host Resources: mem-estimate=0B mem-reservation=0B
DATASTREAM SINK [FRAGMENT=F01, EXCHANGE=01, UNPARTITIONED]
| mem-estimate=0B mem-reservation=0B
00:SCAN KUDU [functional_kudu.zipcode_incomes]
kudu predicates: id = '8600000US00601'
mem-estimate=0B mem-reservation=0B
tuple-ids=0 row-size=124B cardinality=1
====
# The cardinality from "zip = '2'" should dominate.
select * from functional_kudu.zipcode_incomes where id != '1' and zip = '2'
---- PLAN
F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
Per-Host Resources: mem-estimate=0B mem-reservation=0B
PLAN-ROOT SINK
| mem-estimate=0B mem-reservation=0B
|
00:SCAN KUDU [functional_kudu.zipcode_incomes]
predicates: id != '1'
kudu predicates: zip = '2'
mem-estimate=0B mem-reservation=0B
tuple-ids=0 row-size=124B cardinality=1
---- DISTRIBUTEDPLAN
F01:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
Per-Host Resources: mem-estimate=0B mem-reservation=0B
PLAN-ROOT SINK
| mem-estimate=0B mem-reservation=0B
|
01:EXCHANGE [UNPARTITIONED]
mem-estimate=0B mem-reservation=0B
tuple-ids=0 row-size=124B cardinality=1
F00:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
Per-Host Resources: mem-estimate=0B mem-reservation=0B
DATASTREAM SINK [FRAGMENT=F01, EXCHANGE=01, UNPARTITIONED]
| mem-estimate=0B mem-reservation=0B
00:SCAN KUDU [functional_kudu.zipcode_incomes]
predicates: id != '1'
kudu predicates: zip = '2'
mem-estimate=0B mem-reservation=0B
tuple-ids=0 row-size=124B cardinality=1
====
select * from functional_kudu.zipcode_incomes where id > '1' and zip > '2'
---- PLAN
F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
Per-Host Resources: mem-estimate=0B mem-reservation=0B
PLAN-ROOT SINK
| mem-estimate=0B mem-reservation=0B
|
00:SCAN KUDU [functional_kudu.zipcode_incomes]
kudu predicates: zip > '2', id > '1'
mem-estimate=0B mem-reservation=0B
tuple-ids=0 row-size=124B cardinality=3317
---- DISTRIBUTEDPLAN
F01:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
Per-Host Resources: mem-estimate=0B mem-reservation=0B
PLAN-ROOT SINK
| mem-estimate=0B mem-reservation=0B
|
01:EXCHANGE [UNPARTITIONED]
mem-estimate=0B mem-reservation=0B
tuple-ids=0 row-size=124B cardinality=3317
F00:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
Per-Host Resources: mem-estimate=0B mem-reservation=0B
DATASTREAM SINK [FRAGMENT=F01, EXCHANGE=01, UNPARTITIONED]
| mem-estimate=0B mem-reservation=0B
00:SCAN KUDU [functional_kudu.zipcode_incomes]
kudu predicates: zip > '2', id > '1'
mem-estimate=0B mem-reservation=0B
tuple-ids=0 row-size=124B cardinality=3317
====
select * from functional_kudu.zipcode_incomes where id = '1' or id = '2' or zip = '3'
---- PLAN
F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
Per-Host Resources: mem-estimate=0B mem-reservation=0B
PLAN-ROOT SINK
| mem-estimate=0B mem-reservation=0B
|
00:SCAN KUDU [functional_kudu.zipcode_incomes]
predicates: id IN ('1', '2') OR zip = '3'
mem-estimate=0B mem-reservation=0B
tuple-ids=0 row-size=124B cardinality=3
---- DISTRIBUTEDPLAN
F01:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
Per-Host Resources: mem-estimate=0B mem-reservation=0B
PLAN-ROOT SINK
| mem-estimate=0B mem-reservation=0B
|
01:EXCHANGE [UNPARTITIONED]
mem-estimate=0B mem-reservation=0B
tuple-ids=0 row-size=124B cardinality=3
F00:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
Per-Host Resources: mem-estimate=0B mem-reservation=0B
DATASTREAM SINK [FRAGMENT=F01, EXCHANGE=01, UNPARTITIONED]
| mem-estimate=0B mem-reservation=0B
00:SCAN KUDU [functional_kudu.zipcode_incomes]
predicates: id IN ('1', '2') OR zip = '3'
mem-estimate=0B mem-reservation=0B
tuple-ids=0 row-size=124B cardinality=3
====
select * from functional_kudu.alltypes where
-- predicates that can be pushed
tinyint_col in (1, 2) and
smallint_col in (false, 2) and
int_col in (true, 2) and
bigint_col in (1, 2) and
bool_col in (true) and
float_col in (0.0) and
double_col in (0.0) and
string_col in ("foo", cast("foo" as char(10))) and
-- predicates that cannot be pushed because the SlotRef is wrapped in a cast
tinyint_col in (1, 999) and
smallint_col in (99999, 2) and
int_col in (9999999999) and
bigint_col in (9999999999999999999) and
bool_col in (1) and
float_col in (cast('NaN' as float)) and
double_col in (cast('inf' as double)) and
-- 'NOT IN' and lists containing slotrefs cannot be pushed
string_col not in ("bar") and
id in (int_col)
---- PLAN
F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
Per-Host Resources: mem-estimate=0B mem-reservation=0B
PLAN-ROOT SINK
| mem-estimate=0B mem-reservation=0B
|
00:SCAN KUDU [functional_kudu.alltypes]
predicates: id IN (int_col), bigint_col IN (9999999999999999999), double_col IN (CAST('inf' AS DOUBLE)), float_col IN (CAST('NaN' AS FLOAT)), int_col IN (9999999999), smallint_col IN (99999, 2), tinyint_col IN (1, 999), bool_col IN (1), string_col NOT IN ('bar')
kudu predicates: double_col IN (0.0), float_col IN (0.0), bigint_col IN (1, 2), int_col IN (1, 2), smallint_col IN (0, 2), string_col IN ('foo', 'foo '), tinyint_col IN (1, 2), bool_col IN (TRUE)
mem-estimate=0B mem-reservation=0B
tuple-ids=0 row-size=126B cardinality=5
====
select * from functional_kudu.alltypes where
tinyint_col is not null and
smallint_col is null and
cast(date_string_col as tinyint) is null and
timestamp_col > (nanoseconds_add(cast('1987-05-19 00:00:00' as timestamp), 10)) and
timestamp_col < (seconds_add(cast('9999-12-31 24:59:59' as timestamp), 10))
---- PLAN
F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
Per-Host Resources: mem-estimate=0B mem-reservation=0B
PLAN-ROOT SINK
| mem-estimate=0B mem-reservation=0B
|
00:SCAN KUDU [functional_kudu.alltypes]
predicates: CAST(date_string_col AS TINYINT) IS NULL, timestamp_col < NULL
kudu predicates: smallint_col IS NULL, tinyint_col IS NOT NULL, timestamp_col > TIMESTAMP '1987-05-19 00:00:00.000000010'
mem-estimate=0B mem-reservation=0B
tuple-ids=0 row-size=97B cardinality=730
====
select * from functional_kudu.alltypes where
timestamp_col in (cast('2010-03-01 00:00:00' as timestamp),
cast('2010-03-01 00:01:00' as timestamp))
---- PLAN
F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
Per-Host Resources: mem-estimate=0B mem-reservation=0B
PLAN-ROOT SINK
| mem-estimate=0B mem-reservation=0B
|
00:SCAN KUDU [functional_kudu.alltypes]
kudu predicates: timestamp_col IN (TIMESTAMP '2010-03-01 00:00:00', TIMESTAMP '2010-03-01 00:01:00')
mem-estimate=0B mem-reservation=0B
tuple-ids=0 row-size=97B cardinality=1
====
select * from functional_kudu.alltypes where
timestamp_col in (cast('2010-03-01 00:00:00' as timestamp),
null,
cast('2010-03-01 00:01:00' as timestamp))
---- PLAN
F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
Per-Host Resources: mem-estimate=0B mem-reservation=0B
PLAN-ROOT SINK
| mem-estimate=0B mem-reservation=0B
|
00:SCAN KUDU [functional_kudu.alltypes]
predicates: timestamp_col IN (TIMESTAMP '2010-03-01 00:00:00', NULL, TIMESTAMP '2010-03-01 00:01:00')
mem-estimate=0B mem-reservation=0B
tuple-ids=0 row-size=97B cardinality=3
====