<xsl:output method="text" />\r
<!--Exclude this from testing - it crashes with geometry collection -->\r
<xsl:variable name='fnexclude'>ST_CurveToLine</xsl:variable>\r
- <xsl:variable name='var_integer'>4269</xsl:variable>\r
+ <xsl:variable name='var_srid'>4269</xsl:variable>\r
+ <xsl:variable name='var_integer'>-5</xsl:variable>\r
<xsl:variable name='var_float1'>0.5</xsl:variable>\r
<xsl:variable name='var_float2'>0.75</xsl:variable>\r
<xsl:variable name='var_version'>2</xsl:variable>\r
+ <xsl:variable name='var_NDRXDR'>XDR</xsl:variable>\r
+ <xsl:variable name='var_text'>monkey</xsl:variable>\r
<pgis:gardens>\r
<pgis:gset ID='PointSet' GeometryType='POINT'>(SELECT ST_SetSRID(ST_Point(i,j),4326) As the_geom \r
FROM generate_series(-10,50,15) As i \r
CROSS JOIN generate_series(50,70, 20) As j\r
CROSS JOIN generate_series(1,2) As m\r
GROUP BY m)</pgis:gset>\r
- \r
+ </pgis:gardens>\r
+ <!--This is just a placeholder to hold geometries that will crash server when hitting against some functions\r
+ We'll fix these crashers in 1.4 -->\r
+ <pgis:gardencrashers>\r
<pgis:gset ID='CurvePolySet' GeometryType='CURVEPOLYGON'>(SELECT ST_LineToCurve(ST_Buffer(ST_SetSRID(ST_Point(i,j),4326), j)) As the_geom \r
FROM generate_series(-10,50,10) As i \r
CROSS JOIN generate_series(40,70, 20) As j)</pgis:gset>\r
- </pgis:gardens>\r
+ </pgis:gardencrashers>\r
\r
<xsl:template match='/chapter'>\r
<!--Start Test table creation, insert, drop -->\r
<!--End Test table creation, insert, drop -->\r
<xsl:for-each select='sect1/refentry'>\r
<xsl:sort select="@id"/>\r
+\r
+ <xsl:for-each select="refsynopsisdiv/funcsynopsis/funcprototype">\r
+<!--Create dummy paramaters to be used later -->\r
+ <xsl:variable name='fnfakeparams'><xsl:call-template name="replaceparams"><xsl:with-param name="func" select="." /></xsl:call-template></xsl:variable>\r
<!-- For each function prototype generate a test sql statement\r
Test functions that take no arguments -->\r
- <xsl:for-each select="refsynopsisdiv/funcsynopsis/funcprototype">\r
<xsl:if test="count(paramdef/parameter) = 0">SELECT 'Starting <xsl:value-of select="funcdef/function" />()';BEGIN; \r
SELECT <xsl:value-of select="funcdef/function" />();\r
COMMIT;\r
</xsl:for-each>\r
</xsl:if>\r
\r
-<!--Garden Relationship/geom2 output function tests -->\r
+<!--Garden Relationship and 2 geom input function tests -->\r
<xsl:if test="(count(paramdef/parameter) = 2 and (paramdef[1]/type = 'geometry' or paramdef[1]/type = 'geometry ') and (paramdef[2]/type = 'geometry' or paramdef[2]/type = 'geometry '))">\r
<xsl:variable name='fnname'><xsl:value-of select="funcdef/function"/></xsl:variable>\r
<xsl:variable name='fndef'><xsl:value-of select="funcdef"/></xsl:variable>\r
</xsl:text>\r
</xsl:for-each>\r
</xsl:if>\r
+\r
+<!--Garden Relationship more than 1 args first geom -->\r
+<xsl:if test="(count(paramdef/parameter) > 1 and (paramdef[1]/type = 'geometry' or paramdef[1]/type = 'geometry ') and not(paramdef[2]/type = 'geometry' or paramdef[2]/type = 'geometry '))">\r
+ <xsl:variable name='fnname'><xsl:value-of select="funcdef/function"/></xsl:variable>\r
+ <xsl:variable name='fndef'><xsl:value-of select="funcdef"/></xsl:variable>\r
+ <xsl:for-each select="document('')//pgis:gardens/pgis:gset">\r
+SELECT '<xsl:value-of select="$fnname" /><xsl:text> </xsl:text><xsl:value-of select="@ID" />: Start Testing <xsl:value-of select="@GeometryType" />'; \r
+BEGIN; <!-- If output is geometry show ewkt rep -->\r
+ <xsl:choose>\r
+ <xsl:when test="contains($fndef, 'geometry ')">\r
+SELECT ST_AsEWKT(<xsl:value-of select="$fnname" />(<xsl:value-of select="$fnfakeparams" />))\r
+ </xsl:when>\r
+ <xsl:otherwise>\r
+SELECT <xsl:value-of select="$fnname" />(<xsl:value-of select="$fnfakeparams" />)\r
+ </xsl:otherwise>\r
+ </xsl:choose>\r
+ FROM (<xsl:value-of select="." />) As foo1 CROSS JOIN (<xsl:value-of select="." />) As foo2\r
+ LIMIT 5; \r
+COMMIT;\r
+SELECT '<xsl:value-of select="$fnname" /><xsl:text> </xsl:text> <xsl:value-of select="@ID" />: End Testing Multi/<xsl:value-of select="@GeometryType" />';\r
+ <xsl:text>\r
+ \r
+ </xsl:text>\r
+ </xsl:for-each>\r
+</xsl:if>\r
+\r
+\r
</xsl:for-each>\r
</xsl:for-each>\r
</xsl:template>\r
<xsl:for-each select="$func">\r
<xsl:for-each select="paramdef">\r
<xsl:choose>\r
- <xsl:when test="count(parameter) > 0"> \r
- <xsl:value-of select="parameter" />\r
+ <xsl:when test="contains(parameter, 'srid')"> \r
+ <xsl:value-of select="$var_srid" />\r
+ </xsl:when>\r
+ <xsl:when test="contains(parameter, 'NDR')"> \r
+ "<xsl:value-of select="$var_NDRXDR" />"\r
+ </xsl:when>\r
+ <xsl:when test="contains(parameter, 'version')"> \r
+ <xsl:value-of select="$var_version" />\r
+ </xsl:when>\r
+ <xsl:when test="type = 'geometry' or type = 'geometry '"> \r
+ <xsl:text>the_geom</xsl:text>\r
+ </xsl:when>\r
+ <xsl:when test="contains(type, 'float')"> \r
+ <xsl:value-of select="$var_float1" />\r
+ </xsl:when>\r
+ <xsl:when test="contains(type, 'integer')"> \r
+ <xsl:value-of select="$var_integer" />\r
+ </xsl:when>\r
+ <xsl:when test="contains(type, 'text')"> \r
+ "<xsl:value-of select="$var_text" />"\r
</xsl:when>\r
</xsl:choose>\r
<xsl:if test="position()<last()"><xsl:text>, </xsl:text></xsl:if>\r