The object that is passed in and parsed for all Data Lake paths.
コード例 #1
0
        public bool TestCatalogItem(string accountName, CatalogPathInstance path,
                                    DataLakeAnalyticsEnums.CatalogItemType itemType)
        {
            try
            {
                var result = GetCatalogItem(accountName, path, itemType);
                return(result != null && result.Count > 0);
            }
            catch (CloudException ex)
            {
                if (ex.Response != null && ex.Response.StatusCode == HttpStatusCode.NotFound)
                {
                    return(false);
                }

                throw;
            }
        }
コード例 #2
0
        public IList<CatalogItem> GetCatalogItem(string accountName, CatalogPathInstance path,
            DataLakeAnalyticsEnums.CatalogItemType itemType)
        {
            var isList = IsCatalogItemOrList(path, itemType);
            var toReturn = new List<CatalogItem>();

            switch (itemType)
            {
                case DataLakeAnalyticsEnums.CatalogItemType.Database:
                    if (isList)
                    {
                        toReturn.AddRange(GetDatabases(accountName));
                    }
                    else
                    {
                        toReturn.Add(GetDatabase(accountName, path.DatabaseName));
                    }

                    break;
                case DataLakeAnalyticsEnums.CatalogItemType.Schema:
                    if (isList)
                    {
                        toReturn.AddRange(GetSchemas(accountName, path.DatabaseName));
                    }
                    else
                    {
                        toReturn.Add(GetSchema(accountName, path.DatabaseName,
                            path.SchemaAssemblyOrExternalDataSourceName));
                    }

                    break;
                case DataLakeAnalyticsEnums.CatalogItemType.Assembly:
                    if (isList)
                    {
                        toReturn.AddRange(GetAssemblies(accountName, path.DatabaseName));
                    }
                    else
                    {
                        toReturn.Add(GetAssembly(accountName, path.DatabaseName,
                            path.SchemaAssemblyOrExternalDataSourceName));
                    }

                    break;
                case DataLakeAnalyticsEnums.CatalogItemType.ExternalDataSource:
                    if (isList)
                    {
                        toReturn.AddRange(GetExternalDataSources(accountName, path.DatabaseName));
                    }
                    else
                    {
                        toReturn.Add(GetExternalDataSource(accountName, path.DatabaseName,
                            path.SchemaAssemblyOrExternalDataSourceName));
                    }

                    break;

                case DataLakeAnalyticsEnums.CatalogItemType.Credential:
                    if (isList)
                    {
                        toReturn.AddRange(GetCredentials(accountName, path.DatabaseName));
                    }
                    else
                    {
                        toReturn.Add(GetCredential(accountName, path.DatabaseName,
                            path.SchemaAssemblyOrExternalDataSourceName));
                    }

                    break;
                case DataLakeAnalyticsEnums.CatalogItemType.Table:
                    if (isList)
                    {
                        toReturn.AddRange(GetTables(accountName, path.DatabaseName,
                            path.SchemaAssemblyOrExternalDataSourceName));
                    }
                    else
                    {
                        toReturn.Add(GetTable(accountName, path.DatabaseName,
                            path.SchemaAssemblyOrExternalDataSourceName, path.TableOrTableValuedFunctionName));
                    }

                    break;
                case DataLakeAnalyticsEnums.CatalogItemType.TablePartition:
                    if (isList)
                    {
                        toReturn.AddRange(GetTablePartitions(accountName, path.DatabaseName,
                            path.SchemaAssemblyOrExternalDataSourceName, path.TableOrTableValuedFunctionName));
                    }
                    else
                    {
                        toReturn.Add(GetTablePartition(accountName, path.DatabaseName,
                            path.SchemaAssemblyOrExternalDataSourceName, path.TableOrTableValuedFunctionName, path.TableStatisticsOrPartitionName));
                    }

                    break;
                case DataLakeAnalyticsEnums.CatalogItemType.TableValuedFunction:
                    if (isList)
                    {
                        toReturn.AddRange(GetTableValuedFunctions(accountName, path.DatabaseName,
                            path.SchemaAssemblyOrExternalDataSourceName));
                    }
                    else
                    {
                        toReturn.Add(GetTableValuedFunction(accountName, path.DatabaseName,
                            path.SchemaAssemblyOrExternalDataSourceName, path.TableOrTableValuedFunctionName));
                    }

                    break;
                case DataLakeAnalyticsEnums.CatalogItemType.TableStatistics:
                    if (isList)
                    {
                        toReturn.AddRange(GetTableStatistics(accountName, path.DatabaseName,
                            path.SchemaAssemblyOrExternalDataSourceName, path.TableOrTableValuedFunctionName));
                    }
                    else
                    {
                        toReturn.Add(GetTableStatistic(accountName, path.DatabaseName,
                            path.SchemaAssemblyOrExternalDataSourceName, path.TableOrTableValuedFunctionName,
                            path.TableStatisticsOrPartitionName));
                    }

                    break;
                case DataLakeAnalyticsEnums.CatalogItemType.View:
                    if (isList)
                    {
                        toReturn.AddRange(GetViews(accountName, path.DatabaseName,
                            path.SchemaAssemblyOrExternalDataSourceName));
                    }
                    else
                    {
                        toReturn.Add(GetView(accountName, path.DatabaseName,
                            path.SchemaAssemblyOrExternalDataSourceName, path.TableOrTableValuedFunctionName));
                    }

                    break;

                case DataLakeAnalyticsEnums.CatalogItemType.Procedure:
                    if (isList)
                    {
                        toReturn.AddRange(GetProcedures(accountName, path.DatabaseName,
                            path.SchemaAssemblyOrExternalDataSourceName));
                    }
                    else
                    {
                        toReturn.Add(GetProcedure(accountName, path.DatabaseName,
                            path.SchemaAssemblyOrExternalDataSourceName, path.TableOrTableValuedFunctionName));
                    }

                    break;
                case DataLakeAnalyticsEnums.CatalogItemType.Types:
                    if (isList)
                    {
                        toReturn.AddRange(GetTypes(accountName, path.DatabaseName,
                            path.SchemaAssemblyOrExternalDataSourceName));
                    }
                    else
                    {
                        throw new InvalidOperationException(Properties.Resources.InvalidUSqlTypeRequest);
                    }

                    break;
                case DataLakeAnalyticsEnums.CatalogItemType.Secret:
                    if (isList)
                    {
                        throw new InvalidOperationException(Properties.Resources.InvalidUSqlSecretRequest);
                    }
                    else
                    {
                        toReturn.Add(GetSecret(accountName, path.DatabaseName,
                            path.SchemaAssemblyOrExternalDataSourceName));
                    }

                    break;
            }

            return toReturn;
        }
