#ifndef QUERY_BASIC_CONDITION_HPP #define QUERY_BASIC_CONDITION_HPP #include "matador/sql/column.hpp" #include #include #include namespace matador::sql { class dialect; class basic_condition { public: basic_condition() = default; virtual ~basic_condition() = default; enum class operand_t : uint8_t { EQUAL = 0, NOT_EQUAL, LESS, LESS_EQUAL, GREATER, GREATER_EQUAL, OR, AND, NOT, IN_LIST, LIKE }; virtual std::string evaluate(dialect &dialect) const = 0; static std::unordered_map operands; }; class basic_column_condition : public basic_condition { public: column field_; std::string operand; basic_column_condition(column fld, basic_condition::operand_t op); }; class basic_in_condition : public basic_condition { public: column field_; explicit basic_in_condition(column fld); [[nodiscard]] virtual size_t size() const = 0; }; /// @endcond } #endif //QUERY_BASIC_CONDITION_HPP