blob: 7ee4da0da44565cff831d4ca7b5aaf6cd25fa443 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.hcatalog.api;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.hadoop.hive.metastore.api.FieldSchema;
import org.apache.hadoop.hive.metastore.api.Order;
import org.apache.hadoop.hive.metastore.api.Partition;
import org.apache.hadoop.hive.metastore.api.StorageDescriptor;
import org.apache.hcatalog.common.HCatException;
import org.apache.hcatalog.data.schema.HCatFieldSchema;
import org.apache.hcatalog.data.schema.HCatSchemaUtils;
/**
* The HCatPartition is a wrapper around org.apache.hadoop.hive.metastore.api.Partition.
*/
public class HCatPartition {
private String tableName;
private String dbName;
private List<String> values;
private List<HCatFieldSchema> tableCols;
private int createTime;
private int lastAccessTime;
private StorageDescriptor sd;
private Map<String, String> parameters;
HCatPartition(Partition partition) throws HCatException {
this.tableName = partition.getTableName();
this.dbName = partition.getDbName();
this.createTime = partition.getCreateTime();
this.lastAccessTime = partition.getLastAccessTime();
this.parameters = partition.getParameters();
this.values = partition.getValues();
this.sd = partition.getSd();
this.tableCols = new ArrayList<HCatFieldSchema>();
for (FieldSchema fs : this.sd.getCols()) {
this.tableCols.add(HCatSchemaUtils.getHCatFieldSchema(fs));
}
}
/**
* Gets the table name.
*
* @return the table name
*/
public String getTableName() {
return this.tableName;
}
/**
* Gets the database name.
*
* @return the database name
*/
public String getDatabaseName() {
return this.dbName;
}
/**
* Gets the columns of the table.
*
* @return the columns
*/
public List<HCatFieldSchema> getColumns() {
return this.tableCols;
}
/**
* Gets the input format.
*
* @return the input format
*/
public String getInputFormat() {
return this.sd.getInputFormat();
}
/**
* Gets the output format.
*
* @return the output format
*/
public String getOutputFormat() {
return this.sd.getOutputFormat();
}
/**
* Gets the storage handler.
*
* @return the storage handler
*/
public String getStorageHandler() {
return this.sd
.getParameters()
.get(org.apache.hadoop.hive.metastore.api.Constants.META_TABLE_STORAGE);
}
/**
* Gets the location.
*
* @return the location
*/
public String getLocation() {
return this.sd.getLocation();
}
/**
* Gets the serde.
*
* @return the serde
*/
public String getSerDe() {
return this.sd.getSerdeInfo().getSerializationLib();
}
public Map<String, String> getParameters() {
return this.parameters;
}
/**
* Gets the last access time.
*
* @return the last access time
*/
public int getLastAccessTime() {
return this.lastAccessTime;
}
/**
* Gets the creates the time.
*
* @return the creates the time
*/
public int getCreateTime() {
return this.createTime;
}
/**
* Gets the values.
*
* @return the values
*/
public List<String> getValues() {
return this.values;
}
/**
* Gets the bucket columns.
*
* @return the bucket columns
*/
public List<String> getBucketCols() {
return this.sd.getBucketCols();
}
/**
* Gets the number of buckets.
*
* @return the number of buckets
*/
public int getNumBuckets() {
return this.sd.getNumBuckets();
}
/**
* Gets the sort columns.
*
* @return the sort columns
*/
public List<Order> getSortCols() {
return this.sd.getSortCols();
}
@Override
public String toString() {
return "HCatPartition ["
+ (tableName != null ? "tableName=" + tableName + ", " : "tableName=null")
+ (dbName != null ? "dbName=" + dbName + ", " : "dbName=null")
+ (values != null ? "values=" + values + ", " : "values=null")
+ "createTime=" + createTime + ", lastAccessTime="
+ lastAccessTime + ", " + (sd != null ? "sd=" + sd + ", " : "sd=null")
+ (parameters != null ? "parameters=" + parameters : "parameters=null") + "]";
}
}