CROSS JOIN generate_series(40,70, 15) As j\r
WHERE NOT(i = j)) As s)</pgis:gset>\r
\r
- <pgis:gset ID='MultiPolySet' GeometryType='POLYGON'>(SELECT ST_Multi(ST_Union(ST_Buffer(ST_SetSRID(ST_Point(i,j),4326), j*0.05))) As the_geom\r
+ <pgis:gset ID='MultiPolySet' GeometryType='MULTIPOLYGON'>(SELECT ST_Multi(ST_Union(ST_Buffer(ST_SetSRID(ST_Point(i,j),4326), j*0.05))) As the_geom\r
FROM generate_series(-10,50,10) As i\r
CROSS JOIN generate_series(40,70, 25) As j)</pgis:gset>\r
\r
<xsl:sort select="@id"/>\r
<xsl:for-each select="refsynopsisdiv/funcsynopsis/funcprototype">\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
<!--Store first garden sql geometry from -->\r
<xsl:variable name="from1"><xsl:value-of select="." /></xsl:variable>\r
<xsl:variable name='geom1type'><xsl:value-of select="@ID"/></xsl:variable>\r
SELECT '<xsl:value-of select="$fnname" /><xsl:text> </xsl:text><xsl:value-of select="@ID" /> : Start Testing <xsl:value-of select="$geom1type" /> against other types';\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="$geom1type" />, <xsl:value-of select="@GeometryType" />';\r
+ <xsl:choose>\r
+ <xsl:when test="contains($fndef, 'geography ')">\r
+ SELECT 'Geography <xsl:value-of select="$fnname" /><xsl:text> </xsl:text><xsl:value-of select="@ID" />: Start Testing <xsl:value-of select="$geom1type" />, <xsl:value-of select="@GeometryType" />';\r
BEGIN;\r
- SELECT foo1.the_geom <xsl:value-of select="$fnname" /> foo2.the_geom\r
+ SELECT geography(foo1.the_geom) <xsl:value-of select="$fnname" /> geography(foo2.the_geom)\r
FROM (<xsl:value-of select="$from1" />) As foo1 CROSS JOIN (<xsl:value-of select="." />) As foo2\r
;\r
COMMIT;\r
+ </xsl:when>\r
+ <xsl:otherwise>\r
+ </xsl:otherwise>\r
</xsl:for-each>\r
SELECT '<xsl:value-of select="$fnname" /><xsl:text> </xsl:text><xsl:value-of select="@ID" />: End Testing <xsl:value-of select="@GeometryType" /> against other types';\r
</xsl:for-each>\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:variable name='numparams'><xsl:value-of select="count(paramdef/parameter)" /></xsl:variable>\r
- <xsl:variable name='numparamgeoms'><xsl:value-of select="count(paramdef/type[contains(text(),'geometry') or contains(text(),'box') or contains(text(), 'bytea')]) + count(paramdef/parameter[contains(text(),'WKT')])" /></xsl:variable>\r
+ <xsl:variable name='numparamgeoms'><xsl:value-of select="count(paramdef/type[contains(text(),'geometry') or contains(text(),'geography') or contains(text(),'box') or contains(text(), 'bytea')]) + count(paramdef/parameter[contains(text(),'WKT')])" /></xsl:variable>\r
<!-- For each function prototype generate a test sql statement -->\r
<xsl:choose>\r
<!--Test functions that take no arguments or take no geometries -->\r
<!-- put functions that take only one geometry no need to cross with another geom collection, these are unary geom, aggregates, and so forth -->\r
<xsl:when test="$numparamgeoms = '1' and not(contains($fnexclude,funcdef/function))" >\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 'Geometry <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
SELECT ST_AsEWKT(<xsl:value-of select="$fnname" />(<xsl:value-of select="$fnfakeparams" />))\r
+ </xsl:when>\r
+ <xsl:when test="contains($fndef, 'geography ')">\r
+ SELECT 'Geography <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 astext rep -->\r
+ SELECT ST_AsText(<xsl:value-of select="$fnname" />(<xsl:value-of select="$fnfakeparams" />))\r
</xsl:when>\r
<xsl:otherwise>\r
+ SELECT 'Other <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
SELECT <xsl:value-of select="$fnname" />(<xsl:value-of select="$fnfakeparams" />)\r
</xsl:otherwise>\r
</xsl:choose>\r
<xsl:variable name='geom1type'><xsl:value-of select="@ID"/></xsl:variable>\r
SELECT '<xsl:value-of select="$fnname" /><xsl:text> </xsl:text><xsl:value-of select="@ID" />(<xsl:value-of select="$fnargs" />): Start Testing <xsl:value-of select="$geom1type" /> against other types';\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" />(<xsl:value-of select="$fnargs" />): Start Testing <xsl:value-of select="$geom1type" />, <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 'Geometry <xsl:value-of select="$fnname" /><xsl:text> </xsl:text><xsl:value-of select="@ID" />(<xsl:value-of select="$fnargs" />): Start Testing <xsl:value-of select="$geom1type" />, <xsl:value-of select="@GeometryType" />';\r
+ BEGIN; <!-- If output is geometry show ewkt rep -->\r
SELECT ST_AsEWKT(<xsl:value-of select="$fnname" />(<xsl:value-of select="$fnfakeparams" />)), ST_AsEWKT(foo1.the_geom) As ref1_geom, ST_AsEWKT(foo2.the_geom) As ref2_geom\r
+ </xsl:when>\r
+ <xsl:when test="contains($fndef, 'geography ')">\r
+ SELECT 'Geography <xsl:value-of select="$fnname" /><xsl:text> </xsl:text><xsl:value-of select="@ID" />(<xsl:value-of select="$fnargs" />): Start Testing <xsl:value-of select="$geom1type" />, <xsl:value-of select="@GeometryType" />';\r
+ BEGIN; <!-- If output is geography show wkt rep -->\r
+ SELECT ST_AsText(<xsl:value-of select="$fnname" />(<xsl:value-of select="$fnfakeparams" />)), ST_AsText(foo1.the_geom) As ref1_geom, ST_AsText(foo2.the_geom) As ref2_geom\r
</xsl:when>\r
<xsl:otherwise>\r
+ SELECT 'Other <xsl:value-of select="$fnname" /><xsl:text> </xsl:text><xsl:value-of select="@ID" />(<xsl:value-of select="$fnargs" />): Start Testing <xsl:value-of select="$geom1type" />, <xsl:value-of select="@GeometryType" />';\r
+ BEGIN; <!-- If output is geography show wkt rep -->\r
SELECT <xsl:value-of select="$fnname" />(<xsl:value-of select="$fnfakeparams" />)\r
</xsl:otherwise>\r
</xsl:choose>\r
<xsl:when test="(contains(type,'box') or type = 'geometry' or type = 'geometry ' or contains(type,'geometry set')) and (position() = 1 or count($func/paramdef/type[contains(text(),'geometry') or contains(text(),'box') or contains(text(), 'WKT') or contains(text(), 'bytea')]) = '1')">\r
<xsl:text>foo1.the_geom</xsl:text>\r
</xsl:when>\r
- <xsl:when test="(type = 'geography' or type = 'geography ' or contains(type,'geography set')) and (position() = 1 )">\r
+ <xsl:when test="(type = 'geography' or type = 'geography ' or contains(type,'geography set')) and (position() = 1 or count($func/paramdef/type[contains(text(),'geography')]) )">\r
<xsl:text>geography(foo1.the_geom)</xsl:text>\r
</xsl:when>\r
<xsl:when test="contains(type,'box') or type = 'geometry' or type = 'geometry '">\r