Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/duplicati/duplicati.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenneth Skovhede <kenneth@hexad.dk>2014-11-24 00:07:55 +0300
committerKenneth Skovhede <kenneth@hexad.dk>2014-11-24 00:07:55 +0300
commit10c5cc9408b9536f8aa5efe6eabe3c67614da863 (patch)
treee49b4c594829ba0123fadc9d8b6aa35feacda4c3
parentbee55a951e370b6ead2ae052ebd2fcf2cbee353b (diff)
Added missing SQL command and improved speed of the queries
-rw-r--r--Duplicati/Library/Main/Database/LocalRepairDatabase.cs14
1 files changed, 9 insertions, 5 deletions
diff --git a/Duplicati/Library/Main/Database/LocalRepairDatabase.cs b/Duplicati/Library/Main/Database/LocalRepairDatabase.cs
index 2db211702..3ceb7f78b 100644
--- a/Duplicati/Library/Main/Database/LocalRepairDatabase.cs
+++ b/Duplicati/Library/Main/Database/LocalRepairDatabase.cs
@@ -151,18 +151,22 @@ namespace Duplicati.Library.Main.Database
var blockCount = cmd.ExecuteNonQuery(string.Format(@"INSERT INTO ""{0}"" (""Hash"", ""Size"", ""Restored"") SELECT DISTINCT ""Block"".""Hash"", ""Block"".""Size"", 0 AS ""Restored"" FROM ""Block"",""Remotevolume"" WHERE ""Block"".""VolumeID"" = ""Remotevolume"".""ID"" AND ""Remotevolume"".""Name"" = ? ", m_tablename), volumename);
if (blockCount == 0)
throw new Exception(string.Format("Unexpected empty block volume: {0}", volumename));
+
+ cmd.ExecuteNonQuery(string.Format(@"CREATE UNIQUE INDEX ""{0}-Ix"" ON ""{0}"" (""Hash"", ""Size"", ""Restored"")", tablename));
}
-
+
m_insertCommand = m_connection.CreateCommand();
m_insertCommand.Transaction = m_transaction.Parent;
- m_insertCommand.AddParameters(3);
+ m_insertCommand.CommandText = string.Format(@"UPDATE ""{0}"" SET ""Restored"" = ? WHERE ""Hash"" = ? AND ""Size"" = ? AND ""Restored"" = ? ", tablename);
+ m_insertCommand.AddParameters(4);
}
public bool SetBlockRestored(string hash, long size)
{
- m_insertCommand.SetParameterValue(0, hash);
- m_insertCommand.SetParameterValue(1, size);
- m_insertCommand.SetParameterValue(2, 1);
+ m_insertCommand.SetParameterValue(0, 1);
+ m_insertCommand.SetParameterValue(1, hash);
+ m_insertCommand.SetParameterValue(2, size);
+ m_insertCommand.SetParameterValue(3, 0);
return m_insertCommand.ExecuteNonQuery() == 1;
}