From 3cd7c32775064812607a0dbf6bb0039dc58055a4 Mon Sep 17 00:00:00 2001 From: Alberto Spelta Date: Mon, 5 Aug 2024 15:45:04 +0200 Subject: [PATCH] Add columnBatchSize validation to UpdateStatisticsModel method Added a check to ensure `columnBatchSize` is greater than zero in the `UpdateStatisticsModel` method of `StatExtractor.cs` --- src/Dax.Model.Extractor/StatExtractor.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Dax.Model.Extractor/StatExtractor.cs b/src/Dax.Model.Extractor/StatExtractor.cs index 8443719..576ebd1 100644 --- a/src/Dax.Model.Extractor/StatExtractor.cs +++ b/src/Dax.Model.Extractor/StatExtractor.cs @@ -33,6 +33,9 @@ protected IDbCommand CreateCommand(string commandText) [Obsolete("This method may produce incomplete results if used on a model with DirectLake partitions and DirectLakeExtractionMode parameter set to anything other than ResidentOnly. Use TomExtractor.GetDaxModel instead.")] public static void UpdateStatisticsModel(Dax.Metadata.Model daxModel, IDbConnection connection, int sampleRows = 0, bool analyzeDirectQuery = false , DirectLakeExtractionMode analyzeDirectLake = DirectLakeExtractionMode.ResidentOnly, int columnBatchSize = DefaultColumnBatchSize) { + if (columnBatchSize < 1) + throw new ArgumentException("Column batch size must be greater than zero.", nameof(columnBatchSize)); + // TODO: Remove after rafactoring the code to use ExtractorSettings: ExtractorProperties as a parameter daxModel.ExtractorProperties.StatisticsEnabled = true; daxModel.ExtractorProperties.DirectQueryMode = analyzeDirectQuery ? DirectQueryExtractionMode.Full : DirectQueryExtractionMode.None;