class_docstr: Abstract implementation that other SQL clients are based on.
code: def _format_run_query_log_message(
      statement: str, sql_bind_parameters: SqlBindParameters
  ) -> str:
      message = f"Running query:\n\n{indent(statement)}"
      if len(sql_bind_parameters.param_dict) > 0:
          message += (
              f"\n"
              f"\n"
              f"with parameters:\n"
              f"\n"
              f"{indent(pformat_big_objects(sql_bind_parameters.param_dict))}"
          )
      return message
  
imports: from __future__ import annotations
  import logging
  import time
  from abc import ABC, abstractmethod
  from typing import Optional
  import pandas
  from dbt_semantic_interfaces.pretty_print import pformat_big_objects
  from metricflow.dataflow.sql_table import SqlTable
  from metricflow.mf_logging.formatting import indent
  from metricflow.protocols.sql_client import SqlClient
  from metricflow.random_id import random_id
  from metricflow.sql.sql_bind_parameters import SqlBindParameters
  from metricflow.sql_request.sql_request_attributes import SqlJsonTag, SqlRequestId, SqlRequestTagSet
  from metricflow.sql_request.sql_statement_metadata import CombinedSqlTags, SqlStatementCommentMetadata
label_desc: Use image node_id 1 for calling the BaseSqlClientImplementation obj's underlying member method code with example usage: obj._format_run_query_log_message(statement, sql_bind_parameters) and returns: message