code: def _get_sql_irrelevant_tables(self, node: ast.Assign):
      for target in node.targets:
          if (
              isinstance(target, ast.Name)
              and target.id in "sql_query"
              and isinstance(node.value, ast.Constant)
              and isinstance(node.value.value, str)
          ):
              sql_query = node.value.value
              table_names = extract_table_names(sql_query)
              allowed_table_names = [df.table_name for df in self._dfs]
              return [
                  table_name
                  for table_name in table_names
                  if table_name not in allowed_table_names
              ]
  
imports: import re
  import ast
  import uuid
  from collections import defaultdict
  import astor
  import pandas
  from pandasai.helpers.path import find_project_root
  from pandasai.helpers.skills_manager import SkillsManager
  from pandasai.helpers.sql import extract_table_names
  from .node_visitors import AssignmentVisitor, CallVisitor
  from .save_chart import add_save_chart
  from .optional import import_dependency
  from ..exceptions import BadImportError, MaliciousQueryError, NoResultFoundError, InvalidConfigError
  from ..constants import WHITELISTED_BUILTINS, WHITELISTED_LIBRARIES
  from typing import Union, List, Generator, Any
  from ..helpers.logger import Logger
  from ..schemas.df_config import Config
  import logging
  import traceback
label_desc: Use image node_id 12 for calling the CodeManager obj's underlying member method code with example usage: obj._get_sql_irrelevant_tables(node) and returns: unknown