Github user zuyu commented on a diff in the pull request:

    https://github.com/apache/incubator-quickstep/pull/300#discussion_r186265132
  
    --- Diff: query_optimizer/ExecutionGenerator.cpp ---
    @@ -966,7 +975,9 @@ void ExecutionGenerator::convertHashJoin(const 
P::HashJoinPtr &physical_plan) {
       const CatalogRelation *probe_relation = probe_relation_info->relation;
     
       // FIXME(quickstep-team): Add support for self-join.
    -  if (build_relation == probe_relation) {
    +  // We check to see if the build_predicate is null as certain queries that
    +  // support hash-select fuse will result in the first check being true.
    +  if (build_relation == probe_relation && physical_plan->build_predicate() 
== nullptr) {
    --- End diff --
    
    This change introduces a bug, because the execution engine uses the 
relation id to determine the build or the probe side. In the self-join case, it 
thus always goes to the if-case (mostly the build side), even we actually 
reference the probe side with the same relation id.
    
    We do not need any further action for this, because #347 will introduce the 
self-join.


---

Reply via email to