public Range<PartitionKey> handleNewSinglePartitionDesc(Map<ColumnId, Column> schema, SingleRangePartitionDesc desc,
                                                            long partitionId, boolean isTemp) throws DdlException {
        Range<PartitionKey> range;
        try {
            range = checkAndCreateRange(schema, desc, isTemp);
            setRangeInternal(partitionId, isTemp, range);
        } catch (IllegalArgumentException e) {
            // Range.closedOpen may throw this if (lower > upper)
            throw new DdlException("Invalid key range: " + e.getMessage());
        }
        idToDataProperty.put(partitionId, desc.getPartitionDataProperty());
        idToReplicationNum.put(partitionId, desc.getReplicationNum());
        idToInMemory.put(partitionId, desc.isInMemory());
        idToStorageCacheInfo.put(partitionId, desc.getDataCacheInfo());
        return range;
    }
@Test(expected = DdlException.class)
    public void testTinyInt() throws DdlException, AnalysisException {
        Column k1 = new Column("k1", new ScalarType(PrimitiveType.TINYINT), true, null, "", "");
        partitionColumns.add(k1);

        singleRangePartitionDescs.add(new SingleRangePartitionDesc(false, "p1",
                new PartitionKeyDesc(Lists.newArrayList(new PartitionValue("-128"))),
                null));

        partitionInfo = new RangePartitionInfo(partitionColumns);
        for (SingleRangePartitionDesc singleRangePartitionDesc : singleRangePartitionDescs) {
            singleRangePartitionDesc.analyze(1, null);
            partitionInfo.handleNewSinglePartitionDesc(MetaUtils.buildIdToColumn(partitionColumns),
                    singleRangePartitionDesc, 20000L, false);
        }
    }