コード例 #3
0
        public bool TestCatalogItem(string accountName, CatalogPathInstance path,
            DataLakeAnalyticsEnums.CatalogItemType itemType)
        {
            try
            {
                var result = GetCatalogItem(accountName, path, itemType);
                return result != null && result.Count > 0;
            }
            catch (CloudException ex)
            {
                if (ex.Response != null && ex.Response.StatusCode == HttpStatusCode.NotFound)
                {
                    return false;
                }

                throw;
            }
        }
コード例 #4
0
        private bool IsCatalogItemOrList(CatalogPathInstance path, DataLakeAnalyticsEnums.CatalogItemType type)
        {
            var isList = false;
            if (path == null || string.IsNullOrEmpty(path.FullCatalogItemPath))
            {
                // in this case, it is a list of ALL catalog items of the specified type across the entire catalog.
                return true;
            }

            switch (type)
            {
                case DataLakeAnalyticsEnums.CatalogItemType.Database:
                    if (string.IsNullOrEmpty(path.DatabaseName))
                    {
                        isList = true;
                    }

                    break;
                case DataLakeAnalyticsEnums.CatalogItemType.Schema:
                case DataLakeAnalyticsEnums.CatalogItemType.Assembly:
                case DataLakeAnalyticsEnums.CatalogItemType.ExternalDataSource:
                case DataLakeAnalyticsEnums.CatalogItemType.Secret:
                case DataLakeAnalyticsEnums.CatalogItemType.Credential:
                    if (string.IsNullOrEmpty(path.DatabaseName))
                    {
                        throw new CloudException(string.Format(Properties.Resources.InvalidCatalogPath,
                            path.FullCatalogItemPath));
                    }

                    if (string.IsNullOrEmpty(path.SchemaAssemblyOrExternalDataSourceName))
                    {
                        isList = true;
                    }

                    break;
                case DataLakeAnalyticsEnums.CatalogItemType.Table:
                case DataLakeAnalyticsEnums.CatalogItemType.TableValuedFunction:
                case DataLakeAnalyticsEnums.CatalogItemType.View:
                case DataLakeAnalyticsEnums.CatalogItemType.Procedure:
                case DataLakeAnalyticsEnums.CatalogItemType.Types:
                    if (string.IsNullOrEmpty(path.DatabaseName) ||
                        string.IsNullOrEmpty(path.SchemaAssemblyOrExternalDataSourceName))
                    {
                        throw new CloudException(string.Format(Properties.Resources.InvalidCatalogPath,
                            path.FullCatalogItemPath));
                    }

                    if (string.IsNullOrEmpty(path.TableOrTableValuedFunctionName))
                    {
                        isList = true;
                    }

                    break;
                case DataLakeAnalyticsEnums.CatalogItemType.TableStatistics:
                case DataLakeAnalyticsEnums.CatalogItemType.TablePartition:
                    if (string.IsNullOrEmpty(path.DatabaseName) ||
                        string.IsNullOrEmpty(path.SchemaAssemblyOrExternalDataSourceName) ||
                        string.IsNullOrEmpty(path.TableOrTableValuedFunctionName))
                    {
                        throw new CloudException(string.Format(Properties.Resources.InvalidCatalogPath,
                            path.FullCatalogItemPath));
                    }

                    if (string.IsNullOrEmpty(path.TableStatisticsOrPartitionName))
                    {
                        isList = true;
                    }
                    break;
            }

            return isList;
        }
