public async Task CleanExtentTagsAsync()

in code/KustoCopyConsole/Kusto/DbCommandClient.cs [369:410]


        public async Task<int> CleanExtentTagsAsync(
            KustoPriority priority,
            string tableName,
            IEnumerable<string> tags,
            CancellationToken ct)
        {
            return await _commandQueue.RequestRunAsync(
               priority,
               async () =>
               {
                   var tagListText = string.Join(", ", tags.Select(t => $"'{t}'"));
                   var commandText = @$"
.drop table ['{tableName}'] extent tags
    ({tagListText})
";
                   var properties = new ClientRequestProperties();
                   var reader = await _provider.ExecuteControlCommandAsync(
                       DatabaseName,
                       commandText,
                       properties);
                   var results = reader
                    .ToEnumerable(r => new
                    {
                        OriginalExtentId = (string)(r[0]),
                        ResultExtentId = (string)(r[1]),
                        ResultExtentTags = (string)(r[2]),
                        Details = r[3].ToString()
                    })
                    .ToImmutableArray();
                   var singleDetail = results
                   .Where(r => !string.IsNullOrWhiteSpace(r.Details))
                   .Select(r => r.Details)
                   .FirstOrDefault();

                   if (singleDetail != null)
                   {
                       throw new CopyException($"Clean extent failure:  '{singleDetail}'", true);
                   }

                   return results.Count();
               });
        }