diff --git a/query_optimizer/ExecutionGenerator.cpp b/query_optimizer/ExecutionGenerator.cpp
index d43432c..d82a0c7 100644
--- a/query_optimizer/ExecutionGenerator.cpp
+++ b/query_optimizer/ExecutionGenerator.cpp
@@ -747,6 +747,8 @@
                                  insert_destination_proto);
 
   // Create and add a Select operator.
+  const bool has_repartition = physical_selection->hasRepartition();
+
   // Use the "simple" form of the selection operator (a pure projection that
   // doesn't require any expression evaluation or intermediate copies) if
   // possible.
@@ -755,6 +757,7 @@
       convertSimpleProjection(project_expressions_group_index, &attributes)
           ? new SelectOperator(query_handle_->query_id(),
                                input_relation,
+                               has_repartition,
                                *output_relation,
                                insert_destination_index,
                                execution_predicate_index,
@@ -762,6 +765,7 @@
                                input_relation_info->isStoredRelation())
           : new SelectOperator(query_handle_->query_id(),
                                input_relation,
+                               has_repartition,
                                *output_relation,
                                insert_destination_index,
                                execution_predicate_index,
@@ -1040,6 +1044,7 @@
               probe_attribute_ids,
               any_probe_attributes_nullable,
               probe_num_partitions,
+              physical_plan->hasRepartition(),
               *output_relation,
               insert_destination_index,
               join_hash_table_index,
@@ -1152,6 +1157,7 @@
                                       left_relation,
                                       right_relation,
                                       num_partitions,
+                                      physical_plan->hasRepartition(),
                                       *output_relation,
                                       insert_destination_index,
                                       execution_join_predicate_index,
@@ -1539,6 +1545,15 @@
         static_cast<const ScalarAttribute*>(attribute.get())->getAttribute().getID());
   }
 
+  const P::PartitionSchemeHeader *input_physical_partition_scheme_header =
+      physical_plan->selection()->getOutputPartitionSchemeHeader();
+  const P::PartitionSchemeHeader *output_physical_partition_scheme_header =
+      physical_plan->destination()->getOutputPartitionSchemeHeader();
+  const bool has_repartition =
+      (input_physical_partition_scheme_header && output_physical_partition_scheme_header)
+          ? input_physical_partition_scheme_header->equal(*output_physical_partition_scheme_header)
+          : (input_physical_partition_scheme_header || output_physical_partition_scheme_header);
+
   // Create the select operator.
   // TODO(jianqiao): This select operator is actually redundant. That is,
   // we may directly set physical_plan_->selection()'s output relation to be
@@ -1549,6 +1564,7 @@
   SelectOperator *insert_selection_op =
       new SelectOperator(query_handle_->query_id(),
                          selection_relation,
+                         has_repartition,
                          destination_relation,
                          insert_destination_index,
                          QueryContext::kInvalidPredicateId,
@@ -1901,6 +1917,7 @@
           new FinalizeAggregationOperator(query_handle_->query_id(),
                                           aggr_state_index,
                                           num_partitions,
+                                          physical_plan->hasRepartition(),
                                           aggr_state_num_partitions,
                                           *output_relation,
                                           insert_destination_index));
@@ -2078,6 +2095,7 @@
           new FinalizeAggregationOperator(query_handle_->query_id(),
                                           aggr_state_index,
                                           num_partitions,
+                                          physical_plan->hasRepartition(),
                                           aggr_state_num_partitions,
                                           *output_relation,
                                           insert_destination_index));
diff --git a/query_optimizer/physical/Aggregate.cpp b/query_optimizer/physical/Aggregate.cpp
index f249e95..94be616 100644
--- a/query_optimizer/physical/Aggregate.cpp
+++ b/query_optimizer/physical/Aggregate.cpp
@@ -96,6 +96,9 @@
     std::vector<OptimizerTreeBaseNodePtr> *non_container_child_fields,
     std::vector<std::string> *container_child_field_names,
     std::vector<std::vector<OptimizerTreeBaseNodePtr>> *container_child_fields) const {
+  inline_field_names->push_back("has_repartition");
+  inline_field_values->push_back(has_repartition_ ? "true" : "false");
+
   if (partition_scheme_header_) {
     inline_field_names->push_back("output_partition_scheme_header");
     inline_field_values->push_back(partition_scheme_header_->toString());
diff --git a/query_optimizer/physical/Aggregate.hpp b/query_optimizer/physical/Aggregate.hpp
index c19a951..68f8811 100644
--- a/query_optimizer/physical/Aggregate.hpp
+++ b/query_optimizer/physical/Aggregate.hpp
@@ -89,7 +89,7 @@
       const std::vector<PhysicalPtr> &new_children) const override {
     DCHECK_EQ(getNumChildren(), new_children.size());
     return Create(new_children[0], grouping_expressions_, aggregate_expressions_, filter_predicate_,
-                  cloneOutputPartitionSchemeHeader());
+                  has_repartition_, cloneOutputPartitionSchemeHeader());
   }
 
   std::vector<expressions::AttributeReferencePtr> getOutputAttributes() const override;
@@ -97,9 +97,10 @@
   std::vector<expressions::AttributeReferencePtr> getReferencedAttributes() const override;
 
   PhysicalPtr copyWithNewOutputPartitionSchemeHeader(
-      PartitionSchemeHeader *partition_scheme_header) const override {
+      PartitionSchemeHeader *partition_scheme_header,
+      const bool has_repartition = true) const override {
     return Create(input_, grouping_expressions_, aggregate_expressions_, filter_predicate_,
-                  partition_scheme_header);
+                  has_repartition, partition_scheme_header);
   }
 
   bool maybeCopyWithPrunedExpressions(
@@ -125,9 +126,11 @@
       const std::vector<expressions::NamedExpressionPtr> &grouping_expressions,
       const std::vector<expressions::AliasPtr> &aggregate_expressions,
       const expressions::PredicatePtr &filter_predicate,
+      const bool has_repartition = false,
       PartitionSchemeHeader *partition_scheme_header = nullptr) {
     return AggregatePtr(
-        new Aggregate(input, grouping_expressions, aggregate_expressions, filter_predicate, partition_scheme_header));
+        new Aggregate(input, grouping_expressions, aggregate_expressions, filter_predicate, has_repartition,
+                      partition_scheme_header));
   }
 
  protected:
@@ -145,8 +148,9 @@
       const std::vector<expressions::NamedExpressionPtr> &grouping_expressions,
       const std::vector<expressions::AliasPtr> &aggregate_expressions,
       const expressions::PredicatePtr &filter_predicate,
+      const bool has_repartition,
       PartitionSchemeHeader *partition_scheme_header)
-      : Physical(partition_scheme_header),
+      : Physical(has_repartition, partition_scheme_header),
         input_(input),
         grouping_expressions_(grouping_expressions),
         aggregate_expressions_(aggregate_expressions),
diff --git a/query_optimizer/physical/BinaryJoin.cpp b/query_optimizer/physical/BinaryJoin.cpp
index 1928198..b8e8609 100644
--- a/query_optimizer/physical/BinaryJoin.cpp
+++ b/query_optimizer/physical/BinaryJoin.cpp
@@ -40,6 +40,9 @@
     std::vector<OptimizerTreeBaseNodePtr> *non_container_child_fields,
     std::vector<std::string> *container_child_field_names,
     std::vector<std::vector<OptimizerTreeBaseNodePtr>> *container_child_fields) const {
+  inline_field_names->push_back("has_repartition");
+  inline_field_values->push_back(has_repartition_ ? "true" : "false");
+
   if (partition_scheme_header_) {
     inline_field_names->push_back("output_partition_scheme_header");
     inline_field_values->push_back(partition_scheme_header_->toString());
diff --git a/query_optimizer/physical/BinaryJoin.hpp b/query_optimizer/physical/BinaryJoin.hpp
index d1f652f..39d5e31 100644
--- a/query_optimizer/physical/BinaryJoin.hpp
+++ b/query_optimizer/physical/BinaryJoin.hpp
@@ -70,13 +70,15 @@
    * @param left The left operand.
    * @param right The right operand.
    * @param project_expressions The project expressions.
+   * @param has_repartition Whether this node has repartition.
    * @param partition_scheme_header The optional output partition scheme header.
    */
   BinaryJoin(const PhysicalPtr &left,
              const PhysicalPtr &right,
              const std::vector<expressions::NamedExpressionPtr> &project_expressions,
+             const bool has_repartition = false,
              PartitionSchemeHeader *partition_scheme_header = nullptr)
-      : Join(project_expressions, partition_scheme_header),
+      : Join(project_expressions, has_repartition, partition_scheme_header),
         left_(left),
         right_(right) {
     addChild(left_);
diff --git a/query_optimizer/physical/HashJoin.cpp b/query_optimizer/physical/HashJoin.cpp
index b0ee913..a49bc8e 100644
--- a/query_optimizer/physical/HashJoin.cpp
+++ b/query_optimizer/physical/HashJoin.cpp
@@ -81,6 +81,7 @@
                      residual_predicate_,
                      new_project_expressions,
                      join_type_,
+                     has_repartition_,
                      cloneOutputPartitionSchemeHeader());
     return true;
   }
diff --git a/query_optimizer/physical/HashJoin.hpp b/query_optimizer/physical/HashJoin.hpp
index 1804d4b..2ed83af 100644
--- a/query_optimizer/physical/HashJoin.hpp
+++ b/query_optimizer/physical/HashJoin.hpp
@@ -119,15 +119,18 @@
                   residual_predicate_,
                   project_expressions(),
                   join_type_,
+                  has_repartition_,
                   cloneOutputPartitionSchemeHeader());
   }
 
   std::vector<expressions::AttributeReferencePtr> getReferencedAttributes() const override;
 
   PhysicalPtr copyWithNewOutputPartitionSchemeHeader(
-      PartitionSchemeHeader *partition_scheme_header) const override {
+      PartitionSchemeHeader *partition_scheme_header,
+      const bool has_repartition = true) const override {
     return Create(left(), right(), left_join_attributes_, right_join_attributes_,
-                  residual_predicate_, project_expressions(), join_type_, partition_scheme_header);
+                  residual_predicate_, project_expressions(), join_type_,
+                  has_repartition, partition_scheme_header);
   }
 
   bool maybeCopyWithPrunedExpressions(
@@ -145,6 +148,7 @@
    * @param residual_predicate Optional filtering predicate evaluated after join.
    * @param project_expressions The project expressions.
    * @param Join type of this hash join.
+   * @param has_repartition Whether this node has repartition.
    * @param partition_scheme_header The optional output partition scheme header.
    *
    * @return An immutable physical HashJoin.
@@ -157,6 +161,7 @@
       const expressions::PredicatePtr &residual_predicate,
       const std::vector<expressions::NamedExpressionPtr> &project_expressions,
       const JoinType join_type,
+      const bool has_repartition = false,
       PartitionSchemeHeader *partition_scheme_header = nullptr) {
     return HashJoinPtr(
         new HashJoin(left,
@@ -166,6 +171,7 @@
                      residual_predicate,
                      project_expressions,
                      join_type,
+                     has_repartition,
                      partition_scheme_header));
   }
 
