From b492cce83b0a14e7d9da6555c718dca188b3444d Mon Sep 17 00:00:00 2001 From: DevM900 <173990884+DevM900@users.noreply.github.com> Date: Thu, 27 Jun 2024 14:15:48 +0200 Subject: [PATCH 1/4] Creation of backup and restore statistics can be switched off to support Firebird Server 2.0. --- src/FirebirdSql.Data.FirebirdClient/Services/FbBackup.cs | 7 +++++-- src/FirebirdSql.Data.FirebirdClient/Services/FbRestore.cs | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/FirebirdSql.Data.FirebirdClient/Services/FbBackup.cs b/src/FirebirdSql.Data.FirebirdClient/Services/FbBackup.cs index 35c83387..12537116 100644 --- a/src/FirebirdSql.Data.FirebirdClient/Services/FbBackup.cs +++ b/src/FirebirdSql.Data.FirebirdClient/Services/FbBackup.cs @@ -32,6 +32,7 @@ public sealed class FbBackup : FbService public int Factor { get; set; } public string SkipData { get; set; } public FbBackupFlags Options { get; set; } + public bool IncludeStatistics { get; set; } = true; public FbBackupRestoreStatistics Statistics { get; set; } public FbBackup(string connectionString = null) @@ -67,7 +68,8 @@ public void Execute() if (!string.IsNullOrEmpty(SkipData)) startSpb.Append2(IscCodes.isc_spb_bkp_skip_data, SkipData); startSpb.Append(IscCodes.isc_spb_options, (int)Options); - startSpb.Append2(IscCodes.isc_spb_bkp_stat, Statistics.BuildConfiguration()); + if (IncludeStatistics) + startSpb.Append2(IscCodes.isc_spb_bkp_stat, Statistics.BuildConfiguration()); if (ConnectionStringOptions.ParallelWorkers > 0) startSpb.Append(IscCodes.isc_spb_bkp_parallel_workers, ConnectionStringOptions.ParallelWorkers); StartTask(startSpb); @@ -113,7 +115,8 @@ public async Task ExecuteAsync(CancellationToken cancellationToken = default) if (!string.IsNullOrEmpty(SkipData)) startSpb.Append2(IscCodes.isc_spb_bkp_skip_data, SkipData); startSpb.Append(IscCodes.isc_spb_options, (int)Options); - startSpb.Append2(IscCodes.isc_spb_bkp_stat, Statistics.BuildConfiguration()); + if (IncludeStatistics) + startSpb.Append2(IscCodes.isc_spb_bkp_stat, Statistics.BuildConfiguration()); if (ConnectionStringOptions.ParallelWorkers > 0) startSpb.Append(IscCodes.isc_spb_bkp_parallel_workers, ConnectionStringOptions.ParallelWorkers); await StartTaskAsync(startSpb, cancellationToken).ConfigureAwait(false); diff --git a/src/FirebirdSql.Data.FirebirdClient/Services/FbRestore.cs b/src/FirebirdSql.Data.FirebirdClient/Services/FbRestore.cs index b52c01c6..27a724b7 100644 --- a/src/FirebirdSql.Data.FirebirdClient/Services/FbRestore.cs +++ b/src/FirebirdSql.Data.FirebirdClient/Services/FbRestore.cs @@ -46,6 +46,7 @@ public int? PageSize public bool ReadOnly { get; set; } public string SkipData { get; set; } public FbRestoreFlags Options { get; set; } + public bool IncludeStatistics { get; set; } = true; public FbBackupRestoreStatistics Statistics { get; set; } public FbRestore(string connectionString = null) @@ -82,7 +83,8 @@ public void Execute() if (!string.IsNullOrEmpty(SkipData)) startSpb.Append2(IscCodes.isc_spb_res_skip_data, SkipData); startSpb.Append(IscCodes.isc_spb_options, (int)Options); - startSpb.Append2(IscCodes.isc_spb_res_stat, Statistics.BuildConfiguration()); + if (IncludeStatistics) + startSpb.Append2(IscCodes.isc_spb_res_stat, Statistics.BuildConfiguration()); if (ConnectionStringOptions.ParallelWorkers > 0) startSpb.Append(IscCodes.isc_spb_res_parallel_workers, ConnectionStringOptions.ParallelWorkers); StartTask(startSpb); @@ -129,7 +131,8 @@ public async Task ExecuteAsync(CancellationToken cancellationToken = default) if (!string.IsNullOrEmpty(SkipData)) startSpb.Append2(IscCodes.isc_spb_res_skip_data, SkipData); startSpb.Append(IscCodes.isc_spb_options, (int)Options); - startSpb.Append2(IscCodes.isc_spb_res_stat, Statistics.BuildConfiguration()); + if (IncludeStatistics) + startSpb.Append2(IscCodes.isc_spb_res_stat, Statistics.BuildConfiguration()); if (ConnectionStringOptions.ParallelWorkers > 0) startSpb.Append(IscCodes.isc_spb_res_parallel_workers, ConnectionStringOptions.ParallelWorkers); await StartTaskAsync(startSpb, cancellationToken).ConfigureAwait(false); From 80b3ff5f30a991dbbc56fb5e2372016f21ad51e4 Mon Sep 17 00:00:00 2001 From: DevM900 <173990884+DevM900@users.noreply.github.com> Date: Fri, 12 Jul 2024 13:18:42 +0200 Subject: [PATCH 2/4] `Statistics` to nullable and `IncludeStatistics` removed To perform a backup or restore without determining the statistics values, the `Statistics` property can be set to `null`. The property `IncludeStatistics` is therefore no longer required. --- .../Services/FbBackup.cs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/FirebirdSql.Data.FirebirdClient/Services/FbBackup.cs b/src/FirebirdSql.Data.FirebirdClient/Services/FbBackup.cs index 12537116..4e44948c 100644 --- a/src/FirebirdSql.Data.FirebirdClient/Services/FbBackup.cs +++ b/src/FirebirdSql.Data.FirebirdClient/Services/FbBackup.cs @@ -32,8 +32,7 @@ public sealed class FbBackup : FbService public int Factor { get; set; } public string SkipData { get; set; } public FbBackupFlags Options { get; set; } - public bool IncludeStatistics { get; set; } = true; - public FbBackupRestoreStatistics Statistics { get; set; } + public FbBackupRestoreStatistics? Statistics { get; set; } = default(FbBackupRestoreStatistics); public FbBackup(string connectionString = null) : base(connectionString) @@ -68,8 +67,8 @@ public void Execute() if (!string.IsNullOrEmpty(SkipData)) startSpb.Append2(IscCodes.isc_spb_bkp_skip_data, SkipData); startSpb.Append(IscCodes.isc_spb_options, (int)Options); - if (IncludeStatistics) - startSpb.Append2(IscCodes.isc_spb_bkp_stat, Statistics.BuildConfiguration()); + if (Statistics.HasValue) + startSpb.Append2(IscCodes.isc_spb_bkp_stat, Statistics.Value.BuildConfiguration()); if (ConnectionStringOptions.ParallelWorkers > 0) startSpb.Append(IscCodes.isc_spb_bkp_parallel_workers, ConnectionStringOptions.ParallelWorkers); StartTask(startSpb); @@ -115,8 +114,8 @@ public async Task ExecuteAsync(CancellationToken cancellationToken = default) if (!string.IsNullOrEmpty(SkipData)) startSpb.Append2(IscCodes.isc_spb_bkp_skip_data, SkipData); startSpb.Append(IscCodes.isc_spb_options, (int)Options); - if (IncludeStatistics) - startSpb.Append2(IscCodes.isc_spb_bkp_stat, Statistics.BuildConfiguration()); + if (Statistics.HasValue) + startSpb.Append2(IscCodes.isc_spb_bkp_stat, Statistics.Value.BuildConfiguration()); if (ConnectionStringOptions.ParallelWorkers > 0) startSpb.Append(IscCodes.isc_spb_bkp_parallel_workers, ConnectionStringOptions.ParallelWorkers); await StartTaskAsync(startSpb, cancellationToken).ConfigureAwait(false); From 9003fc15c7fc7e23f9710d497a24eb02ff879c96 Mon Sep 17 00:00:00 2001 From: DevM900 <173990884+DevM900@users.noreply.github.com> Date: Mon, 15 Jul 2024 11:21:53 +0200 Subject: [PATCH 3/4] `Statistics` to nullable and `IncludeStatistics` removed To perform a restore without determining the statistics values, the `Statistics` property can be set to `null`. The property `IncludeStatistics` is therefore no longer required. --- .../Services/FbRestore.cs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/FirebirdSql.Data.FirebirdClient/Services/FbRestore.cs b/src/FirebirdSql.Data.FirebirdClient/Services/FbRestore.cs index 27a724b7..86062c70 100644 --- a/src/FirebirdSql.Data.FirebirdClient/Services/FbRestore.cs +++ b/src/FirebirdSql.Data.FirebirdClient/Services/FbRestore.cs @@ -46,8 +46,7 @@ public int? PageSize public bool ReadOnly { get; set; } public string SkipData { get; set; } public FbRestoreFlags Options { get; set; } - public bool IncludeStatistics { get; set; } = true; - public FbBackupRestoreStatistics Statistics { get; set; } + public FbBackupRestoreStatistics? Statistics { get; set; } public FbRestore(string connectionString = null) : base(connectionString) @@ -83,8 +82,8 @@ public void Execute() if (!string.IsNullOrEmpty(SkipData)) startSpb.Append2(IscCodes.isc_spb_res_skip_data, SkipData); startSpb.Append(IscCodes.isc_spb_options, (int)Options); - if (IncludeStatistics) - startSpb.Append2(IscCodes.isc_spb_res_stat, Statistics.BuildConfiguration()); + if (Statistics.HasValue) + startSpb.Append2(IscCodes.isc_spb_res_stat, Statistics.Value.BuildConfiguration()); if (ConnectionStringOptions.ParallelWorkers > 0) startSpb.Append(IscCodes.isc_spb_res_parallel_workers, ConnectionStringOptions.ParallelWorkers); StartTask(startSpb); @@ -131,8 +130,8 @@ public async Task ExecuteAsync(CancellationToken cancellationToken = default) if (!string.IsNullOrEmpty(SkipData)) startSpb.Append2(IscCodes.isc_spb_res_skip_data, SkipData); startSpb.Append(IscCodes.isc_spb_options, (int)Options); - if (IncludeStatistics) - startSpb.Append2(IscCodes.isc_spb_res_stat, Statistics.BuildConfiguration()); + if (Statistics.HasValue) + startSpb.Append2(IscCodes.isc_spb_res_stat, Statistics.Value.BuildConfiguration()); if (ConnectionStringOptions.ParallelWorkers > 0) startSpb.Append(IscCodes.isc_spb_res_parallel_workers, ConnectionStringOptions.ParallelWorkers); await StartTaskAsync(startSpb, cancellationToken).ConfigureAwait(false); From ef31124f6c150f1db658d7e15fa3878af14fc4a3 Mon Sep 17 00:00:00 2001 From: DevM900 <173990884+DevM900@users.noreply.github.com> Date: Mon, 15 Jul 2024 11:27:28 +0200 Subject: [PATCH 4/4] Setting the default value of `Statistics` removed --- src/FirebirdSql.Data.FirebirdClient/Services/FbBackup.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/FirebirdSql.Data.FirebirdClient/Services/FbBackup.cs b/src/FirebirdSql.Data.FirebirdClient/Services/FbBackup.cs index 4e44948c..a7ea0e9d 100644 --- a/src/FirebirdSql.Data.FirebirdClient/Services/FbBackup.cs +++ b/src/FirebirdSql.Data.FirebirdClient/Services/FbBackup.cs @@ -32,7 +32,7 @@ public sealed class FbBackup : FbService public int Factor { get; set; } public string SkipData { get; set; } public FbBackupFlags Options { get; set; } - public FbBackupRestoreStatistics? Statistics { get; set; } = default(FbBackupRestoreStatistics); + public FbBackupRestoreStatistics? Statistics { get; set; } public FbBackup(string connectionString = null) : base(connectionString)