Commit Graph

54 Commits

Author SHA1 Message Date
Kenneth Skovhede 40dd3c6816 Updated all license mentions to MIT 2024-02-28 15:45:30 +01:00
aureliandevel baf489e8a9 Fix column name typo 2021-03-20 13:26:53 +11:00
Kenneth Hsu 5951047ff1 Fix incorrect or misleading indentations.
This also adds braces to clarify scope where beneficial.
2020-11-21 13:58:16 -08:00
Sean Templeton 19010e6314 Fix unexpected difference in fileset when using Stop Now
The exception could occur due to the existing delete for FilesetEntry
deleting based on volume ids, which would only match a filelist.
The bsIdsSubQuery would return BlocksetIds that should
be deleted and would delete from the FileLookup table.

FilesetEntry would then have a higher count of rows
than what would be returned by the LEFT OUTER JOINS on all of the
other tables in VerifyConsistency() since more rows had been deleted
from FileLookup.

To fix this when rows are deleted in FileLookup, use the associated metadata id
to delete from FilesetEntry and other tables based on the blockset id for the
metadata id.

Some existing delete statements were moved, none were deleted.
The existing FileLookup delete had the match on metadata id removed as
a blockset id does not equal a metadata id.
2020-03-01 18:16:33 -06:00
Kenneth Hsu 610fa4ffea Generate backup version numbers manually instead of in query.
The ROW_NUMBER window function is not available in SQLite versions prior
to 3.25.  In some cases, I think we do fall back to the system SQLite
libraries, and many distributions do not have versions that support the
window functions.  To be safe, we will generate the backup versions
manually.
2019-12-15 13:28:44 -08:00
Kenneth Hsu 60b4c8479c Fix bug where filesets considered for deletion had wrong version.
The ID in the Fileset table is the auto-incremented integer.  When
considering filesets for deletion (in particular, when deleting specific
versions), we need to reference the backup version number that is
exposed to the user (integers where the newest backup version is 0).
2019-12-12 18:38:17 -08:00
Kenneth Hsu 68ffd86594 Refactor fileset deletion code.
This extracts the logic for various fileset deletion strategies into
separate classes.  This simplifies the code and makes it easier to test
the individual functionalities.
2019-12-11 17:59:20 -08:00
Kenneth Hsu 2aa76881a5 Mark fields that don't need to be reassigned as readonly.
This makes it explicit at compile-time that these fields should not be
reassigned outside the constructor.
2019-10-19 13:59:22 -07:00
Kenneth Hsu 0a390bd31a Move NormalizeDateTimeToEpochSeconds method to Utility class. 2019-09-01 12:38:23 -07:00
drwtsn32x b8d71b7ada Remove debug message 2019-07-31 07:11:00 -07:00
drwtsn32x 065ca97e7d Fix for issue 3308 - deletion of too many Filesets 2019-07-31 07:09:37 -07:00
Kenneth Hsu 3e0f1d5e5e Fix issue where block was not recognized as being used.
This fixes an occurrence of the "Unexpected difference in fileset
version" error due to a deleted block having the same hash as one that
is currently in-use.

