A visitor for building an SQL statement from a given Query hierarchy. More...
#include <SQLVisitor.h>
Public Member Functions | |
SQLVisitor (const SQLDialect &dialect, std::string &sql) | |
Default constructor. More... | |
virtual void | visit (const Expression &visited) |
virtual void | visit (const DataSetName &visited) |
virtual void | visit (const FromItem &visited) |
virtual void | visit (const Function &visited) |
virtual void | visit (const Join &visited) |
virtual void | visit (const JoinCondition &visited) |
virtual void | visit (const JoinConditionOn &visited) |
virtual void | visit (const JoinConditionUsing &visited) |
virtual void | visit (const Literal &visited) |
virtual void | visit (const LiteralBool &visited) |
virtual void | visit (const LiteralByteArray &visited) |
virtual void | visit (const LiteralDateTime &visited) |
virtual void | visit (const LiteralDouble &visited) |
virtual void | visit (const LiteralEnvelope &visited) |
virtual void | visit (const LiteralGeom &visited) |
virtual void | visit (const LiteralInt16 &visited) |
virtual void | visit (const LiteralInt32 &visited) |
virtual void | visit (const LiteralInt64 &visited) |
virtual void | visit (const LiteralString &visited) |
virtual void | visit (const PropertyName &visited) |
virtual void | visit (const Query &visited) |
virtual void | visit (const Select &visited) |
virtual void | visit (const SubSelect &visited) |
virtual void | visit (const In &visited) |
virtual void | visit (const Fields &visited) |
virtual void | visit (const From &visited) |
virtual void | visit (const GroupBy &visited) |
virtual void | visit (const OrderBy &visited) |
virtual void | visitDistinct (const Distinct &visited) |
virtual | ~SQLVisitor () |
Virtual destructor. More... | |
Protected Attributes | |
const SQLDialect & | m_dialect |
The function catalog to use when translating the query. More... | |
std::string & | m_sql |
The buffer string where the query will be outputed. More... | |
A visitor for building an SQL statement from a given Query hierarchy.
Each driver must implement a SQL dialect in order help this class to translate the query object to its specific dialect.
Definition at line 58 of file SQLVisitor.h.
|
inline |
Default constructor.
Definition at line 65 of file SQLVisitor.h.
|
inlinevirtual |
Virtual destructor.
Reimplemented in te::pgis::SQLVisitor, te::ado::SQLVisitor, te::sqlite::SQLVisitor, and te::ogr::SQLVisitor.
Definition at line 68 of file SQLVisitor.h.
|
virtual |
Implements te::da::QueryVisitor.
Definition at line 66 of file SQLVisitor.cpp.
Referenced by te::ogr::SQLVisitor::visit(), and te::ado::SQLVisitor::visit().
|
virtual |
Implements te::da::QueryVisitor.
Reimplemented in te::ogr::SQLVisitor.
Definition at line 70 of file SQLVisitor.cpp.
References te::da::FromItem::getAlias(), and te::da::DataSetName::getName().
|
virtual |
Implements te::da::QueryVisitor.
Definition at line 81 of file SQLVisitor.cpp.
|
virtual |
Implements te::da::QueryVisitor.
Reimplemented in te::ado::SQLVisitor.
Definition at line 85 of file SQLVisitor.cpp.
References te::da::Function::getName(), TE_TR, and te::da::SQLFunctionEncoder::toSQL().
|
virtual |
Implements te::da::QueryVisitor.
Definition at line 97 of file SQLVisitor.cpp.
References te::common::BaseVisitable< T, R >::accept(), te::da::CROSS_JOIN, te::da::FULL_OUTER_JOIN, te::da::Join::getCondition(), te::da::Join::getFirst(), te::da::Join::getSecond(), te::da::Join::getType(), te::da::INNER_JOIN, te::da::Join::isNatural(), te::da::JOIN, te::da::LEFT_JOIN, te::da::NATURAL_JOIN, and te::da::RIGHT_JOIN.
|
virtual |
Implements te::da::QueryVisitor.
Definition at line 149 of file SQLVisitor.cpp.
|
virtual |
Implements te::da::QueryVisitor.
Definition at line 153 of file SQLVisitor.cpp.
References te::common::BaseVisitable< T, R >::accept(), and te::da::JoinConditionOn::getCondition().
|
virtual |
Implements te::da::QueryVisitor.
Definition at line 161 of file SQLVisitor.cpp.
References te::common::BaseVisitable< T, R >::accept(), and te::da::JoinConditionUsing::getNumFields().
|
virtual |
Implements te::da::QueryVisitor.
Definition at line 179 of file SQLVisitor.cpp.
References te::da::Literal::getValue(), and te::dt::AbstractData::toString().
|
virtual |
Implements te::da::QueryVisitor.
Definition at line 185 of file SQLVisitor.cpp.
References te::da::Literal::getValue(), and te::dt::AbstractData::toString().
|
virtual |
Implements te::da::QueryVisitor.
Reimplemented in te::pgis::SQLVisitor, te::ado::SQLVisitor, and te::sqlite::SQLVisitor.
Definition at line 191 of file SQLVisitor.cpp.
References te::da::Literal::getValue(), and te::dt::AbstractData::toString().
|
virtual |
Implements te::da::QueryVisitor.
Reimplemented in te::pgis::SQLVisitor, te::ado::SQLVisitor, and te::sqlite::SQLVisitor.
Definition at line 197 of file SQLVisitor.cpp.
References te::da::Literal::getValue(), and te::dt::AbstractData::toString().
|
virtual |
Implements te::da::QueryVisitor.
Definition at line 203 of file SQLVisitor.cpp.
References te::da::Literal::getValue(), and te::dt::AbstractData::toString().
|
virtual |
Implements te::da::QueryVisitor.
Reimplemented in te::pgis::SQLVisitor, te::ado::SQLVisitor, te::sqlite::SQLVisitor, and te::ogr::SQLVisitor.
Definition at line 209 of file SQLVisitor.cpp.
|
virtual |
Implements te::da::QueryVisitor.
Reimplemented in te::pgis::SQLVisitor, te::ado::SQLVisitor, and te::sqlite::SQLVisitor.
Definition at line 213 of file SQLVisitor.cpp.
References te::da::Literal::getValue(), and te::dt::AbstractData::toString().
|
virtual |
Implements te::da::QueryVisitor.
Definition at line 219 of file SQLVisitor.cpp.
References te::da::Literal::getValue(), and te::dt::AbstractData::toString().
|
virtual |
Implements te::da::QueryVisitor.
Definition at line 225 of file SQLVisitor.cpp.
References te::da::Literal::getValue(), and te::dt::AbstractData::toString().
|
virtual |
Implements te::da::QueryVisitor.
Definition at line 231 of file SQLVisitor.cpp.
References te::da::Literal::getValue(), and te::dt::AbstractData::toString().
|
virtual |
Implements te::da::QueryVisitor.
Definition at line 237 of file SQLVisitor.cpp.
References te::da::Literal::getValue(), and te::dt::AbstractData::toString().
|
virtual |
Implements te::da::QueryVisitor.
Reimplemented in te::ado::SQLVisitor, and te::ogr::SQLVisitor.
Definition at line 247 of file SQLVisitor.cpp.
References te::da::PropertyName::getName().
|
virtual |
Implements te::da::QueryVisitor.
Definition at line 252 of file SQLVisitor.cpp.
|
virtual |
Implements te::da::QueryVisitor.
Reimplemented in te::ogr::SQLVisitor.
Definition at line 256 of file SQLVisitor.cpp.
References te::common::BaseVisitable< T, R >::accept(), te::da::Select::getDistinct(), te::da::Having::getExp(), te::da::Where::getExp(), te::da::Select::getFields(), te::da::Select::getFrom(), te::da::Select::getGroupBy(), te::da::Select::getHaving(), te::da::Select::getOrderBy(), and te::da::Select::getWhere().
|
virtual |
Implements te::da::QueryVisitor.
Definition at line 302 of file SQLVisitor.cpp.
References te::common::BaseVisitable< T, R >::accept(), te::da::FromItem::getAlias(), and te::da::SubSelect::getSelect().
|
virtual |
Implements te::da::QueryVisitor.
Definition at line 314 of file SQLVisitor.cpp.
References te::common::BaseVisitable< T, R >::accept(), te::da::Function::getNumArgs(), and te::da::In::getPropertyName().
|
virtual |
Definition at line 358 of file SQLVisitor.cpp.
|
virtual |
Definition at line 374 of file SQLVisitor.cpp.
|
virtual |
Definition at line 389 of file SQLVisitor.cpp.
|
virtual |
Definition at line 404 of file SQLVisitor.cpp.
References te::da::ASC.
|
virtual |
Reimplemented in te::ogr::SQLVisitor.
Definition at line 334 of file SQLVisitor.cpp.
|
protected |
The function catalog to use when translating the query.
Definition at line 105 of file SQLVisitor.h.
|
protected |
The buffer string where the query will be outputed.
Definition at line 106 of file SQLVisitor.h.