code: def __init__(self, db: EvaDBDatabase, node: CreateIndexPlan):
      super().__init__(db, node)
  
      self.name = self.node.name
      self.if_not_exists = self.node.if_not_exists
      self.table_ref = self.node.table_ref
      self.col_list = self.node.col_list
      self.vector_store_type = self.node.vector_store_type
      self.project_expr_list = self.node.project_expr_list
      self.index_def = self.node.index_def
  
imports: from pathlib import Path
  import pandas
  from evadb.catalog.catalog_type 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.expression.function_expression import FunctionExpression
  from evadb.models.storage.batch import Batch
  from evadb.plan_nodes.create_index_plan import CreateIndexPlan
  from evadb.third_party.databases.interface import get_database_handler
  from evadb.third_party.vector_stores.types import FeaturePayload
  from evadb.third_party.vector_stores.utils import VectorStoreFactory
  from evadb.utils.logging_manager import logger
label_desc: Use image node_id 1 to create a new CreateIndexExecutor object from inherited base classes: AbstractExecutor with example: obj = CreateIndexExecutor(db, node)