Add rules on geometry_columns view to tolerate insert/update/delete
authorSandro Santilli <strk@keybit.net>
Tue, 10 Jan 2012 18:12:27 +0000 (18:12 +0000)
committerSandro Santilli <strk@keybit.net>
Tue, 10 Jan 2012 18:12:27 +0000 (18:12 +0000)
Fixes OGR, see #1426. Raises no warning on operation (it should).
This commit includes changes in postgis_proc_upgrade.pl to retain rules.

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

postgis/postgis.sql.in.c
utils/postgis_proc_upgrade.pl

index 1536cdf0de574fc6d39821d6b283d0b90e688274..c454925e3fc0f6e02a749300af37c809bc07441f 100644 (file)
@@ -4345,6 +4345,20 @@ CREATE OR REPLACE VIEW geometry_columns AS
     AND c.relnamespace = n.oid \r
     AND (c.relkind = 'r'::"char" OR c.relkind = 'v'::"char") AND NOT pg_is_other_temp_schema(c.relnamespace);\r
 \r
+-- TODO: support RETURNING and raise a WARNING\r
+CREATE OR REPLACE RULE geometry_columns_insert AS\r
+        ON INSERT TO geometry_columns\r
+        DO INSTEAD NOTHING;\r
+\r
+-- TODO: raise a WARNING\r
+CREATE OR REPLACE RULE geometry_columns_update AS\r
+        ON UPDATE TO geometry_columns\r
+        DO INSTEAD NOTHING;\r
+\r
+-- TODO: raise a WARNING\r
+CREATE OR REPLACE RULE geometry_columns_delete AS\r
+        ON DELETE TO geometry_columns\r
+        DO INSTEAD NOTHING;\r
 \r
 \r
 ---------------------------------------------------------------\r
index 4b4e9814c5612db01c104b69bc05de79b3a0216d..946a49b6f3314c0d90171267135cbe06eaacc9b1 100755 (executable)
@@ -257,6 +257,17 @@ while(<INPUT>)
                }
        }
 
+       # Always output create ore replace rule 
+       if ( /^create or replace rule\s+(\S+)\s*/i )
+       {
+               print;
+               while(<INPUT>)
+               {
+                       print;
+                       last if /\;\s*$/;
+               }
+       }
+
        # This code handles operator classes by creating them if we are doing a major upgrade
        if ( /^create operator class\s+(\w+)\s*/i )
        {