Ledger Objects Representation in Object Explorer (#1615)

* support for ledger objects in OE

* generated sr files

* update versionKey to sql 2022 in test env config

* more 2019 to 2022 updates

* add sql2022 instead of replacing

* missed filter on table

* add logging

* more logging

* adding Script160Compat options for sql2022

Co-authored-by: Alan Ren <alanren@microsoft.com>
This commit is contained in:
Jordan Hays
2022-08-05 13:53:17 -04:00
committed by GitHub
parent 1789fd1233
commit d78ff94b31
25 changed files with 442 additions and 53 deletions

View File

@@ -50,12 +50,12 @@ namespace Microsoft.SqlTools.ServiceLayer.Test.Common
{
if (!string.IsNullOrEmpty(instance.Password))
{
if (!credentialService.SaveCredential(instance))
{
Console.WriteLine("Failed to store the password for server: " + instance.ServerName);
}
instance.Password = null; //Make sure the password is not stored in sqlConnectionSettings.json
instance.AuthenticationType = AuthenticationType.SqlLogin;
}
@@ -64,7 +64,7 @@ namespace Microsoft.SqlTools.ServiceLayer.Test.Common
instance.AuthenticationType = AuthenticationType.Integrated;
}
}
Console.WriteLine("The SQL connection instances will be written to " + DefaultSettingFileName);
string jsonContent = JsonConvert.SerializeObject(connectionSetting);
@@ -133,8 +133,9 @@ namespace Microsoft.SqlTools.ServiceLayer.Test.Common
{
testServerNameFilePath = FileUtils.TestServerNamesDefaultFileName;
}
Console.WriteLine($"Test server name file path: {testServerNameFilePath}");
string testServerNamesFileContent = string.IsNullOrEmpty(testServerNameFilePath) ? string.Empty : File.ReadAllText(testServerNameFilePath);
Console.WriteLine($"Test server name file content: {testServerNamesFileContent}");
return testServerNamesFileContent;
}
@@ -171,7 +172,7 @@ namespace Microsoft.SqlTools.ServiceLayer.Test.Common
}
string settingsFileContents = string.IsNullOrEmpty(settingsFileName) ? string.Empty : File.ReadAllText(settingsFileName);
Console.WriteLine($"SQL Connection settings file content: {settingsFileContents}");
return settingsFileContents;
}
}

View File

