code: func checkAddPartitionValue(meta *model.TableInfo, part *model.PartitionInfo) error {
  	if meta.Partition.Type == model.PartitionTypeRange && len(meta.Partition.Columns) == 0 {
  		newDefs, oldDefs := part.Definitions, meta.Partition.Definitions
  		rangeValue := oldDefs[len(oldDefs)-1].LessThan[0]
  		if strings.EqualFold(rangeValue, "MAXVALUE") {
  			return errors.Trace(ErrPartitionMaxvalue)
  		}
  
  		currentRangeValue, err := strconv.Atoi(rangeValue)
  		if err != nil {
  			return errors.Trace(err)
  		}
  
  		for i := 0; i < len(newDefs); i++ {
  			ifMaxvalue := strings.EqualFold(newDefs[i].LessThan[0], "MAXVALUE")
  			if ifMaxvalue && i == len(newDefs)-1 {
  				return nil
  			} else if ifMaxvalue && i != len(newDefs)-1 {
  				return errors.Trace(ErrPartitionMaxvalue)
  			}
  
  			nextRangeValue, err := strconv.Atoi(newDefs[i].LessThan[0])
  			if err != nil {
  				return errors.Trace(err)
  			}
  			if nextRangeValue <= currentRangeValue {
  				return errors.Trace(ErrRangeNotIncreasing)
  			}
  			currentRangeValue = nextRangeValue
  		}
  	}
  	return nil
  }
docs: // checkAddPartitionValue values less than value must be strictly increasing for each partition.