code: def get_table_alias(table_obj, default_db_name):
      # (database, table, alias)
      if isinstance(table_obj, Identifier):
          if len(table_obj.parts) == 1:
              name = (default_db_name, table_obj.parts[0])
          else:
              name = (table_obj.parts[0], table_obj.parts[-1])
      elif isinstance(table_obj, Select):
          # it is subquery
          if table_obj.alias is None:
              name = "t"
          else:
              name = table_obj.alias.parts[0]
          name = (default_db_name, name)
      elif isinstance(table_obj, Join):
          # get from first table
          return get_table_alias(table_obj.left, default_db_name)
      else:
          # unknown yet object
          return default_db_name, "t", "t"
  
      if table_obj.alias is not None:
          name = name + (".".join(table_obj.alias.parts),)
      else:
          name = name + (name[1],)
      return name
  
file_path: mindsdb/mindsdb/api/executor/sql_query/steps/fetch_dataframe.py
imports: from mindsdb_sql.parser.ast import Identifier, Constant, Select, Join, Parameter, Tuple
  from mindsdb_sql.planner.steps import FetchDataframeStep
  from mindsdb_sql.planner.utils import query_traversal
  from mindsdb.api.executor.sql_query.result_set import ResultSet, Column
  from mindsdb.api.executor.exceptions import UnknownError
  from mindsdb.interfaces.query_context.context_controller import query_context_controller
  from .base import BaseStepCall
label_desc: Use image node_id 1 for calling a global function with example usage: get_table_alias(table_obj, default_db_name) and returns: name, get_table_alias, default_db_name,  str,  str