@@ -74,12 +74,12 @@ class Operator {
7474 [[nodiscard]] Transaction* get_txn () const { return txn_; }
7575 [[nodiscard]] LockManager* get_lock_manager () const { return lock_manager_; }
7676
77- void set_memory_resource (std::pmr::memory_resource* mr) { mr_ = mr; }
77+ virtual void set_memory_resource (std::pmr::memory_resource* mr) { mr_ = mr; }
7878 [[nodiscard]] std::pmr::memory_resource* get_memory_resource () const {
7979 return mr_ ? mr_ : std::pmr::get_default_resource ();
8080 }
8181
82- void set_params (const std::vector<common::Value>* params) { params_ = params; }
82+ virtual void set_params (const std::vector<common::Value>* params) { params_ = params; }
8383 [[nodiscard]] const std::vector<common::Value>* get_params () const { return params_; }
8484
8585 virtual bool init () { return true ; }
@@ -202,6 +202,9 @@ class FilterOperator : public Operator {
202202 void close () override ;
203203 [[nodiscard]] Schema& output_schema () override ;
204204 void add_child (std::unique_ptr<Operator> child) override ;
205+
206+ void set_memory_resource (std::pmr::memory_resource* mr) override ;
207+ void set_params (const std::vector<common::Value>* params) override ;
205208};
206209
207210/* *
@@ -223,6 +226,9 @@ class ProjectOperator : public Operator {
223226 void close () override ;
224227 [[nodiscard]] Schema& output_schema () override ;
225228 void add_child (std::unique_ptr<Operator> child) override ;
229+
230+ void set_memory_resource (std::pmr::memory_resource* mr) override ;
231+ void set_params (const std::vector<common::Value>* params) override ;
226232};
227233
228234/* *
@@ -247,6 +253,9 @@ class SortOperator : public Operator {
247253 bool next (Tuple& out_tuple) override ;
248254 void close () override ;
249255 [[nodiscard]] Schema& output_schema () override ;
256+
257+ void set_memory_resource (std::pmr::memory_resource* mr) override ;
258+ void set_params (const std::vector<common::Value>* params) override ;
250259};
251260
252261/* *
@@ -281,6 +290,9 @@ class AggregateOperator : public Operator {
281290 bool next (Tuple& out_tuple) override ;
282291 void close () override ;
283292 [[nodiscard]] Schema& output_schema () override ;
293+
294+ void set_memory_resource (std::pmr::memory_resource* mr) override ;
295+ void set_params (const std::vector<common::Value>* params) override ;
284296};
285297
286298/* *
@@ -330,6 +342,9 @@ class HashJoinOperator : public Operator {
330342 void close () override ;
331343 [[nodiscard]] Schema& output_schema () override ;
332344 void add_child (std::unique_ptr<Operator> child) override ;
345+
346+ void set_memory_resource (std::pmr::memory_resource* mr) override ;
347+ void set_params (const std::vector<common::Value>* params) override ;
333348};
334349
335350/* *
@@ -352,6 +367,9 @@ class LimitOperator : public Operator {
352367 void close () override ;
353368 [[nodiscard]] Schema& output_schema () override ;
354369 void add_child (std::unique_ptr<Operator> child) override ;
370+
371+ void set_memory_resource (std::pmr::memory_resource* mr) override ;
372+ void set_params (const std::vector<common::Value>* params) override ;
355373};
356374
357375} // namespace cloudsql::executor
0 commit comments