* $Id$\r
********************************************************************\r
Copyright 2008, Regina Obe\r
- License: BSD\r
+ License: BSD\r
Purpose: This is an xsl transform that generates an sql test script from xml docs to test all the functions we have documented\r
- using a garden variety of geometries. Its intent is to flag major crashes.\r
- ******************************************************************** -->\r
+ using a garden variety of geometries. Its intent is to flag major crashes.\r
+ ******************************************************************** -->\r
<xsl:output method="text" />\r
<!--Exclude this from testing - it crashes or already tested in special section -->\r
- <xsl:variable name='fnexclude'>AddGeometryColumn DropGeometryColumn DropGeometryTable ST_CurveToLine</xsl:variable>\r
+ <xsl:variable name='fnexclude'>AddGeometryColumn DropGeometryColumn DropGeometryTable</xsl:variable>\r
<!--This is just a place holder to state functions not supported in 1.3 branch -->\r
- <xsl:variable name='fnexclude13'>Populate_Geometry_Columns ST_IsValidReason</xsl:variable> \r
+ <xsl:variable name='fnexclude13'>Populate_Geometry_Columns ST_IsValidReason</xsl:variable>\r
<xsl:variable name='var_srid'>3395</xsl:variable>\r
<xsl:variable name='var_position'>1</xsl:variable>\r
<xsl:variable name='var_integer1'>3</xsl:variable>\r
<xsl:variable name='var_spheroid'>'SPHEROID["GRS_1980",6378137,298.257222101]'</xsl:variable>\r
<xsl:variable name='var_matrix'>'FF1FF0102'</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
+ <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(40,70, 15) j)</pgis:gset>\r
- <pgis:gset ID='LineSet' GeometryType='LINESTRING'>(SELECT ST_MakeLine(ST_SetSRID(ST_Point(i,j),4326),ST_SetSRID(ST_Point(j,i),4326)) As the_geom \r
- FROM generate_series(-10,50,10) As i \r
+ <pgis:gset ID='LineSet' GeometryType='LINESTRING'>(SELECT ST_MakeLine(ST_SetSRID(ST_Point(i,j),4326),ST_SetSRID(ST_Point(j,i),4326)) As the_geom\r
+ FROM generate_series(-10,50,10) As i\r
CROSS JOIN generate_series(40,70, 15) As j\r
WHERE NOT(i = j))</pgis:gset>\r
- <pgis:gset ID='PolySet' GeometryType='POLYGON'>(SELECT ST_Buffer(ST_SetSRID(ST_Point(i,j),4326), j) As the_geom \r
- FROM generate_series(-10,50,10) As i \r
+ <pgis:gset ID='PolySet' GeometryType='POLYGON'>(SELECT 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:gset ID='PointMSet' GeometryType='POINTM'>(SELECT ST_SetSRID(ST_MakePointM(i,j,m),4326) As the_geom \r
- FROM generate_series(-10,50,10) As i \r
+ <pgis:gset ID='PointMSet' GeometryType='POINTM'>(SELECT ST_SetSRID(ST_MakePointM(i,j,m),4326) As the_geom\r
+ FROM generate_series(-10,50,10) As i\r
CROSS JOIN generate_series(50,70, 20) AS j\r
CROSS JOIN generate_series(1,2) As m)</pgis:gset>\r
- <pgis:gset ID='LineMSet' GeometryType='LINESTRINGM'>(SELECT ST_MakeLine(ST_SetSRID(ST_MakePointM(i,j,m),4326),ST_SetSRID(ST_MakePointM(j,i,m),4326)) As the_geom \r
- FROM generate_series(-10,50,10) As i \r
+ <pgis:gset ID='LineMSet' GeometryType='LINESTRINGM'>(SELECT ST_MakeLine(ST_SetSRID(ST_MakePointM(i,j,m),4326),ST_SetSRID(ST_MakePointM(j,i,m),4326)) As the_geom\r
+ FROM generate_series(-10,50,10) As i\r
CROSS JOIN generate_series(50,70, 20) As j\r
CROSS JOIN generate_series(1,2) As m\r
WHERE NOT(i = j))</pgis:gset>\r
- <pgis:gset ID='PolygonMSet' GeometryType='POLYGONM'>(SELECT ST_MakePolygon(ST_AddPoint(ST_AddPoint(ST_MakeLine(ST_SetSRID(ST_MakePointM(i+m,j,m),4326),ST_SetSRID(ST_MakePointM(j+m,i-m,m),4326)),ST_SetSRID(ST_MakePointM(i,j,m),4326)),ST_SetSRID(ST_MakePointM(i+m,j,m),4326))) As the_geom \r
- FROM generate_series(-10,50,20) As i \r
+ <pgis:gset ID='PolygonMSet' GeometryType='POLYGONM'>(SELECT ST_MakePolygon(ST_AddPoint(ST_AddPoint(ST_MakeLine(ST_SetSRID(ST_MakePointM(i+m,j,m),4326),ST_SetSRID(ST_MakePointM(j+m,i-m,m),4326)),ST_SetSRID(ST_MakePointM(i,j,m),4326)),ST_SetSRID(ST_MakePointM(i+m,j,m),4326))) As the_geom\r
+ FROM generate_series(-10,50,20) As i\r
CROSS JOIN generate_series(50,70, 20) As j\r
CROSS JOIN generate_series(1,2) As m\r
)</pgis:gset>\r
- <pgis:gset ID='PointSet3D' GeometryType='POINT'>(SELECT ST_SetSRID(ST_MakePoint(i,j,k),4326) As the_geom \r
- FROM generate_series(-10,50,20) As i \r
+ <pgis:gset ID='PointSet3D' GeometryType='POINT'>(SELECT ST_SetSRID(ST_MakePoint(i,j,k),4326) As the_geom\r
+ FROM generate_series(-10,50,20) As i\r
CROSS JOIN generate_series(40,70, 20) j\r
CROSS JOIN generate_series(1,2) k\r
)</pgis:gset>\r
- <pgis:gset ID='LineSet3D' GeometryType='LINESTRING'>(SELECT ST_SetSRID(ST_MakeLine(ST_MakePoint(i,j,k), ST_MakePoint(i+k,j+k,k)),4326) As the_geom \r
- FROM generate_series(-10,50,20) As i \r
+ <pgis:gset ID='LineSet3D' GeometryType='LINESTRING'>(SELECT ST_SetSRID(ST_MakeLine(ST_MakePoint(i,j,k), ST_MakePoint(i+k,j+k,k)),4326) As the_geom\r
+ FROM generate_series(-10,50,20) As i\r
CROSS JOIN generate_series(40,70, 20) j\r
CROSS JOIN generate_series(1,2) k\r
)</pgis:gset>\r
- <pgis:gset ID='PolygonSet3D' GeometryType='POLYGON'>(SELECT ST_SetSRID(ST_MakePolygon(ST_AddPoint(ST_AddPoint(ST_MakeLine(ST_MakePoint(i+m,j,m),ST_MakePoint(j+m,i-m,m)),ST_MakePoint(i,j,m)),ST_MakePointM(i+m,j,m))),4326) As the_geom \r
- FROM generate_series(-10,50,20) As i \r
+ <pgis:gset ID='PolygonSet3D' GeometryType='POLYGON'>(SELECT ST_SetSRID(ST_MakePolygon(ST_AddPoint(ST_AddPoint(ST_MakeLine(ST_MakePoint(i+m,j,m),ST_MakePoint(j+m,i-m,m)),ST_MakePoint(i,j,m)),ST_MakePointM(i+m,j,m))),4326) As the_geom\r
+ FROM generate_series(-10,50,20) As i\r
CROSS JOIN generate_series(50,70, 20) As j\r
CROSS JOIN generate_series(1,2) As m)</pgis:gset>\r
- \r
- <pgis:gset ID='GCSet3D' GeometryType='GEOMETRYCOLLECTION' SkipUnary='1'>(SELECT ST_Collect(ST_Collect(ST_SetSRID(ST_MakePoint(i,j,m),4326),ST_SetSRID(ST_MakePolygon(ST_AddPoint(ST_AddPoint(ST_MakeLine(ST_MakePoint(i+m,j,m),ST_MakePoint(j+m,i-m,m)),ST_MakePoint(i,j,m)),ST_MakePointM(i+m,j,m))),4326))) As the_geom \r
- FROM generate_series(-10,50,20) As i \r
+\r
+ <pgis:gset ID='GCSet3D' GeometryType='GEOMETRYCOLLECTION' SkipUnary='1'>(SELECT ST_Collect(ST_Collect(ST_SetSRID(ST_MakePoint(i,j,m),4326),ST_SetSRID(ST_MakePolygon(ST_AddPoint(ST_AddPoint(ST_MakeLine(ST_MakePoint(i+m,j,m),ST_MakePoint(j+m,i-m,m)),ST_MakePoint(i,j,m)),ST_MakePointM(i+m,j,m))),4326))) As the_geom\r
+ FROM generate_series(-10,50,20) 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: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
+\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:gset ID='CircularStringSet' GeometryType='CIRCULARSTRING'>(SELECT ST_LineToCurve(ST_Boundary(ST_Buffer(ST_SetSRID(ST_Point(i,j),4326), j))) As the_geom \r
- FROM generate_series(-10,50,10) As i \r
+ <pgis:gset ID='CircularStringSet' GeometryType='CIRCULARSTRING'>(SELECT ST_LineToCurve(ST_Boundary(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
- \r
+\r
<!-- MULTIs start here -->\r
- <pgis:gset ID='MultiPointSet' GeometryType='MULTIPOINT'>(SELECT ST_Collect(s.the_geom) As the_geom \r
- FROM (SELECT ST_SetSRID(ST_Point(i,j),4326) As the_geom \r
- FROM generate_series(-10,50,15) As i \r
+ <pgis:gset ID='MultiPointSet' GeometryType='MULTIPOINT'>(SELECT ST_Collect(s.the_geom) As the_geom\r
+ FROM (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(40,70, 15) j) As s)</pgis:gset>\r
- \r
+\r
<pgis:gset ID='MultiLineSet' GeometryType='MULTILINESTRING'>(SELECT ST_Collect(s.the_geom) As the_geom\r
- FROM (SELECT ST_MakeLine(ST_SetSRID(ST_Point(i,j),4326),ST_SetSRID(ST_Point(j,i),4326)) As the_geom \r
- FROM generate_series(-10,50,10) As i \r
+ FROM (SELECT ST_MakeLine(ST_SetSRID(ST_Point(i,j),4326),ST_SetSRID(ST_Point(j,i),4326)) As the_geom\r
+ FROM generate_series(-10,50,10) As i\r
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))) As the_geom \r
- FROM generate_series(-10,50,10) As i \r
+\r
+ <pgis:gset ID='MultiPolySet' GeometryType='POLYGON'>(SELECT ST_Multi(ST_Union(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
- \r
- <pgis:gset ID='MultiPointSet3D' GeometryType='MULTIPOINT'>(SELECT ST_Collect(ST_SetSRID(ST_MakePoint(i,j,k),4326)) As the_geom \r
- FROM generate_series(-10,50,20) As i \r
+\r
+ <pgis:gset ID='MultiPointSet3D' GeometryType='MULTIPOINT'>(SELECT ST_Collect(ST_SetSRID(ST_MakePoint(i,j,k),4326)) As the_geom\r
+ FROM generate_series(-10,50,20) As i\r
CROSS JOIN generate_series(40,70, 20) j\r
CROSS JOIN generate_series(1,3) k\r
)</pgis:gset>\r
- \r
- <pgis:gset ID='MultiLineSet3D' GeometryType='MULTILINESTRING'>(SELECT ST_Multi(ST_Union(ST_SetSRID(ST_MakeLine(ST_MakePoint(i,j,k), ST_MakePoint(i+k,j+k,k)),4326))) As the_geom \r
- FROM generate_series(-10,50,20) As i \r
+\r
+ <pgis:gset ID='MultiLineSet3D' GeometryType='MULTILINESTRING'>(SELECT ST_Multi(ST_Union(ST_SetSRID(ST_MakeLine(ST_MakePoint(i,j,k), ST_MakePoint(i+k,j+k,k)),4326))) As the_geom\r
+ FROM generate_series(-10,50,20) As i\r
CROSS JOIN generate_series(40,70, 20) j\r
CROSS JOIN generate_series(1,2) k\r
)</pgis:gset>\r
- \r
+\r
<pgis:gset ID='MultiPolySet3D' GeometryType='MULTIPOLYGON'>(SELECT ST_Multi(ST_Union(s.the_geom)) As the_geom\r
- FROM (SELECT ST_MakePolygon(ST_AddPoint(ST_AddPoint(ST_MakeLine(ST_SetSRID(ST_MakePointM(i+m,j,m),4326),ST_SetSRID(ST_MakePointM(j+m,i-m,m),4326)),ST_SetSRID(ST_MakePointM(i,j,m),4326)),ST_SetSRID(ST_MakePointM(i+m,j,m),4326))) As the_geom \r
- FROM generate_series(-10,50,20) As i \r
+ FROM (SELECT ST_MakePolygon(ST_AddPoint(ST_AddPoint(ST_MakeLine(ST_SetSRID(ST_MakePointM(i+m,j,m),4326),ST_SetSRID(ST_MakePointM(j+m,i-m,m),4326)),ST_SetSRID(ST_MakePointM(i,j,m),4326)),ST_SetSRID(ST_MakePointM(i+m,j,m),4326))) As the_geom\r
+ FROM generate_series(-10,50,20) As i\r
CROSS JOIN generate_series(50,70, 20) As j\r
CROSS JOIN generate_series(1,2) As m\r
) As s)</pgis:gset>\r
- \r
+\r
<pgis:gset ID='MultiPointMSet' GeometryType='MULTIPOINTM'>(SELECT ST_Collect(s.the_geom) As the_geom\r
- FROM (SELECT ST_SetSRID(ST_MakePointM(i,j,m),4326) As the_geom \r
- FROM generate_series(-10,50,10) As i \r
+ FROM (SELECT ST_SetSRID(ST_MakePointM(i,j,m),4326) As the_geom\r
+ FROM generate_series(-10,50,10) As i\r
CROSS JOIN generate_series(50,70, 20) AS j\r
CROSS JOIN generate_series(1,2) As m) As s)</pgis:gset>\r
- \r
+\r
<pgis:gset ID='MultiLineMSet' GeometryType='MULTILINESTRINGM'>(SELECT ST_Collect(s.the_geom) As the_geom\r
- FROM (SELECT ST_MakeLine(ST_SetSRID(ST_MakePointM(i,j,m),4326),ST_SetSRID(ST_MakePointM(j,i,m),4326)) As the_geom \r
- FROM generate_series(-10,50,10) As i \r
+ FROM (SELECT ST_MakeLine(ST_SetSRID(ST_MakePointM(i,j,m),4326),ST_SetSRID(ST_MakePointM(j,i,m),4326)) As the_geom\r
+ FROM generate_series(-10,50,10) As i\r
CROSS JOIN generate_series(50,70, 20) As j\r
CROSS JOIN generate_series(1,2) As m\r
WHERE NOT(i = j)) As s)</pgis:gset>\r
- \r
- <pgis:gset ID='MultiPolygonMSet' GeometryType='MULTIPOLYGONM'>(SELECT ST_Multi(ST_Union(ST_MakePolygon(ST_AddPoint(ST_AddPoint(ST_MakeLine(ST_SetSRID(ST_MakePointM(i+m,j,m),4326),ST_SetSRID(ST_MakePointM(j+m,i-m,m),4326)),ST_SetSRID(ST_MakePointM(i,j,m),4326)),ST_SetSRID(ST_MakePointM(i+m,j,m),4326))))) As the_geom \r
- FROM generate_series(-10,50,20) As i \r
+\r
+ <pgis:gset ID='MultiPolygonMSet' GeometryType='MULTIPOLYGONM'>(SELECT ST_Multi(ST_Union(ST_MakePolygon(ST_AddPoint(ST_AddPoint(ST_MakeLine(ST_SetSRID(ST_MakePointM(i+m,j,m),4326),ST_SetSRID(ST_MakePointM(j+m,i-m,m),4326)),ST_SetSRID(ST_MakePointM(i,j,m),4326)),ST_SetSRID(ST_MakePointM(i+m,j,m),4326))))) As the_geom\r
+ FROM generate_series(-10,50,20) As i\r
CROSS JOIN generate_series(50,70, 20) As j\r
CROSS JOIN generate_series(1,2) As m\r
)</pgis:gset>\r
<xsl:template match='/chapter'>\r
<!--Start Test table creation, insert, drop -->\r
<xsl:for-each select="document('')//pgis:gardens/pgis:gset">\r
-SELECT 'create,insert,drop Test: Start Testing Multi/<xsl:value-of select="@GeometryType" />'; \r
+SELECT 'create,insert,drop Test: Start Testing Multi/<xsl:value-of select="@GeometryType" />';\r
BEGIN;\r
CREATE TABLE pgis_garden (gid serial);\r
SELECT AddGeometryColumn('pgis_garden','the_geom',ST_SRID(the_geom),GeometryType(the_geom),ST_CoordDim(the_geom))\r
INSERT INTO pgis_garden(the_geom, the_geom_multi)\r
SELECT the_geom, ST_Multi(the_geom)\r
FROM (<xsl:value-of select="." />) As foo;\r
- \r
+\r
SELECT UpdateGeometrySRID('pgis_garden', 'the_geom', 4269);\r
- \r
+\r
SELECT DropGeometryColumn ('pgis_garden','the_geom');\r
SELECT DropGeometryTable ('pgis_garden');\r
COMMIT;\r
-SELECT 'create,insert,drop Test: Start Testing Multi/<xsl:value-of select="@GeometryType" />'; \r
+SELECT 'create,insert,drop Test: Start Testing Multi/<xsl:value-of select="@GeometryType" />';\r
<xsl:text>\r
- \r
+\r
</xsl:text>\r
</xsl:for-each>\r
<!--End Test table creation, insert, drop -->\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
+ 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
- BEGIN; \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
+ BEGIN;\r
SELECT foo1.the_geom <xsl:value-of select="$fnname" /> foo2.the_geom\r
FROM (<xsl:value-of select="$from1" />) As foo1 CROSS JOIN (<xsl:value-of select="." />) As foo2\r
- LIMIT 3; \r
+ LIMIT 3;\r
COMMIT;\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
<!-- For each function prototype generate a test sql statement -->\r
<xsl:choose>\r
<!--Test functions that take no arguments or take no geometries -->\r
- <xsl:when test="$numparamgeoms = '0' and not(contains($fnexclude,funcdef/function))">SELECT 'Starting <xsl:value-of select="funcdef/function" />(<xsl:value-of select="$fnargs" />)';BEGIN; \r
+ <xsl:when test="$numparamgeoms = '0' and not(contains($fnexclude,funcdef/function))">SELECT 'Starting <xsl:value-of select="funcdef/function" />(<xsl:value-of select="$fnargs" />)';BEGIN;\r
SELECT <xsl:value-of select="funcdef/function" />(<xsl:value-of select="$fnfakeparams" />);\r
COMMIT;\r
SELECT 'Ending <xsl:value-of select="funcdef/function" />(<xsl:value-of select="$fnargs" />)';\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
+ 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 <xsl:value-of select="$fnname" />(<xsl:value-of select="$fnfakeparams" />)\r
</xsl:otherwise>\r
</xsl:choose>\r
- FROM (<xsl:value-of select="." />) As foo1; \r
+ FROM (<xsl:value-of select="." />) As foo1;\r
COMMIT;\r
SELECT '<xsl:value-of select="$fnname" /><xsl:text> </xsl:text> <xsl:value-of select="@ID" />: End Testing <xsl:value-of select="@GeometryType" />';\r
<xsl:text>\r
- \r
+\r
</xsl:text>\r
</xsl:for-each>\r
</xsl:when>\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" />(<xsl:value-of select="$fnargs" />): Start Testing <xsl:value-of select="$geom1type" /> against other types'; \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
+ 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
</xsl:otherwise>\r
</xsl:choose>\r
FROM (<xsl:value-of select="$from1" />) As foo1 CROSS JOIN (<xsl:value-of select="." />) As foo2\r
- LIMIT 3; \r
+ LIMIT 3;\r
COMMIT;\r
SELECT '<xsl:value-of select="$fnname" />(<xsl:value-of select="$fnargs" />) <xsl:text> </xsl:text> <xsl:value-of select="@ID" />: End Testing <xsl:value-of select="$geom1type" />, <xsl:value-of select="@GeometryType" />';\r
<xsl:text>\r
- \r
+\r
</xsl:text>\r
</xsl:for-each>\r
SELECT '<xsl:value-of select="$fnname" /><xsl:text> </xsl:text><xsl:value-of select="@ID" />(<xsl:value-of select="$fnargs" />): End Testing <xsl:value-of select="@GeometryType" /> against other types';\r
</xsl:for-each>\r
</xsl:for-each>\r
</xsl:template>\r
- \r
+\r
<!--macro to replace func args with dummy var args -->\r
<!--macro to replace func args with dummy var args -->\r
<xsl:template name="replaceparams">\r
<xsl:for-each select="$func">\r
<xsl:for-each select="paramdef">\r
<xsl:choose>\r
- <xsl:when test="contains(parameter, 'matrix') or contains(parameter, 'Matrix')"> \r
+ <xsl:when test="contains(parameter, 'matrix') or contains(parameter, 'Matrix')">\r
<xsl:value-of select="$var_matrix" />\r
</xsl:when>\r
- <xsl:when test="contains(parameter, 'srid')"> \r
+ <xsl:when test="contains(parameter, 'srid')">\r
<xsl:value-of select="$var_srid" />\r
</xsl:when>\r
- <xsl:when test="contains(parameter, 'position')"> \r
+ <xsl:when test="contains(parameter, 'position')">\r
<xsl:value-of select="$var_position" />\r
</xsl:when>\r
- <xsl:when test="contains(parameter, 'NDR')"> \r
+ <xsl:when test="contains(parameter, 'NDR')">\r
'<xsl:value-of select="$var_NDRXDR" />'\r
</xsl:when>\r
- <xsl:when test="contains(parameter, 'version') and position() = 2"> \r
+ <xsl:when test="contains(parameter, 'version') and position() = 2">\r
<xsl:value-of select="$var_version1" />\r
</xsl:when>\r
- <xsl:when test="(contains(parameter, 'version'))"> \r
+ <xsl:when test="(contains(parameter, 'version'))">\r
<xsl:value-of select="$var_version2" />\r
</xsl:when>\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: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="contains(type,'box') or type = 'geometry' or type = 'geometry '"> \r
+ <xsl:when test="contains(type,'box') or type = 'geometry' or type = 'geometry '">\r
<xsl:text>foo2.the_geom</xsl:text>\r
</xsl:when>\r
- <xsl:when test="contains(type, 'geometry[]')"> \r
+ <xsl:when test="contains(type, 'geometry[]')">\r
ARRAY[foo2.the_geom]\r
</xsl:when>\r
- <xsl:when test="contains(parameter, 'EWKT')"> \r
+ <xsl:when test="contains(parameter, 'EWKT')">\r
<xsl:text>ST_AsEWKT(foo1.the_geom)</xsl:text>\r
</xsl:when>\r
- <xsl:when test="contains(parameter, 'WKT')"> \r
+ <xsl:when test="contains(parameter, 'WKT')">\r
<xsl:text>ST_AsText(foo1.the_geom)</xsl:text>\r
</xsl:when>\r
- <xsl:when test="contains(parameter, 'EWKB')"> \r
+ <xsl:when test="contains(parameter, 'EWKB')">\r
<xsl:text>ST_AsEWKB(foo1.the_geom)</xsl:text>\r
</xsl:when>\r
- <xsl:when test="contains(type, 'bytea')"> \r
+ <xsl:when test="contains(type, 'bytea')">\r
<xsl:text>ST_AsBinary(foo1.the_geom)</xsl:text>\r
</xsl:when>\r
- <xsl:when test="contains(type, 'float') or contains(type, 'double')"> \r
+ <xsl:when test="contains(type, 'float') or contains(type, 'double')">\r
<xsl:value-of select="$var_float1" />\r
</xsl:when>\r
- <xsl:when test="contains(type, 'spheroid')"> \r
+ <xsl:when test="contains(type, 'spheroid')">\r
<xsl:value-of select="$var_spheroid" />\r
</xsl:when>\r
- <xsl:when test="contains(type, 'integer') and position() = 2"> \r
+ <xsl:when test="contains(type, 'integer') and position() = 2">\r
<xsl:value-of select="$var_integer1" />\r
</xsl:when>\r
- <xsl:when test="contains(type, 'integer')"> \r
+ <xsl:when test="contains(type, 'integer')">\r
<xsl:value-of select="$var_integer2" />\r
</xsl:when>\r
- <xsl:when test="contains(type, 'text')"> \r
+ <xsl:when test="contains(type, 'text')">\r
<xsl:value-of select="$var_text" />\r
</xsl:when>\r
- <xsl:when test="contains(type, 'varchar')"> \r
+ <xsl:when test="contains(type, 'varchar')">\r
<xsl:value-of select="$var_varchar" />\r
</xsl:when>\r
- <xsl:when test="contains(type,'timestamp') or type = 'date'"> \r
+ <xsl:when test="contains(type,'timestamp') or type = 'date'">\r
<xsl:text>'2009-01-01'</xsl:text>\r
</xsl:when>\r
</xsl:choose>\r
<xsl:if test="position()<last()"><xsl:text>, </xsl:text></xsl:if>\r
</xsl:for-each>\r
- </xsl:for-each> \r
+ </xsl:for-each>\r
</xsl:template>\r
- \r
+\r
<!--macro to pull out function parameter names so we can provide a pretty arg list prefix for each function -->\r
<xsl:template name="listparams">\r
<xsl:param name="func" />\r
<xsl:if test="count(paramdef/parameter) > 0"> </xsl:if>\r
<xsl:for-each select="paramdef">\r
<xsl:choose>\r
- <xsl:when test="count(parameter) > 0"> \r
+ <xsl:when test="count(parameter) > 0">\r
<xsl:value-of select="parameter" />\r
</xsl:when>\r
</xsl:choose>\r
<xsl:if test="position()<last()"><xsl:text>, </xsl:text></xsl:if>\r
</xsl:for-each>\r
- </xsl:for-each> \r
+ </xsl:for-each>\r
</xsl:template>\r
</xsl:stylesheet>\r