[postgis-commits] svn - r3313 - trunk/doc

postgis-commits at postgis.refractions.net postgis-commits at postgis.refractions.net
Fri Nov 21 06:15:37 PST 2008


Author: robe
Date: 2008-11-21 06:15:35 -0800 (Fri, 21 Nov 2008)
New Revision: 3313

Modified:
   trunk/doc/using_postgis.xml
Log:
GBT #71: Update section 4.2 of docs to describe manual adding to geometry columns.

Decided to just add a new section after

Modified: trunk/doc/using_postgis.xml
===================================================================
--- trunk/doc/using_postgis.xml	2008-11-21 08:36:39 UTC (rev 3312)
+++ trunk/doc/using_postgis.xml	2008-11-21 14:15:35 UTC (rev 3313)
@@ -468,7 +468,7 @@
       </variablelist>
     </sect2>
 
-    <sect2>
+    <sect2 id="CreateSpatialTable">
       <title>Creating a Spatial Table</title>
 
       <para>Creating a table with spatial data is done in two stages:</para>
@@ -570,6 +570,47 @@
         there.</para>
       </note>
     </sect2>
+	<sect2>
+		<title>Manually Registering Geometry Columns in geometry_columns</title>
+		<para>The AddGeometryColumn() approach creates a geometry column and also registers the new
+		column in the geometry_columns table.  If your software utilizes geometry_columns, then 
+		any geometry columns you need to query by must be registered in this table.  Two of the cases
+		where you want a geometry column to be registered in the geometry_columns table, but you can't use 
+		AddGeometryColumn, is in the case of SQL Views and bulk inserts.  For these cases, you must register the column in the 
+		geometry_columns table manually.  Below is a simple script to do that.</para>
+		
+		<programlisting>
+			--Lets say you have a view created like this
+			CREATE VIEW  public.vwmytablemercator AS
+				SELECT gid, ST_Transform(the_geom,3395) As the_geom, f_name
+				FROM public.mytable;
+				
+			--To register this table in AddGeometry columns - do the following
+			INSERT INTO geometry_columns(f_table_catalog, f_table_schema, f_table_name, f_geometry_column, coord_dimension, srid, "type")
+			SELECT '', 'public', 'vwmytablemercator', 'the_geom', ST_CoordDim(the_geom), ST_SRID(the_geom), GeometryType(the_geom)
+			FROM public.vwmytablemercator LIMIT 1;
+
+		</programlisting>
+		
+		<programlisting>
+			--Lets say you created a derivative table by doing a bulk insert
+			SELECT poi.gid, poi.the_geom, citybounds.city_name
+			INTO myschema.myspecialpois
+			FROM poi INNER JOIN citybounds ON ST_Intersects(citybounds.the_geom, poi.the_geom);
+			
+			--Create index on new table
+			CREATE INDEX idx_myschema_myspecialpois_geom_gist
+			  ON myschema.myspecialpois USING gist(the_geom);
+	
+			--To manually register this new table's geometry column in geometry_columns 
+			-- we do the same thing as with view 
+			INSERT INTO geometry_columns(f_table_catalog, f_table_schema, f_table_name, f_geometry_column, coord_dimension, srid, "type")
+			SELECT '', 'myschema', 'myspecialpois', 'the_geom', ST_CoordDim(the_geom), ST_SRID(the_geom), GeometryType(the_geom)
+			FROM public.myschema.myspecialpois LIMIT 1;
+
+		</programlisting>
+	
+	</sect2>
   </sect1>
 
   <sect1>



More information about the postgis-commits mailing list