@@ -187,8 +193,9 @@
       const expressions::PredicatePtr &residual_predicate,
       const std::vector<expressions::NamedExpressionPtr> &project_expressions,
       const JoinType join_type,
+      const bool has_repartition,
       PartitionSchemeHeader *partition_scheme_header)
-      : BinaryJoin(left, right, project_expressions, partition_scheme_header),
+      : BinaryJoin(left, right, project_expressions, has_repartition, partition_scheme_header),
         left_join_attributes_(left_join_attributes),
         right_join_attributes_(right_join_attributes),
         residual_predicate_(residual_predicate),
diff --git a/query_optimizer/physical/Join.hpp b/query_optimizer/physical/Join.hpp
index d72d072..63f67c8 100644
--- a/query_optimizer/physical/Join.hpp
+++ b/query_optimizer/physical/Join.hpp
@@ -70,12 +70,14 @@
    * @brief Constructor.
    *
    * @param project_expressions The project expressions.
+   * @param has_repartition Whether this node has repartition.
    * @param partition_scheme_header The optional output partition scheme header.
    */
   explicit Join(
       const std::vector<expressions::NamedExpressionPtr>& project_expressions,
+      const bool has_repartition = false,
       PartitionSchemeHeader *partition_scheme_header = nullptr)
-      : Physical(partition_scheme_header),
+      : Physical(has_repartition, partition_scheme_header),
         project_expressions_(project_expressions) {}
 
  private:
diff --git a/query_optimizer/physical/NestedLoopsJoin.hpp b/query_optimizer/physical/NestedLoopsJoin.hpp
index f4c3a42..0e0260c 100644
--- a/query_optimizer/physical/NestedLoopsJoin.hpp
+++ b/query_optimizer/physical/NestedLoopsJoin.hpp
@@ -75,6 +75,7 @@
                   new_children[1],
                   join_predicate_,
                   project_expressions(),
+                  has_repartition_,
                   cloneOutputPartitionSchemeHeader());
   }
 
@@ -85,8 +86,10 @@
       PhysicalPtr *output) const override;
 
   PhysicalPtr copyWithNewOutputPartitionSchemeHeader(
-      PartitionSchemeHeader *partition_scheme_header) const override {
-    return Create(left(), right(), join_predicate_, project_expressions(), partition_scheme_header);
+      PartitionSchemeHeader *partition_scheme_header,
+      const bool has_repartition = true) const override {
+    return Create(left(), right(), join_predicate_, project_expressions(),
+                  has_repartition, partition_scheme_header);
   }
 
   /**
@@ -105,9 +108,11 @@
       const PhysicalPtr &right,
       const expressions::PredicatePtr &join_predicate,
       const std::vector<expressions::NamedExpressionPtr> &project_expressions,
+      const bool has_repartition = false,
       PartitionSchemeHeader *partition_scheme_header = nullptr) {
     return NestedLoopsJoinPtr(
-        new NestedLoopsJoin(left, right, join_predicate, project_expressions, partition_scheme_header));
+        new NestedLoopsJoin(left, right, join_predicate, project_expressions,
+                            has_repartition, partition_scheme_header));
   }
 
  protected:
@@ -125,8 +130,9 @@
       const PhysicalPtr &right,
       const expressions::PredicatePtr &join_predicate,
       const std::vector<expressions::NamedExpressionPtr> &project_expressions,
+      const bool has_repartition,
       PartitionSchemeHeader *partition_scheme_header)
-      : BinaryJoin(left, right, project_expressions, partition_scheme_header),
+      : BinaryJoin(left, right, project_expressions, has_repartition, partition_scheme_header),
         join_predicate_(join_predicate) {
     DCHECK(join_predicate_ != nullptr);
   }
diff --git a/query_optimizer/physical/Physical.hpp b/query_optimizer/physical/Physical.hpp
index a3a56d0..4491520 100644
--- a/query_optimizer/physical/Physical.hpp
+++ b/query_optimizer/physical/Physical.hpp
@@ -95,12 +95,14 @@
    * @param partition_scheme_header The partition scheme header to be
    *        substituted for the existing one, if any. It takes ownership of
    *        'partition_scheme_header'.
+   * @param has_repartition Whether the new node does repartition.
    *
    * @return A copy with \p partition_scheme_header as the partition scheme
    *         header.
    */
   virtual PhysicalPtr copyWithNewOutputPartitionSchemeHeader(
-      PartitionSchemeHeader *partition_scheme_header) const {
+      PartitionSchemeHeader *partition_scheme_header,
+      const bool has_repartition = true) const {
     std::unique_ptr<PartitionSchemeHeader> new_partition_scheme_header(partition_scheme_header);
     LOG(FATAL) << "copyWithNewOutputPartitionSchemeHeader is not implemented for " << getName();
   }
@@ -128,16 +130,29 @@
     return nullptr;
   }
 
+  /**
+   * @brief Whether the physical plan node does repartition.
+   *
+   * @return True if this node does repartition. Otherwise, false.
+   **/
+  bool hasRepartition() const {
+    return has_repartition_;
+  }
+
  protected:
   /**
    * @brief Constructor.
    *
+   * @param has_repartition Whether this node does repartition.
    * @param partition_scheme_header The partition scheme header of the relation.
    *        The constructor takes ownership of 'partition_scheme_header'.
    */
-  explicit Physical(PartitionSchemeHeader *partition_scheme_header = nullptr)
-      : partition_scheme_header_(partition_scheme_header) {}
+  explicit Physical(const bool has_repartition = false,
+                    PartitionSchemeHeader *partition_scheme_header = nullptr)
+      : has_repartition_(has_repartition),
+        partition_scheme_header_(partition_scheme_header) {}
 
+  const bool has_repartition_;
   std::unique_ptr<PartitionSchemeHeader> partition_scheme_header_;
 
  private:
diff --git a/query_optimizer/physical/Selection.cpp b/query_optimizer/physical/Selection.cpp
index 3307e9e..b2b3f7e 100644
--- a/query_optimizer/physical/Selection.cpp
+++ b/query_optimizer/physical/Selection.cpp
@@ -45,7 +45,8 @@
 PhysicalPtr Selection::copyWithNewChildren(
     const std::vector<PhysicalPtr> &new_children) const {
   DCHECK_EQ(children().size(), new_children.size());
-  return Create(new_children[0], project_expressions_, filter_predicate_, cloneOutputPartitionSchemeHeader());
+  return Create(new_children[0], project_expressions_, filter_predicate_,
+                has_repartition_, cloneOutputPartitionSchemeHeader());
 }
 
 std::vector<E::AttributeReferencePtr> Selection::getOutputAttributes() const {
@@ -82,7 +83,8 @@
     }
   }
   if (new_project_expressions.size() != project_expressions_.size()) {
-    *output = Create(input(), new_project_expressions, filter_predicate_, cloneOutputPartitionSchemeHeader());
+    *output = Create(input(), new_project_expressions, filter_predicate_,
+                     has_repartition_, cloneOutputPartitionSchemeHeader());
     return true;
   }
   return false;
