26 #ifndef __TERRALIB_DATAACCESS_INTERNAL_SELECT_H 27 #define __TERRALIB_DATAACCESS_INTERNAL_SELECT_H 111 Select(
const std::string& propertyName);
113 Select(
const std::string& propertyName,
const std::string& alias);
126 Query* clone()
const;
135 const Fields& fields()
const;
141 Select& operator()(
const std::string& propertyName);
143 Select& operator()(
const std::string& propertyName,
const std::string& alias);
158 Select& from(
const std::string& datasetName);
166 const From& from()
const;
207 const Where& where()
const;
216 Select& groupBy(
const std::string& propertyName);
224 const GroupBy& groupBy()
const;
238 const Having& having()
const;
255 const OrderBy& orderBy()
const;
262 Select& distinct(
const std::string& propertyName);
273 Select& limit(std::size_t l);
275 Select& offset(std::size_t i);
284 void setFields(
Fields* f);
291 const Fields* getFields()
const;
300 void setFrom(
From* f);
307 const From* getFrom()
const;
316 void setWhere(
Where* w);
323 Where* getWhere()
const;
339 const GroupBy* getGroupBy()
const;
348 void setHaving(
Having* h);
355 const Having* getHaving()
const;
371 const OrderBy* getOrderBy()
const;
387 const Distinct* getDistinct()
const;
394 void setLimit(std::size_t m);
401 std::size_t getLimit()
const;
408 void setOffset(std::size_t o);
415 std::size_t getOffset()
const;
453 #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.