diff --git a/utils/windowfunction/idborderby.cpp b/utils/windowfunction/idborderby.cpp index 58440de14..cb37796a6 100644 --- a/utils/windowfunction/idborderby.cpp +++ b/utils/windowfunction/idborderby.cpp @@ -693,6 +693,24 @@ OrderByData::OrderByData(const std::vector& spec, const rowgroup::R } +// OrderByData class dtor +OrderByData::~OrderByData() +{ + // delete compare objects + vector::iterator i = fRule.fCompares.begin(); + + while (i != fRule.fCompares.end()) + { + if (*i) + { + delete *i; + *i = NULL; + } + i++; + } +} + + // IdbOrderBy class implementation IdbOrderBy::IdbOrderBy() : fDistinct(false), fMemSize(0), fRowsPerRG(rowgroup::rgCommonSize), diff --git a/utils/windowfunction/idborderby.h b/utils/windowfunction/idborderby.h index dc7ccef28..98dce4b59 100644 --- a/utils/windowfunction/idborderby.h +++ b/utils/windowfunction/idborderby.h @@ -338,7 +338,7 @@ class OrderByData : public IdbCompare { public: OrderByData(const std::vector&, const rowgroup::RowGroup&); - virtual ~OrderByData() {}; + virtual ~OrderByData(); bool operator() (rowgroup::Row::Pointer p1, rowgroup::Row::Pointer p2) {