class_docstr: This plan is used for storing information required for hashjoin build side.
  It prepares the hash table of preferably the smaller relation
  which is used by the probe side to find relevant rows.
  Arguments:
      build_keys (List[ColumnCatalogEntry]) : list of equi-key columns.
                      If empty, then Cartesian product.
code: def __hash__(self) -> int:
      return hash(
          (
              super().__hash__(),
              self.join_type,
              tuple(self.build_keys or []),
          )
      )
  
file_path: evadb/evadb/plan_nodes/hash_join_build_plan.py
imports: from typing import List
  from evadb.catalog.models.column_catalog import ColumnCatalogEntry
  from evadb.parser.types import JoinType
  from evadb.plan_nodes.abstract_plan import AbstractPlan
  from evadb.plan_nodes.types import PlanOprType
label_desc: Use image node_id 3 for calling the HashJoinBuildPlan obj's underlying member method code with example usage: obj.__hash__() and returns: hash