progress on column_expression and table_column_expression
This commit is contained in:
parent
bc8158a6ca
commit
9b4738a5ff
|
|
@ -15,7 +15,7 @@ public:
|
||||||
[[nodiscard]] const table_column& col() const;
|
[[nodiscard]] const table_column& col() const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
table_column column_;
|
const table_column& column_;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ private:
|
||||||
class binary_column_criteria final : public abstract_criteria {
|
class binary_column_criteria final : public abstract_criteria {
|
||||||
public:
|
public:
|
||||||
binary_column_criteria() = delete;
|
binary_column_criteria() = delete;
|
||||||
binary_column_criteria(table_column left_column, binary_operator operand, table_column right_column);
|
binary_column_criteria(const table_column& left_column, binary_operator operand, const table_column& right_column);
|
||||||
|
|
||||||
void accept(criteria_visitor& visitor) const override;
|
void accept(criteria_visitor& visitor) const override;
|
||||||
|
|
||||||
|
|
@ -43,9 +43,9 @@ public:
|
||||||
[[nodiscard]] const table_column& right_column() const;
|
[[nodiscard]] const table_column& right_column() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
table_column left_column_;
|
const table_column& left_column_;
|
||||||
binary_operator operator_{};
|
binary_operator operator_{};
|
||||||
table_column right_column_;
|
const table_column& right_column_;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
#endif //CRITERIA_BINARY_CRITERIA_NODE_HPP
|
#endif //CRITERIA_BINARY_CRITERIA_NODE_HPP
|
||||||
|
|
@ -8,14 +8,14 @@ namespace matador::query {
|
||||||
class table_column_expression : public abstract_column_expression {
|
class table_column_expression : public abstract_column_expression {
|
||||||
public:
|
public:
|
||||||
table_column_expression() = delete;
|
table_column_expression() = delete;
|
||||||
explicit table_column_expression(table_column col);
|
explicit table_column_expression(const table_column& col);
|
||||||
|
|
||||||
void accept(expression_visitor& visitor) const override;
|
void accept(expression_visitor& visitor) const override;
|
||||||
|
|
||||||
[[nodiscard]] const table_column& col() const;
|
[[nodiscard]] const table_column& col() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
table_column column_;
|
const table_column& column_;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
#endif //MATADOR_TABLE_COLUMN_EXPRESSION_HPP
|
#endif //MATADOR_TABLE_COLUMN_EXPRESSION_HPP
|
||||||
|
|
@ -25,7 +25,7 @@ const criteria_value& binary_criteria::value() const {
|
||||||
return value_;
|
return value_;
|
||||||
}
|
}
|
||||||
|
|
||||||
binary_column_criteria::binary_column_criteria(table_column left_column, const binary_operator operand, table_column right_column)
|
binary_column_criteria::binary_column_criteria(const table_column& left_column, const binary_operator operand, const table_column& right_column)
|
||||||
: left_column_(std::move(left_column))
|
: left_column_(std::move(left_column))
|
||||||
, operator_(operand)
|
, operator_(operand)
|
||||||
, right_column_(std::move(right_column)){}
|
, right_column_(std::move(right_column)){}
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,8 @@
|
||||||
#include "matador/query/expression/expression_visitor.hpp"
|
#include "matador/query/expression/expression_visitor.hpp"
|
||||||
|
|
||||||
namespace matador::query {
|
namespace matador::query {
|
||||||
table_column_expression::table_column_expression(table_column col)
|
table_column_expression::table_column_expression(const table_column& col)
|
||||||
: column_(std::move(col)){
|
: column_(col){
|
||||||
}
|
}
|
||||||
|
|
||||||
void table_column_expression::accept(expression_visitor &visitor) const {
|
void table_column_expression::accept(expression_visitor &visitor) const {
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ void expression_evaluator::visit(const value_expression& node) {
|
||||||
expression_.append(v.result);
|
expression_.append(v.result);
|
||||||
}
|
}
|
||||||
|
|
||||||
void expression_evaluator::visit(const placeholder_expression& node) {
|
void expression_evaluator::visit(const placeholder_expression& /*node*/) {
|
||||||
query_.bind_vars.emplace_back(std::string("value_") + std::to_string(query_.bind_vars.size() + 1));
|
query_.bind_vars.emplace_back(std::string("value_") + std::to_string(query_.bind_vars.size() + 1));
|
||||||
expression_.append(dialect_.next_placeholder(query_.bind_vars));
|
expression_.append(dialect_.next_placeholder(query_.bind_vars));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue