26 #ifndef __TERRALIB_DATAACCESS_INTERNAL_SELECT_H 27 #define __TERRALIB_DATAACCESS_INTERNAL_SELECT_H 108 Select(
const Field& f);
110 Select(
const std::string& propertyName);
112 Select(
const std::string& propertyName,
const std::string& alias);
114 Select(
const Select& rhs);
116 Select(
const Select* rhs);
122 Select& operator=(
const Select& rhs);
125 Query* clone()
const;
128 Select& fields(
const Fields& f);
130 Select& fields(
Fields* f);
134 const Fields& fields()
const;
136 Select& operator()(
const Field& f);
138 Select& operator()(
Field* f);
140 Select& operator()(
const std::string& propertyName);
142 Select& operator()(
const std::string& propertyName,
const std::string& alias);
157 Select& from(
const std::string& datasetName);
159 Select& from(
From* f);
161 Select& from(
const From& rhs);
165 const From& from()
const;
189 Select& CrossJoin(
const FromItem& d2);
200 Select& where(
Where* w);
202 Select& where(
const Where& rhs);
206 const Where& where()
const;
215 Select& groupBy(
const std::string& propertyName);
219 Select& groupBy(
const GroupBy& rhs);
223 const GroupBy& groupBy()
const;
231 Select& having(
Having* h);
233 Select& having(
const Having& rhs);
237 const Having& having()
const;
246 Select& orderBy(
const std::string& propertyName,
SortOrder o =
ASC);
250 Select& orderBy(
const OrderBy& rhs);
254 const OrderBy& orderBy()
const;
261 Select& distinct(
const std::string& propertyName);
265 Select& distinct(
const Distinct& rhs);
272 Select& limit(std::size_t l);
274 Select& offset(std::size_t i);
283 void setFields(
Fields* f);
290 const Fields* getFields()
const;
299 void setFrom(
From* f);
306 const From* getFrom()
const;
315 void setWhere(
Where* w);
322 Where* getWhere()
const;
338 const GroupBy* getGroupBy()
const;
347 void setHaving(
Having* h);
354 const Having* getHaving()
const;
370 const OrderBy* getOrderBy()
const;
386 const Distinct* getDistinct()
const;
393 void setLimit(std::size_t m);
400 std::size_t getLimit()
const;
407 void setOffset(std::size_t o);
414 std::size_t getOffset()
const;
452 #endif // __TERRALIB_DATAACCESS_INTERNAL_SELECT_H A class that can be used to model a filter expression that can be applied to a query.
boost::ptr_vector< GroupByItem > GroupBy
A class that can be used to model a GROUP BY clause.
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...
boost::ptr_vector< Expression > Distinct
A class that models a Distinct clause on a query.
A class that models a Distinct clause on a query.
boost::ptr_vector< OrderByItem > OrderBy
A class that can be used to model an ORDER BY clause.
The base class for queries.
std::auto_ptr< Where > m_where
std::auto_ptr< Having > m_having
This is an abstract class that models a query expression.
std::auto_ptr< GroupBy > m_groupBy
A condition to be used in a Join clause.
boost::ptr_vector< Field > Fields
Fields is just a boost::ptr_vector of Field pointers.
JoinType
The type of join in a query.
A class that can be used to model a filter expression that can be applied to a query.
A Join clause combines two FromItems.
SortOrder
Sort order type: asc or desc.
std::auto_ptr< Fields > m_fields
#define TE_DEFINE_VISITABLE
A Select models a query to be used when retrieving data from a DataSource.
A class that can be used to model a GROUP BY clause.
boost::ptr_vector< FromItem > From
It models the FROM clause for a query.
std::auto_ptr< From > m_from
A class that can be used to model an ORDER BY clause.
It models the FROM clause for a query.
The Fields class can be used to model a set of expressions that form the output items of a SELECT...
#define TEDATAACCESSEXPORT
You can use this macro in order to export/import classes and functions from this module.
A class that can be used in an ORDER BY clause to sort the items of a resulting query.
std::auto_ptr< OrderBy > m_orderBy
A Query is independent from the data source language/dialect.
std::auto_ptr< Distinct > m_distinct