@@ -32,6 +32,7 @@ namespace Microsoft.SqlTools.ServiceLayer.Test.Common
public const string DefaultSqlAzureV12InstanceKey = "defaultSqlAzureV12";
public const string DefaultSql2016InstanceKey = "defaultSql2016";
public const string DefaultSql2019InstanceKey = "defaultSql2019";
public const string DefaultSql2022InstanceKey = "defaultSql2022";
public const string DefaultSqlvNextInstanceKey = "defaultSqlvNext";
private TestConnectionProfileService()
@@ -72,11 +73,16 @@ namespace Microsoft.SqlTools.ServiceLayer.Test.Common
get { return GetInstance(DefaultSql2016InstanceKey); }
}
public static InstanceInfo DefaultSql2019
public static InstanceInfo DefaultSql2019
{
get { return GetInstance(DefaultSql2019InstanceKey); }
}
public static InstanceInfo DefaultSql2022
{
get { return GetInstance(DefaultSql2022InstanceKey); }
}
public static InstanceInfo DefaultSqlvNext
{
get { return GetInstance(DefaultSqlvNextInstanceKey); }
@@ -93,7 +99,7 @@ namespace Microsoft.SqlTools.ServiceLayer.Test.Common
return instanceInfo;
}
public ConnectParams GetConnectionParameters(string key = DefaultSql2019InstanceKey, string databaseName = null)
public ConnectParams GetConnectionParameters(string key = DefaultSql2022InstanceKey, string databaseName = null)
{
InstanceInfo instanceInfo = GetInstance(key);
if (instanceInfo != null)
@@ -111,7 +117,7 @@ namespace Microsoft.SqlTools.ServiceLayer.Test.Common
public ConnectParams GetConnectionParameters(TestServerType serverType = TestServerType.OnPrem, string databaseName = null)
{
string key = ConvertServerTypeToVersionKey(serverType);
return GetConnectionParameters(key, databaseName);
return GetConnectionParameters(key, databaseName);
}
/// <summary>
@@ -134,7 +140,7 @@ namespace Microsoft.SqlTools.ServiceLayer.Test.Common
foreach (var serverIdentity in testServers)
{
var instance = settings != null ? settings.GetConnectionProfile(serverIdentity.ProfileName, serverIdentity.ServerName) : null;
if (instance.ServerType == TestServerType.None)
if (instance?.ServerType == TestServerType.None)
{
instance.ServerType = serverIdentity.ServerType;
AddInstance(instance);
@@ -149,7 +155,7 @@ namespace Microsoft.SqlTools.ServiceLayer.Test.Common
}
}
}
catch(Exception ex)
catch (Exception ex)
{
Assert.True(false, "Fail to load the SQL connection instances. error: " + ex.Message);
}
@@ -157,6 +163,7 @@ namespace Microsoft.SqlTools.ServiceLayer.Test.Common
private static void AddInstance(InstanceInfo instance)
{
Console.WriteLine($"Checking whether instance should be added to connections cache, server type: {instance.ServerType.ToString()}, version key: {instance.VersionKey}");
if (instance != null && (instance.ServerType != TestServerType.None || !string.IsNullOrEmpty(instance.VersionKey)))
{
TestServerType serverType = instance.ServerType == TestServerType.None ? TestServerType.OnPrem : instance.ServerType; //Default to onPrem
@@ -170,13 +177,22 @@ namespace Microsoft.SqlTools.ServiceLayer.Test.Common
instance.Password = credential.Password;
}
connectionProfilesCache.Add(versionKey, instance);
Console.WriteLine("Instance added.");
}
else
{
Console.WriteLine("Instance already in the cache.");
}
}
else
{
Console.WriteLine("Instance skipped.");
}
}
private static string ConvertServerTypeToVersionKey(TestServerType serverType)
{
return serverType == TestServerType.OnPrem ? DefaultSql2019InstanceKey : DefaultSqlAzureV12InstanceKey;
return serverType == TestServerType.OnPrem ? DefaultSql2022InstanceKey : DefaultSqlAzureV12InstanceKey;
}
/// <summary>

View File