コード例 #5
0
        public IList <CatalogItem> GetCatalogItem(string accountName, CatalogPathInstance path,
                                                  DataLakeAnalyticsEnums.CatalogItemType itemType)
        {
            var isList   = IsCatalogItemOrList(path, itemType);
            var toReturn = new List <CatalogItem>();

            switch (itemType)
            {
            case DataLakeAnalyticsEnums.CatalogItemType.Database:
                if (isList)
                {
                    toReturn.AddRange(GetDatabases(accountName));
                }
                else
                {
                    toReturn.Add(GetDatabase(accountName, path.DatabaseName));
                }

                break;

            case DataLakeAnalyticsEnums.CatalogItemType.Schema:
                if (isList)
                {
                    toReturn.AddRange(GetSchemas(accountName, path.DatabaseName));
                }
                else
                {
                    toReturn.Add(GetSchema(accountName, path.DatabaseName,
                                           path.SchemaAssemblyOrExternalDataSourceName));
                }

                break;

            case DataLakeAnalyticsEnums.CatalogItemType.Assembly:
                if (isList)
                {
                    toReturn.AddRange(GetAssemblies(accountName, path.DatabaseName));
                }
                else
                {
                    toReturn.Add(GetAssembly(accountName, path.DatabaseName,
                                             path.SchemaAssemblyOrExternalDataSourceName));
                }

                break;

            case DataLakeAnalyticsEnums.CatalogItemType.ExternalDataSource:
                if (isList)
                {
                    toReturn.AddRange(GetExternalDataSources(accountName, path.DatabaseName));
                }
                else
                {
                    toReturn.Add(GetExternalDataSource(accountName, path.DatabaseName,
                                                       path.SchemaAssemblyOrExternalDataSourceName));
                }

                break;

            case DataLakeAnalyticsEnums.CatalogItemType.Credential:
                if (isList)
                {
                    toReturn.AddRange(GetCredentials(accountName, path.DatabaseName));
                }
                else
                {
                    toReturn.Add(GetCredential(accountName, path.DatabaseName,
                                               path.SchemaAssemblyOrExternalDataSourceName));
                }

                break;

            case DataLakeAnalyticsEnums.CatalogItemType.Table:
                if (isList)
                {
                    toReturn.AddRange(GetTables(accountName, path.DatabaseName,
                                                path.SchemaAssemblyOrExternalDataSourceName));
                }
                else
                {
                    toReturn.Add(GetTable(accountName, path.DatabaseName,
                                          path.SchemaAssemblyOrExternalDataSourceName, path.TableOrTableValuedFunctionName));
                }

                break;

            case DataLakeAnalyticsEnums.CatalogItemType.TablePartition:
                if (isList)
                {
                    toReturn.AddRange(GetTablePartitions(accountName, path.DatabaseName,
                                                         path.SchemaAssemblyOrExternalDataSourceName, path.TableOrTableValuedFunctionName));
                }
                else
                {
                    toReturn.Add(GetTablePartition(accountName, path.DatabaseName,
                                                   path.SchemaAssemblyOrExternalDataSourceName, path.TableOrTableValuedFunctionName, path.TableStatisticsOrPartitionName));
                }

                break;

            case DataLakeAnalyticsEnums.CatalogItemType.TableValuedFunction:
                if (isList)
                {
                    toReturn.AddRange(GetTableValuedFunctions(accountName, path.DatabaseName,
                                                              path.SchemaAssemblyOrExternalDataSourceName));
                }
                else
                {
                    toReturn.Add(GetTableValuedFunction(accountName, path.DatabaseName,
                                                        path.SchemaAssemblyOrExternalDataSourceName, path.TableOrTableValuedFunctionName));
                }

                break;

            case DataLakeAnalyticsEnums.CatalogItemType.TableStatistics:
                if (isList)
                {
                    toReturn.AddRange(GetTableStatistics(accountName, path.DatabaseName,
                                                         path.SchemaAssemblyOrExternalDataSourceName, path.TableOrTableValuedFunctionName));
                }
                else
                {
                    toReturn.Add(GetTableStatistic(accountName, path.DatabaseName,
                                                   path.SchemaAssemblyOrExternalDataSourceName, path.TableOrTableValuedFunctionName,
                                                   path.TableStatisticsOrPartitionName));
                }

                break;

            case DataLakeAnalyticsEnums.CatalogItemType.View:
                if (isList)
                {
                    toReturn.AddRange(GetViews(accountName, path.DatabaseName,
                                               path.SchemaAssemblyOrExternalDataSourceName));
                }
                else
                {
                    toReturn.Add(GetView(accountName, path.DatabaseName,
                                         path.SchemaAssemblyOrExternalDataSourceName, path.TableOrTableValuedFunctionName));
                }

                break;

            case DataLakeAnalyticsEnums.CatalogItemType.Procedure:
                if (isList)
                {
                    toReturn.AddRange(GetProcedures(accountName, path.DatabaseName,
                                                    path.SchemaAssemblyOrExternalDataSourceName));
                }
                else
                {
                    toReturn.Add(GetProcedure(accountName, path.DatabaseName,
                                              path.SchemaAssemblyOrExternalDataSourceName, path.TableOrTableValuedFunctionName));
                }

                break;

            case DataLakeAnalyticsEnums.CatalogItemType.Types:
                if (isList)
                {
                    toReturn.AddRange(GetTypes(accountName, path.DatabaseName,
                                               path.SchemaAssemblyOrExternalDataSourceName));
                }
                else
                {
                    throw new InvalidOperationException(Properties.Resources.InvalidUSqlTypeRequest);
                }

                break;

            case DataLakeAnalyticsEnums.CatalogItemType.Secret:
                if (isList)
                {
                    throw new InvalidOperationException(Properties.Resources.InvalidUSqlSecretRequest);
                }
                else
                {
                    toReturn.Add(GetSecret(accountName, path.DatabaseName,
                                           path.SchemaAssemblyOrExternalDataSourceName));
                }

                break;
            }

            return(toReturn);
        }
