From e2507c84a39c22c13b98362fbc03aa9f555802fa Mon Sep 17 00:00:00 2001 From: IgorFedchenko Date: Tue, 9 Feb 2021 21:11:56 +0300 Subject: [PATCH] Refactored to make new method more intuitive for plugin creators --- .../Journal/BatchingSqlJournal.cs | 24 +++++++++---------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/src/contrib/persistence/Akka.Persistence.Sql.Common/Journal/BatchingSqlJournal.cs b/src/contrib/persistence/Akka.Persistence.Sql.Common/Journal/BatchingSqlJournal.cs index a868bdfba17..5a304e119df 100644 --- a/src/contrib/persistence/Akka.Persistence.Sql.Common/Journal/BatchingSqlJournal.cs +++ b/src/contrib/persistence/Akka.Persistence.Sql.Common/Journal/BatchingSqlJournal.cs @@ -546,9 +546,7 @@ public RequestChunk(int chunkId, IJournalRequest[] requests) private readonly CircuitBreaker _circuitBreaker; private int _remainingOperations; - private bool _columnSizeLoaded = false; - - protected ColumnSizesInfo ColumnSizes { get; } = new ColumnSizesInfo(); + protected ColumnSizesInfo ColumnSizes { get; private set; } /// /// Initializes a new instance of the class. @@ -1418,31 +1416,26 @@ protected void AddParameter(TCommand command, string paramName, DbType dbType, o /// /// /// - protected virtual void LoadColumnSizesInternal(DbConnection connection, QueryConfiguration conventions) + protected virtual ColumnSizesInfo LoadColumnSizesInternal(DbConnection connection, QueryConfiguration conventions) { - ColumnSizes.PersistenceIdColumnSize = Option.None; - ColumnSizes.TagsColumnSize = Option.None; - ColumnSizes.ManifestColumnSize = Option.None; + return ColumnSizesInfo.Default; } private void LoadColumnSizes(DbConnection connection, QueryConfiguration conventions) { // load schema/initialize column sizes only once - if (_columnSizeLoaded) + if (ColumnSizes != null) return; try { - LoadColumnSizesInternal(connection, conventions); + ColumnSizes = LoadColumnSizesInternal(connection, conventions); } catch (Exception exception) { // something might not be supported Log.Error($"Could not load db schema and column sizes: {exception}"); - } - finally - { - _columnSizeLoaded = true; + ColumnSizes = ColumnSizesInfo.Default; } } @@ -1485,6 +1478,11 @@ public class ColumnSizesInfo /// Size of the column containing Manifest values /// public Option ManifestColumnSize { get; set; } = Option.None; + + /// + /// Default column sizes initializer - all sizes are calculated dynamically from parameter values + /// + public static readonly ColumnSizesInfo Default = new ColumnSizesInfo(); } }