From 5ad48a59f1eab791daf0f3c3285b3fc3aedbde68 Mon Sep 17 00:00:00 2001
From: Cheena Malhotra <13396919+cheenamalhotra@users.noreply.github.com>
Date: Thu, 5 Jan 2023 12:00:14 -0800
Subject: [PATCH] Exclude isLedger property check for Azure DBs for improving
OE nodes expansion perf (#1798)
---
.../ObjectExplorer/SmoModel/SmoDatabaseCustomNode.cs | 8 ++++++--
.../ObjectExplorer/SmoModel/SmoTreeNodes.cs | 5 +++++
.../ObjectExplorer/SmoModel/SmoTreeNodesDefinition.xml | 3 +++
3 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoDatabaseCustomNode.cs b/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoDatabaseCustomNode.cs
index 2bd4201b..59cd678b 100644
--- a/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoDatabaseCustomNode.cs
+++ b/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoDatabaseCustomNode.cs
@@ -4,8 +4,11 @@
//
using System.Collections.Generic;
+using Microsoft.SqlTools.Utility;
using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlTools.ServiceLayer.ObjectExplorer.Nodes;
+using System.Diagnostics;
+using System;
namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
{
@@ -35,14 +38,15 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
try
{
Database? db = smoObject as Database;
- if (db != null && IsPropertySupported("IsLedger", smoContext, db, CachedSmoProperties) && db.IsLedger)
+ if (db != null && IsPropertySupported(nameof(db.IsLedger), smoContext, db, CachedSmoProperties) && db.IsLedger)
{
return "Ledger";
}
}
- catch
+ catch (Exception e)
{
//Ignore the exception and just not change create custom name
+ Logger.Write(TraceEventType.Verbose, $"Error ignored when reading node subtype: {e.Message}");
}
return string.Empty;
diff --git a/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoTreeNodes.cs b/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoTreeNodes.cs
index 2ecf3587..bf151676 100644
--- a/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoTreeNodes.cs
+++ b/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoTreeNodes.cs
@@ -213,6 +213,11 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
Name = "Status",
ValidFor = ValidForFlag.All
});
+ properties.Add(new NodeSmoProperty
+ {
+ Name = "IsLedger",
+ ValidFor = ValidForFlag.AllOnPrem
+ });
return properties;
}
}
diff --git a/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoTreeNodesDefinition.xml b/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoTreeNodesDefinition.xml
index 16241eb1..a5d50207 100644
--- a/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoTreeNodesDefinition.xml
+++ b/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoTreeNodesDefinition.xml
@@ -11,6 +11,9 @@
+
+