code: def test_explain_simple_select(self):
      select_query = "EXPLAIN SELECT id, data FROM MyVideo"
      batch = execute_query_fetch_all(self.evadb, select_query)
      expected_output = """|__ ProjectPlan\n    |__ SeqScanPlan\n        |__ StoragePlan\n"""
      self.assertEqual(batch.frames[0][0], expected_output)
      rules_manager = RulesManager()
      with disable_rules(
          rules_manager, [XformLateralJoinToLinearFlow()]
      ):
          custom_plan_generator = PlanGenerator(
              self.evadb, rules_manager
          )
          select_query = "EXPLAIN SELECT id, data FROM MyVideo JOIN LATERAL DummyObjectDetector(data) AS T ;"
          batch = execute_query_fetch_all(
              self.evadb,
              select_query,
              plan_generator=custom_plan_generator,
          )
          expected_output = """|__ ProjectPlan\n    |__ LateralJoinPlan\n        |__ SeqScanPlan\n            |__ StoragePlan\n        |__ FunctionScanPlan\n"""
          self.assertEqual(batch.frames[0][0], expected_output)
  
      # Disable more rules
      rules_manager = RulesManager()
      with disable_rules(
          rules_manager,
          [
              XformLateralJoinToLinearFlow(),
              EmbedFilterIntoGet(),
              LogicalInnerJoinCommutativity(),
          ],
      ):
          custom_plan_generator = PlanGenerator(
              self.evadb, rules_manager
          )
          select_query = "EXPLAIN SELECT id, data FROM MyVideo JOIN LATERAL DummyObjectDetector(data) AS T ;"
          batch = execute_query_fetch_all(
              self.evadb,
              select_query,
              plan_generator=custom_plan_generator,
          )
          expected_output = """|__ ProjectPlan\n    |__ LateralJoinPlan\n        |__ SeqScanPlan\n            |__ StoragePlan\n        |__ FunctionScanPlan\n"""
          self.assertEqual(batch.frames[0][0], expected_output)
  
file_path: evadb/test/integration_tests/long/test_explain_executor.py
imports: import unittest
  from test.util import create_sample_video, file_remove, get_evadb_for_testing, load_functions_for_testing
  import pytest
  from evadb.optimizer.plan_generator import PlanGenerator
  from evadb.optimizer.rules.rules import EmbedFilterIntoGet, LogicalInnerJoinCommutativity, XformLateralJoinToLinearFlow
  from evadb.optimizer.rules.rules_manager import RulesManager, disable_rules
  from evadb.server.command_handler import execute_query_fetch_all
label_desc: Use image node_id 3 for calling the ExplainExecutorTest obj's underlying member method code with example usage: obj.test_explain_simple_select() without return types