15 package com.cloudera.impala.catalog;
17 import org.apache.hadoop.hive.metastore.api.ColumnStatisticsData;
18 import org.slf4j.Logger;
19 import org.slf4j.LoggerFactory;
21 import com.cloudera.impala.thrift.TColumn;
22 import com.cloudera.impala.thrift.TColumnStats;
23 import com.google.common.base.Objects;
24 import com.google.common.base.Preconditions;
31 private final static Logger
LOG = LoggerFactory.getLogger(Column.class);
41 this(
name, type, null, position);
56 public void setPosition(
int position) { this.position_ = position; }
60 boolean statsDataCompatibleWithColType = stats_.update(
type_, statsData);
61 LOG.debug(
"col stats: " +
name_ +
" #distinct=" + stats_.getNumDistinctValues());
62 return statsDataCompatibleWithColType;
66 stats_.update(
type_, statsData);
71 return Objects.toStringHelper(this.getClass())
80 String comment = columnDesc.isSetComment() ? columnDesc.
getComment() : null;
81 Preconditions.checkState(columnDesc.isSetPosition());
82 int position = columnDesc.getPosition();
84 if (columnDesc.isIs_hbase_column()) {
87 Preconditions.checkState(columnDesc.isSetColumn_family());
88 Preconditions.checkState(columnDesc.isSetIs_binary());
89 col =
new HBaseColumn(columnDesc.getColumnName(), columnDesc.getColumn_family(),
90 columnDesc.getColumn_qualifier(), columnDesc.isIs_binary(),
94 col =
new Column(columnDesc.getColumnName(),
95 Type.fromThrift(columnDesc.getColumnType()), comment, position);
97 if (columnDesc.isSetCol_stats()) col.updateStats(columnDesc.getCol_stats());
105 colDesc.setCol_stats(
getStats().toThrift());
Column(String name, Type type, int position)
Column(String name, Type type, String comment, int position)
static Type fromThrift(TColumnType thrift)
void updateStats(TColumnStats statsData)
void setPosition(int position)
boolean updateStats(ColumnStatisticsData statsData)
static Column fromThrift(TColumn columnDesc)