code: def test_lateral_join_with_unnest_on_subset_of_outputs(self):
      query = """SELECT id, label
                    FROM MyVideo JOIN LATERAL
                      UNNEST(DummyMultiObjectDetector(data).labels) AS T(label)
                    WHERE id < 2 ORDER BY id;"""
      unnest_batch = execute_query_fetch_all(self.evadb, query)
      expected = Batch(
          pd.DataFrame(
              {
                  "myvideo.id": np.array([0, 0, 1, 1], np.intp),
                  "T.label": np.array(
                      ["person", "person", "bicycle", "bicycle"]
                  ),
              }
          )
      )
      self.assertEqual(unnest_batch, expected)
  
      # unnest with predicate on function expression
      query = """SELECT id, label
                  FROM MyVideo JOIN LATERAL
                  UNNEST(DummyMultiObjectDetector(data).labels) AS T(label)
                  WHERE id < 2 AND T.label = "person" ORDER BY id;"""
      unnest_batch = execute_query_fetch_all(self.evadb, query)
      expected = Batch(
          pd.DataFrame(
              {
                  "myvideo.id": np.array([0, 0], np.intp),
                  "T.label": np.array(["person", "person"]),
              }
          )
      )
      self.assertEqual(unnest_batch, expected)
  
imports: import unittest
  from test.util import create_dummy_batches, create_sample_video, create_table, file_remove, get_evadb_for_testing, load_functions_for_testing, shutdown_ray
  import numpy
  import pandas
  import pytest
  from evadb.configuration.constants import EvaDB_ROOT_DIR
  from evadb.models.storage.batch import Batch
  from evadb.readers.decord_reader import DecordReader
  from evadb.server.command_handler import execute_query_fetch_all
label_desc: Use image node_id 16 for calling the SelectExecutorTest obj's underlying member method code with example usage: obj.test_lateral_join_with_unnest_on_subset_of_outputs() without return types