[jOOQ/jOOQ#8589] Unstable code generation in PostgreSQL regexp_split_to_table function

This commit is contained in:
Lukas Eder 2020-08-26 12:50:56 +02:00
parent 7837875e12
commit 192be43181

View File

@ -37,6 +37,8 @@
*/
package org.jooq.meta;
import static org.jooq.tools.StringUtils.defaultIfNull;
import java.util.Comparator;
/**
@ -89,6 +91,8 @@ public class DefaultOrderProvider implements Comparator<Definition> {
return compare0((AttributeDefinition) o1, (AttributeDefinition) o2);
else if (o1 instanceof IndexColumnDefinition && o2 instanceof IndexColumnDefinition)
return compare0((IndexColumnDefinition) o1, (IndexColumnDefinition) o2);
else if (o1 instanceof RoutineDefinition && o2 instanceof RoutineDefinition)
return compare0((RoutineDefinition) o1, (RoutineDefinition) o2);
else if (o1 instanceof ParameterDefinition && o2 instanceof ParameterDefinition)
return compare0((ParameterDefinition) o1, (ParameterDefinition) o2);
else if (o1 instanceof ConstraintDefinition && o2 instanceof ConstraintDefinition)
@ -101,6 +105,11 @@ public class DefaultOrderProvider implements Comparator<Definition> {
return o1.getQualifiedInputName().compareToIgnoreCase(o2.getQualifiedInputName());
}
private int compare0(RoutineDefinition r1, RoutineDefinition r2) {
int result = compare0((Definition) r1, (Definition) r2);
return result != 0 ? result : defaultIfNull(r1.getOverload(), "").compareTo(defaultIfNull(r2.getOverload(), ""));
}
private int compare0(PositionedDefinition i1, PositionedDefinition i2) {
return Integer.valueOf(i1.getPosition()).compareTo(i2.getPosition());
}