in storage-jdbc/src/main/java/org/apache/rocketmq/schema/registry/storage/jdbc/handler/SchemaHandler.java [164:181]
public void deleteByVersion(QualifiedName name) {
SchemaInfo schemaInfo = getSchemaInfoBySubject(name.subjectFullName());
if (schemaInfo == null || schemaInfo.getDetails() == null || schemaInfo.getDetails().getSchemaRecords() == null) {
log.error(String.format("Schema %s does not exist, failed to delete according to version",
name.subjectFullName()));
return;
}
List<SubjectInfo> subjects = schemaInfo.getLastRecord().getSubjects();
List<SchemaRecordInfo> schemaRecords = schemaInfo.getDetails().getSchemaRecords();
schemaRecords.removeIf(record -> record.getVersion() == name.getVersion());
if (CollectionUtils.isEmpty(schemaRecords)) {
deleteBySubject(name);
}
if (schemaInfo.getLastRecord().getSubjects().isEmpty()) {
schemaInfo.getLastRecord().setSubjects(subjects);
}
updateSchema(schemaInfo);
}