27 #include "../dataaccess/dataset/DataSet.h"
28 #include "../dataaccess/dataset/DataSetAdapter.h"
29 #include "../dataaccess/query/DataSetName.h"
30 #include "../dataaccess/query/Expression.h"
31 #include "../dataaccess/query/Field.h"
32 #include "../dataaccess/query/Fields.h"
33 #include "../dataaccess/query/From.h"
34 #include "../dataaccess/query/FromItem.h"
35 #include "../dataaccess/query/GroupBy.h"
36 #include "../dataaccess/query/GroupByItem.h"
37 #include "../dataaccess/query/LiteralInt32.h"
38 #include "../dataaccess/query/PropertyName.h"
39 #include "../dataaccess/query/Select.h"
40 #include "../dataaccess/query/ST_Boundary.h"
41 #include "../dataaccess/query/ST_Collect.h"
42 #include "../dataaccess/query/ST_Dump.h"
43 #include "../dataaccess/query/ST_DumpRings.h"
44 #include "../dataaccess/query/ST_SetSRID.h"
45 #include "../dataaccess/query/SubSelect.h"
46 #include "../dataaccess/query/Where.h"
47 #include "../dataaccess/utils/Utils.h"
49 #include "../datatype/Property.h"
51 #include "../geometry/GeometryProperty.h"
70 std::auto_ptr<te::da::DataSetType> outDsType = buildOutDataSetType();
71 std::vector<te::dt::Property*> props = outDsType->getProperties();
74 std::auto_ptr<te::da::DataSetType> sourceDSetType(m_inDsrc->getDataSetType(m_inDsetName));
81 for(std::size_t i = 0; i < props.size(); ++i)
87 pol_fields->push_back(field);
93 if (geomPropSource->getSRID() != geomProp->getSRID())
105 pol_fields->push_back(f_dump);
112 fromPol->push_back(fromItemPol);
124 for(std::size_t i = 0; i < props.size(); ++i)
130 line_fields->push_back(field);
138 line_fields->push_back(f_boundary);
144 fromLine->push_back(fromItemLine);
151 for(std::size_t i = 0; i < props.size(); ++i)
157 union_fields->push_back(field);
164 union_fields->push_back(f_union);
170 from->push_back(fromItem);
176 for(std::size_t i = 0; i < props.size(); ++i)
181 groupBy->push_back(e_groupBy);
186 std::auto_ptr<te::da::DataSet> dsQuery(m_inDsrc->query(select));
188 te::vp::Save(m_outDsrc.get(), dsQuery.get(), outDsType.get());
ST_DumpRings statistical function.
boost::ptr_vector< GroupByItem > GroupBy
A class that can be used to model a GROUP BY clause.
Utility functions for the data access module.
A class that can be used in a GROUP BY clause.
An abstract class that models a source of data in a query.
The Field class can be used to model an expression that takes part of the output items of a SELECT...
A class that models the name of a dataset used in a From clause.
ST_Boundary statistical function.
A class that models the name of any property of an object.
void Save(te::da::DataSource *source, te::da::DataSet *result, te::da::DataSetType *outDsType)
ST_Collect statistical function.
Polygon To Line Vector Processing functions.
This is an abstract class that models a query expression.
boost::ptr_vector< Field > Fields
Fields is just a boost::ptr_vector of Field pointers.
A class that can be used to model a filter expression that can be applied to a query.
void setGroupBy(GroupBy *g)
It sets the list of expressions used to condense the result set.
ST_Dump statistical function.
A Select models a query to be used when retrieving data from a DataSource.
boost::ptr_vector< FromItem > From
It models the FROM clause for a query.
Spatial Set SRID operator.
A Select can be used as a source of information in another query.
TEDATAACCESSEXPORT te::gm::GeometryProperty * GetFirstGeomProperty(const DataSetType *dt)