Skip to content

Commit 1db20a0

Browse files
committed
Support for isc_spb_bkp_zip (#1171).
1 parent bbd0dd2 commit 1db20a0

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

Diff for: src/FirebirdSql.Data.FirebirdClient.Tests/FbServicesTests.cs

+18-2
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,22 @@ public async Task BackupRestoreTest()
6060
await Connection.CloseAsync();
6161
}
6262

63+
[Test]
64+
public async Task BackupRestoreZipTest()
65+
{
66+
if (!EnsureServerVersionAtLeast(new Version(4, 0, 0, 0)))
67+
return;
68+
69+
var backupName = $"{Guid.NewGuid()}.bak";
70+
var csb = BuildServicesConnectionStringBuilder(ServerType, Compression, WireCrypt, true);
71+
var connectionString = csb.ToString();
72+
await BackupPartHelper(backupName, connectionString, FbBackupFlags.Zip);
73+
await RestorePartHelper(backupName, connectionString);
74+
// test the database was actually restored fine
75+
await Connection.OpenAsync();
76+
await Connection.CloseAsync();
77+
}
78+
6379
[Test]
6480
public async Task BackupRestoreParallelTest()
6581
{
@@ -453,11 +469,11 @@ public async Task NFixupTest()
453469
Assert.DoesNotThrowAsync(() => Connection.OpenAsync());
454470
}
455471

456-
static Task BackupPartHelper(string backupName, string connectionString)
472+
static Task BackupPartHelper(string backupName, string connectionString, FbBackupFlags backupFlags = FbBackupFlags.IgnoreLimbo)
457473
{
458474
var backupSvc = new FbBackup();
459475
backupSvc.ConnectionString = connectionString;
460-
backupSvc.Options = FbBackupFlags.IgnoreLimbo;
476+
backupSvc.Options = backupFlags;
461477
backupSvc.BackupFiles.Add(new FbBackupFile(backupName, 2048));
462478
backupSvc.Verbose = true;
463479
backupSvc.Statistics = FbBackupRestoreStatistics.TotalTime | FbBackupRestoreStatistics.TimeDelta;

Diff for: src/FirebirdSql.Data.FirebirdClient/Services/FbBackupFlags.cs

+1
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,5 @@ public enum FbBackupFlags
3333
Convert = IscCodes.isc_spb_bkp_convert,
3434
Expand = IscCodes.isc_spb_bkp_expand,
3535
NoDatabaseTriggers = IscCodes.isc_spb_bkp_no_triggers,
36+
Zip = IscCodes.isc_spb_bkp_zip,
3637
}

0 commit comments

Comments
 (0)