Strabon

changeset 1116:db18575a8e6f

added <http://postgis.net/ST_Centroid> extension function which is mapped to ST_Centroid(geometry) function of PostGIS (http://postgis.org/docs/ST_Centroid.html)
author Babis Nikolaou <charnik@di.uoa.gr>
date Sat Apr 27 14:36:45 2013 +0300 (2013-04-27)
parents c69d609a5921
children 069d6147db4d
files evaluation/src/main/java/org/openrdf/query/algebra/evaluation/function/spatial/postgis/construct/Centroid.java evaluation/src/main/resources/META-INF/services/org.openrdf.query.algebra.evaluation.function.Function generaldb/src/main/java/org/openrdf/sail/generaldb/algebra/GeneralDBSqlAbove.java generaldb/src/main/java/org/openrdf/sail/generaldb/algebra/GeneralDBSqlST_Centroid.java generaldb/src/main/java/org/openrdf/sail/generaldb/algebra/base/GeneralDBExprSupport.java generaldb/src/main/java/org/openrdf/sail/generaldb/algebra/factories/GeneralDBBooleanExprFactory.java generaldb/src/main/java/org/openrdf/sail/generaldb/algebra/factories/GeneralDBNumericExprFactory.java generaldb/src/main/java/org/openrdf/sail/generaldb/evaluation/GeneralDBQueryBuilder.java monetdb/src/main/java/org/openrdf/sail/monetdb/evaluation/MonetDBQueryBuilder.java postgis/src/main/java/org/openrdf/sail/postgis/evaluation/PostGISQueryBuilder.java vocab/src/main/java/eu/earthobservatory/vocabulary/PostGIS.java
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/evaluation/src/main/java/org/openrdf/query/algebra/evaluation/function/spatial/postgis/construct/Centroid.java	Sat Apr 27 14:36:45 2013 +0300
     1.3 @@ -0,0 +1,31 @@
     1.4 +/**
     1.5 + * This Source Code Form is subject to the terms of the Mozilla Public
     1.6 + * License, v. 2.0. If a copy of the MPL was not distributed with this
     1.7 + * file, You can obtain one at http://mozilla.org/MPL/2.0/.
     1.8 + * 
     1.9 + * Copyright (C) 2013, Pyravlos Team
    1.10 + * 
    1.11 + * http://www.strabon.di.uoa.gr/
    1.12 + */
    1.13 +package org.openrdf.query.algebra.evaluation.function.spatial.postgis.construct;
    1.14 +
    1.15 +import org.openrdf.query.algebra.evaluation.function.spatial.SpatialConstructFunc;
    1.16 +
    1.17 +import eu.earthobservatory.vocabulary.PostGIS;
    1.18 +
    1.19 +/**
    1.20 + * This SPARQL extension function corresponds to the PostGIS 
    1.21 + * <code>ST_Centroid(geometry geom)</code> function as described
    1.22 + * in <a>http://postgis.org/docs/ST_Centroid.html</a>.
    1.23 + *
    1.24 + * @author Charalampos Nikolaou <charnik@di.uoa.gr>
    1.25 + *
    1.26 + */
    1.27 +public class Centroid extends SpatialConstructFunc {
    1.28 +
    1.29 +	@Override
    1.30 +	public String getURI() {
    1.31 +		return PostGIS.ST_CENTROID;
    1.32 +	}
    1.33 +
    1.34 +}
     2.1 --- a/evaluation/src/main/resources/META-INF/services/org.openrdf.query.algebra.evaluation.function.Function	Sat Apr 27 13:39:56 2013 +0300
     2.2 +++ b/evaluation/src/main/resources/META-INF/services/org.openrdf.query.algebra.evaluation.function.Function	Sat Apr 27 14:36:45 2013 +0300
     2.3 @@ -82,4 +82,5 @@
     2.4  
     2.5  org.openrdf.query.algebra.evaluation.function.datetime.stsparql.metric.DiffDateTime
     2.6  
     2.7 -org.openrdf.query.algebra.evaluation.function.spatial.postgis.construct.MakeLine
     2.8 \ No newline at end of file
     2.9 +org.openrdf.query.algebra.evaluation.function.spatial.postgis.construct.MakeLine
    2.10 +org.openrdf.query.algebra.evaluation.function.spatial.postgis.construct.Centroid
    2.11 \ No newline at end of file
     3.1 --- a/generaldb/src/main/java/org/openrdf/sail/generaldb/algebra/GeneralDBSqlAbove.java	Sat Apr 27 13:39:56 2013 +0300
     3.2 +++ b/generaldb/src/main/java/org/openrdf/sail/generaldb/algebra/GeneralDBSqlAbove.java	Sat Apr 27 14:36:45 2013 +0300
     3.3 @@ -1,16 +1,18 @@
     3.4 -/*
     3.5 - * Copyright Aduna (http://www.aduna-software.com/) (c) 2008.
     3.6 - *
     3.7 - * Licensed under the Aduna BSD-style license.
     3.8 +/**
     3.9 + * This Source Code Form is subject to the terms of the Mozilla Public
    3.10 + * License, v. 2.0. If a copy of the MPL was not distributed with this
    3.11 + * file, You can obtain one at http://mozilla.org/MPL/2.0/.
    3.12 + * 
    3.13 + * Copyright (C) 2010, 2011, 2012, 2013 Pyravlos Team
    3.14 + * 
    3.15 + * http://www.strabon.di.uoa.gr/
    3.16   */
    3.17  package org.openrdf.sail.generaldb.algebra;
    3.18  
    3.19   
    3.20 -import org.openrdf.sail.generaldb.algebra.base.BinaryGeneralDBOperator; 
    3.21 -import org.openrdf.sail.generaldb.algebra.base.GeneralDBQueryModelVisitorBase;
    3.22  import org.openrdf.sail.generaldb.algebra.base.GeneralDBSqlExpr;
    3.23  
    3.24 -public class GeneralDBSqlAbove extends GeneralDBSqlGeoSpatial{
    3.25 +public class GeneralDBSqlAbove extends GeneralDBSqlGeoSpatial {
    3.26  
    3.27  	public GeneralDBSqlAbove(GeneralDBSqlExpr left, GeneralDBSqlExpr right) {
    3.28  		super(left, right);
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/generaldb/src/main/java/org/openrdf/sail/generaldb/algebra/GeneralDBSqlST_Centroid.java	Sat Apr 27 14:36:45 2013 +0300
     4.3 @@ -0,0 +1,24 @@
     4.4 +/**
     4.5 + * This Source Code Form is subject to the terms of the Mozilla Public
     4.6 + * License, v. 2.0. If a copy of the MPL was not distributed with this
     4.7 + * file, You can obtain one at http://mozilla.org/MPL/2.0/.
     4.8 + * 
     4.9 + * Copyright (C) 2013, Pyravlos Team
    4.10 + * 
    4.11 + * http://www.strabon.di.uoa.gr/
    4.12 + */
    4.13 +package org.openrdf.sail.generaldb.algebra;
    4.14 +
    4.15 +import org.openrdf.sail.generaldb.algebra.base.GeneralDBSqlExpr;
    4.16 +
    4.17 +/**
    4.18 + * @author Charalampos Nikolaou <charnik@di.uoa.gr>
    4.19 + *
    4.20 + */
    4.21 +public class GeneralDBSqlST_Centroid extends GeneralDBSqlSpatialConstructUnary {
    4.22 +
    4.23 +	public GeneralDBSqlST_Centroid(GeneralDBSqlExpr expr) {
    4.24 +		super(expr);
    4.25 +	}
    4.26 +
    4.27 +}
     5.1 --- a/generaldb/src/main/java/org/openrdf/sail/generaldb/algebra/base/GeneralDBExprSupport.java	Sat Apr 27 13:39:56 2013 +0300
     5.2 +++ b/generaldb/src/main/java/org/openrdf/sail/generaldb/algebra/base/GeneralDBExprSupport.java	Sat Apr 27 14:36:45 2013 +0300
     5.3 @@ -63,6 +63,7 @@
     5.4  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlRegex;
     5.5  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlRelate;
     5.6  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlRight;
     5.7 +import org.openrdf.sail.generaldb.algebra.GeneralDBSqlST_Centroid;
     5.8  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlST_MakeLine;
     5.9  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlTouches;
    5.10  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlWithin;
    5.11 @@ -391,10 +392,16 @@
    5.12  	}
    5.13  	
    5.14  	/** PostGIS Construct functions **/
    5.15 +	// Binary
    5.16  	public static GeneralDBSqlExpr st_MakeLine(GeneralDBSqlExpr left, GeneralDBSqlExpr right) {
    5.17  
    5.18  		return new GeneralDBSqlST_MakeLine(left, right);
    5.19  	}
    5.20 +	// Unary
    5.21 +	public static GeneralDBSqlExpr st_Centroid(GeneralDBSqlExpr expr) {
    5.22 +
    5.23 +		return new GeneralDBSqlST_Centroid(expr);
    5.24 +	}
    5.25  	/** PostGIS Construct functions **/
    5.26  	
    5.27  	
     6.1 --- a/generaldb/src/main/java/org/openrdf/sail/generaldb/algebra/factories/GeneralDBBooleanExprFactory.java	Sat Apr 27 13:39:56 2013 +0300
     6.2 +++ b/generaldb/src/main/java/org/openrdf/sail/generaldb/algebra/factories/GeneralDBBooleanExprFactory.java	Sat Apr 27 14:36:45 2013 +0300
     6.3 @@ -35,7 +35,6 @@
     6.4  import static org.openrdf.sail.generaldb.algebra.base.GeneralDBExprSupport.geoBuffer;
     6.5  import static org.openrdf.sail.generaldb.algebra.base.GeneralDBExprSupport.geoConvexHull;
     6.6  import static org.openrdf.sail.generaldb.algebra.base.GeneralDBExprSupport.geoDifference;
     6.7 -import static org.openrdf.sail.generaldb.algebra.base.GeneralDBExprSupport.st_MakeLine;
     6.8  import static org.openrdf.sail.generaldb.algebra.base.GeneralDBExprSupport.geoDistance;
     6.9  import static org.openrdf.sail.generaldb.algebra.base.GeneralDBExprSupport.geoEnvelope;
    6.10  import static org.openrdf.sail.generaldb.algebra.base.GeneralDBExprSupport.geoIntersection;
    6.11 @@ -83,6 +82,8 @@
    6.12  import static org.openrdf.sail.generaldb.algebra.base.GeneralDBExprSupport.simple;
    6.13  import static org.openrdf.sail.generaldb.algebra.base.GeneralDBExprSupport.sqlNull;
    6.14  import static org.openrdf.sail.generaldb.algebra.base.GeneralDBExprSupport.srid;
    6.15 +import static org.openrdf.sail.generaldb.algebra.base.GeneralDBExprSupport.st_Centroid;
    6.16 +import static org.openrdf.sail.generaldb.algebra.base.GeneralDBExprSupport.st_MakeLine;
    6.17  import static org.openrdf.sail.generaldb.algebra.base.GeneralDBExprSupport.str;
    6.18  import static org.openrdf.sail.generaldb.algebra.base.GeneralDBExprSupport.sub;
    6.19  import static org.openrdf.sail.generaldb.algebra.base.GeneralDBExprSupport.touches;
    6.20 @@ -123,6 +124,7 @@
    6.21  import org.openrdf.query.algebra.evaluation.function.spatial.geosparql.nontopological.GeoSparqlBufferFunc;
    6.22  import org.openrdf.query.algebra.evaluation.function.spatial.geosparql.nontopological.GeoSparqlConvexHullFunc;
    6.23  import org.openrdf.query.algebra.evaluation.function.spatial.geosparql.nontopological.GeoSparqlEnvelopeFunc;
    6.24 +import org.openrdf.query.algebra.evaluation.function.spatial.postgis.construct.Centroid;
    6.25  import org.openrdf.query.algebra.evaluation.function.spatial.stsparql.construct.BoundaryFunc;
    6.26  import org.openrdf.query.algebra.evaluation.function.spatial.stsparql.construct.BufferFunc;
    6.27  import org.openrdf.query.algebra.evaluation.function.spatial.stsparql.construct.ConvexHullFunc;
    6.28 @@ -871,6 +873,7 @@
    6.29  				&& !(function instanceof GeoSparqlBoundaryFunc)
    6.30  				&& !(function instanceof GeoSparqlConvexHullFunc)
    6.31  				&& !(function instanceof GeoSparqlEnvelopeFunc)
    6.32 +				&& !(function instanceof Centroid)
    6.33  				&& !(function instanceof UnionFunc && functionCall.getArgs().size()==1))
    6.34  		{
    6.35  			ValueExpr right = functionCall.getArgs().get(1);
    6.36 @@ -1253,10 +1256,16 @@
    6.37  		{
    6.38  			return geoBuffer(leftArg, rightArg, thirdArg);
    6.39  		}
    6.40 +		/* PostGIS Construct functions */
    6.41  		else if (function.getURI().equals(PostGIS.ST_MAKELINE))
    6.42  		{
    6.43  			return st_MakeLine(leftArg, rightArg);
    6.44  		}
    6.45 +		else if (function.getURI().equals(PostGIS.ST_CENTROID))
    6.46 +		{
    6.47 +			return st_Centroid(leftArg);
    6.48 +		}
    6.49 +		/* PostGIS Construct functions */
    6.50  
    6.51  		logger.error("[Strabon.spatialConstructPicker] No appropriate SQL expression was generated for extension function {}. This is probably a bug.", function.getURI());
    6.52  		return null;
     7.1 --- a/generaldb/src/main/java/org/openrdf/sail/generaldb/algebra/factories/GeneralDBNumericExprFactory.java	Sat Apr 27 13:39:56 2013 +0300
     7.2 +++ b/generaldb/src/main/java/org/openrdf/sail/generaldb/algebra/factories/GeneralDBNumericExprFactory.java	Sat Apr 27 14:36:45 2013 +0300
     7.3 @@ -24,10 +24,10 @@
     7.4  import static org.openrdf.sail.generaldb.algebra.base.GeneralDBExprSupport.isSimple;
     7.5  import static org.openrdf.sail.generaldb.algebra.base.GeneralDBExprSupport.sqlNull;
     7.6  import static org.openrdf.sail.generaldb.algebra.base.GeneralDBExprSupport.srid;
     7.7 +import static org.openrdf.sail.generaldb.algebra.base.GeneralDBExprSupport.st_Centroid;
     7.8 +import static org.openrdf.sail.generaldb.algebra.base.GeneralDBExprSupport.st_MakeLine;
     7.9  import static org.openrdf.sail.generaldb.algebra.base.GeneralDBExprSupport.unsupported;
    7.10  
    7.11 -import static org.openrdf.sail.generaldb.algebra.base.GeneralDBExprSupport.st_MakeLine;
    7.12 -
    7.13  import org.openrdf.model.Literal;
    7.14  import org.openrdf.model.URI;
    7.15  import org.openrdf.model.Value;
    7.16 @@ -503,6 +503,10 @@
    7.17  		{
    7.18  			return st_MakeLine(leftArg, rightArg);
    7.19  		}
    7.20 +		else if(function.getURI().equals(PostGIS.ST_CENTROID))
    7.21 +		{
    7.22 +			return st_Centroid(leftArg);
    7.23 +		}
    7.24  		/** PostGIS construct functions */
    7.25  		//Should never reach this place
    7.26  		return null;
     8.1 --- a/generaldb/src/main/java/org/openrdf/sail/generaldb/evaluation/GeneralDBQueryBuilder.java	Sat Apr 27 13:39:56 2013 +0300
     8.2 +++ b/generaldb/src/main/java/org/openrdf/sail/generaldb/evaluation/GeneralDBQueryBuilder.java	Sat Apr 27 14:36:45 2013 +0300
     8.3 @@ -75,6 +75,7 @@
     8.4  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlRegex;
     8.5  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlRelate;
     8.6  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlRight;
     8.7 +import org.openrdf.sail.generaldb.algebra.GeneralDBSqlST_Centroid;
     8.8  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlST_MakeLine;
     8.9  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlShift;
    8.10  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlTouches;
    8.11 @@ -1102,6 +1103,8 @@
    8.12  	/* PostGIS Construct Functions */
    8.13  	protected abstract void append(GeneralDBSqlST_MakeLine expr, GeneralDBSqlExprBuilder filter)
    8.14  			throws UnsupportedRdbmsOperatorException;
    8.15 +	protected abstract void append(GeneralDBSqlST_Centroid expr, GeneralDBSqlExprBuilder filter)
    8.16 +			throws UnsupportedRdbmsOperatorException;
    8.17  	/* PostGIS Construct Functions */
    8.18  	
    8.19  	/** Addition for datetime metric functions
    8.20 @@ -1212,6 +1215,10 @@
    8.21  		{
    8.22  			append((GeneralDBSqlST_MakeLine)constr, filter);
    8.23  		}
    8.24 +		else if(constr instanceof GeneralDBSqlST_Centroid)
    8.25 +		{
    8.26 +			append((GeneralDBSqlST_Centroid)constr, filter);
    8.27 +		}
    8.28  		/* PostGIS functions */
    8.29  	}
    8.30  
     9.1 --- a/monetdb/src/main/java/org/openrdf/sail/monetdb/evaluation/MonetDBQueryBuilder.java	Sat Apr 27 13:39:56 2013 +0300
     9.2 +++ b/monetdb/src/main/java/org/openrdf/sail/monetdb/evaluation/MonetDBQueryBuilder.java	Sat Apr 27 14:36:45 2013 +0300
     9.3 @@ -19,7 +19,6 @@
     9.4  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlBelow;
     9.5  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlCase;
     9.6  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlContains;
     9.7 -import org.openrdf.sail.generaldb.algebra.GeneralDBSqlMbbContains;
     9.8  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlCrosses;
     9.9  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlDiffDateTime;
    9.10  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlDisjoint;
    9.11 @@ -46,15 +45,17 @@
    9.12  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlIsNull;
    9.13  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlLeft;
    9.14  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlMathExpr;
    9.15 +import org.openrdf.sail.generaldb.algebra.GeneralDBSqlMbbContains;
    9.16  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlMbbEquals;
    9.17 +import org.openrdf.sail.generaldb.algebra.GeneralDBSqlMbbIntersects;
    9.18  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlMbbWithin;
    9.19 -import org.openrdf.sail.generaldb.algebra.GeneralDBSqlMbbIntersects;
    9.20  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlNot;
    9.21  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull;
    9.22  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlOr;
    9.23  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlOverlaps;
    9.24  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlRelate;
    9.25  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlRight;
    9.26 +import org.openrdf.sail.generaldb.algebra.GeneralDBSqlST_Centroid;
    9.27  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlST_MakeLine;
    9.28  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlSpatialConstructBinary;
    9.29  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlSpatialConstructTriple;
    9.30 @@ -2597,4 +2598,9 @@
    9.31  		throw new UnsupportedRdbmsOperatorException("ST_MakeLine is not available in MonetDB.");
    9.32  	}
    9.33  
    9.34 +	@Override
    9.35 +	protected void append(GeneralDBSqlST_Centroid expr, GeneralDBSqlExprBuilder filter) throws UnsupportedRdbmsOperatorException {
    9.36 +		throw new UnsupportedRdbmsOperatorException("ST_Centroid is not available in MonetDB.");
    9.37 +	}
    9.38 +
    9.39  }
    10.1 --- a/postgis/src/main/java/org/openrdf/sail/postgis/evaluation/PostGISQueryBuilder.java	Sat Apr 27 13:39:56 2013 +0300
    10.2 +++ b/postgis/src/main/java/org/openrdf/sail/postgis/evaluation/PostGISQueryBuilder.java	Sat Apr 27 14:36:45 2013 +0300
    10.3 @@ -60,6 +60,7 @@
    10.4  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlOverlaps;
    10.5  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlRelate;
    10.6  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlRight;
    10.7 +import org.openrdf.sail.generaldb.algebra.GeneralDBSqlST_Centroid;
    10.8  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlST_MakeLine;
    10.9  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlSpatialConstructBinary;
   10.10  import org.openrdf.sail.generaldb.algebra.GeneralDBSqlSpatialConstructTriple;
   10.11 @@ -163,6 +164,9 @@
   10.12  		ST_ConvexHull,
   10.13  		ST_Boundary,
   10.14  
   10.15 +		// Spatial Constructs - Unary (PostGIS namespace)
   10.16 +		ST_Centroid,
   10.17 +		
   10.18  		//Spatial Metrics - Binary
   10.19  		ST_Distance,
   10.20  
   10.21 @@ -473,25 +477,22 @@
   10.22  			}
   10.23  
   10.24  	@Override
   10.25 -	protected void append(GeneralDBSqlRight expr, GeneralDBSqlExprBuilder filter)
   10.26 -			throws UnsupportedRdbmsOperatorException
   10.27 -			{
   10.28 +	protected void append(GeneralDBSqlRight expr, GeneralDBSqlExprBuilder filter) throws UnsupportedRdbmsOperatorException
   10.29 +	{
   10.30  		appendStSPARQLSpatialOperand(expr, filter, SpatialOperandsPostGIS.right);
   10.31 -			}
   10.32 +	}
   10.33  
   10.34  	@Override
   10.35 -	protected void append(GeneralDBSqlAbove expr, GeneralDBSqlExprBuilder filter)
   10.36 -			throws UnsupportedRdbmsOperatorException
   10.37 -			{
   10.38 +	protected void append(GeneralDBSqlAbove expr, GeneralDBSqlExprBuilder filter) throws UnsupportedRdbmsOperatorException
   10.39 +	{
   10.40  		appendStSPARQLSpatialOperand(expr, filter, SpatialOperandsPostGIS.above);
   10.41 -			}
   10.42 +	}
   10.43  
   10.44  	@Override
   10.45 -	protected void append(GeneralDBSqlBelow expr, GeneralDBSqlExprBuilder filter)
   10.46 -			throws UnsupportedRdbmsOperatorException
   10.47 -			{
   10.48 +	protected void append(GeneralDBSqlBelow expr, GeneralDBSqlExprBuilder filter) throws UnsupportedRdbmsOperatorException
   10.49 +	{
   10.50  		appendStSPARQLSpatialOperand(expr, filter, SpatialOperandsPostGIS.below);
   10.51 -			}
   10.52 +	}
   10.53  
   10.54  	@Override
   10.55  	protected void append(GeneralDBSqlMbbIntersects expr, GeneralDBSqlExprBuilder filter)
   10.56 @@ -507,8 +508,7 @@
   10.57  
   10.58  	
   10.59  	@Override
   10.60 -	protected void append(GeneralDBSqlMbbContains expr, GeneralDBSqlExprBuilder filter)
   10.61 -			throws UnsupportedRdbmsOperatorException {
   10.62 +	protected void append(GeneralDBSqlMbbContains expr, GeneralDBSqlExprBuilder filter) throws UnsupportedRdbmsOperatorException {
   10.63  		appendStSPARQLSpatialOperand(expr, filter, SpatialOperandsPostGIS.contains);
   10.64  	}
   10.65  
   10.66 @@ -762,6 +762,11 @@
   10.67  	protected void append(GeneralDBSqlST_MakeLine expr, GeneralDBSqlExprBuilder filter) throws UnsupportedRdbmsOperatorException {
   10.68  		appendGeneralDBSpatialFunctionBinary(expr, filter, SpatialFunctionsPostGIS.ST_MakeLine);
   10.69  	}
   10.70 +	
   10.71 +	@Override
   10.72 +	protected void append(GeneralDBSqlST_Centroid expr, GeneralDBSqlExprBuilder filter) throws UnsupportedRdbmsOperatorException {
   10.73 +		appendGeneralDBSpatialFunctionUnary(expr, filter, SpatialFunctionsPostGIS.ST_Centroid);
   10.74 +	}
   10.75  
   10.76  	/** Addition for datetime metric functions
   10.77  	 * 
   10.78 @@ -2162,7 +2167,9 @@
   10.79  			case ST_SRID: filter.appendFunction("ST_SRID"); break;
   10.80  			case ST_IsEmpty: filter.appendFunction("ST_IsEmpty"); break;
   10.81  			case ST_IsSimple: filter.appendFunction("ST_IsSimple"); break;
   10.82 +			case ST_Centroid: filter.appendFunction("ST_Centroid"); break;
   10.83  			}
   10.84 +			
   10.85  			filter.openBracket();
   10.86  			if(expr.getArg() instanceof GeneralDBStringValue)
   10.87  			{
    11.1 --- a/vocab/src/main/java/eu/earthobservatory/vocabulary/PostGIS.java	Sat Apr 27 13:39:56 2013 +0300
    11.2 +++ b/vocab/src/main/java/eu/earthobservatory/vocabulary/PostGIS.java	Sat Apr 27 14:36:45 2013 +0300
    11.3 @@ -16,6 +16,9 @@
    11.4  
    11.5  	public static final String NAMESPACE = "http://postgis.net/";
    11.6  	
    11.7 -	/** Construct functions **/
    11.8 +	/** Construct functions (binary) **/
    11.9  	public static final String ST_MAKELINE = NAMESPACE + "ST_MakeLine";
   11.10 +	
   11.11 +	/** Construct functions (unary) **/
   11.12 +	public static final String ST_CENTROID = NAMESPACE + "ST_Centroid";
   11.13  }