in fastmodel-transform/fastmodel-transform-adbpg/src/main/java/com/aliyun/fastmodel/transform/adbpg/client/converter/AdbPostgreSQLClientConverter.java [314:387]
private BaseSubPartition toBaseSubPartition(SubPartitionClient s) {
if (s instanceof SubListPartitionClient) {
SubListPartitionClient subListPartitionClient = (SubListPartitionClient)s;
BaseExpression expression = null;
if (subListPartitionClient.getExpression() != null) {
expression = (BaseExpression)getLanguageParser().parseExpression(subListPartitionClient.getExpression());
}
List<Identifier> columnList = null;
if (subListPartitionClient.getColumnList() != null) {
columnList = subListPartitionClient.getColumnList().stream().map(Identifier::new).collect(Collectors.toList());
}
return new SubListPartition(expression, columnList);
}
if (s instanceof SubRangePartitionClient) {
SubRangePartitionClient subRangePartitionClient = (SubRangePartitionClient)s;
BaseExpression expression = null;
if (subRangePartitionClient.getExpression() != null) {
expression = (BaseExpression)getLanguageParser().parseExpression(subRangePartitionClient.getExpression());
}
List<Identifier> columnList = null;
if (subRangePartitionClient.getColumnList() != null) {
columnList = subRangePartitionClient.getColumnList().stream().map(Identifier::new).collect(Collectors.toList());
}
List<BasePartitionElement> singleRangePartitionList = null;
if (subRangePartitionClient.getSingleRangePartitionList() != null) {
singleRangePartitionList = subRangePartitionClient.getSingleRangePartitionList().stream().map(this::toRangePartitionElement).collect(
Collectors.toList());
}
return new SubRangePartition(expression, columnList, singleRangePartitionList);
}
if (s instanceof SubListTemplatePartitionClient) {
SubListTemplatePartitionClient subListTemplatePartitionClient = (SubListTemplatePartitionClient)s;
BaseExpression expression = null;
if (subListTemplatePartitionClient.getExpression() != null) {
expression = (BaseExpression)getLanguageParser().parseExpression(subListTemplatePartitionClient.getExpression());
}
List<Identifier> columnList = null;
if (subListTemplatePartitionClient.getColumnList() != null) {
columnList = subListTemplatePartitionClient.getColumnList().stream().map(Identifier::new).collect(Collectors.toList());
}
SubPartitionList subPartitionList = null;
if (subListTemplatePartitionClient.getSubPartitionElementClients() != null) {
List<BaseSubPartitionElement> subPartitionElements = subListTemplatePartitionClient.getSubPartitionElementClients()
.stream()
.map(this::toBaseSubPartitionElement)
.collect(Collectors.toList());
subPartitionList = new SubPartitionList(subPartitionElements);
}
return new SubListTemplatePartition(expression, columnList, subPartitionList);
}
if (s instanceof SubRangeTemplatePartitionClient) {
SubRangeTemplatePartitionClient subRangeTemplatePartitionClient = (SubRangeTemplatePartitionClient)s;
BaseExpression expression = null;
if (subRangeTemplatePartitionClient.getExpression() != null) {
expression = (BaseExpression)getLanguageParser().parseExpression(subRangeTemplatePartitionClient.getExpression());
}
List<Identifier> columnList = null;
if (subRangeTemplatePartitionClient.getColumnList() != null) {
columnList = subRangeTemplatePartitionClient.getColumnList().stream().map(Identifier::new).collect(Collectors.toList());
}
SubPartitionList subPartitionList = null;
if (subRangeTemplatePartitionClient.getSubPartitionElementClients() != null) {
List<BaseSubPartitionElement> subPartitionElements = subRangeTemplatePartitionClient.getSubPartitionElementClients()
.stream()
.map(this::toBaseSubPartitionElement)
.collect(Collectors.toList());
subPartitionList = new SubPartitionList(subPartitionElements);
}
return new SubRangeTemplatePartition(expression, columnList, subPartitionList);
}
return null;
}