Packages

An Elixir DuckDB library

Current section

Files

Jump to
exduckdb c_src duckdb src parser expression parameter_expression.cpp
Raw

c_src/duckdb/src/parser/expression/parameter_expression.cpp

#include "duckdb/parser/expression/parameter_expression.hpp"
#include "duckdb/common/exception.hpp"
#include "duckdb/common/serializer.hpp"
#include "duckdb/common/types/hash.hpp"
#include "duckdb/common/to_string.hpp"
namespace duckdb {
ParameterExpression::ParameterExpression()
: ParsedExpression(ExpressionType::VALUE_PARAMETER, ExpressionClass::PARAMETER), parameter_nr(0) {
}
string ParameterExpression::ToString() const {
return "$" + to_string(parameter_nr);
}
unique_ptr<ParsedExpression> ParameterExpression::Copy() const {
auto copy = make_unique<ParameterExpression>();
copy->parameter_nr = parameter_nr;
copy->CopyProperties(*this);
return move(copy);
}
hash_t ParameterExpression::Hash() const {
hash_t result = ParsedExpression::Hash();
return CombineHash(duckdb::Hash(parameter_nr), result);
}
void ParameterExpression::Serialize(Serializer &serializer) {
ParsedExpression::Serialize(serializer);
serializer.Write<idx_t>(parameter_nr);
}
unique_ptr<ParsedExpression> ParameterExpression::Deserialize(ExpressionType type, Deserializer &source) {
auto expression = make_unique<ParameterExpression>();
expression->parameter_nr = source.Read<idx_t>();
return move(expression);
}
} // namespace duckdb