26 #ifndef __TERRALIB_DATAACCESS_INTERNAL_SELECT_H 27 #define __TERRALIB_DATAACCESS_INTERNAL_SELECT_H 110 Select(
const std::string& propertyName);
112 Select(
const std::string& propertyName,
const std::string& alias);
125 Query* clone()
const;
134 const Fields& fields()
const;
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);
165 const From& from()
const;
206 const Where& where()
const;
215 Select& groupBy(
const std::string& propertyName);
223 const GroupBy& groupBy()
const;
237 const Having& having()
const;
254 const OrderBy& orderBy()
const;
261 Select& distinct(
const std::string& propertyName);
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.
std::unique_ptr< Having > m_having
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...
std::unique_ptr< Distinct > m_distinct
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.
This is an abstract class that models a query expression.
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.
#define TE_DEFINE_VISITABLE
std::unique_ptr< Fields > m_fields
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::unique_ptr< From > m_from
std::unique_ptr< OrderBy > m_orderBy
std::unique_ptr< Where > m_where
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::unique_ptr< GroupBy > m_groupBy
A Query is independent from the data source language/dialect.