code: def __init__(
      self,
      left: "TableRef" = None,
      right: "TableRef" = None,
      predicate: AbstractExpression = None,
      join_type: JoinType = None,
  ) -> None:
      self.left = left
      self.right = right
      self.predicate = predicate
      self.join_type = join_type
  
imports: from __future__ import annotations
  from typing import Union
  from evadb.expression.abstract_expression import AbstractExpression
  from evadb.expression.function_expression import FunctionExpression
  from evadb.parser.alias import Alias
  from evadb.parser.select_statement import SelectStatement
  from evadb.parser.types import JoinType
label_desc: Use image node_id 1 to create a new JoinNode object  with example: obj = JoinNode(left, right, predicate, join_type)