--! qt:dataset:srcpart
--! qt:dataset:part
set hive.compute.query.using.stats=false;
set hive.mapred.mode=nonstrict;
set hive.explain.user=false;
set hive.optimize.ppd=true;
set hive.ppd.remove.duplicatefilters=true;
set hive.tez.dynamic.partition.pruning=true;
set hive.tez.dynamic.semijoin.reduction=true;
set hive.optimize.metadataonly=false;
set hive.optimize.index.filter=true;
set hive.stats.autogather=true;
set hive.tez.bigtable.minsize.semijoin.reduction=1;
set hive.tez.min.bloom.filter.entries=1;
set hive.stats.fetch.column.stats=true;
set hive.tez.bloom.filter.factor=1.0f;

-- Create Tables
create table srcpart_date_n5 (key string, value string) partitioned by (ds string ) stored as ORC;
CREATE TABLE srcpart_small_n1(key1 STRING, value1 STRING) partitioned by (ds string) STORED as ORC;

-- Add Partitions
alter table srcpart_date_n5 add partition (ds = "2008-04-08");
alter table srcpart_date_n5 add partition (ds = "2008-04-09");

alter table srcpart_small_n1 add partition (ds = "2008-04-08");
alter table srcpart_small_n1 add partition (ds = "2008-04-09");

-- Load
insert overwrite table srcpart_date_n5 partition (ds = "2008-04-08" ) select key, value from srcpart where ds = "2008-04-08";
insert overwrite table srcpart_date_n5 partition (ds = "2008-04-09") select key, value from srcpart where ds = "2008-04-09";
insert overwrite table srcpart_small_n1 partition (ds = "2008-04-09") select key, value from srcpart where ds = "2008-04-09" limit 20;


analyze table srcpart_date_n5 compute statistics for columns;
analyze table srcpart_small_n1 compute statistics for columns;

set hive.auto.convert.join=true;
set hive.auto.convert.join.noconditionaltask=true;
set hive.auto.convert.join.noconditionaltask.size=100000000000;

--HIVE-17475
EXPLAIN select /*+ mapjoin(None)*/ count(*) from srcpart_date_n5 join srcpart_small_n1 on (srcpart_date_n5.key = srcpart_small_n1.key1);
EXPLAIN select count(*) from srcpart_date_n5 join srcpart_small_n1 on (srcpart_date_n5.key = srcpart_small_n1.key1);


-- Ensure that hint works even with CBO on, on a query with subquery.
create table tnull_n1(i int, c char(2));
insert into tnull_n1 values(NULL, NULL), (NULL, NULL);

create table tempty_n1(c char(2));

CREATE TABLE part_null_n1(
p_partkey INT,
p_name STRING,
p_mfgr STRING,
p_brand STRING,
p_type STRING,
p_size INT,
p_container STRING,
p_retailprice DOUBLE,
p_comment STRING
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ","
;

LOAD DATA LOCAL INPATH '../../data/files/part_tiny_nulls.txt' overwrite into table part_null_n1;

insert into part_null_n1 values(78487,'any','Manufacturer#6','Brand#52','LARGE BRUSHED BRASS', 23, 'MED BAG',1464.48,'hely blith');

explain select /*+ mapjoin(None)*/ * from part where p_name = (select p_name from part_null_n1 where p_name = 'any');
explain select * from part where p_name = (select p_name from part_null_n1 where p_name = 'any');
