diff --git common/src/java/org/apache/hadoop/hive/conf/HiveConf.java common/src/java/org/apache/hadoop/hive/conf/HiveConf.java index 0c2cf0571550f8adc45e6eeca00d7bb530ef0560..c9779cbfa9d951a505a8c9d8b20fa28f52070486 100644 --- common/src/java/org/apache/hadoop/hive/conf/HiveConf.java +++ common/src/java/org/apache/hadoop/hive/conf/HiveConf.java @@ -302,7 +302,8 @@ private static URL checkConfigFile(File f) { HiveConf.ConfVars.METASTORE_CLIENT_SOCKET_TIMEOUT, HiveConf.ConfVars.METASTORE_PARTITION_NAME_WHITELIST_PATTERN, HiveConf.ConfVars.METASTORE_CAPABILITY_CHECK, - HiveConf.ConfVars.METASTORE_DISALLOW_INCOMPATIBLE_COL_TYPE_CHANGES + HiveConf.ConfVars.METASTORE_DISALLOW_INCOMPATIBLE_COL_TYPE_CHANGES, + HiveConf.ConfVars.METASTORE_LIMIT_PARTITION_REQUEST }; static { diff --git ql/src/test/queries/clientnegative/limit_partition_request.q ql/src/test/queries/clientnegative/limit_partition_request.q new file mode 100644 index 0000000000000000000000000000000000000000..64b9fb3f77a1f4c5e175992d981f4036cf3bc25d --- /dev/null +++ ql/src/test/queries/clientnegative/limit_partition_request.q @@ -0,0 +1,8 @@ +CREATE TABLE pt1 (key1 INT, value1 STRING) PARTITIONED BY (ds STRING, hr STRING); +ALTER TABLE pt1 ADD PARTITION (ds='3', hr='3'); +ALTER TABLE pt1 ADD PARTITION (ds='4', hr='4'); +ALTER TABLE pt1 ADD PARTITION (ds='4', hr='5'); +set metaconf:hive.metastore.limit.partition.request=3; +select * from pt1; +set metaconf:hive.metastore.limit.partition.request=1; +select * from pt1; diff --git ql/src/test/results/clientnegative/limit_partition_request.q.out ql/src/test/results/clientnegative/limit_partition_request.q.out new file mode 100644 index 0000000000000000000000000000000000000000..89f69c0655e401d4bc82f9e35ebaa1d3a5f5d63e --- /dev/null +++ ql/src/test/results/clientnegative/limit_partition_request.q.out @@ -0,0 +1,44 @@ +PREHOOK: query: CREATE TABLE pt1 (key1 INT, value1 STRING) PARTITIONED BY (ds STRING, hr STRING) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@pt1 +POSTHOOK: query: CREATE TABLE pt1 (key1 INT, value1 STRING) PARTITIONED BY (ds STRING, hr STRING) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@pt1 +PREHOOK: query: ALTER TABLE pt1 ADD PARTITION (ds='3', hr='3') +PREHOOK: type: ALTERTABLE_ADDPARTS +PREHOOK: Output: default@pt1 +POSTHOOK: query: ALTER TABLE pt1 ADD PARTITION (ds='3', hr='3') +POSTHOOK: type: ALTERTABLE_ADDPARTS +POSTHOOK: Output: default@pt1 +POSTHOOK: Output: default@pt1@ds=3/hr=3 +PREHOOK: query: ALTER TABLE pt1 ADD PARTITION (ds='4', hr='4') +PREHOOK: type: ALTERTABLE_ADDPARTS +PREHOOK: Output: default@pt1 +POSTHOOK: query: ALTER TABLE pt1 ADD PARTITION (ds='4', hr='4') +POSTHOOK: type: ALTERTABLE_ADDPARTS +POSTHOOK: Output: default@pt1 +POSTHOOK: Output: default@pt1@ds=4/hr=4 +PREHOOK: query: ALTER TABLE pt1 ADD PARTITION (ds='4', hr='5') +PREHOOK: type: ALTERTABLE_ADDPARTS +PREHOOK: Output: default@pt1 +POSTHOOK: query: ALTER TABLE pt1 ADD PARTITION (ds='4', hr='5') +POSTHOOK: type: ALTERTABLE_ADDPARTS +POSTHOOK: Output: default@pt1 +POSTHOOK: Output: default@pt1@ds=4/hr=5 +PREHOOK: query: select * from pt1 +PREHOOK: type: QUERY +PREHOOK: Input: default@pt1 +PREHOOK: Input: default@pt1@ds=3/hr=3 +PREHOOK: Input: default@pt1@ds=4/hr=4 +PREHOOK: Input: default@pt1@ds=4/hr=5 +#### A masked pattern was here #### +POSTHOOK: query: select * from pt1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@pt1 +POSTHOOK: Input: default@pt1@ds=3/hr=3 +POSTHOOK: Input: default@pt1@ds=4/hr=4 +POSTHOOK: Input: default@pt1@ds=4/hr=5 +#### A masked pattern was here #### +FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: MetaException(message:Number of partitions scanned (=3) on table 'pt1' exceeds limit (=1). This is controlled on the metastore server by metastore.limit.partition.request.) diff --git standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/conf/MetastoreConf.java standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/conf/MetastoreConf.java index 3c8d005e3cb55739c91c340d2718850cb00747de..39ebdaba0268c907a1275febf0b6b17232e98691 100644 --- standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/conf/MetastoreConf.java +++ standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/conf/MetastoreConf.java @@ -187,7 +187,8 @@ public String toString() { ConfVars.CLIENT_SOCKET_TIMEOUT, ConfVars.PARTITION_NAME_WHITELIST_PATTERN, ConfVars.CAPABILITY_CHECK, - ConfVars.DISALLOW_INCOMPATIBLE_COL_TYPE_CHANGES + ConfVars.DISALLOW_INCOMPATIBLE_COL_TYPE_CHANGES, + ConfVars.LIMIT_PARTITION_REQUEST }; static {