diff --git a/Duplicati/Library/Main/Database/LocalRestoreDatabase.cs b/Duplicati/Library/Main/Database/LocalRestoreDatabase.cs index 74223dbc6..56b68dd43 100644 --- a/Duplicati/Library/Main/Database/LocalRestoreDatabase.cs +++ b/Duplicati/Library/Main/Database/LocalRestoreDatabase.cs @@ -959,29 +959,26 @@ ORDER BY ""A"".""TargetPath"", ""BB"".""Index"""); public IEnumerable GetFilesToRestore(bool onlyNonVerified) { - using (var cmd = m_connection.CreateCommand()) - { - cmd.AddParameter(!onlyNonVerified); - using (var rd = cmd.ExecuteReader(FormatInvariant($@"SELECT ""{m_tempfiletable}"".""ID"", ""{m_tempfiletable}"".""TargetPath"", ""Blockset"".""FullHash"", ""Blockset"".""Length"" FROM ""{m_tempfiletable}"",""Blockset"" WHERE ""{m_tempfiletable}"".""BlocksetID"" = ""Blockset"".""ID"" AND ""{m_tempfiletable}"".""DataVerified"" <= ?"))) - while (rd.Read()) - yield return new FileToRestore(rd.ConvertValueToInt64(0), rd.ConvertValueToString(1), rd.ConvertValueToString(2), rd.ConvertValueToInt64(3)); - } + using var cmd = m_connection.CreateCommand(FormatInvariant($@"SELECT ""{m_tempfiletable}"".""ID"", ""{m_tempfiletable}"".""TargetPath"", ""Blockset"".""FullHash"", ""Blockset"".""Length"" FROM ""{m_tempfiletable}"",""Blockset"" WHERE ""{m_tempfiletable}"".""BlocksetID"" = ""Blockset"".""ID"" AND ""{m_tempfiletable}"".""DataVerified"" <= @Verified")) + .SetParameterValue("@Verified", !onlyNonVerified); + + using (var rd = cmd.ExecuteReader()) + while (rd.Read()) + yield return new FileToRestore(rd.ConvertValueToInt64(0), rd.ConvertValueToString(1), rd.ConvertValueToString(2), rd.ConvertValueToInt64(3)); } /// /// Returns a list of files and symlinks to restore. /// - /// Flag to indicate if only files with non-verified data should be returned. /// A list of files and symlinks to restore. - public IEnumerable GetFilesAndSymlinksToRestore(bool onlyNonVerified) + public IEnumerable GetFilesAndSymlinksToRestore() { - using var cmd = m_connection.CreateCommand(); - cmd.AddParameter(!onlyNonVerified); - using var rd = cmd.ExecuteReader(FormatInvariant($@" + using var cmd = m_connection.CreateCommand(FormatInvariant($@" SELECT F.ID, F.Path, F.TargetPath, IFNULL(B.FullHash, ''), IFNULL(B.Length, 0), F.BlocksetID FROM ""{m_tempfiletable}"" F LEFT JOIN Blockset B ON F.BlocksetID = B.ID WHERE F.BlocksetID != {FOLDER_BLOCKSET_ID}")); + using var rd = cmd.ExecuteReader(); while (rd.Read()) yield return new FileRequest(rd.ConvertValueToInt64(0), rd.ConvertValueToString(1), rd.ConvertValueToString(2), rd.ConvertValueToString(3), rd.ConvertValueToInt64(4), rd.ConvertValueToInt64(5)); } diff --git a/Duplicati/Library/Main/Operation/Restore/FileLister.cs b/Duplicati/Library/Main/Operation/Restore/FileLister.cs index 6da3be7e6..23571662f 100644 --- a/Duplicati/Library/Main/Operation/Restore/FileLister.cs +++ b/Duplicati/Library/Main/Operation/Restore/FileLister.cs @@ -64,7 +64,7 @@ namespace Duplicati.Library.Main.Operation.Restore try { sw_prework?.Start(); - var files = db.GetFilesAndSymlinksToRestore(true).OrderByDescending(x => x.Length).ToArray(); // Get started on big files first + var files = db.GetFilesAndSymlinksToRestore().OrderByDescending(x => x.Length).ToArray(); // Get started on big files first result.OperationProgressUpdater.UpdatePhase(OperationPhase.Restore_DownloadingRemoteFiles); sw_prework?.Stop(); diff --git a/Duplicati/UnitTest/IssueTests.cs b/Duplicati/UnitTest/IssueTests.cs index 33ffebdf6..e6954d9ae 100644 --- a/Duplicati/UnitTest/IssueTests.cs +++ b/Duplicati/UnitTest/IssueTests.cs @@ -157,7 +157,7 @@ namespace Duplicati.UnitTest }; int test_filesize = 1024; - // TODO tjek om de gamle filer forbliver urørte. + // TODO check if the original files are untocuched var original_dir = Path.Combine(DATAFOLDER, "some_original_dir"); Directory.CreateDirectory(original_dir);