diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/VariableMgr.java b/fe/fe-core/src/main/java/org/apache/doris/qe/VariableMgr.java index 170c86e47ea330..7b797ea84a273c 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/VariableMgr.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/VariableMgr.java @@ -691,7 +691,8 @@ public static String getDefaultValue(String key) { // Dump all fields. Used for `show variables` public static List> dump(SetType type, SessionVariable sessionVar, PatternMatcher matcher) { - List> rows = Lists.newArrayList(); + List> changedRows = Lists.newArrayList(); + List> defaultRows = Lists.newArrayList(); // Hold the read lock when session dump, because this option need to access global variable. rlock.lock(); try { @@ -732,23 +733,35 @@ public static List> dump(SetType type, SessionVariable sessionVar, } else { row.add(varContext.defaultValue); } - row.add(row.get(1).equals(row.get(2)) ? "0" : "1"); - - rows.add(row); + if (row.get(1).equals(row.get(2))) { + row.add("0"); + defaultRows.add(row); + } else { + row.add("1"); + changedRows.add(row); + } } } finally { rlock.unlock(); } // Sort all variables by variable name. - Collections.sort(rows, new Comparator>() { + Collections.sort(changedRows, new Comparator>() { + @Override + public int compare(List o1, List o2) { + return o1.get(0).compareTo(o2.get(0)); + } + }); + + Collections.sort(defaultRows, new Comparator>() { @Override public int compare(List o1, List o2) { return o1.get(0).compareTo(o2.get(0)); } }); - return rows; + changedRows.addAll(defaultRows); + return changedRows; } @Retention(RetentionPolicy.RUNTIME)