[bin] Add script to re-index Notify.app
This commit is contained in:
52
bin/.local/bin/notify-add-indexes.sh
Executable file
52
bin/.local/bin/notify-add-indexes.sh
Executable file
@ -0,0 +1,52 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# notify-add-indexes.sh - Add recommended indexes to Notify SQLite database
|
||||||
|
# Usage: ./notify-add-indexes.sh [db_path] [--cleanup]
|
||||||
|
#
|
||||||
|
# Options:
|
||||||
|
# --cleanup Also drops the now-redundant message_by_time index
|
||||||
|
#
|
||||||
|
# Default path for Flatpak: ~/.var/app/com.ranfdev.Notify/data/com.ranfdev.Notify.sqlite
|
||||||
|
# Default path for local build: ~/.local/share/com.ranfdev.Notify.sqlite
|
||||||
|
#
|
||||||
|
# Usage:
|
||||||
|
#./notify-add-indexes.sh # Just add indexes
|
||||||
|
#./notify-add-indexes.sh --cleanup # Add indexes + remove old one
|
||||||
|
#./notify-add-indexes.sh ~/.local/share/com.ranfdev.Notify.sqlite --cleanup
|
||||||
|
DB_PATH=""
|
||||||
|
CLEANUP=false
|
||||||
|
# Parse arguments
|
||||||
|
for arg in "$@"; do
|
||||||
|
case $arg in
|
||||||
|
--cleanup)
|
||||||
|
CLEANUP=true
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
DB_PATH="$arg"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
DB_PATH="${DB_PATH:-$HOME/.var/app/com.ranfdev.Notify/data/com.ranfdev.Notify.sqlite}"
|
||||||
|
if [ ! -f "$DB_PATH" ]; then
|
||||||
|
echo "Error: Database not found at $DB_PATH"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "Database: $DB_PATH"
|
||||||
|
echo ""
|
||||||
|
# Create composite index for message(server, topic) - used by delete_messages
|
||||||
|
echo "Creating message_server_topic index..."
|
||||||
|
sqlite3 "$DB_PATH" "CREATE INDEX IF NOT EXISTS message_server_topic ON message(server, topic);"
|
||||||
|
# Create covering index for list_messages query
|
||||||
|
echo "Creating message_list_covering index..."
|
||||||
|
sqlite3 "$DB_PATH" "CREATE INDEX IF NOT EXISTS message_list_covering ON message(server, topic, data ->> '\$.time');"
|
||||||
|
# Optional: drop redundant index
|
||||||
|
if [ "$CLEANUP" = true ]; then
|
||||||
|
echo ""
|
||||||
|
echo "Dropping redundant message_by_time index..."
|
||||||
|
sqlite3 "$DB_PATH" "DROP INDEX IF EXISTS message_by_time;"
|
||||||
|
fi
|
||||||
|
# Verify
|
||||||
|
echo ""
|
||||||
|
echo "Current indexes:"
|
||||||
|
sqlite3 "$DB_PATH" "SELECT name FROM sqlite_master WHERE type='index' ORDER BY name;"
|
||||||
|
echo ""
|
||||||
|
echo "Done!"
|
||||||
Reference in New Issue
Block a user