mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-01-13 17:23:02 -05:00
Changed logic to use database name provided by connectionString (#1091)
This commit is contained in:
@@ -42,9 +42,8 @@ namespace Microsoft.Kusto.ServiceLayer.DataSource
|
||||
{
|
||||
_ownerUri = ownerUri;
|
||||
ClusterName = GetClusterName(connectionString);
|
||||
var databaseName = new SqlConnectionStringBuilder(connectionString).InitialCatalog;
|
||||
Initialize(ClusterName, databaseName, azureAccountToken);
|
||||
DatabaseName = string.IsNullOrWhiteSpace(databaseName) ? GetFirstDatabaseName() : databaseName;
|
||||
DatabaseName = new SqlConnectionStringBuilder(connectionString).InitialCatalog;
|
||||
Initialize(ClusterName, DatabaseName, azureAccountToken);
|
||||
SchemaState = LoadSchemaState();
|
||||
}
|
||||
|
||||
@@ -147,25 +146,6 @@ namespace Microsoft.Kusto.ServiceLayer.DataSource
|
||||
return kcsb;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Extracts the database name from the connectionString if it exists
|
||||
/// otherwise it takes the first database name from the server
|
||||
/// </summary>
|
||||
/// <param name="connectionString"></param>
|
||||
/// <returns>Database Name</returns>
|
||||
private string GetFirstDatabaseName()
|
||||
{
|
||||
var source = new CancellationTokenSource();
|
||||
string query = ".show databases | project DatabaseName";
|
||||
|
||||
using (var reader = ExecuteQuery(query, source.Token))
|
||||
{
|
||||
var rows = reader.ToEnumerable();
|
||||
var row = rows?.FirstOrDefault();
|
||||
return row?[0].ToString() ?? string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
public IDataReader ExecuteQuery(string query, CancellationToken cancellationToken, string databaseName = null, int retryCount = 1)
|
||||
{
|
||||
ValidationUtils.IsArgumentNotNullOrWhiteSpace(query, nameof(query));
|
||||
|
||||
Reference in New Issue
Block a user