def METHOD_NAME(table: str, args: Namespace) -> Union[bool, str]:
    """Sync one table"""
    mysql = FastSyncTapMySql(args.tap, tap_type_to_target_type)
    postgres = FastSyncTargetPostgres(args.target, args.transform)
    try:
        filename = utils.gen_export_filename(
            tap_id=args.target.get('tap_id'), table=table
        )
        filepath = os.path.join(args.temp_dir, filename)
        target_schema = utils.get_target_schema(args.target, table)
        # Open connections
        mysql.open_connections()
        # Get bookmark - Binlog position or Incremental Key value
        bookmark = utils.get_bookmark_for_table(table, args.properties, mysql)
        # Exporting table data, get table definitions and close connection to avoid timeouts
        mysql.copy_table(table, filepath)
        postgres_types = mysql.map_column_types_to_target(table)
        mysql.close_connections()
        size_bytes = os.path.getsize(filepath)
        postgres_columns = postgres_types.get('columns', [])
        primary_key = postgres_types.get('primary_key')
        # Creating temp table in Postgres
        postgres.drop_table(target_schema, table, is_temporary=True)
        postgres.create_table(
            target_schema, table, postgres_columns, primary_key, is_temporary=True
        )
        # Load into Postgres table
        postgres.copy_to_table(
            filepath, target_schema, table, size_bytes, is_temporary=True
        )
        os.remove(filepath)
        # Obfuscate columns
        postgres.obfuscate_columns(target_schema, table, is_temporary=True)
        # Create target table and swap with the temp table in Postgres
        postgres.swap_tables(target_schema, table)
        # Save bookmark to singer state file
        # Lock to ensure that only one process writes the same state file at a time
        LOCK.acquire()
        try:
            utils.save_state_file(args.state, table, bookmark)
        finally:
            LOCK.release()
        # Table loaded, grant select on all tables in target schema
        grantees = utils.get_grantees(args.target, table)
        utils.grant_privilege(target_schema, grantees, postgres.grant_usage_on_schema)
        utils.grant_privilege(target_schema, grantees, postgres.grant_select_on_schema)
        return True
    except Exception as exc:
        LOGGER.exception(exc)
        return '{}: {}'.format(table, exc)
    finally:
        # try closing connections again just in case, silence errors
        mysql.close_connections(silent=True)