#!/bin/bash

# This script reindex asterisk db
# This is specificallly for PG11.18 upgrade (see #6222)
# But it might be use for future db migration that would need it too

reindex_db() {
    local dbname="${1}"; shift

    psql -U asterisk -qtAc "REINDEX DATABASE ${dbname}"
}

reindex_db_after_pgupgrade() {
    local version_before_upgrade="${1}"; shift

    # Handle reindex for PG 11.18 upgrade (see #6222)
    if dpkg --compare-versions "${version_before_upgrade}" "<<" "2022.10.05"; then
        echo ""
        echo " * Upgrade to PG11.18 (deb11):"
        echo " *****************************"
        echo " - reindexing asterisk database ..."
        if reindex_db "asterisk"; then
            echo " - reindexing asterisk finished with success !"
            echo ""
            return 0
        else
            echo " - reindexing asterisk FAILED !"
            echo ""
            return 1
        fi
    fi
}

if dpkg --compare-versions "$MDS_VERSION_INSTALLED" "<<" "2022.10.05"; then
    if reindex_db_after_pgupgrade "$MDS_VERSION_INSTALLED"; then
        echo "MDS_UPGRADE_REINDEX_DB_ERROR=0" >> "${MDS_UPGRADE_STATUS_FILE}"
    else
        echo "MDS_UPGRADE_REINDEX_DB_ERROR=1" >> "${MDS_UPGRADE_STATUS_FILE}"
    fi
    exit 0
else
    exit 0
fi