condition.hpp File Reference

Contains functions to create query conditions. More...

#include "matador/sql/types.hpp"
#include "matador/sql/column.hpp"
#include "matador/sql/token.hpp"
#include "matador/sql/basic_query.hpp"
#include <string>
#include <sstream>
#include <memory>
#include <type_traits>
#include <vector>
#include <utility>
#include <array>

Classes

class  matador::condition< column, std::initializer_list< V > >
 Condition class representing an IN condition. More...
 
class  matador::condition< column, detail::basic_query >
 Condition class representing an IN condition. More...
 
class  matador::condition< column, std::pair< T, T > >
 Between condition. More...
 
class  matador::condition< condition< L1, R1 >, condition< L2, R2 > >
 Logical binary condition. More...
 
class  matador::condition< condition< L, R >, void >
 Logical unary condition. More...
 

Namespaces

namespace  matador
 The Open Object Store namespace.
 
namespace  matador::detail
 Detail namespace of the open object store.
 

Functions

template<class V >
condition< column, std::initializer_list< V > > matador::in (const matador::column &col, std::initializer_list< V > args)
 Creates an IN condition for a given column and a list of values.
 
condition< column, detail::basic_querymatador::in (const matador::column &col, detail::basic_query &q)
 Creates an IN condition for a given column and a query to be executed.
 
template<class T >
condition< column, std::pair< T, T > > matador::between (const matador::column &col, T low, T high)
 Creates a between condition.
 
condition< column, std::string > matador::like (const matador::column &col, const std::string &val)
 Creates a like condition.
 
template<class T >
condition< column, T > matador::operator== (const column &col, T val)
 Condition equality operator for a column and a value.
 
condition< column, detail::basic_querymatador::equals (const column &col, detail::basic_query &q)
 Condition equality method for a column and a query.
 
template<class T >
condition< column, T > matador::operator!= (const column &col, T val)
 Condition unequality operator for a column and a value.
 
template<class T >
condition< column, T > matador::operator< (const column &col, T val)
 Condition less operator for a column and a value.
 
template<class T >
condition< column, T > matador::operator<= (const column &col, T val)
 Condition less or equal operator for a column and a value.
 
template<class T >
condition< column, T > matador::operator> (const column &col, T val)
 Condition greater operator for a column and a value.
 
template<class T >
condition< column, T > matador::operator>= (const column &col, T val)
 Condition greater or equal operator for a column and a value.
 
template<class L1 , class R1 , class L2 , class R2 >
condition< condition< L1, R1 >, condition< L2, R2 > > matador::operator&& (const condition< L1, R1 > &l, const condition< L2, R2 > &r)
 AND operation condition consisting of a left and right hand condition.
 
template<class L1 , class R1 , class L2 , class R2 >
condition< condition< L1, R1 >, condition< L2, R2 > > matador::operator|| (const condition< L1, R1 > &l, const condition< L2, R2 > &r)
 OR operation condition consisting of a left and right hand condition.
 
template<class L , class R >
condition< condition< L, R >, void > matador::operator! (const condition< L, R > &c)
 Negates a given condition.
 
template<class L , class R >
std::shared_ptr< detail::basic_condition > matador::make_condition (const condition< L, R > &cond)
 Creates a shared condition from a given condition object.
 

Detailed Description

Contains functions to create query conditions.

This file contains some functions to create query conditions. These functions wrap the constructing of a concrete condition and allows expression like condition programming.

cond1 == cond2
cond1 < cond2
cond2 != cond1 && cond3 < cond4