This is an automated email from the ASF dual-hosted git repository. morningman pushed a commit to branch branch-2.1 in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.1 by this push: new bbf7701046e [fix](catalog) hide some properties in show create catalog stmt (#39946) (#39970) bbf7701046e is described below commit bbf7701046e1abc098e9c72b53ab866523a447cc Author: Mingyu Chen <morning...@163.com> AuthorDate: Tue Aug 27 16:46:12 2024 +0800 [fix](catalog) hide some properties in show create catalog stmt (#39946) (#39970) bp #39946 --- .../java/org/apache/doris/analysis/CreateCatalogStmt.java | 4 ++-- .../java/org/apache/doris/common/util/PrintableMap.java | 7 ++++++- .../main/java/org/apache/doris/datasource/CatalogMgr.java | 14 ++++++++------ .../java/org/apache/doris/datasource/ExternalCatalog.java | 6 ++++++ .../java/org/apache/doris/datasource/CatalogMgrTest.java | 7 +++++-- 5 files changed, 27 insertions(+), 11 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateCatalogStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateCatalogStmt.java index 720df2dbedc..89486d8033f 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateCatalogStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateCatalogStmt.java @@ -26,6 +26,7 @@ import org.apache.doris.common.UserException; import org.apache.doris.common.util.PrintableMap; import org.apache.doris.common.util.PropertyAnalyzer; import org.apache.doris.common.util.Util; +import org.apache.doris.datasource.ExternalCatalog; import org.apache.doris.datasource.InternalCatalog; import org.apache.doris.mysql.privilege.PrivPredicate; import org.apache.doris.qe.ConnectContext; @@ -41,7 +42,6 @@ import java.util.Map; * Statement for create a new catalog. */ public class CreateCatalogStmt extends DdlStmt { - public static final String CREATE_TIME_PROP = "create_time"; private final boolean ifNotExists; private final String catalogName; private final String resource; @@ -101,7 +101,7 @@ public class CreateCatalogStmt extends DdlStmt { } String currentDateTime = LocalDateTime.now(ZoneId.systemDefault()).toString().replace("T", " "); - properties.put(CREATE_TIME_PROP, currentDateTime); + properties.put(ExternalCatalog.CREATE_TIME, currentDateTime); PropertyAnalyzer.checkCatalogProperties(properties, false); } diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/util/PrintableMap.java b/fe/fe-core/src/main/java/org/apache/doris/common/util/PrintableMap.java index 734f0ae2268..3ad8274d664 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/common/util/PrintableMap.java +++ b/fe/fe-core/src/main/java/org/apache/doris/common/util/PrintableMap.java @@ -43,6 +43,7 @@ public class PrintableMap<K, V> { private boolean wrap; private boolean hidePassword; private String entryDelimiter = ","; + private Set<String> additionalHiddenKeys = Sets.newHashSet(); public static final Set<String> SENSITIVE_KEY; public static final Set<String> HIDDEN_KEY; @@ -98,6 +99,10 @@ public class PrintableMap<K, V> { this.hidePassword = hidePassword; } + public void setAdditionalHiddenKeys(Set<String> additionalHiddenKeys) { + this.additionalHiddenKeys = additionalHiddenKeys; + } + @Override public String toString() { if (map == null) { @@ -119,7 +124,7 @@ public class PrintableMap<K, V> { List<Map.Entry<K, V>> entries = new ArrayList<>(); while (iter.hasNext()) { Map.Entry<K, V> entry = iter.next(); - if (!HIDDEN_KEY.contains(entry.getKey())) { + if (!HIDDEN_KEY.contains(entry.getKey()) && !additionalHiddenKeys.contains(entry.getKey())) { entries.add(entry); } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/CatalogMgr.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/CatalogMgr.java index 6989ec23851..a24d2db022a 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/CatalogMgr.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/CatalogMgr.java @@ -36,6 +36,7 @@ import org.apache.doris.common.CaseSensibility; import org.apache.doris.common.DdlException; import org.apache.doris.common.ErrorCode; import org.apache.doris.common.ErrorReport; +import org.apache.doris.common.FeConstants; import org.apache.doris.common.PatternMatcher; import org.apache.doris.common.PatternMatcherWrapper; import org.apache.doris.common.UserException; @@ -88,8 +89,6 @@ public class CatalogMgr implements Writable, GsonPostProcessable { public static final String METADATA_REFRESH_INTERVAL_SEC = "metadata_refresh_interval_sec"; public static final String CATALOG_TYPE_PROP = "type"; - private static final String YES = "yes"; - private final MonitoredReentrantReadWriteLock lock = new MonitoredReentrantReadWriteLock(true); @SerializedName(value = "idToCatalog") @@ -384,12 +383,12 @@ public class CatalogMgr implements Writable, GsonPostProcessable { row.add(name); row.add(catalog.getType()); if (name.equals(currentCtlg)) { - row.add(YES); + row.add("Yes"); } else { - row.add(""); + row.add("No"); } Map<String, String> props = catalog.getProperties(); - String createTime = props.getOrDefault(CreateCatalogStmt.CREATE_TIME_PROP, "UNRECORDED"); + String createTime = props.getOrDefault(ExternalCatalog.CREATE_TIME, FeConstants.null_string); row.add(createTime); row.add(TimeUtils.longToTimeString(catalog.getLastUpdateTime())); row.add(catalog.getComment()); @@ -450,7 +449,10 @@ public class CatalogMgr implements Writable, GsonPostProcessable { } if (catalog.getProperties().size() > 0) { sb.append(" PROPERTIES (\n"); - sb.append(new PrintableMap<>(catalog.getProperties(), "=", true, true, true, true)); + PrintableMap<String, String> printableMap = new PrintableMap<>(catalog.getProperties(), "=", true, true, + true, true); + printableMap.setAdditionalHiddenKeys(ExternalCatalog.HIDDEN_PROPERTIES); + sb.append(printableMap); sb.append("\n);"); } diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java index b36644cde71..f6e5a570cc9 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java @@ -99,8 +99,14 @@ public abstract class ExternalCatalog public static final String DORIS_VERSION = "doris.version"; public static final String DORIS_VERSION_VALUE = Version.DORIS_BUILD_VERSION + "-" + Version.DORIS_BUILD_SHORT_HASH; public static final String USE_META_CACHE = "use_meta_cache"; + public static final String CREATE_TIME = "create_time"; public static final boolean DEFAULT_USE_META_CACHE = true; + // Properties that should not be shown in the `show create catalog` result + public static final Set<String> HIDDEN_PROPERTIES = Sets.newHashSet( + CREATE_TIME, + USE_META_CACHE); + // Unique id of this catalog, will be assigned after catalog is loaded. @SerializedName(value = "id") protected long id; diff --git a/fe/fe-core/src/test/java/org/apache/doris/datasource/CatalogMgrTest.java b/fe/fe-core/src/test/java/org/apache/doris/datasource/CatalogMgrTest.java index fa546cccec9..aa5fa313be3 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/datasource/CatalogMgrTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/datasource/CatalogMgrTest.java @@ -269,6 +269,8 @@ public class CatalogMgrTest extends TestWithFeService { List<String> result = showResultSet.getResultRows().get(0); Assertions.assertEquals("my_catalog", result.get(0)); Assertions.assertTrue(result.get(1).startsWith("\nCREATE CATALOG `my_catalog`\nCOMMENT \"hms comment\"\n PROPERTIES (")); + Assertions.assertTrue(!result.get(1).contains(ExternalCatalog.CREATE_TIME)); + Assertions.assertTrue(!result.get(1).contains(ExternalCatalog.USE_META_CACHE)); testCatalogMgrPersist(); @@ -355,7 +357,8 @@ public class CatalogMgrTest extends TestWithFeService { String showCatalogSql = "SHOW CATALOGS"; ShowCatalogStmt showStmt = (ShowCatalogStmt) parseAndAnalyzeStmt(showCatalogSql); ShowResultSet showResultSet = mgr.showCatalogs(showStmt, user2Ctx.getCurrentCatalog().getName()); - Assertions.assertEquals("yes", showResultSet.getResultRows().get(1).get(3)); + Assertions.assertEquals("Yes", showResultSet.getResultRows().get(1).get(3)); + Assertions.assertEquals("No", showResultSet.getResultRows().get(0).get(3)); // user2 can switch to hive SwitchStmt switchHive = (SwitchStmt) parseAndAnalyzeStmt("switch hive;", user2Ctx); @@ -365,7 +368,7 @@ public class CatalogMgrTest extends TestWithFeService { showCatalogSql = "SHOW CATALOGS"; showStmt = (ShowCatalogStmt) parseAndAnalyzeStmt(showCatalogSql); showResultSet = mgr.showCatalogs(showStmt, user2Ctx.getCurrentCatalog().getName()); - Assertions.assertEquals("yes", showResultSet.getResultRows().get(0).get(3)); + Assertions.assertEquals("Yes", showResultSet.getResultRows().get(0).get(3)); } @Test --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org