From 7f310cec9c9a4f3ce154211e8d982ad30f8e173e Mon Sep 17 00:00:00 2001 From: minghong Date: Fri, 22 Dec 2023 14:45:33 +0800 Subject: [PATCH] [opt](sessionVar)show changed sessoin var first #28840 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit “show variables” command list changed vars before not changed vars, --- .../java/org/apache/doris/qe/VariableMgr.java | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) 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 170c86e47e..7b797ea84a 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 class VariableMgr { // 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 class VariableMgr { } 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)); } }); - return rows; + Collections.sort(defaultRows, new Comparator>() { + @Override + public int compare(List o1, List o2) { + return o1.get(0).compareTo(o2.get(0)); + } + }); + + changedRows.addAll(defaultRows); + return changedRows; } @Retention(RetentionPolicy.RUNTIME)