コード例 #6
0
        private bool IsCatalogItemOrList(CatalogPathInstance path, DataLakeAnalyticsEnums.CatalogItemType type)
        {
            var isList = false;

            if (path == null || string.IsNullOrEmpty(path.FullCatalogItemPath))
            {
                // in this case, it is a list of ALL catalog items of the specified type across the entire catalog.
                return(true);
            }

            switch (type)
            {
            case DataLakeAnalyticsEnums.CatalogItemType.Database:
                if (string.IsNullOrEmpty(path.DatabaseName))
                {
                    isList = true;
                }

                break;

            case DataLakeAnalyticsEnums.CatalogItemType.Schema:
            case DataLakeAnalyticsEnums.CatalogItemType.Assembly:
            case DataLakeAnalyticsEnums.CatalogItemType.ExternalDataSource:
            case DataLakeAnalyticsEnums.CatalogItemType.Secret:
            case DataLakeAnalyticsEnums.CatalogItemType.Credential:
                if (string.IsNullOrEmpty(path.DatabaseName))
                {
                    throw new CloudException(string.Format(Properties.Resources.InvalidCatalogPath,
                                                           path.FullCatalogItemPath));
                }

                if (string.IsNullOrEmpty(path.SchemaAssemblyOrExternalDataSourceName))
                {
                    isList = true;
                }

                break;

            case DataLakeAnalyticsEnums.CatalogItemType.Table:
            case DataLakeAnalyticsEnums.CatalogItemType.TableValuedFunction:
            case DataLakeAnalyticsEnums.CatalogItemType.View:
            case DataLakeAnalyticsEnums.CatalogItemType.Procedure:
            case DataLakeAnalyticsEnums.CatalogItemType.Types:
                if (string.IsNullOrEmpty(path.DatabaseName) ||
                    string.IsNullOrEmpty(path.SchemaAssemblyOrExternalDataSourceName))
                {
                    throw new CloudException(string.Format(Properties.Resources.InvalidCatalogPath,
                                                           path.FullCatalogItemPath));
                }

                if (string.IsNullOrEmpty(path.TableOrTableValuedFunctionName))
                {
                    isList = true;
                }

                break;

            case DataLakeAnalyticsEnums.CatalogItemType.TableStatistics:
            case DataLakeAnalyticsEnums.CatalogItemType.TablePartition:
                if (string.IsNullOrEmpty(path.DatabaseName) ||
                    string.IsNullOrEmpty(path.SchemaAssemblyOrExternalDataSourceName) ||
                    string.IsNullOrEmpty(path.TableOrTableValuedFunctionName))
                {
                    throw new CloudException(string.Format(Properties.Resources.InvalidCatalogPath,
                                                           path.FullCatalogItemPath));
                }

                if (string.IsNullOrEmpty(path.TableStatisticsOrPartitionName))
                {
                    isList = true;
                }
                break;
            }

            return(isList);
        }