This fixes issue #3800.
2019-06-22 09:51:57 -07:00
Kenneth Skovhede 03722fcba1 Merge branch 'master' into feature/fix_path_storage2
# Conflicts:
#	Duplicati/Library/Main/Database/LocalRecreateDatabase.cs
2018-10-23 11:33:35 +02:00
Kenneth Hsu 9e0b031fee Remove unused members. 2018-10-15 21:20:30 -07:00
Kenneth Hsu d72128ec83 Remove unused method parameters. 2018-10-06 15:09:43 -07:00
Kenneth Skovhede cbc18970d5 Re-applied the path-storage fix as the merge failed somehow 2018-06-14 10:12:24 +02:00
Kenneth Hsu f12858e6a5 Mark fields that shouldn't be reassigned as readonly.
This makes it explicit at compile-time that these fields should not be
reassigned outside the constructor.
2018-05-25 10:04:52 -07:00
Kenneth Hsu 2384e6eb30 Simplify construction of query parameter string. 2018-05-19 16:12:12 -07:00
Daniel Gehriger 7bf0a25912 Revert "Merge remote-tracking branch 'upstream/feature/fix_path_storage' into feature/usn"
This reverts commit 10d6b4c31c, reversing
changes made to 1af7f9e0ca.
2018-04-23 23:02:52 +02:00
Daniel Gehriger 10d6b4c31c Merge remote-tracking branch 'upstream/feature/fix_path_storage' into feature/usn 2018-04-23 22:57:32 +02:00
Kenneth Skovhede a8a32ea115 Added refactoring to improve the storage requirements for the local database, and speed up various queries.
This fixes #1283
2018-04-23 22:31:47 +02:00
Daniel Gehriger 2c1a0ddb4e Implemented backup based on changes recorded in NTFS USN journal 2018-04-19 22:59:28 +02:00
Kenneth Skovhede 842fd96543 Implemented a new logging system that is more transparent and allows a more granular way of picking log messages.
Added ID's to each log message and each exception to allow later introduction of a Knowledgebase service that explains each error in more detail.
2018-03-15 09:12:34 +01:00
Kenneth Hsu 1c7391399d Remove XML documentation for unmatched parameters. 2017-12-09 18:30:01 -08:00
Kenneth Skovhede 3b85a77673 Minor style fixes 2017-01-05 09:57:06 +01:00
Kenneth Skovhede 4bf4871427 Added commandline operation to purge select files from filesets.
This fixes #1009.
This paves the way for #1337.
2016-12-29 22:41:13 +01:00
Kenneth Skovhede d8972b0f2b Removed unused memory cache code 2016-12-16 17:30:39 +01:00
Kenneth Skovhede 0c68daff6c Fixed all whitespace to be 4 spaces instead of tabs 2016-09-15 11:39:27 +02:00
Kenneth Skovhede 742eab0913 Fixed multiple cases where connections and command instances were not disposed.
This should fix all cases of "File is locked" on windows.
2016-04-06 20:40:34 +02:00
Kenneth Skovhede 6aedcea7a6 Deleted extra left parenthesis 2016-03-27 16:07:03 +02:00
Kenneth Skovhede 4df9ec1224 Rewrote query for deleting filesets to support filesets with zero entries.
This should fix issue #1583
2016-03-27 15:28:49 +02:00
Kenneth Skovhede 9bfc39120a Improved handling the compaction process with errors, such that deletes are marked and commited to the database before actually being deleted, causing fewer issues when resuming the operation afterwards. 2015-11-17 21:32:55 +01:00
Kenneth Skovhede 6fa57528a9 Fixed some cases where an interrupted upload would cause a deleted remote file to be attempted verified repeatedly. 2015-09-16 21:25:32 +02:00
Kenneth Skovhede 38661a3d8c Correct reading of file with size == DBNull
This fixes #1296.
2015-02-15 22:59:20 +01:00
Kenneth Skovhede 4846ffa103 Now using the file modification timestamp and the filesize as indicators that trigger file scanning.
This fixes #1099.
2015-01-24 21:59:53 +01:00
Kenneth Skovhede 796459df5d Fix for hash collisions with different size inputs 2014-05-14 14:44:56 +02:00
Kenneth Skovhede 1f48d43515 Removed the HashDatabaseProtector and added the HashLookupHelper instead. 2013-09-09 22:50:18 +02:00
Kenneth Skovhede 9cac8edaec Fixed issue with compact not registering indexblocklinks 2013-08-27 10:23:21 +02:00
Kenneth Skovhede 47546553da Fixed 2 bugs in the compact routine 2013-08-25 07:50:24 +02:00
Kenneth Skovhede 140b3575ee Fixed output from delete command so it includes size 2013-08-25 07:49:31 +02:00
Kenneth Skovhede 3f1d210924 Added check for small file count 2013-08-24 21:16:44 +02:00
Kenneth Skovhede 4c217b57d9 Fixed a number of dispose errors that would mask real errors 2013-08-23 23:36:25 +02:00
Kenneth Skovhede a229de8e23 Cleaned up some output with Backup and compacting.
Implemented better output for Restore.
Fixed a problem with errors during dispose, and a problem with selecting filesets that do not exist.
Fixed a bug with restore if a file existed with some correct data, a copy would be restored with partial data.
Added check to try to avoid excessive restores of the same files if a file in another version already exists.
2013-08-22 20:56:03 +02:00
Kenneth Skovhede 5c110162ea Changed the time format of times used programmatically to use EPOCH seconds, as it is faster to parse and more reliable 2013-07-23 21:28:01 +02:00
Kenneth Skovhede 6830eb257d Cleaned up storage of various timestamps to only use second precision 2013-07-09 13:51:08 +02:00
Kenneth Skovhede c2556efd61 Converted a list method to an enumerator 2013-07-02 10:35:31 +02:00
Kenneth Skovhede b80b471956 Bug fix 2013-07-02 10:35:10 +02:00
Kenneth Skovhede 04281d87a9 Added guards against empty results in compact 2013-07-01 17:57:10 +02:00
Kenneth Skovhede f8494180cb Changed the way inactive blocks are tracked.
They are now tracked exclusively from the DeletedBlock table
2013-06-28 14:57:44 +02:00
Kenneth Skovhede d696670598 Reworked the result reporting to support type safe values 2013-05-25 16:40:15 +02:00