code: def test_lateral_join_with_unnest_and_sample(self):
      query = """SELECT id, label
                    FROM MyVideo SAMPLE 2 JOIN LATERAL
                      UNNEST(DummyMultiObjectDetector(data).labels) AS T(label)
                    WHERE id < 10 ORDER BY id;"""
      unnest_batch = execute_query_fetch_all(self.evadb, query)
      expected = Batch(
          pd.DataFrame(
              {
                  "myvideo.id": np.array(
                      [0, 0, 2, 2, 4, 4, 6, 6, 8, 8], dtype=np.intp
                  ),
                  "T.label": np.array(
                      [
                          "person",
                          "person",
                          "car",
                          "car",
                          "bicycle",
                          "bicycle",
                          "person",
                          "person",
                          "car",
                          "car",
                      ]
                  ),
              }
          )
      )
      self.assertEqual(len(unnest_batch), 10)
      self.assertEqual(unnest_batch, expected)
  
imports: import unittest
  from test.util import create_dummy_4d_batches, create_dummy_batches, create_sample_video, create_table, file_remove, get_evadb_for_testing, get_logical_query_plan, load_functions_for_testing, shutdown_ray
  import numpy
  import pandas
  import pytest
  from evadb.binder.binder_utils import BinderError
  from evadb.models.storage.batch import Batch
  from evadb.optimizer.operators import LogicalFilter
  from evadb.server.command_handler import execute_query_fetch_all
label_desc: Use image node_id 21 for calling the SelectExecutorTest obj's underlying member method code with example usage: obj.test_lateral_join_with_unnest_and_sample() without return types