コード例 #7
0
        public IList <CatalogItem> GetCatalogItem(string resourceGroupName, string accountName, CatalogPathInstance path,
                                                  DataLakeAnalyticsEnums.CatalogItemType itemType)
        {
            if (string.IsNullOrEmpty(resourceGroupName))
            {
                resourceGroupName = GetResourceGroupByAccountName(accountName);
            }

            var isList   = IsCatalogItemOrList(path, itemType);
            var toReturn = new List <CatalogItem>();

            switch (itemType)
            {
            case DataLakeAnalyticsEnums.CatalogItemType.Database:
                if (isList)
                {
                    toReturn.AddRange(GetDatabases(resourceGroupName, accountName));
                }
                else
                {
                    toReturn.Add(GetDatabase(resourceGroupName, accountName, path.DatabaseName));
                }

                break;

            case DataLakeAnalyticsEnums.CatalogItemType.Schema:
                if (isList)
                {
                    toReturn.AddRange(GetSchemas(resourceGroupName, accountName, path.DatabaseName));
                }
                else
                {
                    toReturn.Add(GetSchema(resourceGroupName, accountName, path.DatabaseName,
                                           path.SchemaAssemblyOrExternalDataSourceName));
                }

                break;

            case DataLakeAnalyticsEnums.CatalogItemType.Assembly:
                if (isList)
                {
                    toReturn.AddRange(GetAssemblies(resourceGroupName, accountName, path.DatabaseName));
                }
                else
                {
                    toReturn.Add(GetAssembly(resourceGroupName, accountName, path.DatabaseName,
                                             path.SchemaAssemblyOrExternalDataSourceName));
                }

                break;

            case DataLakeAnalyticsEnums.CatalogItemType.ExternalDataSource:
                if (isList)
                {
                    toReturn.AddRange(GetExternalDataSources(resourceGroupName, accountName, path.DatabaseName));
                }
                else
                {
                    toReturn.Add(GetExternalDataSource(resourceGroupName, accountName, path.DatabaseName,
                                                       path.SchemaAssemblyOrExternalDataSourceName));
                }

                break;

            case DataLakeAnalyticsEnums.CatalogItemType.Table:
                if (isList)
                {
                    toReturn.AddRange(GetTables(resourceGroupName, accountName, path.DatabaseName,
                                                path.SchemaAssemblyOrExternalDataSourceName));
                }
                else
                {
                    toReturn.Add(GetTable(resourceGroupName, accountName, path.DatabaseName,
                                          path.SchemaAssemblyOrExternalDataSourceName, path.TableOrTableValuedFunctionName));
                }

                break;

            case DataLakeAnalyticsEnums.CatalogItemType.TableValuedFunction:
                if (isList)
                {
                    toReturn.AddRange(GetTableValuedFunctions(resourceGroupName, accountName, path.DatabaseName,
                                                              path.SchemaAssemblyOrExternalDataSourceName));
                }
                else
                {
                    toReturn.Add(GetTableValuedFunction(resourceGroupName, accountName, path.DatabaseName,
                                                        path.SchemaAssemblyOrExternalDataSourceName, path.TableOrTableValuedFunctionName));
                }

                break;

            case DataLakeAnalyticsEnums.CatalogItemType.TableStatistics:
                if (isList)
                {
                    toReturn.AddRange(GetTableStatistics(resourceGroupName, accountName, path.DatabaseName,
                                                         path.SchemaAssemblyOrExternalDataSourceName, path.TableOrTableValuedFunctionName));
                }
                else
                {
                    toReturn.Add(GetTableStatistic(resourceGroupName, accountName, path.DatabaseName,
                                                   path.SchemaAssemblyOrExternalDataSourceName, path.TableOrTableValuedFunctionName,
                                                   path.TableStatisticsName));
                }

                break;
            }

            return(toReturn);
        }
