Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Hadoop Wiki" for change 
notification.

The "Hive/PartitionedViews" page has been changed by JohnSichi.
http://wiki.apache.org/hadoop/Hive/PartitionedViews?action=diff&rev1=4&rev2=5

--------------------------------------------------

  = Approaches =
  
   1. One possible approach mentioned in 
[[https://issues.apache.org/jira/browse/HIVE-1079|HIVE-1079]] is to infer view 
partitions automatically based on the partitions of the underlying tables.  A 
command such as SHOW PARTITIONS could then synthesize virtual partition 
descriptors on the fly.  This is fairly easy to do for use case #1, but 
potentially very difficult for use cases #2 and #3.  So for now, we are punting 
on this approach.
-  1. Instead, we will require users to explicitly declare view partitioning as 
part of CREATE VIEW, and explicitly manage partition metadata via ALTER VIEW 
{ADD|DROP} PARTITION.  This allows all of the use cases to be satisfied (while 
placing more burden on the user, and taking up more metastore space).
+  1. Instead, we will require users to explicitly declare view partitioning as 
part of CREATE VIEW, and explicitly manage partition metadata via ALTER VIEW 
{ADD|DROP} PARTITION.  This allows all of the use cases to be satisfied (while 
placing more burden on the user, and taking up more metastore space).  With 
this approach, there is no real connection between view partitions and 
underlying table partitions; it's even possible to create a partitioned view on 
an unpartitioned table, or to have data in the view which is not covered by any 
view partition.
  
  = Syntax =
  
@@ -38, +38 @@

  
  = Metastore =
  
- When storing view partition descriptors in the metastore, Hive omits the 
storage descriptor entirely.  This is because there is no data associated with 
the view partition, so there is no need to keep track of partition-level column 
descriptors for table schema evolution.
+ When storing view partition descriptors in the metastore, Hive omits the 
storage descriptor entirely.  This is because there is no data associated with 
the view partition, so there is no need to keep track of partition-level column 
descriptors for table schema evolution, nor a partition location.
  
+ = Strict Mode =
+ 
+ Hive strict mode (enabled with hive.mapred.mode=strict) prevents execution of 
queries lacking a partition predicate.  This only applies to base table 
partitions.  What does this mean?
+ 
+ Suppose you have table T1 partitioned on C1, and view V1 which selects FROM 
T1 WHERE C1=5.  Then a query such as SELECT * FROM V1 will succeed even in 
strict mode, since the predicate inside of the view constrains C1.
+ 
+ Likewise, suppose you have view V2 which selects from T1 (with no WHERE 
clause) and is partitioned on C2.  Then a query such as SELECT * FROM V2 WHERE 
C2=3 will fail; even though the view partition column is constrained, there is 
no predicate on the underlying T1's partition column C1.
+ 

Reply via email to