@@ -95,6 +97,9 @@
     std::vector<OptimizerTreeBaseNodePtr> *non_container_child_fields,
     std::vector<std::string> *container_child_field_names,
     std::vector<std::vector<OptimizerTreeBaseNodePtr>> *container_child_fields) const {
+  inline_field_names->push_back("has_repartition");
+  inline_field_values->push_back(has_repartition_ ? "true" : "false");
+
   if (partition_scheme_header_) {
     inline_field_names->push_back("output_partition_scheme_header");
     inline_field_values->push_back(partition_scheme_header_->toString());
diff --git a/query_optimizer/physical/Selection.hpp b/query_optimizer/physical/Selection.hpp
index 4cbc856..2b50061 100644
--- a/query_optimizer/physical/Selection.hpp
+++ b/query_optimizer/physical/Selection.hpp
@@ -85,8 +85,10 @@
   std::vector<expressions::AttributeReferencePtr> getReferencedAttributes() const override;
 
   PhysicalPtr copyWithNewOutputPartitionSchemeHeader(
-      PartitionSchemeHeader *partition_scheme_header) const override {
-    return Create(input(), project_expressions_, filter_predicate_, partition_scheme_header);
+      PartitionSchemeHeader *partition_scheme_header,
+      const bool has_repartition = true) const override {
+    return Create(input(), project_expressions_, filter_predicate_,
+                  has_repartition, partition_scheme_header);
   }
 
   bool maybeCopyWithPrunedExpressions(
@@ -109,9 +111,11 @@
       const PhysicalPtr &input,
       const std::vector<expressions::NamedExpressionPtr> &project_expressions,
       const expressions::PredicatePtr &filter_predicate,
+      const bool has_repartition = false,
       PartitionSchemeHeader *output_partition_scheme_header = nullptr) {
     return SelectionPtr(
-        new Selection(input, project_expressions, filter_predicate, output_partition_scheme_header));
+        new Selection(input, project_expressions, filter_predicate,
+                      has_repartition, output_partition_scheme_header));
   }
 
   /**
@@ -153,8 +157,9 @@
       const PhysicalPtr &input,
       const std::vector<expressions::NamedExpressionPtr> &project_expressions,
       const expressions::PredicatePtr &filter_predicate,
+      const bool has_repartition,
       PartitionSchemeHeader *partition_scheme_header)
-      : Physical(partition_scheme_header),
+      : Physical(has_repartition, partition_scheme_header),
         project_expressions_(project_expressions),
         filter_predicate_(filter_predicate) {
     addChild(input);
diff --git a/query_optimizer/physical/TableGenerator.hpp b/query_optimizer/physical/TableGenerator.hpp
index 4d6419f..0798165 100644
--- a/query_optimizer/physical/TableGenerator.hpp
+++ b/query_optimizer/physical/TableGenerator.hpp
@@ -102,9 +102,11 @@
   }
 
   PhysicalPtr copyWithNewOutputPartitionSchemeHeader(
-      PartitionSchemeHeader *partition_scheme_header) const override {
+      PartitionSchemeHeader *partition_scheme_header,
+      const bool has_repartition = true) const override {
     return TableGeneratorPtr(
-        new TableGenerator(generator_function_handle_, table_alias_, attribute_list_, partition_scheme_header));
+        new TableGenerator(generator_function_handle_, table_alias_, attribute_list_,
+                           partition_scheme_header != nullptr, partition_scheme_header));
   }
 
   void getFieldStringItems(
@@ -152,8 +154,9 @@
   TableGenerator(const GeneratorFunctionHandlePtr &generator_function_handle,
                  const std::string &table_alias,
                  const std::vector<E::AttributeReferencePtr> &attribute_list,
+                 const bool has_repartition = false,
                  PartitionSchemeHeader *partition_scheme_header = nullptr)
-      : Physical(partition_scheme_header),
+      : Physical(has_repartition, partition_scheme_header),
         generator_function_handle_(generator_function_handle),
         table_alias_(table_alias),
         attribute_list_(attribute_list) {
diff --git a/query_optimizer/physical/TableReference.hpp b/query_optimizer/physical/TableReference.hpp
index bdc0578..85cb76b 100644
--- a/query_optimizer/physical/TableReference.hpp
+++ b/query_optimizer/physical/TableReference.hpp
@@ -114,7 +114,7 @@
       const CatalogRelation *relation, const std::string &alias,
       const std::vector<expressions::AttributeReferencePtr> &attribute_list,
       PartitionSchemeHeader *partition_scheme_header)
-      : Physical(partition_scheme_header),
+      : Physical(false /* has_repartition */, partition_scheme_header),
         relation_(relation),
         alias_(alias),
         attribute_list_(attribute_list) {}
diff --git a/query_optimizer/rules/Partition.cpp b/query_optimizer/rules/Partition.cpp
index fd4deb3..5f8b2c6 100644
--- a/query_optimizer/rules/Partition.cpp
+++ b/query_optimizer/rules/Partition.cpp
@@ -100,7 +100,8 @@
     // Add a Selection node.
     return P::Selection::Create(node,
                                 CastSharedPtrVector<E::NamedExpression>(node->getOutputAttributes()),
-                                nullptr /* filter_predicate */, repartition_scheme_header);
+                                nullptr /* filter_predicate */,
+                                true /* has_repartition */, repartition_scheme_header);
   } else {
     // Overwrite the output partition scheme header of the node.
     return node->copyWithNewOutputPartitionSchemeHeader(repartition_scheme_header);
@@ -180,7 +181,8 @@
       // Add a Selection node.
       left = P::Selection::Create(left,
                                   CastSharedPtrVector<E::NamedExpression>(left->getOutputAttributes()),
-                                  nullptr /* filter_predicate */, left_repartition_scheme_header.release());
+                                  nullptr /* filter_predicate */,
+                                  true /* has_repartition */, left_repartition_scheme_header.release());
       break;
     default: {
       if (!left_partition_scheme_header) {
@@ -199,7 +201,8 @@
       // Add a Selection node.
       right = P::Selection::Create(right,
                                    CastSharedPtrVector<E::NamedExpression>(right->getOutputAttributes()),
-                                   nullptr /* filter_predicate */, right_repartition_scheme_header.release());
+                                   nullptr /* filter_predicate */,
+                                   true /* has_repartition */, right_repartition_scheme_header.release());
     } else {
       right = right->copyWithNewOutputPartitionSchemeHeader(right_repartition_scheme_header.release());
     }
@@ -227,9 +230,11 @@
   }
 
   std::unique_ptr<P::PartitionSchemeHeader> output_partition_scheme_header;
+  bool has_repartition = false;
   if (left_partition_expr_ids != output_partition_expr_ids) {
     output_partition_scheme_header = make_unique<P::PartitionSchemeHeader>(
         left_partition_scheme_header->partition_type, num_partitions, move(output_partition_expr_ids));
+    has_repartition = true;
   } else {
     output_partition_scheme_header = make_unique<P::PartitionSchemeHeader>(*left_partition_scheme_header);
   }
@@ -237,6 +242,7 @@
   return P::NestedLoopsJoin::Create(left, right,
                                     nested_loops_join->join_predicate(),
                                     nested_loops_join->project_expressions(),
+                                    has_repartition,
                                     output_partition_scheme_header.release());
 }
 
@@ -277,7 +283,8 @@
               input_partition_scheme_header->num_partitions,
               move(output_partition_expr_ids));
 
-          return aggregate->copyWithNewOutputPartitionSchemeHeader(output_partition_scheme_header.release());
+          return aggregate->copyWithNewOutputPartitionSchemeHeader(output_partition_scheme_header.release(),
+                                                                   false /* has_repartition */);
         }
       }
 
@@ -364,7 +371,8 @@
           avg_recompute_expressions.empty()
               ? aggregate->copyWithNewOutputPartitionSchemeHeader(output_partition_scheme_header.release())
               : P::Aggregate::Create(input, grouping_expressions, partial_aggregate_expressions,
-                                     filter_predicate, output_partition_scheme_header.release());
+                                     filter_predicate, true /* has_repartition */,
+                                     output_partition_scheme_header.release());
 
       vector<E::AliasPtr> reaggregate_expressions;
       for (const auto &aggregate_expr : partial_aggregate_expressions) {
@@ -383,7 +391,8 @@
       }
       const P::AggregatePtr reaggregate =
           P::Aggregate::Create(partial_aggregate, grouping_expressions, reaggregate_expressions,
-                               nullptr /* filter_predicate */, output_partition_scheme_header.release());
+                               nullptr /* filter_predicate */, false /* has_repartition */,
+                               output_partition_scheme_header.release());
 
       if (avg_recompute_expressions.empty()) {
         return reaggregate;
@@ -419,7 +428,7 @@
             make_unique<P::PartitionSchemeHeader>(*reaggregate->getOutputPartitionSchemeHeader());
       }
       return P::Selection::Create(reaggregate, project_expressions, nullptr /* filter_predicate */,
-                                  output_partition_scheme_header.release());
+                                  false /* has_repartition */, output_partition_scheme_header.release());
     }
     case P::PhysicalType::kHashJoin: {
       const P::HashJoinPtr hash_join = static_pointer_cast<const P::HashJoin>(node);
@@ -489,10 +498,12 @@
                                    hash_join->residual_predicate(),
                                    hash_join->project_expressions(),
                                    hash_join->join_type(),
+                                   false /* has_repartition */,
                                    output_partition_scheme_header.release());
       }
 
-      return hash_join->copyWithNewOutputPartitionSchemeHeader(output_partition_scheme_header.release());
+      return hash_join->copyWithNewOutputPartitionSchemeHeader(output_partition_scheme_header.release(),
+                                                               false /* has_repartition */);
     }
     case P::PhysicalType::kNestedLoopsJoin: {
       const P::NestedLoopsJoinPtr nested_loops_join = static_pointer_cast<const P::NestedLoopsJoin>(node);
@@ -552,7 +563,8 @@
       // TODO(quickstep-team): Check RangePartitionSchemeHeader against the project expressions.
       DCHECK(input_partition_scheme_header->partition_type != P::PartitionSchemeHeader::PartitionType::kRange);
       auto output_partition_scheme_header = make_unique<P::PartitionSchemeHeader>(*input_partition_scheme_header);
-      return selection->copyWithNewOutputPartitionSchemeHeader(output_partition_scheme_header.release());
+      return selection->copyWithNewOutputPartitionSchemeHeader(output_partition_scheme_header.release(),
+                                                               false /* has_repartition */);
     }
     default:
       break;
diff --git a/query_optimizer/tests/physical_generator/CommonSubexpression.test b/query_optimizer/tests/physical_generator/CommonSubexpression.test
index b23a97d..147cfeb 100644
--- a/query_optimizer/tests/physical_generator/CommonSubexpression.test
+++ b/query_optimizer/tests/physical_generator/CommonSubexpression.test
@@ -44,7 +44,7 @@
   +-AttributeReference[id=7,name=,alias=(1+int_col),relation=,type=Int NULL]
 [Physical Plan]
 TopLevelPlan
-+-plan=Selection
++-plan=Selection[has_repartition=false]
 | +-input=TableReference[relation=Test,alias=test]
 | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
 | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
@@ -114,8 +114,8 @@
     type=Float NULL]
 [Physical Plan]
 TopLevelPlan
-+-plan=Selection
-| +-input=Aggregate
++-plan=Selection[has_repartition=false]
+| +-input=Aggregate[has_repartition=false]
 | | +-input=TableReference[relation=Test,alias=test]
 | | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
 | | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
@@ -216,7 +216,7 @@
     type=Float NULL]
 [Physical Plan]
 TopLevelPlan
-+-plan=HashJoin
++-plan=HashJoin[has_repartition=false]
 | +-left=TableGenerator[function_name=generate_series,table_alias=g]
 | | +-AttributeReference[id=6,name=generate_series,alias=g,
 | |   relation=generate_series,type=Int]
@@ -318,7 +318,7 @@
     type=Float NULL]
 [Physical Plan]
 TopLevelPlan
-+-plan=NestedLoopsJoin
++-plan=NestedLoopsJoin[has_repartition=false]
 | +-left=TableReference[relation=Test,alias=test]
 | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
 | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
@@ -416,7 +416,7 @@
   +-AttributeReference[id=7,name=result,relation=,type=Long]
 [Physical Plan]
 TopLevelPlan
-+-plan=Selection
++-plan=Selection[has_repartition=false]
 | +-input=TableReference[relation=Test,alias=test]
 | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
 | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
@@ -512,7 +512,7 @@
   +-AttributeReference[id=8,name=,alias=(int_col+1),relation=,type=Int NULL]
 [Physical Plan]
 TopLevelPlan
-+-plan=Selection
++-plan=Selection[has_repartition=false]
 | +-input=TableReference[relation=Test,alias=test]
 | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
 | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
@@ -627,8 +627,8 @@
   +-AttributeReference[id=11,name=,alias=COUNT(*),relation=,type=Long]
 [Physical Plan]
 TopLevelPlan
-+-plan=Selection
-| +-input=Aggregate
++-plan=Selection[has_repartition=false]
+| +-input=Aggregate[has_repartition=false]
 | | +-input=TableReference[relation=Test,alias=test]
 | | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
 | | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
@@ -731,8 +731,8 @@
     type=Long NULL]
 [Physical Plan]
 TopLevelPlan
-+-plan=Selection
-| +-input=Aggregate
++-plan=Selection[has_repartition=false]
+| +-input=Aggregate[has_repartition=false]
 | | +-input=TableReference[relation=Test,alias=test]
 | | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
 | | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
@@ -769,4 +769,3 @@
   | type=Long NULL]
   +-AttributeReference[id=9,name=,alias=((SUM((long_col+1))+2)*3),relation=,
     type=Long NULL]
-==
diff --git a/query_optimizer/tests/physical_generator/Join.test b/query_optimizer/tests/physical_generator/Join.test
index 4ebbac7..45ea0ed 100644
--- a/query_optimizer/tests/physical_generator/Join.test
+++ b/query_optimizer/tests/physical_generator/Join.test
@@ -23,9 +23,9 @@
        JOIN d ON a.y = d.y;
 --
 TopLevelPlan
-+-plan=HashJoin
-| +-left=HashJoin
-| | +-left=HashJoin
++-plan=HashJoin[has_repartition=false]
+| +-left=HashJoin[has_repartition=false]
+| | +-left=HashJoin[has_repartition=false]
 | | | +-left=TableReference[relation=a]
 | | | | +-AttributeReference[id=0,name=w,relation=a,type=Int]
 | | | | +-AttributeReference[id=1,name=x,relation=a,type=Int]
@@ -71,9 +71,9 @@
        JOIN d ON (a.y = d.y OR a.z > d.z);
 --
 TopLevelPlan
-+-plan=NestedLoopsJoin
-| +-left=HashJoin
-| | +-left=NestedLoopsJoin
++-plan=NestedLoopsJoin[has_repartition=false]
+| +-left=HashJoin[has_repartition=false]
+| | +-left=NestedLoopsJoin[has_repartition=false]
 | | | +-left=TableReference[relation=a]
 | | | | +-AttributeReference[id=0,name=w,relation=a,type=Int]
 | | | | +-AttributeReference[id=1,name=x,relation=a,type=Int]
@@ -131,9 +131,9 @@
   AND a1.z = d1.z;
 --
 TopLevelPlan
-+-plan=HashJoin
-| +-left=HashJoin
-| | +-left=HashJoin
++-plan=HashJoin[has_repartition=false]
+| +-left=HashJoin[has_repartition=false]
+| | +-left=HashJoin[has_repartition=false]
 | | | +-left=TableReference[relation=a,alias=a1]
 | | | | +-AttributeReference[id=0,name=w,relation=a1,type=Int]
 | | | | +-AttributeReference[id=1,name=x,relation=a1,type=Int]
@@ -188,9 +188,9 @@
   AND a1.z = d1.z;
 --
 TopLevelPlan
-+-plan=HashJoin
-| +-left=HashJoin
-| | +-left=HashJoin
++-plan=HashJoin[has_repartition=false]
+| +-left=HashJoin[has_repartition=false]
+| | +-left=HashJoin[has_repartition=false]
 | | | +-left=TableReference[relation=a,alias=a1]
 | | | | +-AttributeReference[id=0,name=w,relation=a1,type=Int]
 | | | | +-AttributeReference[id=1,name=x,relation=a1,type=Int]
@@ -245,9 +245,9 @@
        LEFT JOIN d ON a.y = d.y;
 --
 TopLevelPlan
-+-plan=HashLeftOuterJoin
-| +-left=HashLeftOuterJoin
-| | +-left=HashLeftOuterJoin
++-plan=HashLeftOuterJoin[has_repartition=false]
+| +-left=HashLeftOuterJoin[has_repartition=false]
+| | +-left=HashLeftOuterJoin[has_repartition=false]
 | | | +-left=TableReference[relation=a]
 | | | | +-AttributeReference[id=0,name=w,relation=a,type=Int]
 | | | | +-AttributeReference[id=1,name=x,relation=a,type=Int]
@@ -304,10 +304,10 @@
   AND c.y > 20;
 --
 TopLevelPlan
-+-plan=HashLeftOuterJoin
-| +-left=HashJoin
-| | +-left=HashLeftOuterJoin
-| | | +-left=Selection
++-plan=HashLeftOuterJoin[has_repartition=false]
+| +-left=HashJoin[has_repartition=false]
+| | +-left=HashLeftOuterJoin[has_repartition=false]
+| | | +-left=Selection[has_repartition=false]
 | | | | +-input=TableReference[relation=b]
 | | | | | +-AttributeReference[id=4,name=w,relation=b,type=Int]
 | | | | | +-AttributeReference[id=5,name=x,relation=b,type=Int]
@@ -331,7 +331,7 @@
 | | | | +-AttributeReference[id=4,name=w,relation=b,type=Int]
 | | | +-right_join_attributes=
 | | |   +-AttributeReference[id=0,name=w,relation=a,type=Int]
-| | +-right=Selection
+| | +-right=Selection[has_repartition=false]
 | | | +-input=TableReference[relation=c]
 | | | | +-AttributeReference[id=6,name=x,relation=c,type=Int]
 | | | | +-AttributeReference[id=7,name=y,relation=c,type=Int]
@@ -373,11 +373,11 @@
 FROM b LEFT JOIN c ON (b.x = c.x AND c.x > 10);
 --
 TopLevelPlan
-+-plan=HashLeftOuterJoin
++-plan=HashLeftOuterJoin[has_repartition=false]
 | +-left=TableReference[relation=b]
 | | +-AttributeReference[id=0,name=w,relation=b,type=Int]
 | | +-AttributeReference[id=1,name=x,relation=b,type=Int]
-| +-right=Selection
+| +-right=Selection[has_repartition=false]
 | | +-input=TableReference[relation=c]
 | | | +-AttributeReference[id=2,name=x,relation=c,type=Int]
 | | | +-AttributeReference[id=3,name=y,relation=c,type=Int]
diff --git a/query_optimizer/tests/physical_generator/Select.test b/query_optimizer/tests/physical_generator/Select.test
index dc923ae..8bb6599 100644
--- a/query_optimizer/tests/physical_generator/Select.test
+++ b/query_optimizer/tests/physical_generator/Select.test
@@ -44,7 +44,7 @@
   +-AttributeReference[id=5,name=vchar_col,relation=test,type=VarChar(20) NULL]
 [Physical Plan]
 TopLevelPlan
-+-plan=Selection
++-plan=Selection[has_repartition=false]
 | +-input=TableReference[relation=Test,alias=test]
 | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
 | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
@@ -90,7 +90,7 @@
   +-AttributeReference[id=7,name=,alias=2,relation=,type=Int]
 [Physical Plan]
 TopLevelPlan
-+-plan=Selection
++-plan=Selection[has_repartition=false]
 | +-input=TableReference[relation=Test,alias=test]
 | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
 | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
@@ -148,7 +148,7 @@
     type=Float NULL]
 [Physical Plan]
 TopLevelPlan
-+-plan=HashJoin
++-plan=HashJoin[has_repartition=false]
 | +-left=TableReference[relation=Test,alias=a]
 | | +-AttributeReference[id=0,name=int_col,relation=a,type=Int NULL]
 | | +-AttributeReference[id=1,name=long_col,relation=a,type=Long]
@@ -233,7 +233,7 @@
   +-AttributeReference[id=9,name=int_col,relation=,type=Int NULL]
 [Physical Plan]
 TopLevelPlan
-+-plan=Selection
++-plan=Selection[has_repartition=false]
 | +-input=TableReference[relation=Test,alias=test]
 | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
 | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
@@ -325,7 +325,7 @@
   +-AttributeReference[id=12,name=float_col,relation=b,type=Float]
 [Physical Plan]
 TopLevelPlan
-+-plan=NestedLoopsJoin
++-plan=NestedLoopsJoin[has_repartition=false]
 | +-left=TableReference[relation=Test,alias=a]
 | | +-AttributeReference[id=0,name=int_col,relation=a,type=Int NULL]
 | | +-AttributeReference[id=1,name=long_col,relation=a,type=Long]
@@ -421,7 +421,7 @@
   +-AttributeReference[id=8,name=float_col,relation=b,type=Float]
 [Physical Plan]
 TopLevelPlan
-+-plan=NestedLoopsJoin
++-plan=NestedLoopsJoin[has_repartition=false]
 | +-left=TableReference[relation=Test,alias=a]
 | | +-AttributeReference[id=0,name=int_col,relation=a,type=Int NULL]
 | | +-AttributeReference[id=1,name=long_col,relation=a,type=Long]
@@ -429,7 +429,7 @@
 | | +-AttributeReference[id=3,name=double_col,relation=a,type=Double NULL]
 | | +-AttributeReference[id=4,name=char_col,relation=a,type=Char(20)]
 | | +-AttributeReference[id=5,name=vchar_col,relation=a,type=VarChar(20) NULL]
-| +-right=Selection
+| +-right=Selection[has_repartition=false]
 | | +-input=TableReference[relation=Test,alias=test]
 | | | +-AttributeReference[id=6,name=int_col,relation=test,type=Int NULL]
 | | | +-AttributeReference[id=7,name=long_col,relation=test,type=Long]
@@ -518,7 +518,7 @@
   +-AttributeReference[id=12,name=float_col,relation=b,type=Float]
 [Physical Plan]
 TopLevelPlan
-+-plan=HashJoin
++-plan=HashJoin[has_repartition=false]
 | +-left=TableReference[relation=Test,alias=a]
 | | +-AttributeReference[id=0,name=int_col,relation=a,type=Int NULL]
 | | +-AttributeReference[id=1,name=long_col,relation=a,type=Long]
@@ -526,7 +526,7 @@
 | | +-AttributeReference[id=3,name=double_col,relation=a,type=Double NULL]
 | | +-AttributeReference[id=4,name=char_col,relation=a,type=Char(20)]
 | | +-AttributeReference[id=5,name=vchar_col,relation=a,type=VarChar(20) NULL]
-| +-right=Selection
+| +-right=Selection[has_repartition=false]
 | | +-input=TableReference[relation=Test,alias=test]
 | | | +-AttributeReference[id=6,name=int_col,relation=test,type=Int NULL]
 | | | +-AttributeReference[id=7,name=long_col,relation=test,type=Long]
@@ -604,7 +604,7 @@
   +-AttributeReference[id=0,name=int_col,relation=a,type=Int NULL]
 [Physical Plan]
 TopLevelPlan
-+-plan=HashJoin
++-plan=HashJoin[has_repartition=false]
 | +-left=TableReference[relation=Test,alias=a]
 | | +-AttributeReference[id=0,name=int_col,relation=a,type=Int NULL]
 | | +-AttributeReference[id=1,name=long_col,relation=a,type=Long]
@@ -675,7 +675,7 @@
   +-AttributeReference[id=0,name=int_col,relation=a,type=Int NULL]
 [Physical Plan]
 TopLevelPlan
-+-plan=HashJoin
++-plan=HashJoin[has_repartition=false]
 | +-left=TableReference[relation=Test,alias=a]
 | | +-AttributeReference[id=0,name=int_col,relation=a,type=Int NULL]
 | | +-AttributeReference[id=1,name=long_col,relation=a,type=Long]
@@ -683,7 +683,7 @@
 | | +-AttributeReference[id=3,name=double_col,relation=a,type=Double NULL]
 | | +-AttributeReference[id=4,name=char_col,relation=a,type=Char(20)]
 | | +-AttributeReference[id=5,name=vchar_col,relation=a,type=VarChar(20) NULL]
-| +-right=Selection
+| +-right=Selection[has_repartition=false]
 | | +-input=TableReference[relation=Test,alias=test]
 | | | +-AttributeReference[id=6,name=int_col,relation=test,type=Int NULL]
 | | | +-AttributeReference[id=7,name=long_col,relation=test,type=Long]
@@ -755,7 +755,7 @@
   +-AttributeReference[id=0,name=int_col,relation=a,type=Int NULL]
 [Physical Plan]
 TopLevelPlan
-+-plan=HashJoin
++-plan=HashJoin[has_repartition=false]
 | +-left=TableReference[relation=Test,alias=a]
 | | +-AttributeReference[id=0,name=int_col,relation=a,type=Int NULL]
 | | +-AttributeReference[id=1,name=long_col,relation=a,type=Long]
@@ -835,8 +835,8 @@
   +-AttributeReference[id=0,name=int_col,relation=a,type=Int NULL]
 [Physical Plan]
 TopLevelPlan
-+-plan=NestedLoopsJoin
-| +-left=HashJoin
++-plan=NestedLoopsJoin[has_repartition=false]
+| +-left=HashJoin[has_repartition=false]
 | | +-left=TableReference[relation=Test,alias=a]
 | | | +-AttributeReference[id=0,name=int_col,relation=a,type=Int NULL]
 | | | +-AttributeReference[id=1,name=long_col,relation=a,type=Long]
@@ -857,7 +857,7 @@
 | | | +-AttributeReference[id=0,name=int_col,relation=a,type=Int NULL]
 | | +-right_join_attributes=
 | |   +-AttributeReference[id=7,name=long_col,relation=b,type=Long]
-| +-right=Selection
+| +-right=Selection[has_repartition=false]
 | | +-input=TableReference[relation=Test,alias=c]
 | | | +-AttributeReference[id=12,name=int_col,relation=c,type=Int NULL]
 | | | +-AttributeReference[id=13,name=long_col,relation=c,type=Long]
@@ -916,7 +916,7 @@
   +-AttributeReference[id=0,name=int_col,relation=a,type=Int NULL]
 [Physical Plan]
 TopLevelPlan
-+-plan=NestedLoopsJoin
++-plan=NestedLoopsJoin[has_repartition=false]
 | +-left=TableReference[relation=Test,alias=a]
 | | +-AttributeReference[id=0,name=int_col,relation=a,type=Int NULL]
 | | +-AttributeReference[id=1,name=long_col,relation=a,type=Long]
@@ -924,7 +924,7 @@
 | | +-AttributeReference[id=3,name=double_col,relation=a,type=Double NULL]
 | | +-AttributeReference[id=4,name=char_col,relation=a,type=Char(20)]
 | | +-AttributeReference[id=5,name=vchar_col,relation=a,type=VarChar(20) NULL]
-| +-right=Selection
+| +-right=Selection[has_repartition=false]
 | | +-input=TableReference[relation=Test,alias=test]
 | | | +-AttributeReference[id=6,name=int_col,relation=test,type=Int NULL]
 | | | +-AttributeReference[id=7,name=long_col,relation=test,type=Long]
@@ -1021,8 +1021,8 @@
   +-AttributeReference[id=10,name=col,relation=,type=Double NULL]
 [Physical Plan]
 TopLevelPlan
-+-plan=Selection
-| +-input=Aggregate
++-plan=Selection[has_repartition=false]
+| +-input=Aggregate[has_repartition=false]
 | | +-input=TableReference[relation=Test,alias=test]
 | | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
 | | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
@@ -1157,8 +1157,8 @@
   +-AttributeReference[id=6,name=col2,relation=,type=Long]
 [Physical Plan]
 TopLevelPlan
-+-plan=Selection
-| +-input=Aggregate
++-plan=Selection[has_repartition=false]
+| +-input=Aggregate[has_repartition=false]
 | | +-input=TableReference[relation=Test,alias=test]
 | | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
 | | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
@@ -1296,8 +1296,8 @@
   +-AttributeReference[id=4,name=subquery_col3,relation=subquery,type=Char(20)]
 [Physical Plan]
 TopLevelPlan
-+-plan=Selection
-| +-input=Aggregate
++-plan=Selection[has_repartition=false]
+| +-input=Aggregate[has_repartition=false]
 | | +-input=TableReference[relation=Test,alias=test]
 | | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
 | | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
@@ -1407,8 +1407,8 @@
   +-AttributeReference[id=6,name=,alias=count(*),relation=,type=Long]
 [Physical Plan]
 TopLevelPlan
-+-plan=Selection
-| +-input=Aggregate
++-plan=Selection[has_repartition=false]
+| +-input=Aggregate[has_repartition=false]
 | | +-input=TableReference[relation=Test,alias=test]
 | | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
 | | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
@@ -1465,8 +1465,8 @@
   +-AttributeReference[id=6,name=,alias=count(*),relation=,type=Long]
 [Physical Plan]
 TopLevelPlan
-+-plan=Selection
-| +-input=Aggregate
++-plan=Selection[has_repartition=false]
+| +-input=Aggregate[has_repartition=false]
 | | +-input=TableReference[relation=Test,alias=test]
 | | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
 | | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
@@ -1522,8 +1522,8 @@
   +-AttributeReference[id=7,name=,alias=count(*),relation=,type=Long]
 [Physical Plan]
 TopLevelPlan
-+-plan=Selection
-| +-input=Aggregate
++-plan=Selection[has_repartition=false]
+| +-input=Aggregate[has_repartition=false]
 | | +-input=TableReference[relation=Test,alias=test]
 | | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
 | | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
@@ -1585,7 +1585,7 @@
   +-AttributeReference[id=6,name=int_col,relation=test,type=Int NULL]
 [Physical Plan]
 TopLevelPlan
-+-plan=Selection
++-plan=Selection[has_repartition=false]
 | +-input=SharedSubplanReference[subplan_id=0]
 | | +-referenced_attributes=
 | | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
@@ -1598,7 +1598,7 @@
 | +-project_expressions=
 |   +-AttributeReference[id=6,name=int_col,relation=test,type=Int NULL]
 +-shared_subplans=
-| +-Selection
+| +-Selection[has_repartition=false]
 |   +-input=TableReference[relation=Test,alias=test]
 |   | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
 |   | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
@@ -1673,8 +1673,8 @@
     type=Double NULL]
 [Physical Plan]
 TopLevelPlan
-+-plan=Selection
-| +-input=Aggregate
++-plan=Selection[has_repartition=false]
+| +-input=Aggregate[has_repartition=false]
 | | +-input=TableReference[relation=Test,alias=test]
 | | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
 | | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
@@ -1786,9 +1786,9 @@
   +-AttributeReference[id=1,name=i,relation=,type=Int]
 [Physical Plan]
 TopLevelPlan
-+-plan=HashLeftSemiJoin
-| +-left=HashLeftAntiJoin
-| | +-left=Selection
++-plan=HashLeftSemiJoin[has_repartition=false]
+| +-left=HashLeftAntiJoin[has_repartition=false]
+| | +-left=Selection[has_repartition=false]
 | | | +-input=TableGenerator[function_name=generate_series,table_alias=gs1]
 | | | | +-AttributeReference[id=0,name=generate_series,alias=gs1,
 | | | |   relation=generate_series,type=Int]
@@ -1859,7 +1859,7 @@
   +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
 [Physical Plan]
 TopLevelPlan
-+-plan=Selection
++-plan=Selection[has_repartition=false]
 | +-input=TableReference[relation=Test,alias=test]
 | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
 | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
@@ -1925,7 +1925,7 @@
   +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
 [Physical Plan]
 TopLevelPlan
-+-plan=Selection
++-plan=Selection[has_repartition=false]
 | +-input=TableReference[relation=Test,alias=test]
 | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
 | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
@@ -2014,7 +2014,7 @@
   +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
 [Physical Plan]
 TopLevelPlan
-+-plan=HashLeftSemiJoin
++-plan=HashLeftSemiJoin[has_repartition=false]
 | +-left=TableReference[relation=Test,alias=test]
 | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
 | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
@@ -2022,8 +2022,8 @@
 | | +-AttributeReference[id=3,name=double_col,relation=test,type=Double NULL]
 | | +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
 | | +-AttributeReference[id=5,name=vchar_col,relation=test,type=VarChar(20) NULL]
-| +-right=Selection
-| | +-input=Aggregate
+| +-right=Selection[has_repartition=false]
+| | +-input=Aggregate[has_repartition=false]
 | | | +-input=TableReference[relation=Test,alias=test]
 | | | | +-AttributeReference[id=6,name=int_col,relation=test,type=Int NULL]
 | | | | +-AttributeReference[id=7,name=long_col,relation=test,type=Long]
@@ -2105,7 +2105,7 @@
   +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
 [Physical Plan]
 TopLevelPlan
-+-plan=HashLeftAntiJoin
++-plan=HashLeftAntiJoin[has_repartition=false]
 | +-left=TableReference[relation=Test,alias=test]
 | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
 | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
@@ -2113,7 +2113,7 @@
 | | +-AttributeReference[id=3,name=double_col,relation=test,type=Double NULL]
 | | +-AttributeReference[id=4,name=char_col,relation=test,type=Char(20)]
 | | +-AttributeReference[id=5,name=vchar_col,relation=test,type=VarChar(20) NULL]
-| +-right=Selection
+| +-right=Selection[has_repartition=false]
 | | +-input=TableReference[relation=Test,alias=test]
 | | | +-AttributeReference[id=6,name=int_col,relation=test,type=Int NULL]
 | | | +-AttributeReference[id=7,name=long_col,relation=test,type=Long]
@@ -2179,11 +2179,11 @@
     type=Long NULL]
 [Physical Plan]
 TopLevelPlan
-+-plan=NestedLoopsJoin
++-plan=NestedLoopsJoin[has_repartition=false]
 | +-left=TableReference[relation=b]
 | | +-AttributeReference[id=0,name=w,relation=b,type=Int]
 | | +-AttributeReference[id=1,name=x,relation=b,type=Int]
-| +-right=Aggregate
+| +-right=Aggregate[has_repartition=false]
 | | +-input=TableReference[relation=c]
 | | | +-AttributeReference[id=2,name=x,relation=c,type=Int]
 | | | +-AttributeReference[id=3,name=y,relation=c,type=Int]
@@ -2246,8 +2246,8 @@
     type=Long NULL]
 [Physical Plan]
 TopLevelPlan
-+-plan=HashJoin
-| +-left=Aggregate
++-plan=HashJoin[has_repartition=false]
+| +-left=Aggregate[has_repartition=false]
 | | +-input=TableReference[relation=c]
 | | | +-AttributeReference[id=2,name=x,relation=c,type=Int]
 | | | +-AttributeReference[id=3,name=y,relation=c,type=Int]
@@ -2313,11 +2313,11 @@
   +-AttributeReference[id=1,name=x,relation=b,type=Int]
 [Physical Plan]
 TopLevelPlan
-+-plan=NestedLoopsJoin
++-plan=NestedLoopsJoin[has_repartition=false]
 | +-left=TableReference[relation=b]
 | | +-AttributeReference[id=0,name=w,relation=b,type=Int]
 | | +-AttributeReference[id=1,name=x,relation=b,type=Int]
-| +-right=Aggregate
+| +-right=Aggregate[has_repartition=false]
 | | +-input=TableReference[relation=c]
 | | | +-AttributeReference[id=2,name=x,relation=c,type=Int]
 | | | +-AttributeReference[id=3,name=y,relation=c,type=Int]
@@ -2383,8 +2383,8 @@
   +-AttributeReference[id=1,name=x,relation=b,type=Int]
 [Physical Plan]
 TopLevelPlan
-+-plan=HashJoin
-| +-left=Aggregate
++-plan=HashJoin[has_repartition=false]
+| +-left=Aggregate[has_repartition=false]
 | | +-input=TableReference[relation=c]
 | | | +-AttributeReference[id=2,name=x,relation=c,type=Int]
 | | | +-AttributeReference[id=3,name=y,relation=c,type=Int]
@@ -2490,9 +2490,9 @@
     type=Long NULL]
 [Physical Plan]
 TopLevelPlan
-+-plan=HashJoin
-| +-left=NestedLoopsJoin
-| | +-left=Aggregate
++-plan=HashJoin[has_repartition=false]
+| +-left=NestedLoopsJoin[has_repartition=false]
+| | +-left=Aggregate[has_repartition=false]
 | | | +-input=TableReference[relation=c]
 | | | | +-AttributeReference[id=2,name=x,relation=c,type=Int]
 | | | | +-AttributeReference[id=3,name=y,relation=c,type=Int]
@@ -2505,7 +2505,7 @@
 | | |   +-Alias[id=4,name=,alias=$aggregate0,relation=$aggregate,type=Long NULL]
 | | |     +-AggregateFunction[function=SUM]
 | | |       +-AttributeReference[id=3,name=y,relation=c,type=Int]
-| | +-right=Aggregate
+| | +-right=Aggregate[has_repartition=false]
 | | | +-input=TableReference[relation=a]
 | | | | +-AttributeReference[id=5,name=w,relation=a,type=Int]
 | | | | +-AttributeReference[id=6,name=x,relation=a,type=Int]
@@ -2606,12 +2606,12 @@
     alias=((x*SubqueryExpression)+SubqueryExpression),relation=,type=Double NULL]
 [Physical Plan]
 TopLevelPlan
-+-plan=NestedLoopsJoin
++-plan=NestedLoopsJoin[has_repartition=false]
 | +-left=TableReference[relation=b]
 | | +-AttributeReference[id=0,name=w,relation=b,type=Int]
 | | +-AttributeReference[id=1,name=x,relation=b,type=Int]
-| +-right=NestedLoopsJoin
-| | +-left=Aggregate
+| +-right=NestedLoopsJoin[has_repartition=false]
+| | +-left=Aggregate[has_repartition=false]
 | | | +-input=TableReference[relation=c]
 | | | | +-AttributeReference[id=2,name=x,relation=c,type=Int]
 | | | | +-AttributeReference[id=3,name=y,relation=c,type=Int]
@@ -2621,7 +2621,7 @@
 | | |   +-Alias[id=4,name=,alias=$aggregate0,relation=$aggregate,type=Long NULL]
 | | |     +-AggregateFunction[function=SUM]
 | | |       +-AttributeReference[id=3,name=y,relation=c,type=Int]
-| | +-right=Aggregate
+| | +-right=Aggregate[has_repartition=false]
 | | | +-input=TableReference[relation=d]
 | | | | +-AttributeReference[id=5,name=y,relation=d,type=Int]
 | | | | +-AttributeReference[id=6,name=z,relation=d,type=Int]
@@ -2712,12 +2712,12 @@
     type=Long NULL]
 [Physical Plan]
 TopLevelPlan
-+-plan=NestedLoopsJoin
-| +-left=NestedLoopsJoin
++-plan=NestedLoopsJoin[has_repartition=false]
+| +-left=NestedLoopsJoin[has_repartition=false]
 | | +-left=TableReference[relation=b]
 | | | +-AttributeReference[id=0,name=w,relation=b,type=Int]
 | | | +-AttributeReference[id=1,name=x,relation=b,type=Int]
