@Override @Transactional public List<AnalyticsTable> getAnalyticsTables( Date earliest ) { AnalyticsTable table = getAnalyticsTable( getDataYears( earliest ), getDimensionColumns(), getValueColumns() ); return table.hasPartitionTables() ? Lists.newArrayList( table ) : Lists.newArrayList(); }
@Override @Transactional public List<AnalyticsTable> getAnalyticsTables( Date earliest ) { AnalyticsTable table = getAnalyticsTable( getDataYears( earliest ), getDimensionColumns( null ), getValueColumns() ); return table.hasPartitionTables() ? newArrayList( table ) : newArrayList(); }
/** * Returns a list of table partitions based on the given analytics tables. For * master tables with no partitions, a fake partition representing the master * table is used. * * @param tables the list of {@link AnalyticsTable}. * @return a list of {@link AnalyticsTablePartition}. */ public static List<AnalyticsTablePartition> getTablePartitions( List<AnalyticsTable> tables ) { final List<AnalyticsTablePartition> partitions = Lists.newArrayList(); for ( AnalyticsTable table : tables ) { if ( table.hasPartitionTables() ) { partitions.addAll( table.getPartitionTables() ); } else { // Fake partition representing the master table partitions.add( new AnalyticsTablePartition( table, null, null, null, false ) ); } } return partitions; }
@Override public List<AnalyticsTable> getAnalyticsTables( Date earliest ) { AnalyticsTable table = getAnalyticsTable( getDataYears( earliest ), getDimensionColumns(), getValueColumns() ); return table.hasPartitionTables() ? Lists.newArrayList( table ) : Lists.newArrayList(); }
@Override @Transactional public List<AnalyticsTable> getAnalyticsTables( Date earliest ) { log.info( String.format( "Get tables using earliest: %s, spatial support: %b", earliest, databaseInfo.isSpatialSupport() ) ); List<AnalyticsTable> tables = new ArrayList<>(); Calendar calendar = PeriodType.getCalendar(); String baseName = getTableName(); List<Program> programs = idObjectManager.getAllNoAcl( Program.class ); for ( Program program : programs ) { List<Integer> dataYears = getDataYears( program, earliest ); Collections.sort( dataYears ); AnalyticsTable table = new AnalyticsTable( baseName, getDimensionColumns( program ), Lists.newArrayList(), program ); for ( Integer year : dataYears ) { table.addPartitionTable( year, PartitionUtils.getStartDate( calendar, year ), PartitionUtils.getEndDate( calendar, year ) ); } if ( table.hasPartitionTables() ) { tables.add( table ); } } return tables; }