Impala
Impalaistheopensource,nativeanalyticdatabaseforApacheHadoop.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
ShowPartitionsStmt.java
Go to the documentation of this file.
1 // Copyright 2012 Cloudera Inc.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 package com.cloudera.impala.analysis;
16 
19 import com.google.common.base.Preconditions;
20 
25 public class ShowPartitionsStmt extends ShowStatsStmt {
26 
27  public ShowPartitionsStmt(TableName tableName) {
28  super(tableName, false);
29  }
30 
31  @Override
32  public String toSql() {
33  return getSqlPrefix() + " " + tableName_.toString();
34  }
35 
36  @Override
37  protected String getSqlPrefix() { return "SHOW PARTITIONS"; }
38 
39  @Override
40  public void analyze(Analyzer analyzer) throws AnalysisException {
41  super.analyze(analyzer);
42  Preconditions.checkNotNull(table_);
43  if (!(table_ instanceof HdfsTable)) {
44  throw new AnalysisException(getSqlPrefix() + " must target an HDFS table: " +
46  }
47  if (table_.getNumClusteringCols() == 0) {
48  throw new AnalysisException(String.format(
49  "Table is not partitioned: %s", table_.getFullName()));
50  }
51  }
52 }