diff --git a/Packages.props b/Packages.props index a2f97a26..b9630778 100644 --- a/Packages.props +++ b/Packages.props @@ -18,7 +18,7 @@ - + diff --git a/src/Microsoft.SqlTools.CoreServices/Connection/ReliableConnection/ReliableConnectionHelper.cs b/src/Microsoft.SqlTools.CoreServices/Connection/ReliableConnection/ReliableConnectionHelper.cs index 1e67ea31..3c856e94 100644 --- a/src/Microsoft.SqlTools.CoreServices/Connection/ReliableConnection/ReliableConnectionHelper.cs +++ b/src/Microsoft.SqlTools.CoreServices/Connection/ReliableConnection/ReliableConnectionHelper.cs @@ -39,6 +39,7 @@ namespace Microsoft.SqlTools.CoreServices.Connection.ReliableConnection (int)DatabaseEngineEdition.SqlDatabase, (int)DatabaseEngineEdition.SqlDataWarehouse, (int)DatabaseEngineEdition.SqlStretchDatabase, + (int)DatabaseEngineEdition.SqlOnDemand, // Note: for now, ignoring managed instance as it should be treated just like on prem. }); diff --git a/src/Microsoft.SqlTools.ManagedBatchParser/ReliableConnection/ReliableConnectionHelper.cs b/src/Microsoft.SqlTools.ManagedBatchParser/ReliableConnection/ReliableConnectionHelper.cs index 55a55c00..247153be 100644 --- a/src/Microsoft.SqlTools.ManagedBatchParser/ReliableConnection/ReliableConnectionHelper.cs +++ b/src/Microsoft.SqlTools.ManagedBatchParser/ReliableConnection/ReliableConnectionHelper.cs @@ -39,6 +39,7 @@ namespace Microsoft.SqlTools.ServiceLayer.Connection.ReliableConnection (int)DatabaseEngineEdition.SqlDatabase, (int)DatabaseEngineEdition.SqlDataWarehouse, (int)DatabaseEngineEdition.SqlStretchDatabase, + (int)DatabaseEngineEdition.SqlOnDemand, // Note: for now, ignoring managed instance as it should be treated just like on prem. }); diff --git a/src/Microsoft.SqlTools.ServiceLayer/Admin/Database/DatabasePrototype.cs b/src/Microsoft.SqlTools.ServiceLayer/Admin/Database/DatabasePrototype.cs index ffec8701..cca2e871 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/Admin/Database/DatabasePrototype.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/Admin/Database/DatabasePrototype.cs @@ -280,7 +280,7 @@ namespace Microsoft.SqlTools.ServiceLayer.Admin SELECT so.name as configured_slo_name, so2.name as current_slo_name FROM dbo.slo_database_objectives do INNER JOIN dbo.slo_service_objectives so ON do.configured_objective_id = so.objective_id - INNER JOIN dbo.slo_service_objectives so2 ON do.current_objective_id = so2.objective_id + INNER JOIN dbo.slo_service_objectives so2 ON do.current_objective_id = so2.objective_id WHERE do.database_id = @DbID "; @@ -586,7 +586,8 @@ WHERE do.database_id = @DbID } //Only fill in the Azure properties when connected to an Azure server - if (context.Server.ServerType == DatabaseEngineType.SqlAzureDatabase) + if (context.Server.ServerType == DatabaseEngineType.SqlAzureDatabase + && context.Server.DatabaseEngineEdition != DatabaseEngineEdition.SqlOnDemand) { this.azureEditionDisplayValue = db.AzureEdition; AzureEdition edition; diff --git a/src/Microsoft.SqlTools.ServiceLayer/Connection/ConnectionInfo.cs b/src/Microsoft.SqlTools.ServiceLayer/Connection/ConnectionInfo.cs index 49a561f1..59445a12 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/Connection/ConnectionInfo.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/Connection/ConnectionInfo.cs @@ -7,6 +7,7 @@ using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Data.Common; +using Microsoft.SqlServer.Management.Common; using Microsoft.SqlTools.ServiceLayer.Connection.Contracts; using Microsoft.SqlTools.Utility; @@ -76,6 +77,11 @@ namespace Microsoft.SqlTools.ServiceLayer.Connection /// public bool IsSqlDW { get; set; } + /// + /// Returns the connection Engine Edition + /// + public DatabaseEngineEdition EngineEdition { get; set; } + /// /// Returns the major version number of the db we are connected to /// diff --git a/src/Microsoft.SqlTools.ServiceLayer/Connection/ConnectionService.cs b/src/Microsoft.SqlTools.ServiceLayer/Connection/ConnectionService.cs index 75bb4fa7..2ffa682e 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/Connection/ConnectionService.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/Connection/ConnectionService.cs @@ -472,6 +472,7 @@ namespace Microsoft.SqlTools.ServiceLayer.Connection connectionInfo.MajorVersion = serverInfo.ServerMajorVersion; connectionInfo.IsSqlDb = serverInfo.EngineEditionId == (int)DatabaseEngineEdition.SqlDatabase; connectionInfo.IsSqlDW = (serverInfo.EngineEditionId == (int)DatabaseEngineEdition.SqlDataWarehouse); + connectionInfo.EngineEdition = (DatabaseEngineEdition) serverInfo.EngineEditionId; } catch (Exception ex) { diff --git a/src/Microsoft.SqlTools.ServiceLayer/Connection/ListDatabaseRequestHandler.cs b/src/Microsoft.SqlTools.ServiceLayer/Connection/ListDatabaseRequestHandler.cs index 006bcdf4..e71d3525 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/Connection/ListDatabaseRequestHandler.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/Connection/ListDatabaseRequestHandler.cs @@ -7,6 +7,7 @@ using System.Collections.Generic; using System.Data; using System.Data.Common; using System.Linq; +using Microsoft.SqlServer.Management.Common; using Microsoft.SqlTools.ServiceLayer.Admin.Contracts; using Microsoft.SqlTools.ServiceLayer.Connection.Contracts; @@ -25,9 +26,9 @@ namespace Microsoft.SqlTools.ServiceLayer.Connection /// static class ListDatabaseRequestHandlerFactory { - public static IListDatabaseRequestHandler getHandler(bool includeDetails, bool isSqlDB) + public static IListDatabaseRequestHandler getHandler(bool includeDetails, bool isSqlDB, ConnectionInfo connectionInfo = null) { - if (!includeDetails) + if (!includeDetails || connectionInfo?.EngineEdition == DatabaseEngineEdition.SqlOnDemand) { return new DatabaseNamesHandler(); } diff --git a/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/TreeNodeGenerator.cs b/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/TreeNodeGenerator.cs index 7857a956..1d13751d 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/TreeNodeGenerator.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/TreeNodeGenerator.cs @@ -265,7 +265,7 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel NodeType = "Folder", NodeTypeId = NodeTypes.ServerLevelServerRoles, IsSystemObject = false, - ValidFor = ValidForFlag.AllOnPrem|ValidForFlag.SqlOnDemand, + ValidFor = ValidForFlag.AllOnPrem, SortPriority = SmoTreeNode.NextSortPriority, }); currentChildren.Add(new FolderNode {