code: def get_table_primary_columns(
      table_catalog_obj: TableCatalogEntry,
  ) -> List[ColumnDefinition]:
      """
      Get the primary columns for a table based on its table type.
  
      Args:
          table_catalog_obj (TableCatalogEntry): The table catalog object.
  
      Returns:
          List[ColumnDefinition]: The list of primary columns for the table.
      """
      primary_columns = [
          ColumnDefinition(
              IDENTIFIER_COLUMN, ColumnType.INTEGER, None, None
          )
      ]
      # _row_id for all the TableTypes, however for Video data and PDF data we also add frame_id (id) and paragraph as part of unique key
      if table_catalog_obj.table_type == TableType.VIDEO_DATA:
          # _row_id, id
          primary_columns.append(
              ColumnDefinition(
                  VideoColumnName.id.name,
                  ColumnType.INTEGER,
                  None,
                  None,
              ),
          )
  
      elif table_catalog_obj.table_type == TableType.PDF_DATA:
          # _row_id, paragraph
          primary_columns.append(
              ColumnDefinition(
                  PDFColumnName.paragraph.name,
                  ColumnType.INTEGER,
                  None,
                  None,
              )
          )
  
      elif table_catalog_obj.table_type == TableType.DOCUMENT_DATA:
          # _row_id, chunk_id
          primary_columns.append(
              ColumnDefinition(
                  DocumentColumnName.chunk_id.name,
                  ColumnType.INTEGER,
                  None,
                  None,
              )
          )
  
      return primary_columns
  
imports: import uuid
  from pathlib import Path
  from typing import Any, Dict, List
  from evadb.catalog.catalog_type import ColumnType, DocumentColumnName, ImageColumnName, NdArrayType, PDFColumnName, TableType, VideoColumnName
  from evadb.catalog.models.utils import ColumnCatalogEntry, FunctionCacheCatalogEntry, FunctionCatalogEntry, TableCatalogEntry
  from evadb.catalog.sql_config import IDENTIFIER_COLUMN
  from evadb.expression.function_expression import FunctionExpression
  from evadb.expression.tuple_value_expression import TupleValueExpression
  from evadb.parser.create_statement import ColConstraintInfo, ColumnDefinition
  from evadb.utils.generic_utils import get_str_hash
label_desc: Use image node_id 9 for calling a global function with example usage: get_table_primary_columns(table_catalog_obj) and returns: primary_columns