]> granicus.if.org Git - postgis/commitdiff
Use `server_version_num` instead of parsing `version()`
authorRaúl Marín Rodríguez <rmrodriguez@carto.com>
Fri, 18 Jan 2019 17:25:55 +0000 (17:25 +0000)
committerRaúl Marín Rodríguez <rmrodriguez@carto.com>
Fri, 18 Jan 2019 17:25:55 +0000 (17:25 +0000)
Closes #4296
Closes https://github.com/postgis/postgis/pull/363

git-svn-id: http://svn.osgeo.org/postgis/trunk@17181 b70326c6-7e19-0410-871a-916f4a2858ee

NEWS
extensions/postgis_extension_helper.sql
postgis/postgis.sql.in

diff --git a/NEWS b/NEWS
index e7dd76df614b7174bfd96f974b7ea462cb2ee1ff..8a7dbecfa9a16b8aacdf279892bf1c9dd48a153b 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -67,6 +67,7 @@ PostGIS 3.0.0
            (Darafei Praliaskouski)
   - #4289, ST_AsMVTGeom: Transform coordinates space before clipping (Raúl Marín)
   - #4275, Avoid passing a NULL pointer to GEOSisEmpty (Raúl Marín)
+  - #4296, Use `server_version_num` instead of parsing `version()` (Raúl Marín)
 
 
 PostGIS 2.5.0
index a5e6a0ad245bb4e7b0df5eb3a78f6361d186b979..c93493a443b6d4ff658d5338c5e801b862380864 100644 (file)
@@ -28,8 +28,7 @@ DECLARE
        var_class text := '';
        var_is_aggregate boolean := false;
        var_sql_list text := '';
-       var_pgsql_version integer := CASE WHEN split_part(s,'.',1)::integer > 9 THEN split_part(s,'.',1) || '0' ELSE split_part(s,'.', 1) || split_part(s,'.', 2) END AS v
-       FROM substring(version(), 'PostgreSQL ([0-9\.]+)') AS s;
+       var_pgsql_version integer := current_setting('server_version_num');
 BEGIN
                var_class := CASE WHEN lower(param_type) = 'function' OR lower(param_type) = 'aggregate' THEN 'pg_proc' ELSE '' END;
                var_is_aggregate := CASE WHEN lower(param_type) = 'aggregate' THEN true ELSE false END;
index d59be49f056816234f2e788937444f6e78758af9..388066192e643cacb5ca7f70b6c206fe7826575d 100644 (file)
@@ -2854,8 +2854,7 @@ CREATE OR REPLACE FUNCTION _postgis_scripts_pgsql_version() RETURNS text
 
 CREATE OR REPLACE FUNCTION _postgis_pgsql_version() RETURNS text
 AS $$
-       SELECT CASE WHEN split_part(s,'.',1)::integer > 9 THEN split_part(s,'.',1) || '0' ELSE split_part(s,'.', 1) || split_part(s,'.', 2) END AS v
-       FROM substring(version(), 'PostgreSQL ([0-9\.]+)') AS s;
+       SELECT current_setting('server_version_num');
 $$ LANGUAGE 'sql' STABLE;
 
 -- Availability: 2.5.0