-| | +-right=Aggregate
+| | +-right=Aggregate[has_repartition=false]
 | | | +-input=TableReference[relation=d]
 | | | | +-AttributeReference[id=2,name=y,relation=d,type=Int]
 | | | | +-AttributeReference[id=3,name=z,relation=d,type=Int]
@@ -2734,7 +2734,7 @@
 | | |   type=Double NULL]
 | | +-project_expressions=
 | |   +-AttributeReference[id=1,name=x,relation=b,type=Int]
-| +-right=Aggregate
+| +-right=Aggregate[has_repartition=false]
 | | +-input=TableReference[relation=c]
 | | | +-AttributeReference[id=5,name=x,relation=c,type=Int]
 | | | +-AttributeReference[id=6,name=y,relation=c,type=Int]
@@ -2835,9 +2835,9 @@
   +-AttributeReference[id=6,name=y,relation=,type=Int]
 [Physical Plan]
 TopLevelPlan
-+-plan=Selection
++-plan=Selection[has_repartition=false]
 | +-input=Sort[is_ascending=[true],nulls_first=[false]]
-| | +-input=HashJoin
+| | +-input=HashJoin[has_repartition=false]
 | | | +-left=SharedSubplanReference[subplan_id=0]
 | | | | +-referenced_attributes=
 | | | | | +-AttributeReference[id=3,name=x,relation=,type=Int]
@@ -2845,7 +2845,7 @@
 | | | | +-output_attributes=
 | | | |   +-AttributeReference[id=5,name=x,relation=,type=Int]
 | | | |   +-AttributeReference[id=6,name=y,relation=,type=Int]
-| | | +-right=Aggregate
+| | | +-right=Aggregate[has_repartition=false]
 | | | | +-input=SharedSubplanReference[subplan_id=0]
 | | | | | +-referenced_attributes=
 | | | | | | +-AttributeReference[id=3,name=x,relation=,type=Int]
@@ -2875,7 +2875,7 @@
 |   +-AttributeReference[id=5,name=x,relation=,type=Int]
 |   +-AttributeReference[id=6,name=y,relation=,type=Int]
 +-shared_subplans=
-| +-Selection
+| +-Selection[has_repartition=false]
 |   +-input=TableGenerator[function_name=generate_series,table_alias=g]
 |   | +-AttributeReference[id=0,name=generate_series,alias=g,
 |   |   relation=generate_series,type=Int]
@@ -2934,7 +2934,7 @@
   +-AttributeReference[id=6,name=,alias=avg(int_col),relation=,type=Double NULL]
 [Physical Plan]
 TopLevelPlan
-+-plan=Selection
++-plan=Selection[has_repartition=false]
 | +-input=WindowAggregate
 | | +-input=Sort[is_ascending=[true,false],nulls_first=[false,false]]
 | | | +-input=TableReference[relation=Test,alias=test]
@@ -3018,7 +3018,7 @@
     type=Double NULL]
 [Physical Plan]
 TopLevelPlan
-+-plan=Selection
++-plan=Selection[has_repartition=false]
 | +-input=WindowAggregate
 | | +-input=Sort[is_ascending=[true,true,false,true],
 | | | nulls_first=[false,false,false,true]]
@@ -3113,8 +3113,8 @@
     type=Double NULL]
 [Physical Plan]
 TopLevelPlan
-+-plan=Selection
-| +-input=Aggregate
++-plan=Selection[has_repartition=false]
+| +-input=Aggregate[has_repartition=false]
 | | +-input=WindowAggregate
 | | | +-input=Sort[is_ascending=[true,true],nulls_first=[false,false]]
 | | | | +-input=TableReference[relation=Test,alias=test]
@@ -3192,10 +3192,10 @@
   +-AttributeReference[id=12,name=int_col,relation=,type=Int NULL]
 [Physical Plan]
 TopLevelPlan
-+-plan=Aggregate
++-plan=Aggregate[has_repartition=false]
 | +-input=UnionAll
 | | +-operands=
-| | | +-Selection
+| | | +-Selection[has_repartition=false]
 | | | | +-input=TableReference[relation=Test,alias=test]
 | | | | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
 | | | | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
@@ -3207,7 +3207,7 @@
 | | | | |   type=VarChar(20) NULL]
 | | | | +-project_expressions=
 | | | |   +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
-| | | +-Selection
+| | | +-Selection[has_repartition=false]
 | | |   +-input=TableReference[relation=Test,alias=test]
 | | |   | +-AttributeReference[id=6,name=int_col,relation=test,type=Int NULL]
 | | |   | +-AttributeReference[id=7,name=long_col,relation=test,type=Long]
@@ -3278,10 +3278,10 @@
   +-AttributeReference[id=14,name=intv,relation=,type=Int NULL]
 [Physical Plan]
 TopLevelPlan
-+-plan=Selection
++-plan=Selection[has_repartition=false]
 | +-input=UnionAll
 | | +-operands=
-| | | +-Selection
+| | | +-Selection[has_repartition=false]
 | | | | +-input=TableReference[relation=Test,alias=test]
 | | | | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
 | | | | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
@@ -3293,7 +3293,7 @@
 | | | | |   type=VarChar(20) NULL]
 | | | | +-project_expressions=
 | | | |   +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
-| | | +-Selection
+| | | +-Selection[has_repartition=false]
 | | |   +-input=TableReference[relation=Test,alias=test]
 | | |   | +-AttributeReference[id=6,name=int_col,relation=test,type=Int NULL]
 | | |   | +-AttributeReference[id=7,name=long_col,relation=test,type=Long]
@@ -3384,8 +3384,8 @@
   +-AttributeReference[id=22,name=int_col,relation=,type=Int NULL]
 [Physical Plan]
 TopLevelPlan
-+-plan=Aggregate
-| +-input=HashLeftSemiJoin
++-plan=Aggregate[has_repartition=false]
+| +-input=HashLeftSemiJoin[has_repartition=false]
 | | +-left=TableReference[relation=Test,alias=test]
 | | | +-AttributeReference[id=0,name=int_col,relation=test,type=Int NULL]
 | | | +-AttributeReference[id=1,name=long_col,relation=test,type=Long]
@@ -3396,7 +3396,7 @@
 | | |   type=VarChar(20) NULL]
 | | +-right=UnionAll
 | | | +-operands=
-| | | | +-Selection
+| | | | +-Selection[has_repartition=false]
 | | | | | +-input=TableReference[relation=Test,alias=test]
 | | | | | | +-AttributeReference[id=6,name=int_col,relation=test,type=Int NULL]
 | | | | | | +-AttributeReference[id=7,name=long_col,relation=test,type=Long]
@@ -3408,7 +3408,7 @@
 | | | | | |   type=VarChar(20) NULL]
 | | | | | +-project_expressions=
 | | | | |   +-AttributeReference[id=6,name=int_col,relation=test,type=Int NULL]
-| | | | +-Selection
+| | | | +-Selection[has_repartition=false]
 | | | |   +-input=TableReference[relation=Test,alias=test]
 | | | |   | +-AttributeReference[id=12,name=int_col,relation=test,type=Int NULL]
 | | | |   | +-AttributeReference[id=13,name=long_col,relation=test,type=Long]
diff --git a/relational_operators/FinalizeAggregationOperator.hpp b/relational_operators/FinalizeAggregationOperator.hpp
index 382a7da..b344c13 100644
--- a/relational_operators/FinalizeAggregationOperator.hpp
+++ b/relational_operators/FinalizeAggregationOperator.hpp
@@ -61,6 +61,7 @@
    * @param aggr_state_index The index of the AggregationState in QueryContext.
    * @param num_partitions The number of partitions of 'input_relation' in a
    *        partitioned aggregation. If no partitions, it is one.
+   * @param has_repartition Whether this operator does repartition.
    * @param output_relation The output relation.
    * @param output_destination_index The index of the InsertDestination in the
    *        QueryContext to insert aggregation results.
@@ -69,10 +70,11 @@
       const std::size_t query_id,
       const QueryContext::aggregation_state_id aggr_state_index,
       const std::size_t num_partitions,
+      const bool has_repartition,
       const std::size_t aggr_state_num_partitions,
       const CatalogRelation &output_relation,
       const QueryContext::insert_destination_id output_destination_index)
-      : RelationalOperator(query_id, num_partitions),
+      : RelationalOperator(query_id, num_partitions, has_repartition),
         aggr_state_index_(aggr_state_index),
         aggr_state_num_partitions_(aggr_state_num_partitions),
         output_relation_(output_relation),
diff --git a/relational_operators/HashJoinOperator.hpp b/relational_operators/HashJoinOperator.hpp
index 519718c..a5e6eb4 100644
--- a/relational_operators/HashJoinOperator.hpp
+++ b/relational_operators/HashJoinOperator.hpp
@@ -104,6 +104,7 @@
    * @param any_join_key_attributes_nullable If any attribute is nullable.
    * @param num_partitions The number of partitions in 'probe_relation'.
    *        If no partitions, it is one.
+   * @param has_repartition Whether this operator does repartition.
    * @param output_relation The output relation.
    * @param output_destination_index The index of the InsertDestination in the
    *        QueryContext to insert the join results.
@@ -130,6 +131,7 @@
       const std::vector<attribute_id> &join_key_attributes,
       const bool any_join_key_attributes_nullable,
       const std::size_t num_partitions,
+      const bool has_repartition,
       const CatalogRelation &output_relation,
       const QueryContext::insert_destination_id output_destination_index,
       const QueryContext::join_hash_table_id hash_table_index,
@@ -137,7 +139,7 @@
       const QueryContext::scalar_group_id selection_index,
       const std::vector<bool> *is_selection_on_build = nullptr,
       const JoinType join_type = JoinType::kInnerJoin)
