]> granicus.if.org Git - postgis/commitdiff
Put in safeguards around availability, changes, enhances so if no match, then doesn...
authorRegina Obe <lr@pcorp.us>
Sun, 23 Jul 2017 20:08:43 +0000 (20:08 +0000)
committerRegina Obe <lr@pcorp.us>
Sun, 23 Jul 2017 20:08:43 +0000 (20:08 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@15502 b70326c6-7e19-0410-871a-916f4a2858ee

doc/xsl/postgis_aggs_mm.xml.xsl

index 6e8d5a3ca99754b98853bd859b267978ae953843..5eab0ca075946f3024e5ff3d123b040bfa1b9dc9 100644 (file)
@@ -44,7 +44,7 @@
                        </xsl:for-each>
                        </itemizedlist>
                </sect1>
-               
+
                <sect1 id="PostGIS_Window_Functions">
                        <title>PostGIS Window Functions</title>
                        <para>The functions given below are spatial window functions provided with PostGIS that can be used just like any other sql window function such as row_numer(), lead(), lag(). All these require an SQL OVER() clause.</para>
                <sect1 id="PostGIS_GeographyFunctions">
                        <title>PostGIS Geography Support Functions</title>
                        <para>The functions and operators given below are PostGIS functions/operators that take as input or return as output a <link linkend="PostGIS_Geography">geography</link> data type object.</para>
-                       <note><para>Functions with a (T) are not native geodetic functions, and use a ST_Transform call to and from geometry to do the operation.  As a result, they may not behave as expected when going over dateline, poles, 
+                       <note><para>Functions with a (T) are not native geodetic functions, and use a ST_Transform call to and from geometry to do the operation.  As a result, they may not behave as expected when going over dateline, poles,
                                and for large geometries or geometry pairs that cover more than one UTM zone. Basic transform - (favoring UTM, Lambert Azimuthal (North/South), and falling back on mercator in worst case scenario)</para></note>
                                <itemizedlist>
                        <!-- Pull out the purpose section for each ref entry and strip whitespace and put in a variable to be tagged unto each function comment  -->
                                </xsl:for-each>
                                </itemizedlist>
                </sect1>
-       
-               
+
+
                <sect1 id="PostGIS_Geometry_DumpFunctions">
                        <title>PostGIS Geometry / Geography / Raster Dump Functions</title>
                        <para>The functions given below are PostGIS functions that take as input or return as output a set of or single <link linkend="geometry_dump">geometry_dump</link> or  <link linkend="geomval">geomval</link> data type object.</para>
                                </xsl:for-each>
                                </itemizedlist>
                </sect1>
-               
+
                <sect1 id="PostGIS_BoxFunctions">
                        <title>PostGIS Box Functions</title>
                        <para>The functions given below are PostGIS functions that take as input or return as output the box* family of PostGIS spatial types.
                                </xsl:for-each>
                                </itemizedlist>
                </sect1>
-               
+
                <sect1 id="PostGIS_PS_GeometryFunctions">
                        <title>PostGIS Polyhedral Surface Support Functions</title>
                        <para>The functions given below are PostGIS functions that can use POLYHEDRALSURFACE, POLYHEDRALSURFACEM geometries</para>
                        <xsl:variable name='matrix_autocast'><![CDATA[<inlinemediaobject><imageobject><imagedata fileref='images/matrix_autocast.png' /></imageobject></inlinemediaobject>]]></xsl:variable>
                        <xsl:variable name='matrix_sfcgal_required'><![CDATA[<inlinemediaobject><imageobject><imagedata fileref='images/matrix_sfcgal_required.png' /></imageobject></inlinemediaobject>]]></xsl:variable>
                        <xsl:variable name='matrix_sfcgal_enhanced'><![CDATA[<inlinemediaobject><imageobject><imagedata fileref='images/matrix_sfcgal_enhanced.png' /></imageobject></inlinemediaobject>]]></xsl:variable>
-                       
+
                        <title>PostGIS Function Support Matrix</title>
 
                        <para>Below is an alphabetical listing of spatial specific functions in PostGIS and the kinds of spatial
                                types they work with or OGC/SQL compliance they try to conform to.</para>
                        <para><itemizedlist>
                                <listitem><simpara>A <xsl:value-of select="$matrix_checkmark" disable-output-escaping="yes"/> means the function works with the type or subtype natively.</simpara></listitem>
-                               <listitem><simpara>A <xsl:value-of select="$matrix_transform" disable-output-escaping="yes"/> means it works but with a transform cast built-in using cast to geometry, transform to a "best srid" spatial ref and then cast back. Results may not be as expected for large areas or areas at poles 
+                               <listitem><simpara>A <xsl:value-of select="$matrix_transform" disable-output-escaping="yes"/> means it works but with a transform cast built-in using cast to geometry, transform to a "best srid" spatial ref and then cast back. Results may not be as expected for large areas or areas at poles
                                                and may accumulate floating point junk.</simpara></listitem>
                                <listitem><simpara>A <xsl:value-of select="$matrix_autocast" disable-output-escaping="yes"/> means the function works with the type because of a auto-cast to another such as to box3d rather than direct type support.</simpara></listitem>
                                <listitem><simpara>A <xsl:value-of select="$matrix_sfcgal_required" disable-output-escaping="yes"/> means the function only available if PostGIS compiled with SFCGAL support.</simpara></listitem>
                                <listitem><simpara>T - Triangles and Triangulated Irregular Network surfaces (TIN)</simpara></listitem>
                                </itemizedlist>
                        </para>
-                               
+
                        <para>
                                <informaltable frame='all'>
                                        <tgroup cols='8' align='left' colsep='1' rowsep='1'>
                                                        <xsl:variable name="refname">
                                                                <xsl:value-of select="refnamediv/refname" />
                                                        </xsl:variable>
-                       
+
                                                        <row>
                                                                <!-- Display name of function and link to it -->
                                                                <entry><link linkend="{$refid}"><xsl:value-of select="$refname" /></link></entry>
                                                                                <entry></entry>
                                                                        </xsl:otherwise>
                                                                </xsl:choose>
-                                                               
+
                                                                <!-- If at least one paragraph contains support 3d -->
                                                                <xsl:choose>
                                                                        <!-- supports -->
                                                                        <xsl:otherwise>
                                                                                <entry></entry>
                                                                        </xsl:otherwise>
-                                                               </xsl:choose>   
+                                                               </xsl:choose>
                                                                <!-- SQL MM compliance -->
                                                                <xsl:choose>
                                                                        <!-- supports -->
                                                </xsl:for-each>
                                                </tbody>
                                        </tgroup>
-               </informaltable>        
+               </informaltable>
                </para>
           </sect1>
 
             <sect2 id="NewFunctions_2_4">
                                <title>PostGIS Functions new or enhanced in 2.4</title>
                                <para>The functions given below are PostGIS functions that were added or enhanced.</para>
+                <xsl:if test="//para[contains(text(),'Availability: 2.4')]">
                                <para>Functions new in PostGIS 2.4</para>
                                <itemizedlist>
                                <!-- Pull out the purpose section for each ref entry and strip whitespace and put in a variable to be tagged unto each function comment  -->
                                                <xsl:variable name="refid">
                                                        <xsl:value-of select="@id" />
                                                </xsl:variable>
-                                               
+
                                                <xsl:variable name="refname">
                                                        <xsl:value-of select="refnamediv/refname" />
                                                </xsl:variable>
-                               
-                               
+
+
                                <!-- For each section if there is note about availability in this version -->
                                                        <xsl:for-each select="refsection">
                                                                <xsl:for-each select="para | */para">
                                                        </xsl:for-each>
                                        </xsl:for-each>
                                </itemizedlist>
-                               
+                </xsl:if>
+
                                <para>TODO: Enhance some functions in 2.4 so this space isn't empty.</para>
-                               
+
                        </sect2>
-            
+
                        <sect2 id="NewFunctions_2_3">
                                <title>PostGIS Functions new or enhanced in 2.3</title>
                                <para>The functions given below are PostGIS functions that were added or enhanced.</para>
                 <note><para>PostGIS 2.3.0: PostGIS extension, all functions schema qualified to reduce issues in database restore.</para></note>
                 <note><para>PostGIS 2.3.0: PostgreSQL 9.4+ support for BRIN indexes. Refer to <xref linkend="brin_indexes" />.</para></note>
                 <note><para>PostGIS 2.3.0: Tiger Geocoder upgraded to work with TIGER 2016 data.</para></note>
+                <xsl:if test="//para[contains(text(),'Availability: 2.3')]">
                                <para>Functions new in PostGIS 2.3</para>
                                <itemizedlist>
                                <!-- Pull out the purpose section for each ref entry and strip whitespace and put in a variable to be tagged unto each function comment  -->
                                                <xsl:variable name="refid">
                                                        <xsl:value-of select="@id" />
                                                </xsl:variable>
-                                               
+
                                                <xsl:variable name="refname">
                                                        <xsl:value-of select="refnamediv/refname" />
                                                </xsl:variable>
-                               
-                               
+
+
                                <!-- For each section if there is note about availability in this version -->
                                                        <xsl:for-each select="refsection">
                                                                <xsl:for-each select="para | */para">
                                                        </xsl:for-each>
                                        </xsl:for-each>
                                </itemizedlist>
-                               
+                </xsl:if>
+
+                <xsl:if test="//para[contains(text(),'Enhanced: 2.3')]">
                                <para>The functions given below are PostGIS functions that are enhanced in PostGIS 2.3.</para>
                                <itemizedlist>
                                <!-- Pull out the purpose section for each ref entry   -->
                                                <xsl:variable name="refid">
                                                        <xsl:value-of select="@id" />
                                                </xsl:variable>
-                                               
+
                                                <xsl:variable name="refname">
                                                        <xsl:value-of select="refnamediv/refname" />
                                                </xsl:variable>
                                                                </xsl:for-each>
                                                        </xsl:for-each>
                                        </xsl:for-each>
-                               </itemizedlist> 
+                               </itemizedlist>
+                </xsl:if>
 
                        </sect2>
-                       
+
                        <sect2 id="NewFunctions_2_2">
                                <title>PostGIS Functions new or enhanced in 2.2</title>
                                <para>The functions given below are PostGIS functions that were added or enhanced.</para>
-                               
+
                                <note><para>postgis_sfcgal now can be installed as an extension using CREATE EXTENSION postgis_sfcgal;</para></note>
                                <note><para>PostGIS 2.2.0: Tiger Geocoder upgraded to work with TIGER 2015 data.</para></note>
                                <note><para>address_standardizer, address_standardizer_data_us extensions for standardizing address data refer to <xref linkend="Address_Standardizer" /> for details.</para></note>
                                <note><para>Many functions in topology rewritten as C functions for increased performance.</para></note>
+                               <xsl:if test="//para[contains(text(),'Availability: 2.2')]">
                                <para>Functions new in PostGIS 2.2</para>
                                <itemizedlist>
                                <!-- Pull out the purpose section for each ref entry and strip whitespace and put in a variable to be tagged unto each function comment  -->
                                                <xsl:variable name="refid">
                                                        <xsl:value-of select="@id" />
                                                </xsl:variable>
-                                               
+
                                                <xsl:variable name="refname">
                                                        <xsl:value-of select="refnamediv/refname" />
                                                </xsl:variable>
-                               
-                               
+
+
                                <!-- For each section if there is note about availability in this version -->
                                                        <xsl:for-each select="refsection">
                                                                <xsl:for-each select="para | */para">
                                                        </xsl:for-each>
                                        </xsl:for-each>
                                </itemizedlist>
-                               
+                               </xsl:if>
+
+                                <xsl:if test="//para[contains(text(),'Enhanced: 2.2')]">
                                <para>The functions given below are PostGIS functions that are enhanced in PostGIS 2.2.</para>
                                <itemizedlist>
                                <!-- Pull out the purpose section for each ref entry   -->
                                                <xsl:variable name="refid">
                                                        <xsl:value-of select="@id" />
                                                </xsl:variable>
-                                               
+
                                                <xsl:variable name="refname">
                                                        <xsl:value-of select="refnamediv/refname" />
                                                </xsl:variable>
                                                                </xsl:for-each>
                                                        </xsl:for-each>
                                        </xsl:for-each>
-                               </itemizedlist>                         
+                               </itemizedlist>
+                               </xsl:if>
                        </sect2>
-                       
-                <sect2 id="ChangedFunctions_2_2"><title>PostGIS functions breaking changes in 2.2</title>
+
+                       <xsl:if test="//para[contains(text(),'Changed: 2.2')]">
+                       <sect2 id="ChangedFunctions_2_2"><title>PostGIS functions breaking changes in 2.2</title>
                                <para>The functions given below are PostGIS functions that have possibly breaking changes in PostGIS 2.2.  If you use any of these, you may need to check your existing code.</para>
                                <itemizedlist>
                                <!-- Pull out the purpose section for each ref entry   -->
                                                <xsl:variable name="refid">
                                                        <xsl:value-of select="@id" />
                                                </xsl:variable>
-                                               
+
                                                <xsl:variable name="refname">
                                                        <xsl:value-of select="refnamediv/refname" />
                                                </xsl:variable>
                                        </xsl:for-each>
                                </itemizedlist>
                        </sect2>
+                       </xsl:if>
+
 
-                       
                        <sect2 id="NewFunctions_2_1">
                                <title>PostGIS Functions new or enhanced in 2.1</title>
                                <para>The functions given below are PostGIS functions that were added or enhanced.</para>
-                               
+
                                <note><para>More Topology performance Improvements.  Please refer to <xref linkend="Topology" /> for more details.</para></note>
                                <note><para>Bug fixes (particularly with handling of out-of-band rasters), many new functions (often shortening code you have to write to accomplish a common task) and massive speed improvements to raster functionality. Refer to <xref linkend="RT_reference" /> for more details. </para></note>
-                               <note><para>PostGIS 2.1.0: Tiger Geocoder upgraded to work with TIGER 2012 census data. <varname>geocode_settings</varname> added for debugging and tweaking rating preferences, loader made less greedy, now only downloads tables to be loaded. PostGIS 2.1.1: Tiger Geocoder upgraded to work with TIGER 2013 data. 
+                               <note><para>PostGIS 2.1.0: Tiger Geocoder upgraded to work with TIGER 2012 census data. <varname>geocode_settings</varname> added for debugging and tweaking rating preferences, loader made less greedy, now only downloads tables to be loaded. PostGIS 2.1.1: Tiger Geocoder upgraded to work with TIGER 2013 data.
                                        Please refer to <xref linkend="Tiger_Geocoder" /> for more details.</para></note>
-                                       
+
+                               <xsl:if test="//para[contains(text(),'Availability: 2.1')]">
                                <para>Functions new in PostGIS 2.1</para>
                                <itemizedlist>
                                <!-- Pull out the purpose section for each ref entry and strip whitespace and put in a variable to be tagged unto each function comment  -->
                                                <xsl:variable name="refid">
                                                        <xsl:value-of select="@id" />
                                                </xsl:variable>
-                                               
+
                                                <xsl:variable name="refname">
                                                        <xsl:value-of select="refnamediv/refname" />
                                                </xsl:variable>
                                                        </xsl:for-each>
                                        </xsl:for-each>
                                </itemizedlist>
-                       
+                               </xsl:if>
+
+                               <xsl:if test="//para[contains(text(),'Enhanced: 2.1')]">
                                <para>The functions given below are PostGIS functions that are enhanced in PostGIS 2.1.</para>
                                <itemizedlist>
                                <!-- Pull out the purpose section for each ref entry   -->
                                                <xsl:variable name="refid">
                                                        <xsl:value-of select="@id" />
                                                </xsl:variable>
-                                               
+
                                                <xsl:variable name="refname">
                                                        <xsl:value-of select="refnamediv/refname" />
                                                </xsl:variable>
                                                                </xsl:for-each>
                                                        </xsl:for-each>
                                        </xsl:for-each>
-                               </itemizedlist> 
-                       
+                               </itemizedlist>
+                               </xsl:if>
+
                        </sect2>
-                       
+
+                       <xsl:if test="//para[contains(text(),'Changed: 2.1')]">
                        <sect2 id="ChangedFunctions_2_1"><title>PostGIS functions breaking changes in 2.1</title>
                                <para>The functions given below are PostGIS functions that have possibly breaking changes in PostGIS 2.1.  If you use any of these, you may need to check your existing code.</para>
                                <itemizedlist>
                                                <xsl:variable name="refid">
                                                        <xsl:value-of select="@id" />
                                                </xsl:variable>
-                                               
+
                                                <xsl:variable name="refname">
                                                        <xsl:value-of select="refnamediv/refname" />
                                                </xsl:variable>
                                        </xsl:for-each>
                                </itemizedlist>
                        </sect2>
+                       </xsl:if>
+
 
-               
                        <sect2 id="NewFunctions_2_0">
                                <title>PostGIS Functions new, behavior changed, or enhanced in 2.0</title>
                                <para>The functions given below are PostGIS functions that were added, enhanced, or have <xref linkend="NewFunctions_2_0_Changed" /> breaking changes in 2.0 releases.</para>
                                <para>New geometry types: TIN and Polyhedral surfaces was introduced in 2.0</para>
                                <note><para>Greatly improved support for Topology.  Please refer to <xref linkend="Topology" /> for more details.</para></note>
-                               <note><para>In PostGIS 2.0, raster type and raster functionality has been integrated.  There are way too many new raster functions to list here and all are new so 
+                               <note><para>In PostGIS 2.0, raster type and raster functionality has been integrated.  There are way too many new raster functions to list here and all are new so
                                        please refer to <xref linkend="RT_reference" /> for more details of the raster functions available. Earlier pre-2.0 versions had raster_columns/raster_overviews as real tables. These were changed to views before release.  Functions such as <varname>ST_AddRasterColumn</varname> were removed and replaced with <xref linkend="RT_AddRasterConstraints"/>, <xref linkend="RT_DropRasterConstraints"/> as a result some apps that created raster tables may need changing.</para></note>
                                <note><para>Tiger Geocoder upgraded to work with TIGER 2010 census data and now included in the core PostGIS documentation.  A reverse geocoder function was also added.
                                        Please refer to <xref linkend="Tiger_Geocoder" /> for more details.</para></note>
+
+                               <xsl:if test="//para[contains(text(),'Availability: 2.0')]">
                                <itemizedlist>
                                <!-- Pull out the purpose section for each ref entry and strip whitespace and put in a variable to be tagged unto each function comment  -->
                                        <xsl:for-each select='//refentry'>
                                                <xsl:variable name="refid">
                                                        <xsl:value-of select="@id" />
                                                </xsl:variable>
-                                               
+
                                                <xsl:variable name="refname">
                                                        <xsl:value-of select="refnamediv/refname" />
                                                </xsl:variable>
                                                        </xsl:for-each>
                                        </xsl:for-each>
                                </itemizedlist>
-                               
+                               </xsl:if>
+
+                               <xsl:if test="//para[contains(text(),'Enhanced: 2.0')]">
                                <para>The functions given below are PostGIS functions that are enhanced in PostGIS 2.0.</para>
                                <itemizedlist>
                                <!-- Pull out the purpose section for each ref entry   -->
                                                <xsl:variable name="refid">
                                                        <xsl:value-of select="@id" />
                                                </xsl:variable>
-                                               
+
                                                <xsl:variable name="refname">
                                                        <xsl:value-of select="refnamediv/refname" />
                                                </xsl:variable>
                                                                </xsl:for-each>
                                                        </xsl:for-each>
                                        </xsl:for-each>
-                               </itemizedlist>                         
+                               </itemizedlist>
+                               </xsl:if>
                        </sect2>
+
                        <sect2 id="NewFunctions_2_0_Changed">
                               <title>PostGIS Functions changed behavior in 2.0</title>
                               <para>The functions given below are PostGIS functions that have changed behavior in PostGIS 2.0 and may require application changes.</para>
                        often return a different more accurate answer in PostGIS 2.0+ than it did in prior versions which may very well slightly
                        change answers to view port queries.</para></note>
                     <note><para>The arguments hasnodata was replaced with exclude_nodata_value which has the same meaning as the older hasnodata but clearer in purpose.</para></note>
+
+                                       <xsl:if test="//para[contains(text(),'Changed: 2.0')]">
                     <itemizedlist>
                     <!-- Pull out the purpose section for each ref entry   -->
                         <xsl:for-each select='//refentry'>
                             <xsl:variable name="refid">
                                 <xsl:value-of select="@id" />
                             </xsl:variable>
-                            
+
                             <xsl:variable name="refname">
                                 <xsl:value-of select="refnamediv/refname" />
                             </xsl:variable>
                                 </xsl:for-each>
                         </xsl:for-each>
                     </itemizedlist>
+                                       </xsl:if>
              </sect2>
+
                        <sect2 id="NewFunctions_1_5">
                                <title>PostGIS Functions new, behavior changed, or enhanced in 1.5</title>
+                               <xsl:if test="//para[contains(text(),'Availability: 1.5')]">
                                <para>The functions given below are PostGIS functions that were introduced or enhanced in this minor release.</para>
                                <itemizedlist>
                                <!-- Pull out the purpose section for each ref entry and strip whitespace and put in a variable to be tagged unto each function comment  -->
                                                <xsl:variable name="refid">
                                                        <xsl:value-of select="@id" />
                                                </xsl:variable>
-                                               
+
                                                <xsl:variable name="refname">
                                                        <xsl:value-of select="refnamediv/refname" />
                                                </xsl:variable>
                                                        </xsl:for-each>
                                        </xsl:for-each>
                                </itemizedlist>
+                               </xsl:if>
                        </sect2>
                        <sect2 id="NewFunctions_1_4">
                                <title>PostGIS Functions new, behavior changed, or enhanced in 1.4</title>
                                <para>The functions given below are PostGIS functions that were introduced or enhanced in the 1.4 release.</para>
+                               <xsl:if test="//para[contains(text(),'Availability: 1.4')]">
                                <itemizedlist>
                                <!-- Pull out the purpose section for each ref entry and strip whitespace and put in a variable to be tagged unto each function comment  -->
                                        <xsl:for-each select='//refentry'>
                                                        </xsl:for-each>
                                        </xsl:for-each>
                                </itemizedlist>
+                               </xsl:if>
                        </sect2>
                        <sect2 id="NewFunctions_1_3">
                                <title>PostGIS Functions new in 1.3</title>
                                <para>The functions given below are PostGIS functions that were introduced in the 1.3 release.</para>
+                               <xsl:if test="//para[contains(text(),'Availability: 1.3')]">
                                <itemizedlist>
                                <!-- Pull out the purpose section for each ref entry and strip whitespace and put in a variable to be tagged unto each function comment  -->
                                <xsl:for-each select='//refentry'>
                                                </xsl:for-each>
                                </xsl:for-each>
                                </itemizedlist>
+                               </xsl:if>
                        </sect2>
                </sect1>