/** * Returns the number of partitions for the specified column. * If segment partition config does not exist, returns {@link SegmentPartitionConfig#INVALID_NUM_PARTITIONS}. * * @param column Column for which to to return the number of partitions. * @return Number of partitions for the column. */ public int getNumPartitions(String column) { return (_segmentPartitionConfig != null) ? _segmentPartitionConfig.getNumPartitions(column) : SegmentPartitionConfig.INVALID_NUM_PARTITIONS; }
@Nullable public PartitionFunction getPartitionFunction(String column) { if (_segmentPartitionConfig == null) { return null; } String functionName = _segmentPartitionConfig.getFunctionName(column); int numPartitions = _segmentPartitionConfig.getNumPartitions(column); return (functionName != null) ? PartitionFunctionFactory.getPartitionFunction(functionName, numPartitions) : null; }
if (partitionColumn != null) { numColumnPartitions = tableConfig.getIndexingConfig().getSegmentPartitionConfig().getNumPartitions(partitionColumn);
@Test public void testSegmentPartitionConfig() throws IOException { int numColumns = 5; Map<String, ColumnPartitionConfig> expectedColumnPartitionMap = new HashMap<>(5); for (int i = 0; i < numColumns; i++) { expectedColumnPartitionMap.put("column_" + i, new ColumnPartitionConfig("function_" + i, i + 1)); } SegmentPartitionConfig expectedPartitionConfig = new SegmentPartitionConfig(expectedColumnPartitionMap); IndexingConfig expectedIndexingConfig = new IndexingConfig(); expectedIndexingConfig.setSegmentPartitionConfig(expectedPartitionConfig); IndexingConfig actualIndexingConfig = JsonUtils.stringToObject(JsonUtils.objectToString(expectedIndexingConfig), IndexingConfig.class); SegmentPartitionConfig actualPartitionConfig = actualIndexingConfig.getSegmentPartitionConfig(); Map<String, ColumnPartitionConfig> actualColumnPartitionMap = actualPartitionConfig.getColumnPartitionMap(); assertEquals(actualColumnPartitionMap.size(), expectedColumnPartitionMap.size()); for (String column : expectedColumnPartitionMap.keySet()) { assertEquals(actualPartitionConfig.getFunctionName(column), expectedPartitionConfig.getFunctionName(column)); assertEquals(actualPartitionConfig.getNumPartitions(column), expectedPartitionConfig.getNumPartitions(column)); } }