Aufrufwege und die Bedeutung geordneter Spalten untersuchen.
Ein Codebestand kann Modelle für Fremdschlüssel und Indizes besitzen, während der sichtbare Tabellenvergleich nur Spalten und Primärschlüssel aufruft. Suche deshalb vom Einstieg bis zur Ergebnisliste nach dem tatsächlichen Prüfpfad. Ein Klassenname oder Enum-Wert allein belegt keine aktive Prüfung. Achte auch darauf, welche Informationen Gleichheitsfunktionen erhalten. Werden Indexspalten vor dem Vergleich sortiert, gelten (AUTHOR_ID,YEAR) und (YEAR,AUTHOR_ID) als dieselbe Menge. Für einen B-Tree-Index kann die Spaltenreihenfolge aber die Nutzung durch Abfragen beeinflussen. Ob Reihenfolge relevant ist, gehört deshalb ausdrücklich in den Vergleichsvertrag; sie darf nicht aus Bequemlichkeit verschwinden.
Ein Beispiel
Unser Prüfer listet columns und primary_key als aktive Dimensionen; foreign_keys und indexes stehen unter nicht geprüft. Eine zusätzliche Lehrprobe vergleicht die beiden Index-Tupel ohne Sortierung. Sie liefert verschieden. Das ergänzt ein neues Prüfziel, behauptet aber nicht, eine bestehende Routine habe den Index schon geprüft.
Python 3.11 · Lehrbeispiel
first = ("AUTHOR_ID", "YEAR")
second = ("YEAR", "AUTHOR_ID")
print(sorted(first) == sorted(second))
print(first == second)
Erwartete Ausgabe
True
False