@@ -621,18 +621,19 @@ crossmatch_exec(CustomScanState *node)
621621
622622ResetExprContext (node -> ss .ps .ps_ProjInfo -> pi_exprContext );
623623
624- /* Check join conditions */
625- node -> ss .ps .ps_ExprContext -> ecxt_scantuple = scanSlot ;
626- if (!ExecQual (node -> ss .ps .qual ,node -> ss .ps .ps_ExprContext , false))
627- continue ;
628-
629624node -> ss .ps .ps_ProjInfo -> pi_exprContext -> ecxt_scantuple = scanSlot ;
630625resultSlot = ExecProject (node -> ss .ps .ps_ProjInfo ,& isDone );
631626
632627if (isDone != ExprEndResult )
633628{
634629node -> ss .ps .ps_TupFromTlist = (isDone == ExprMultipleResult );
635- return resultSlot ;
630+
631+ /* Check join conditions */
632+ node -> ss .ps .ps_ExprContext -> ecxt_scantuple = scanSlot ;
633+ if (ExecQual (node -> ss .ps .qual ,node -> ss .ps .ps_ExprContext , false))
634+ return resultSlot ;
635+ else
636+ InstrCountFiltered1 (node ,1 );
636637}
637638else
638639node -> ss .ps .ps_TupFromTlist = false;
@@ -643,6 +644,8 @@ crossmatch_exec(CustomScanState *node)
643644node -> ss .ps .ps_ExprContext -> ecxt_scantuple = scanSlot ;
644645if (ExecQual (node -> ss .ps .qual ,node -> ss .ps .ps_ExprContext , false))
645646return scanSlot ;
647+ else
648+ InstrCountFiltered1 (node ,1 );
646649}
647650}
648651}