code: def exec(self, *args, **kwargs) -> Iterator[Batch]:
      if self.vector_store_type == VectorStoreType.PGVECTOR:
          return self._native_vector_index_scan()
      else:
          return self._evadb_vector_index_scan(*args, **kwargs)
  
imports: from typing import Iterator
  import pandas
  from evadb.catalog.models.utils import VectorStoreType
  from evadb.catalog.sql_config import ROW_NUM_COLUMN
  from evadb.database import EvaDBDatabase
  from evadb.executor.abstract_executor import AbstractExecutor
  from evadb.executor.executor_utils import ExecutorError, handle_vector_store_params
  from evadb.models.storage.batch import Batch
  from evadb.plan_nodes.storage_plan import StoragePlan
  from evadb.plan_nodes.vector_index_scan_plan import VectorIndexScanPlan
  from evadb.third_party.databases.interface import get_database_handler
  from evadb.third_party.vector_stores.types import VectorIndexQuery
  from evadb.third_party.vector_stores.utils import VectorStoreFactory
  from evadb.utils.logging_manager import logger
label_desc: Use image node_id 2 for calling the VectorIndexScanExecutor obj's underlying member method code with example usage: obj.exec() and returns: self, self