-      : RelationalOperator(query_id, num_partitions),
+      : RelationalOperator(query_id, num_partitions, has_repartition),
         build_relation_(build_relation),
         probe_relation_(probe_relation),
         probe_relation_is_stored_(probe_relation_is_stored),
diff --git a/relational_operators/NestedLoopsJoinOperator.hpp b/relational_operators/NestedLoopsJoinOperator.hpp
index 1b14638..777a737 100644
--- a/relational_operators/NestedLoopsJoinOperator.hpp
+++ b/relational_operators/NestedLoopsJoinOperator.hpp
@@ -74,6 +74,7 @@
    * @param right_input_relation The second relation in the join (order is not
    *        actually important).
    * @param num_partitions The number of partitions.
+   * @param has_repartition Whether this operator does repartition.
    * @param output_relation The output relation.
    * @param output_destination_index The index of the InsertDestination in the
    *        QueryContext to insert the join results.
@@ -94,13 +95,14 @@
       const CatalogRelation &left_input_relation,
       const CatalogRelation &right_input_relation,
       const std::size_t num_partitions,
+      const bool has_repartition,
       const CatalogRelation &output_relation,
       const QueryContext::insert_destination_id output_destination_index,
       const QueryContext::predicate_id join_predicate_index,
       const QueryContext::scalar_group_id selection_index,
       const bool left_relation_is_stored,
       const bool right_relation_is_stored)
-      : RelationalOperator(query_id, num_partitions),
+      : RelationalOperator(query_id, num_partitions, has_repartition),
         nested_loops_join_index_(nested_loops_join_index),
         left_input_relation_(left_input_relation),
         right_input_relation_(right_input_relation),
diff --git a/relational_operators/RelationalOperator.hpp b/relational_operators/RelationalOperator.hpp
index 29ae194..0541bbd 100644
--- a/relational_operators/RelationalOperator.hpp
+++ b/relational_operators/RelationalOperator.hpp
@@ -269,6 +269,15 @@
   }
 
   /**
+   * @brief Whether this operator does repartition.
+   *
+   * @return True if this node does repartition. Otherwise, false.
+   */
+  bool hasRepartition() const {
+    return has_repartition_;
+  }
+
+  /**
    * @brief Deploy a group of LIPFilters to this operator.
    */
   void deployLIPFilters(const QueryContext::lip_deployment_id lip_deployment_index,
@@ -284,16 +293,20 @@
    * @param query_id The ID of the query to which this operator belongs.
    * @param num_partitions The number of partitions of the input relation.
    *        If create table / index, return zero. If no partitions, return one.
+   * @param has_repartition Whether this operator does repartition.
    **/
   explicit RelationalOperator(const std::size_t query_id,
-                              const std::size_t num_partitions = 1u)
+                              const std::size_t num_partitions = 1u,
+                              const bool has_repartition = false)
       : query_id_(query_id),
         num_partitions_(num_partitions),
+        has_repartition_(has_repartition),
         done_feeding_input_relation_(false),
         lip_deployment_index_(QueryContext::kInvalidLIPDeploymentId) {}
 
   const std::size_t query_id_;
   const std::size_t num_partitions_;
+  const bool has_repartition_;
 
   bool done_feeding_input_relation_;
   std::size_t op_index_;
diff --git a/relational_operators/SelectOperator.hpp b/relational_operators/SelectOperator.hpp
index a71f4c1..71dcfca 100644
--- a/relational_operators/SelectOperator.hpp
+++ b/relational_operators/SelectOperator.hpp
@@ -74,6 +74,7 @@
    *
    * @param query_id The ID of the query to which this operator belongs.
    * @param input_relation The relation to perform selection over.
+   * @param has_repartition Whether this operator does repartition.
    * @param output_relation The output relation.
    * @param output_destination_index The index of the InsertDestination in the
    *        QueryContext to insert the selection results.
@@ -89,12 +90,13 @@
   SelectOperator(
       const std::size_t query_id,
       const CatalogRelation &input_relation,
+      const bool has_repartition,
       const CatalogRelation &output_relation,
       const QueryContext::insert_destination_id output_destination_index,
       const QueryContext::predicate_id predicate_index,
       const QueryContext::scalar_group_id selection_index,
       const bool input_relation_is_stored)
-      : RelationalOperator(query_id, input_relation.getNumPartitions()),
+      : RelationalOperator(query_id, input_relation.getNumPartitions(), has_repartition),
         input_relation_(input_relation),
         output_relation_(output_relation),
         output_destination_index_(output_destination_index),
@@ -129,6 +131,7 @@
    *
    * @param query_id The ID of the query to which this operator belongs.
    * @param input_relation The relation to perform selection over.
+   * @param has_repartition Whether this operator does repartition.
    * @param output_relation The output relation.
    * @param output_destination_index The index of the InsertDestination in the
    *        QueryContext to insert the selection results.
@@ -144,12 +147,13 @@
   SelectOperator(
       const std::size_t query_id,
       const CatalogRelation &input_relation,
+      const bool has_repartition,
       const CatalogRelation &output_relation,
       const QueryContext::insert_destination_id output_destination_index,
       const QueryContext::predicate_id predicate_index,
       std::vector<attribute_id> &&selection,
       const bool input_relation_is_stored)
-      : RelationalOperator(query_id, input_relation.getNumPartitions()),
+      : RelationalOperator(query_id, input_relation.getNumPartitions(), has_repartition),
         input_relation_(input_relation),
         output_relation_(output_relation),
         output_destination_index_(output_destination_index),
diff --git a/relational_operators/tests/AggregationOperator_unittest.cpp b/relational_operators/tests/AggregationOperator_unittest.cpp
index 4cda2d1..5c9cc7a 100644
--- a/relational_operators/tests/AggregationOperator_unittest.cpp
+++ b/relational_operators/tests/AggregationOperator_unittest.cpp
@@ -83,6 +83,7 @@
 constexpr std::size_t kQueryId = 0;
 constexpr int kOpIndex = 0;
 constexpr std::size_t kNumPartitions = 1u;
+constexpr bool kNoRepartition = false;
 }  // namespace
 
 class Type;
@@ -293,6 +294,7 @@
         new FinalizeAggregationOperator(kQueryId,
                                         aggr_state_index,
                                         kNumPartitions,
+                                        kNoRepartition,
                                         kNumPartitions,
                                         *result_table_,
                                         insert_destination_index));
@@ -388,6 +390,7 @@
         new FinalizeAggregationOperator(kQueryId,
                                         aggr_state_index,
                                         kNumPartitions,
+                                        kNoRepartition,
                                         kNumPartitions,
                                         *result_table_,
                                         insert_destination_index));
diff --git a/relational_operators/tests/HashJoinOperator_unittest.cpp b/relational_operators/tests/HashJoinOperator_unittest.cpp
index 89aafe5..1fc84fc 100644
--- a/relational_operators/tests/HashJoinOperator_unittest.cpp
+++ b/relational_operators/tests/HashJoinOperator_unittest.cpp
@@ -104,6 +104,9 @@
 constexpr std::size_t kSinglePartition = 1;
 constexpr std::size_t kMultiplePartitions = 4;
 
+const bool kHasRepartition = true;
+const bool kNoRepartition = false;
+
 }  // namespace
 
 class HashJoinOperatorTest : public ::testing::TestWithParam<HashTableImplType> {
@@ -454,6 +457,7 @@
       std::vector<attribute_id>(1, fact_col_long.getID()),
       fact_col_long.getType().isNullable(),
       kSinglePartition,
+      kNoRepartition,
       *result_table,
       output_destination_index,
       join_hash_table_index,
@@ -604,6 +608,7 @@
       std::vector<attribute_id>(1, fact_col_int.getID()),
       fact_col_int.getType().isNullable(),
       kSinglePartition,
+      kNoRepartition,
       *result_table,
       output_destination_index,
       join_hash_table_index,
@@ -763,6 +768,7 @@
       std::vector<attribute_id>(1, fact_col_char.getID()),
       fact_col_char.getType().isNullable(),
       kSinglePartition,
+      kNoRepartition,
       *result_table,
       output_destination_index,
       join_hash_table_index,
@@ -906,6 +912,7 @@
       std::vector<attribute_id>(1, fact_col_varchar.getID()),
       fact_col_varchar.getType().isNullable(),
       kSinglePartition,
+      kNoRepartition,
       *result_table,
       output_destination_index,
       join_hash_table_index,
@@ -1085,6 +1092,7 @@
       fact_col_long.getType().isNullable() ||
           fact_col_varchar.getType().isNullable(),
       kSinglePartition,
+      kNoRepartition,
       *result_table,
       output_destination_index,
       join_hash_table_index,
@@ -1274,6 +1282,7 @@
                            fact_col_long.getType().isNullable() ||
                                fact_col_varchar.getType().isNullable(),
                            kSinglePartition,
+                           kNoRepartition,
                            *result_table,
                            output_destination_index,
                            join_hash_table_index,
@@ -1446,6 +1455,7 @@
       { fact_col_long.getID() },
       fact_col_long.getType().isNullable(),
       kMultiplePartitions,
+      kHasRepartition,
       *result_table,
       output_destination_index,
       join_hash_table_index,
@@ -1591,6 +1601,7 @@
       { fact_col_long.getID(), fact_col_varchar.getID() },
       fact_col_long.getType().isNullable() || fact_col_varchar.getType().isNullable(),
       kMultiplePartitions,
+      kHasRepartition,
       *result_table,
       output_destination_index,
       join_hash_table_index,
@@ -1771,6 +1782,7 @@
       { fact_col_long.getID(), fact_col_varchar.getID() },
       fact_col_long.getType().isNullable() || fact_col_varchar.getType().isNullable(),
       kMultiplePartitions,
+      kHasRepartition,
       *result_table,
       output_destination_index,
       join_hash_table_index,
