Closed ewie closed 1 year ago
Es sollte noch mit allen Version seit 8.4 funktionen (bis auf das optional Ignorieren von Duplikaten) - was sich aber ggf. ändern könnte. Die meisten Funktionen aus alkis-compat.sql bilden auf älteren Versionen nur die aktuellen Funktionen nach und werden auch nur auf älteren Versionen (erfolgreich) angelegt. In PostgreSQL 13 mit PostGIS 3.2 bleiben z.B. nur:
CREATE FUNCTION public.array_length(anyarray, integer) RETURNS integer
CREATE FUNCTION public.asbinary(public.geometry, text) RETURNS bytea
CREATE FUNCTION public.cleangeometry(geom public.geometry) RETURNS public.geometry
CREATE FUNCTION public.setsrid(public.geometry, integer) RETURNS public.geometry
CREATE FUNCTION public.unnest(anyarray) RETURNS SETOF anyelement
Darin sehe ich allerdings kein Problem.
Ist mir erst im Nachhinein aufgefallen, dass ein Großteil der Funktionen gar nicht definiert wird, da CREATE FUNCTION
fehlschlägt. Nun gut, dann droppe ich die paar Funktionen nachdem alkis-import.sh
ausgeführt wurde.
Ich glaube aber nicht, dass noch jemand ernsthaft Postgres 8 einsetzt.
alkis-compat.sql
erstellt Funktionen als Ersatz für eventuell fehlende Funktionen. Teilweise handelt es sich um Shims für Postgres (array_length
undunnest
) sowie für PostGIS (ST_*
). Bei den Funktionen ohne PräfixST_
bin ich mir nicht sicher wofür die existieren. Hatte PostGIS mal eine API ohne den Präfix? Die werden von alkisimport aber auch nicht verwendet.Ist jetzt die Frage, welche Postgres- und PostGIS-Versionen alkisimport überhaupt unterstützt (keine Aussage dazu in der README oder auf https://www.norbit.de/68/). Aber Funktionen
array_length
undunnest
existieren seit Postgres 8.4 (https://www.postgresql.org/docs/8.4/release-8-4.html#AEN97667). Postgres 8.3 ist seit 10 Jahren EOL.Zumindest sollten die Funktionen nur erstellt werden wenn nötig, anstatt Schema
public
und das PostGIS-Schema mit unnötigen Objekten zuzumüllen. Beispielsweise wird FunktioncleanGeometry
erstellt, um damitst_makevalid
zu implementieren.cleanGeometry
ist aber unnötig, wennst_makevalid
bereits existiert (seit PostGIS 2.0.0, https://postgis.net/docs/release_notes.html#idm46696).Übersicht der verwendeten Funktionen aus
alkis-compat.sql
: