from typing import Counter


def column_checker(chat_df, message_df, attachment_df, handle_df):
    """
    Checks the columns of the major tables for any conflicting column names
    :param chat_df: the chat table dataframe
    :param message_df: the message table dataframe
    :param attachment_df: the attachment table dataframe
    :param handle_df: the handle table dataframe
    :return: a list of conflicting column names
    """
    columns = chat_df.columns.tolist() + message_df.columns.tolist() + attachment_df.columns.tolist() + \
              handle_df.columns.tolist()
    conflicts = [item for item, count in Counter(columns).items() if count > 1]
    return conflicts