code: def test_should_pushdown_without_pushdown_join_rule(self):
      query = """SELECT id, obj.labels
                      FROM MyVideo JOIN LATERAL
                      FastRCNNObjectDetector(data) AS obj(labels, bboxes, scores)
                      WHERE id < 2;"""
  
      time_with_rule = Timer()
      result_with_rule = None
      with time_with_rule:
          result_with_rule = execute_query_fetch_all(self.evadb, query)
          query_plan = execute_query_fetch_all(
              self.evadb, f"EXPLAIN {query}"
          )
      time_without_rule = Timer()
      result_without_pushdown_join_rule = None
      with time_without_rule:
          rules_manager = RulesManager()
          with disable_rules(
              rules_manager, [PushDownFilterThroughJoin()]
          ):
              # should use PushDownFilterThroughApplyAndMerge()
              custom_plan_generator = PlanGenerator(
                  self.evadb, rules_manager
              )
              result_without_pushdown_join_rule = (
                  execute_query_fetch_all(
                      self.evadb,
                      query,
                      plan_generator=custom_plan_generator,
                  )
              )
              query_plan_without_pushdown_join_rule = (
                  execute_query_fetch_all(
                      self.evadb,
                      f"EXPLAIN {query}",
                      plan_generator=custom_plan_generator,
                  )
              )
  
      self.assertEqual(
          result_without_pushdown_join_rule, result_with_rule
      )
      self.assertEqual(
          query_plan, query_plan_without_pushdown_join_rule
      )
  
imports: import unittest
  from test.markers import gpu_skip_marker
  from test.util import get_evadb_for_testing, get_physical_query_plan, load_functions_for_testing, shutdown_ray
  import numpy
  import pandas
  import pytest
  from mock import MagicMock, patch
  from evadb.configuration.constants import EvaDB_ROOT_DIR
  from evadb.expression.comparison_expression import ComparisonExpression
  from evadb.models.storage.batch import Batch
  from evadb.optimizer.plan_generator import PlanGenerator
  from evadb.optimizer.rules.rules import PushDownFilterThroughApplyAndMerge, PushDownFilterThroughJoin, ReorderPredicates
  from evadb.optimizer.rules.rules_manager import RulesManager, disable_rules
  from evadb.plan_nodes.predicate_plan import PredicatePlan
  from evadb.server.command_handler import execute_query_fetch_all
  from evadb.utils.stats import Timer
label_desc: Use image node_id 4 for calling the OptimizerRulesTest obj's underlying member method code with example usage: obj.test_should_pushdown_without_pushdown_join_rule() without return types