コード例 #8
0
        public IList<CatalogItem> GetCatalogItem(string resourceGroupName, string accountName, CatalogPathInstance path,
            DataLakeAnalyticsEnums.CatalogItemType itemType)
        {
            if (string.IsNullOrEmpty(resourceGroupName))
            {
                resourceGroupName = GetResourceGroupByAccountName(accountName);
            }

            var isList = IsCatalogItemOrList(path, itemType);
            var toReturn = new List<CatalogItem>();

            switch (itemType)
            {
                case DataLakeAnalyticsEnums.CatalogItemType.Database:
                    if (isList)
                    {
                        toReturn.AddRange(GetDatabases(resourceGroupName, accountName));
                    }
                    else
                    {
                        toReturn.Add(GetDatabase(resourceGroupName, accountName, path.DatabaseName));
                    }

                    break;
                case DataLakeAnalyticsEnums.CatalogItemType.Schema:
                    if (isList)
                    {
                        toReturn.AddRange(GetSchemas(resourceGroupName, accountName, path.DatabaseName));
                    }
                    else
                    {
                        toReturn.Add(GetSchema(resourceGroupName, accountName, path.DatabaseName,
                            path.SchemaAssemblyOrExternalDataSourceName));
                    }

                    break;
                case DataLakeAnalyticsEnums.CatalogItemType.Assembly:
                    if (isList)
                    {
                        toReturn.AddRange(GetAssemblies(resourceGroupName, accountName, path.DatabaseName));
                    }
                    else
                    {
                        toReturn.Add(GetAssembly(resourceGroupName, accountName, path.DatabaseName,
                            path.SchemaAssemblyOrExternalDataSourceName));
                    }

                    break;
                case DataLakeAnalyticsEnums.CatalogItemType.ExternalDataSource:
                    if (isList)
                    {
                        toReturn.AddRange(GetExternalDataSources(resourceGroupName, accountName, path.DatabaseName));
                    }
                    else
                    {
                        toReturn.Add(GetExternalDataSource(resourceGroupName, accountName, path.DatabaseName,
                            path.SchemaAssemblyOrExternalDataSourceName));
                    }

                    break;
                case DataLakeAnalyticsEnums.CatalogItemType.Table:
                    if (isList)
                    {
                        toReturn.AddRange(GetTables(resourceGroupName, accountName, path.DatabaseName,
                            path.SchemaAssemblyOrExternalDataSourceName));
                    }
                    else
                    {
                        toReturn.Add(GetTable(resourceGroupName, accountName, path.DatabaseName,
                            path.SchemaAssemblyOrExternalDataSourceName, path.TableOrTableValuedFunctionName));
                    }

                    break;
                case DataLakeAnalyticsEnums.CatalogItemType.TableValuedFunction:
                    if (isList)
                    {
                        toReturn.AddRange(GetTableValuedFunctions(resourceGroupName, accountName, path.DatabaseName,
                            path.SchemaAssemblyOrExternalDataSourceName));
                    }
                    else
                    {
                        toReturn.Add(GetTableValuedFunction(resourceGroupName, accountName, path.DatabaseName,
                            path.SchemaAssemblyOrExternalDataSourceName, path.TableOrTableValuedFunctionName));
                    }

                    break;
                case DataLakeAnalyticsEnums.CatalogItemType.TableStatistics:
                    if (isList)
                    {
                        toReturn.AddRange(GetTableStatistics(resourceGroupName, accountName, path.DatabaseName,
                            path.SchemaAssemblyOrExternalDataSourceName, path.TableOrTableValuedFunctionName));
                    }
                    else
                    {
                        toReturn.Add(GetTableStatistic(resourceGroupName, accountName, path.DatabaseName,
                            path.SchemaAssemblyOrExternalDataSourceName, path.TableOrTableValuedFunctionName,
                            path.TableStatisticsName));
                    }

                    break;
            }

            return toReturn;
        }