--! qt:dataset:srcpart
--! qt:dataset:src
DROP VIEW vp1;
DROP VIEW vp2;
DROP VIEW vp3;

-- test partitioned view definition
-- (underlying table is not actually partitioned)
CREATE VIEW vp1
PARTITIONED ON (value)
AS
SELECT key, value
FROM src
WHERE key=86;
DESCRIBE EXTENDED vp1;
DESCRIBE FORMATTED vp1;

SELECT * FROM vp1;

SELECT key FROM vp1;

SELECT value FROM vp1;

ALTER VIEW vp1
ADD PARTITION (value='val_86') PARTITION (value='val_xyz');

-- should work since we use IF NOT EXISTS
ALTER VIEW vp1
ADD IF NOT EXISTS PARTITION (value='val_xyz');

SHOW PARTITIONS vp1;

SHOW PARTITIONS vp1 PARTITION(value='val_86');

SHOW TABLE EXTENDED LIKE vp1;

SHOW TABLE EXTENDED LIKE vp1 PARTITION(value='val_86');

ALTER VIEW vp1
DROP PARTITION (value='val_xyz');

SET hive.exec.drop.ignorenonexistent=false;

-- should work since we use IF EXISTS
ALTER VIEW vp1
DROP IF EXISTS PARTITION (value='val_xyz');

SHOW PARTITIONS vp1;

SET hive.mapred.mode=strict;

-- Even though no partition predicate is specified in the next query,
-- the WHERE clause inside of the view should satisfy strict mode.
-- In other words, strict only applies to underlying tables
-- (regardless of whether or not the view is partitioned).
SELECT * FROM vp1;

SET hive.mapred.mode=nonstrict;

-- test a partitioned view on top of an underlying partitioned table,
-- but with only a suffix of the partitioning columns
CREATE VIEW vp2
PARTITIONED ON (hr)
AS SELECT * FROM srcpart WHERE key < 10;
DESCRIBE FORMATTED vp2;

ALTER VIEW vp2 ADD PARTITION (hr='11') PARTITION (hr='12');
SELECT key FROM vp2 WHERE hr='12' ORDER BY key;

-- test a partitioned view where the PARTITIONED ON clause references
-- an imposed column name
CREATE VIEW vp3(k,v)
PARTITIONED ON (v)
AS
SELECT key, value
FROM src
WHERE key=86;
DESCRIBE FORMATTED vp3;

ALTER VIEW vp3
ADD PARTITION (v='val_86');

DROP VIEW vp1;
DROP VIEW vp2;
DROP VIEW vp3;


-- HIVE-16828
set hive.security.authorization.enabled=true;
CREATE TABLE table1_n12 (id int) PARTITIONED BY (year int);
-- create partitioned view
CREATE VIEW view1_n0 partitioned on (year) as select id, year from table1_n12;

select year from view1_n0;

Drop view view1_n0;
drop table table1_n12;