1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
//////////////////////////////////////////////////////////////////////////
//
// pgScript - PostgreSQL Tools
//
// Copyright (C) 2002 - 2014, The pgAdmin Development Team
// This software is released under the PostgreSQL Licence
//
//////////////////////////////////////////////////////////////////////////
#include "pgAdmin3.h"
#include "pgscript/expressions/pgsAssign.h"
#include "pgscript/objects/pgsVariable.h"
pgsAssign::pgsAssign(const wxString &name, const pgsExpression *var) :
pgsExpression(), m_name(name), m_var(var)
{
}
pgsAssign::~pgsAssign()
{
pdelete(m_var);
}
pgsExpression *pgsAssign::clone() const
{
return pnew pgsAssign(*this);
}
pgsAssign::pgsAssign(const pgsAssign &that) :
pgsExpression(that), m_name(that.m_name)
{
m_var = that.m_var->clone();
}
pgsAssign &pgsAssign::operator =(const pgsAssign &that)
{
if (this != &that)
{
pgsExpression::operator=(that);
m_name = that.m_name;
pdelete(m_var);
m_var = that.m_var->clone();
}
return (*this);
}
wxString pgsAssign::value() const
{
return wxString() << wxT("SET ") << m_name << wxT(" = ") << m_var->value();
}
pgsOperand pgsAssign::eval(pgsVarMap &vars) const
{
vars[m_name] = m_var->eval(vars);
return vars[m_name];
}
|