@Test(timeout=2000) public void testBigDecimalSplitter() throws Exception{ BigDecimalSplitter splitter = new BigDecimalSplitter(); ResultSet result = mock(ResultSet.class); List<InputSplit> splits = splitter.split(configuration, result, "column"); assertSplits(new String[] {".*column IS NULL"}, splits); when(result.getString(1)).thenReturn("result1"); when(result.getString(2)).thenReturn("result2"); when(result.getBigDecimal(1)).thenReturn(new BigDecimal(10)); when(result.getBigDecimal(2)).thenReturn(new BigDecimal(12)); splits = splitter.split(configuration, result, "column1"); assertSplits(new String[] {"column1 >= 10 column1 < 11", "column1 >= 11 column1 <= 12"}, splits); }
case Types.NUMERIC: case Types.DECIMAL: return new BigDecimalSplitter();
List<BigDecimal> splitPoints = split(numSplits, minVal, maxVal); List<InputSplit> splits = new ArrayList<InputSplit>();
BigDecimal splitSize = tryDivide(maxVal.subtract(minVal), (numSplits)); if (splitSize.compareTo(MIN_INCREMENT) < 0) { splitSize = MIN_INCREMENT;
case Types.NUMERIC: case Types.DECIMAL: return new BigDecimalSplitter();
List<BigDecimal> splitPoints = split(numSplits, minVal, maxVal); List<InputSplit> splits = new ArrayList<InputSplit>();
BigDecimal splitSize = tryDivide(maxVal.subtract(minVal), (numSplits)); if (splitSize.compareTo(MIN_INCREMENT) < 0) { splitSize = MIN_INCREMENT;
case Types.NUMERIC: case Types.DECIMAL: return new BigDecimalSplitter();
List<BigDecimal> splitPoints = split(numSplits, minVal, maxVal); List<InputSplit> splits = new ArrayList<InputSplit>();
BigDecimal splitSize = tryDivide(maxVal.subtract(minVal), (numSplits)); if (splitSize.compareTo(MIN_INCREMENT) < 0) { splitSize = MIN_INCREMENT;
case Types.NUMERIC: case Types.DECIMAL: return new BigDecimalSplitter();
List<BigDecimal> splitPoints = split(numSplits, minVal, maxVal); List<InputSplit> splits = new ArrayList<InputSplit>();
BigDecimal splitSize = tryDivide(maxVal.subtract(minVal), (numSplits)); if (splitSize.compareTo(MIN_INCREMENT) < 0) { splitSize = MIN_INCREMENT;
case Types.NUMERIC: case Types.DECIMAL: return new BigDecimalSplitter();
List<BigDecimal> splitPoints = split(numSplits, minVal, maxVal); List<InputSplit> splits = new ArrayList<InputSplit>();
BigDecimal splitSize = tryDivide(maxVal.subtract(minVal), (numSplits)); if (splitSize.compareTo(MIN_INCREMENT) < 0) { splitSize = MIN_INCREMENT;