From fb1a12c6d2848dc1ab7087a237307cbb1c130ed2 Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Fri, 6 May 2022 12:53:04 -0700 Subject: [PATCH] Don't query for unsupported properties (#1471) * Don't query for unsupported properties * add using --- .../ReliableConnectionHelper.cs | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/Microsoft.SqlTools.ManagedBatchParser/ReliableConnection/ReliableConnectionHelper.cs b/src/Microsoft.SqlTools.ManagedBatchParser/ReliableConnection/ReliableConnectionHelper.cs index 94a84adf..2a056b25 100644 --- a/src/Microsoft.SqlTools.ManagedBatchParser/ReliableConnection/ReliableConnectionHelper.cs +++ b/src/Microsoft.SqlTools.ManagedBatchParser/ReliableConnection/ReliableConnectionHelper.cs @@ -14,6 +14,7 @@ using System.Security; using Microsoft.SqlTools.Utility; using Microsoft.SqlServer.Management.Common; using Microsoft.SqlServer.Management.Smo; +using System.Linq; namespace Microsoft.SqlTools.ServiceLayer.Connection.ReliableConnection { @@ -795,9 +796,24 @@ namespace Microsoft.SqlTools.ServiceLayer.Connection.ReliableConnection { SqlConnection sqlConnection = GetAsSqlConnection(connection); var server = new Server(new ServerConnection(sqlConnection)); - server.SetDefaultInitFields(server.GetType(), new String[] { nameof(server.Processors), nameof(server.PhysicalMemory) }); - sysInfo.CpuCount = server.Processors; - sysInfo.PhysicalMemoryInMB = server.PhysicalMemory; + var defaultFields = new List(); + var isProcessorsSupported = server.IsSupportedProperty(nameof(server.Processors)); + if (isProcessorsSupported) + { + defaultFields.Add(nameof(server.Processors)); + } + var isPhysicalMemorySupported = server.IsSupportedProperty(nameof(server.PhysicalMemory)); + if (isPhysicalMemorySupported) + { + defaultFields.Add(nameof(server.PhysicalMemory)); + } + if (defaultFields.Any()) + { + server.SetDefaultInitFields(server.GetType(), defaultFields.ToArray()); + } + + sysInfo.CpuCount = isProcessorsSupported ? server.Processors as int? : null; + sysInfo.PhysicalMemoryInMB = isPhysicalMemorySupported ? server.PhysicalMemory as int? : null; } catch (Exception ex) {