mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-02-02 09:35:38 -05:00
Fix for multiple queries separated by space for Kusto (#1089)
* Fix for multiple queries separated by space * Addressed comments Co-authored-by: Monica Gupta <mogupt@microsoft.com>
This commit is contained in:
@@ -11,26 +11,31 @@ namespace Microsoft.Kusto.ServiceLayer.DataSource
|
||||
/// Kusto returns atleast 4 results tables - QueryResults(sometimes more than one), QueryProperties, QueryStatus and Query Results Metadata Table.
|
||||
/// ADS just needs query results. When returning query results we need to trim off the last 3 tables.
|
||||
/// </summary>
|
||||
public KustoResultsReader(IDataReader reader)
|
||||
public KustoResultsReader(IDataReader[] readers)
|
||||
: base()
|
||||
{
|
||||
// Read out all tables
|
||||
List<DataTable> results = new List<DataTable>();
|
||||
while (!(reader?.IsClosed ?? true))
|
||||
{
|
||||
DataTable dt = new DataTable();
|
||||
dt.Load(reader); // This calls NextResult on the reader
|
||||
results.Add(dt);
|
||||
}
|
||||
|
||||
// Trim results
|
||||
if(results.Count > 3) results.RemoveRange(results.Count - 3, 3);
|
||||
foreach (var reader in readers)
|
||||
{
|
||||
while (!(reader?.IsClosed ?? true))
|
||||
{
|
||||
DataTable dt = new DataTable();
|
||||
dt.Load(reader); // This calls NextResult on the reader
|
||||
results.Add(dt);
|
||||
}
|
||||
|
||||
// Trim results
|
||||
if(results.Count > 3) results.RemoveRange(results.Count - 3, 3);
|
||||
}
|
||||
|
||||
// Create a DataReader for the trimmed set
|
||||
_resultDataSet = new DataSet();
|
||||
foreach(var result in results)
|
||||
for(int i = 0; i < results.Count; i++)
|
||||
{
|
||||
_resultDataSet.Tables.Add(result);
|
||||
results[i].TableName = "Table_" + i;
|
||||
_resultDataSet.Tables.Add(results[i]);
|
||||
}
|
||||
|
||||
SetDataReader(_resultDataSet.CreateDataReader());
|
||||
|
||||
Reference in New Issue
Block a user