norBIT / alkisimport

ALKIS-Import
http://www.norbit.de/68/
GNU General Public License v2.0
28 stars 17 forks source link

analyze vacuum schlägt fehl #49

Closed lvgl-pl closed 2 years ago

lvgl-pl commented 2 years ago

Diese Woche wurde auf unserer Alkis Datenbank ein Analize Vacuum durchgeführt, das mit einer Fehlermeldung abgebrochen ist:

vacuumdb: Vacuum der Datenbank »aaaogr« fehlgeschlagen: FEHLER: Funktion alkis_toint(character varying) existiert nicht ZEILE 1: SELECT to_char(alkis_toint(f.land),'fm00') || tochar(alkis... ^ TIP: Keine Funktion stimmt mit dem angegebenen Namen und den Argumenttypen überein. Sie müssen möglicherweise ausdrückliche Typumwandlungen hinzufügen. ANFRAGE: SELECT to_char(alkis_toint(f.land),'fm00') || to_char(alkis_toint(f.gemarkungsnummer),'fm0000') || '-' || to_char(coalesce(f.flurnummer,0),'fm000') || '-' || alkis_flsnrk(f) KONTEXT: PL/pgSQL-Funktion public.alkis_flsnr(public.ax_flurstueck) Zeile 3 bei RETURN

"Eine Recherche hat ergeben, dass das Problem aber tatsächlich im Datenmodell begründet liegt. Laut https://stackoverflow.com/questions/65237130/getting-function-does-not-exist-error-in-vacuumdb (in der Antwort) wird die Funktion VACUUM, die das Berechnen der Statistiken übernimmt mit einem geleerten Suchpfad ausgeführt. D.h. dass auch Funktionen im Schema public nicht mehr im Suchpfad von VACUUM enthalten sind und daher nicht gefunden werden können. In der Fehlermeldung sieht man, dass die Funktion alkis_toint ohne Schemaangabe in der Modelldefinition steht. Daher kann sie VACUUM nicht finden, obwohl sie vorhanden ist. Leider kann VACUUM auch kein neuer Suchpfad ("search_path") mitgegeben werden, so dass das nicht clientseitig gelöst werden kann. Hier ist tatsächlich eine Änderung des Datenmodells notwendig, so dass die Funktion mit expliziter Schemaangabe aufgerufen wird."

Angeführt werden muss noch, dass wir eine ältere Version des Alkis Importers verwenden. Können Sie etwas zu dem Fehler sagen?

jef-n commented 2 years ago

Welche Version ist im Einsatz? Seit efc65069105f9ed7b1e99a5147a32a859475d6f7 wird den Funktionen der Search-Path mitgegeben.

lvgl-pl commented 2 years ago

alkis-trigger.sql und nas2alb-functions.sql sind vor efc6506. Der Importer müsste von 2019 sein.

Vermutlich müssten wir es mit einer aktuellen Version versuchen.

jef-n commented 2 years ago

Vermutlich müssten wir es mit einer aktuellen Version versuchen.

Genau.