Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 70ca572

Browse files
Implement verbint
1 parent 73b0082 commit 70ca572

File tree

4 files changed

+42
-6
lines changed

4 files changed

+42
-6
lines changed

‎src/FirebirdSql.Data.FirebirdClient.Tests/FbServicesTests.cs

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,13 +69,40 @@ public async Task BackupRestoreZipTest()
6969
var backupName = $"{Guid.NewGuid()}.bak";
7070
var csb = BuildServicesConnectionStringBuilder(ServerType, Compression, WireCrypt, true);
7171
var connectionString = csb.ToString();
72-
await BackupPartHelper(backupName, connectionString, FbBackupFlags.Zip);
72+
await BackupPartHelper(backupName, connectionString, x =>
73+
{
74+
x.Options |= FbBackupFlags.Zip;
75+
});
7376
await RestorePartHelper(backupName, connectionString);
7477
// test the database was actually restored fine
7578
await Connection.OpenAsync();
7679
await Connection.CloseAsync();
7780
}
7881

82+
[Test]
83+
public async Task BackupRestoreVerbIntTest()
84+
{
85+
if (!EnsureServerVersionAtLeast(new Version(3, 0, 0, 0)))
86+
return;
87+
88+
var backupName = $"{Guid.NewGuid()}.bak";
89+
var csb = BuildServicesConnectionStringBuilder(ServerType, Compression, WireCrypt, true);
90+
var connectionString = csb.ToString();
91+
await BackupPartHelper(backupName, connectionString, x =>
92+
{
93+
x.Verbose = true;
94+
x.VerboseInterval = 1_000_000;
95+
});
96+
await RestorePartHelper(backupName, connectionString, x =>
97+
{
98+
x.Verbose = true;
99+
x.VerboseInterval = 1_000_000;
100+
});
101+
// test the database was actually restored fine
102+
await Connection.OpenAsync();
103+
await Connection.CloseAsync();
104+
}
105+
79106
[Test]
80107
public async Task BackupRestoreParallelTest()
81108
{
@@ -469,18 +496,19 @@ public async Task NFixupTest()
469496
Assert.DoesNotThrowAsync(() => Connection.OpenAsync());
470497
}
471498

472-
static Task BackupPartHelper(string backupName, string connectionString, FbBackupFlagsbackupFlags = FbBackupFlags.IgnoreLimbo)
499+
static Task BackupPartHelper(string backupName, string connectionString, Action<FbBackup>configure = null)
473500
{
474501
var backupSvc = new FbBackup();
475502
backupSvc.ConnectionString = connectionString;
476-
backupSvc.Options = backupFlags;
503+
backupSvc.Options = FbBackupFlags.IgnoreLimbo;
477504
backupSvc.BackupFiles.Add(new FbBackupFile(backupName, 2048));
478505
backupSvc.Verbose = true;
479506
backupSvc.Statistics = FbBackupRestoreStatistics.TotalTime | FbBackupRestoreStatistics.TimeDelta;
480507
backupSvc.ServiceOutput += ServiceOutput;
508+
configure?.Invoke(backupSvc);
481509
return backupSvc.ExecuteAsync();
482510
}
483-
static Task RestorePartHelper(string backupName, string connectionString)
511+
static Task RestorePartHelper(string backupName, string connectionString,Action<FbRestore>configure=null)
484512
{
485513
var restoreSvc = new FbRestore();
486514
restoreSvc.ConnectionString = connectionString;
@@ -490,6 +518,7 @@ static Task RestorePartHelper(string backupName, string connectionString)
490518
restoreSvc.Statistics = FbBackupRestoreStatistics.TotalTime | FbBackupRestoreStatistics.TimeDelta;
491519
restoreSvc.BackupFiles.Add(new FbBackupFile(backupName, 2048));
492520
restoreSvc.ServiceOutput += ServiceOutput;
521+
configure?.Invoke(restoreSvc);
493522
return restoreSvc.ExecuteAsync();
494523
}
495524

‎src/FirebirdSql.Data.FirebirdClient/Services/FbBackup.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ public sealed class FbBackup : FbService
2828
{
2929
public FbBackupFileCollection BackupFiles { get; }
3030
public bool Verbose { get; set; }
31+
public int? VerboseInterval { get; set; }
3132
public int Factor { get; set; }
3233
public string SkipData { get; set; }
3334
public FbBackupFlags Options { get; set; }
@@ -59,6 +60,8 @@ public void Execute()
5960
}
6061
if (Verbose)
6162
startSpb.Append(IscCodes.isc_spb_verbose);
63+
if (VerboseInterval.HasValue)
64+
startSpb.Append(IscCodes.isc_spb_verbint, (int)VerboseInterval);
6265
if (Factor > 0)
6366
startSpb.Append(IscCodes.isc_spb_bkp_factor, Factor);
6467
if (!string.IsNullOrEmpty(SkipData))

‎src/FirebirdSql.Data.FirebirdClient/Services/FbRestore.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ public int? PageSize
4141

4242
public FbBackupFileCollection BackupFiles { get; }
4343
public bool Verbose { get; set; }
44+
public int? VerboseInterval { get; set; }
4445
public int? PageBuffers { get; set; }
4546
public bool ReadOnly { get; set; }
4647
public string SkipData { get; set; }
@@ -71,6 +72,8 @@ public void Execute()
7172
startSpb.Append2(IscCodes.isc_spb_dbname, ConnectionStringOptions.Database);
7273
if (Verbose)
7374
startSpb.Append(IscCodes.isc_spb_verbose);
75+
if (VerboseInterval.HasValue)
76+
startSpb.Append(IscCodes.isc_spb_verbint, (int)VerboseInterval);
7477
if (PageBuffers.HasValue)
7578
startSpb.Append(IscCodes.isc_spb_res_buffers, (int)PageBuffers);
7679
if (_pageSize.HasValue)

‎src/FirebirdSql.Data.FirebirdClient/Services/FbStreamingRestore.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ public int? PageSize
4545

4646
public Stream InputStream { get; set; }
4747
public bool Verbose { get; set; }
48+
public int? VerboseInterval { get; set; }
4849
public int? PageBuffers { get; set; }
4950
public bool ReadOnly { get; set; }
5051
public string SkipData { get; set; }
@@ -68,9 +69,9 @@ public void Execute()
6869
startSpb.Append2(IscCodes.isc_spb_bkp_file, "stdin");
6970
startSpb.Append2(IscCodes.isc_spb_dbname, ConnectionStringOptions.Database);
7071
if (Verbose)
71-
{
7272
startSpb.Append(IscCodes.isc_spb_verbose);
73-
}
73+
if (VerboseInterval.HasValue)
74+
startSpb.Append(IscCodes.isc_spb_verbint, (int)VerboseInterval);
7475
if (PageBuffers.HasValue)
7576
startSpb.Append(IscCodes.isc_spb_res_buffers, (int)PageBuffers);
7677
if (_pageSize.HasValue)

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /