Github user hvanhovell commented on a diff in the pull request:

    https://github.com/apache/spark/pull/22429#discussion_r223983537
  
    --- Diff: 
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/package.scala ---
    @@ -167,6 +172,58 @@ package object util {
         builder.toString()
       }
     
    +  /**
    +   * The performance overhead of creating and logging strings for wide 
schemas can be large. To
    +   * limit the impact, we bound the number of fields to include by 
default. This can be overridden
    +   * by setting the 'spark.debug.maxToStringFields' conf in SparkEnv or by 
settings the SQL config
    +   * `spark.sql.debug.maxToStringFields`.
    +   */
    +  private[spark] def maxNumToStringFields: Int = {
    +    val legacyLimit = if (SparkEnv.get != null) {
    +      SparkEnv.get.conf.get(config.MAX_TO_STRING_FIELDS)
    +    } else {
    +      config.MAX_TO_STRING_FIELDS.defaultValue.get
    +    }
    +    val sqlConfLimit = SQLConf.get.maxToStringFields
    +
    +    Math.max(sqlConfLimit, legacyLimit)
    +  }
    +
    +  /** Whether we have warned about plan string truncation yet. */
    +  private val truncationWarningPrinted = new AtomicBoolean(false)
    +
    +  /**
    +   * Format a sequence with semantics similar to calling .mkString(). Any 
elements beyond
    +   * maxNumToStringFields will be dropped and replaced by a "... N more 
fields" placeholder.
    +   *
    +   * @return the trimmed and formatted string.
    +   */
    +  def truncatedString[T](
    +      seq: Seq[T],
    +      start: String,
    +      sep: String,
    +      end: String,
    +      maxFields: Option[Int]): String = {
    +    val maxNumFields = maxFields.getOrElse(maxNumToStringFields)
    --- End diff --
    
    You should document this behavior.


---

---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to