private List <TResult> Execute0(DataSourceSqlExecutorUnit dataSourceSqlExecutorUnit)
        {
            var executorGroups = dataSourceSqlExecutorUnit.SqlExecutorGroups;
            var result         = new List <TResult>(executorGroups.Sum(o => o.Groups.Count()));

            foreach (var executorGroup in executorGroups)
            {
                var routeQueryResults = GroupExecute(executorGroup.Groups);
                result.AddAll(routeQueryResults);
            }

            return(result);
        }
 // protected void Cancel()
 // {
 //     Interlocked.Exchange(ref cancelStatus, cancelled);
 // }
 //
 // private bool IsCancelled()
 // {
 //     return cancelStatus == cancelled;
 // }
 public List <TResult> Execute(DataSourceSqlExecutorUnit dataSourceSqlExecutorUnit)
 {
     return(Execute0(dataSourceSqlExecutorUnit));
 }