public BasicStats(List<BasicStats> partStats) { partish = null; List<Long> nrIn = Lists.newArrayList(); List<Long> dsIn = Lists.newArrayList(); state = (partStats.size() == 0) ? State.COMPLETE : null; for (BasicStats ps : partStats) { nrIn.add(ps.getNumRows()); dsIn.add(ps.getDataSize()); if (state == null) { state = ps.getState(); } else { state = state.merge(ps.getState()); } } currentNumRows = StatsUtils.getSumIgnoreNegatives(nrIn); currentDataSize = StatsUtils.getSumIgnoreNegatives(dsIn); }
if (nr > 0) { if (State.PARTIAL.morePreciseThan(bbs.getState())) { stats.setBasicStatsState(State.PARTIAL); stats.getColumnStatsState().equals(State.COMPLETE) && (!neededColsToRetrieve.isEmpty() || !partitionColsToRetrieve.isEmpty())) { throw new HiveException("Cache has been loaded in logical planning phase for all columns; "
stats.getBasicStatsState().equals(State.COMPLETE)) { stats.setBasicStatsState(State.PARTIAL);
public void updateColumnStatsState(State newState) { if (newState.equals(State.PARTIAL)) { columnStatsState = State.PARTIAL; } if (newState.equals(State.NONE)) { if (columnStatsState.equals(State.NONE)) { columnStatsState = State.NONE; } else { columnStatsState = State.PARTIAL; } } if (newState.equals(State.COMPLETE)) { if (columnStatsState.equals(State.PARTIAL)) { columnStatsState = State.PARTIAL; } else { columnStatsState = State.COMPLETE; } } }
stats.getBasicStatsState().equals(State.COMPLETE)) { stats.setBasicStatsState(State.PARTIAL);
@Override public void apply(BasicStats stats) { // FIXME: there were different logic for part/table; merge these logics later if (stats.partish.getPartition() == null) { if (stats.getNumRows() < 0 && avgRowSize > 0) { stats.setNumRows(stats.getDataSize() / avgRowSize); } } else { if (avgRowSize > 0) { long rc = stats.getNumRows(); long s = stats.getDataSize(); if (rc <= 0 && s > 0) { rc = s / avgRowSize; stats.setNumRows(rc); } if (s <= 0 && rc > 0) { s = StatsUtils.safeMult(rc, avgRowSize); stats.setDataSize(s); } } } if (stats.getNumRows() > 0) { // FIXME: this promotion process should be removed later if (State.PARTIAL.morePreciseThan(stats.state)) { stats.state = State.PARTIAL; } } } }
public void updateColumnStatsState(State newState) { if (newState.equals(State.PARTIAL)) { columnStatsState = State.PARTIAL; } if (newState.equals(State.NONE)) { if (columnStatsState.equals(State.NONE)) { columnStatsState = State.NONE; } else { columnStatsState = State.PARTIAL; } } if (newState.equals(State.COMPLETE)) { if (columnStatsState.equals(State.PARTIAL)) { columnStatsState = State.PARTIAL; } else { columnStatsState = State.COMPLETE; } } }
public static State inferColumnStatsState(State prevState, State newState) { if (newState.equals(State.PARTIAL)) { return State.PARTIAL; } if (newState.equals(State.NONE)) { if (prevState.equals(State.NONE)) { return State.NONE; } else { return State.PARTIAL; } } if (newState.equals(State.COMPLETE)) { if (prevState.equals(State.PARTIAL)) { return State.PARTIAL; } else { return State.COMPLETE; } } return prevState; }
public void setBasicStatsState(State basicStatsState) { updateBasicStatsState(); if (this.basicStatsState.morePreciseThan(basicStatsState)) { this.basicStatsState = basicStatsState; } }