@@ -51,6 +51,59 @@ NodeType: Index Label: NonClusteredIndex-Login (Non-Unique, Non-Clustered) SubTy
NodeType: Index Label: PK_Employee_BusinessEntityID (Unique, Clustered) SubType:PrimaryKey Status:
NodeType: Statistic Label: NonClusteredIndex-Login SubType: Status:
NodeType: Statistic Label: PK_Employee_BusinessEntityID SubType: Status:
NodeType: Table Label: HumanResources.Employee_Ledger (Updatable Ledger) SubType:Ledger Status:
NodeType: Column Label: BusinessEntityID (int, not null) SubType: Status:
NodeType: Column Label: NationalIDNumber (nvarchar(15), not null) SubType: Status:
NodeType: Column Label: LoginID (nvarchar(256), not null) SubType: Status:
NodeType: Column Label: OrganizationNode (hierarchyid, null) SubType: Status:
NodeType: Column Label: OrganizationLevel (Computed, smallint, null) SubType: Status:
NodeType: Column Label: JobTitle (nvarchar(50), not null) SubType: Status:
NodeType: Column Label: BirthDate (date, not null) SubType: Status:
NodeType: Column Label: MaritalStatus (nchar(1), not null) SubType: Status:
NodeType: Column Label: Gender (nchar(1), not null) SubType: Status:
NodeType: Column Label: HireDate (date, not null) SubType: Status:
NodeType: Column Label: VacationHours (smallint, not null) SubType: Status:
NodeType: Column Label: SickLeaveHours (smallint, not null) SubType: Status:
NodeType: Column Label: ledger_start_transaction_id (bigint, not null) SubType: Status:
NodeType: Column Label: ledger_end_transaction_id (bigint, null) SubType: Status:
NodeType: Column Label: ledger_start_sequence_number (bigint, not null) SubType: Status:
NodeType: Column Label: ledger_end_sequence_number (bigint, null) SubType: Status:
NodeType: HistoryTable Label: HumanResources.Employee_Ledger_History (History) SubType:LedgerHistory Status:
NodeType: Column Label: BusinessEntityID (int, not null) SubType: Status:
NodeType: Column Label: NationalIDNumber (nvarchar(15), not null) SubType: Status:
NodeType: Column Label: LoginID (nvarchar(256), not null) SubType: Status:
NodeType: Column Label: OrganizationNode (hierarchyid, null) SubType: Status:
NodeType: Column Label: OrganizationLevel (smallint, null) SubType: Status:
NodeType: Column Label: JobTitle (nvarchar(50), not null) SubType: Status:
NodeType: Column Label: BirthDate (date, not null) SubType: Status:
NodeType: Column Label: MaritalStatus (nchar(1), not null) SubType: Status:
NodeType: Column Label: Gender (nchar(1), not null) SubType: Status:
NodeType: Column Label: HireDate (date, not null) SubType: Status:
NodeType: Column Label: VacationHours (smallint, not null) SubType: Status:
NodeType: Column Label: SickLeaveHours (smallint, not null) SubType: Status:
NodeType: Column Label: ledger_start_transaction_id (bigint, not null) SubType: Status:
NodeType: Column Label: ledger_end_transaction_id (bigint, null) SubType: Status:
NodeType: Column Label: ledger_start_sequence_number (bigint, not null) SubType: Status:
NodeType: Column Label: ledger_end_sequence_number (bigint, null) SubType: Status:
NodeType: Table Label: HumanResources.Employee_Ledger_AppendOnly (Append-Only Ledger) SubType:Ledger Status:
NodeType: Column Label: BusinessEntityID (int, not null) SubType: Status:
NodeType: Column Label: NationalIDNumber (nvarchar(15), not null) SubType: Status:
NodeType: Column Label: LoginID (nvarchar(256), not null) SubType: Status:
NodeType: Column Label: OrganizationNode (hierarchyid, null) SubType: Status:
NodeType: Column Label: OrganizationLevel (Computed, smallint, null) SubType: Status:
NodeType: Column Label: JobTitle (nvarchar(50), not null) SubType: Status:
NodeType: Column Label: BirthDate (date, not null) SubType: Status:
NodeType: Column Label: MaritalStatus (nchar(1), not null) SubType: Status:
NodeType: Column Label: Gender (nchar(1), not null) SubType: Status:
NodeType: Column Label: HireDate (date, not null) SubType: Status:
NodeType: Column Label: SalariedFlag (Flag(bit), not null) SubType: Status:
NodeType: Column Label: VacationHours (smallint, not null) SubType: Status:
NodeType: Column Label: SickLeaveHours (smallint, not null) SubType: Status:
NodeType: Column Label: CurrentFlag (Flag(bit), not null) SubType: Status:
NodeType: Column Label: rowguid (uniqueidentifier, not null) SubType: Status:
NodeType: Column Label: ModifiedDate (datetime, not null) SubType: Status:
NodeType: Column Label: ledger_start_transaction_id (bigint, not null) SubType: Status:
NodeType: Column Label: ledger_start_sequence_number (bigint, not null) SubType: Status:
NodeType: Table Label: HumanResources.Employee_Temporal (System-Versioned) SubType:Temporal Status:
NodeType: Column Label: BusinessEntityID (PK, int, not null) SubType: Status:
NodeType: Column Label: NationalIDNumber (nvarchar(15), not null) SubType: Status:
@@ -107,6 +160,44 @@ NodeType: Constraint Label: DF_Person_ModifiedDate SubType: Status:
NodeType: Trigger Label: TableTrigger SubType: Status:
NodeType: Index Label: PK_Person_BusinessEntityID (Unique, Clustered) SubType:PrimaryKey Status:
NodeType: Statistic Label: PK_Person_BusinessEntityID SubType: Status:
NodeType: View Label: HumanResources.Employee_Ledger_AppendOnly_Ledger (Ledger) SubType:Ledger Status:
NodeType: Column Label: BusinessEntityID (int, not null) SubType: Status:
NodeType: Column Label: NationalIDNumber (nvarchar(15), not null) SubType: Status:
NodeType: Column Label: LoginID (nvarchar(256), not null) SubType: Status:
NodeType: Column Label: OrganizationNode (hierarchyid, null) SubType: Status:
NodeType: Column Label: OrganizationLevel (smallint, null) SubType: Status:
NodeType: Column Label: JobTitle (nvarchar(50), not null) SubType: Status:
NodeType: Column Label: BirthDate (date, not null) SubType: Status:
NodeType: Column Label: MaritalStatus (nchar(1), not null) SubType: Status:
NodeType: Column Label: Gender (nchar(1), not null) SubType: Status:
NodeType: Column Label: HireDate (date, not null) SubType: Status:
NodeType: Column Label: SalariedFlag (Flag(bit), not null) SubType: Status:
NodeType: Column Label: VacationHours (smallint, not null) SubType: Status:
NodeType: Column Label: SickLeaveHours (smallint, not null) SubType: Status:
NodeType: Column Label: CurrentFlag (Flag(bit), not null) SubType: Status:
NodeType: Column Label: rowguid (uniqueidentifier, not null) SubType: Status:
NodeType: Column Label: ModifiedDate (datetime, not null) SubType: Status:
NodeType: Column Label: ledger_transaction_id (bigint, not null) SubType: Status:
NodeType: Column Label: ledger_sequence_number (bigint, not null) SubType: Status:
NodeType: Column Label: ledger_operation_type (int, not null) SubType: Status:
NodeType: Column Label: ledger_operation_type_desc (nvarchar(6), not null) SubType: Status:
NodeType: View Label: HumanResources.Employee_Ledger_Ledger (Ledger) SubType:Ledger Status:
NodeType: Column Label: BusinessEntityID (int, not null) SubType: Status:
NodeType: Column Label: NationalIDNumber (nvarchar(15), not null) SubType: Status:
NodeType: Column Label: LoginID (nvarchar(256), not null) SubType: Status:
NodeType: Column Label: OrganizationNode (hierarchyid, null) SubType: Status:
NodeType: Column Label: OrganizationLevel (smallint, null) SubType: Status:
NodeType: Column Label: JobTitle (nvarchar(50), not null) SubType: Status:
NodeType: Column Label: BirthDate (date, not null) SubType: Status:
NodeType: Column Label: MaritalStatus (nchar(1), not null) SubType: Status:
NodeType: Column Label: Gender (nchar(1), not null) SubType: Status:
NodeType: Column Label: HireDate (date, not null) SubType: Status:
NodeType: Column Label: VacationHours (smallint, not null) SubType: Status:
NodeType: Column Label: SickLeaveHours (smallint, not null) SubType: Status:
NodeType: Column Label: ledger_transaction_id (bigint, null) SubType: Status:
NodeType: Column Label: ledger_sequence_number (bigint, null) SubType: Status:
NodeType: Column Label: ledger_operation_type (int, not null) SubType: Status:
NodeType: Column Label: ledger_operation_type_desc (nvarchar(6), not null) SubType: Status:
NodeType: View Label: HumanResources.vEmployee SubType: Status:
NodeType: Column Label: BusinessEntityID (int, not null) SubType: Status:
NodeType: Column Label: Title (nvarchar(8), null) SubType: Status: