automatic and reindex both reported FTS Rebuild PASS / "successful" based
solely on whether the rebuild SQL statement itself errored, never re-running
CheckFTS (the same function used to detect the damage) to confirm the index
is actually clean afterward.
Call CheckFTS again after DoFTSRebuild in both paths and gate the PASS/FAIL
message on its result. Tested live against a database with confirmed FTS
corruption (see issue #289): the new verification step now visibly re-checks
after rebuilding and only reports success once CheckFTS independently
confirms it.
Fixes#289
v1.15.0
1. Fix long-standing DSM 6 start/stop problem (sorry)
2. Begin groundwork for better Username/Permissions handling in restrictive environments like DSM.
Add detection and automatic repair for FTS4 (Full-Text Search) index
corruption, which can occur even when PRAGMA integrity_check passes.
New functions:
- CheckFTS(): Validates FTS4 index integrity using SQLite's integrity-check command
- DoFTSRebuild(): Rebuilds corrupted FTS4 indexes using SQLite's rebuild command
Enhanced existing commands:
- 'check' (option 3): Now includes FTS integrity checking
- 'reindex' (option 6): Now checks FTS indexes and rebuilds if corruption detected
- 'automatic' (option 2): Checks FTS after repair/reindex and automatically rebuilds if damaged
Refactored FTS table query into reusable FTS_TABLE_QUERY constant for maintainability.
Fixes: https://github.com/ChuckPa/DBRepair/issues/269
v1.12.00 - Add Deflate command
Reconstruct bandwidth statistics table row by row instead of previous bulk copy of non-null values
Regenerate new IDs during reconstruction for new indexes and reindex
Deflate
- Create new bandwidth_statistics table with proper schema.
- Transfer only valid data from existing bandwidth statistics into new.
- Drop old table.
- Vacuum into new database.
Merge Prune & Purge as one proper command
Update ASUSTOR documentation error.
Finalize Deflate integration & reporting.
Update Release Notes
See closed PR "Freebsd compat #224" for discussion.
Updated version.
Uses FreeBSD Ports (pkg command) to determine which plexmediaserver package is installed and sets paths.