Re: PMS 1.43.x and discussions with Plex
This implementation of FTS Rebuilding is harmful in PMS 1.43.x
For safety to all, it has been disabled.
You may enable it by removing the 'return 0' in function
DoFTSRebuild (PMS 1.42.2 and below)
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