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

    https://github.com/apache/spark/pull/7468#discussion_r34931344
  
    --- Diff: 
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/stringOperations.scala
 ---
    @@ -673,6 +673,110 @@ case class Encode(value: Expression, charset: 
Expression)
     }
     
     /**
    + * Replace all substrings of str that match regexp with rep
    + */
    +case class RegExpReplace(subject: Expression, regexp: Expression, rep: 
Expression)
    +  extends Expression with ImplicitCastInputTypes {
    +
    +  // last regex in string, we will update the pattern iff regexp value 
changed.
    +  @transient private var lastRegex: UTF8String = _
    +  // last regex pattern, we cache it for performance concern
    +  @transient private var pattern: Pattern = _
    +  // last replacement string, we don't want to convert a UTF8String => 
java.langString every time.
    +  @transient private var lastReplacement: String = _
    +  @transient private var lastReplacementInUTF8: UTF8String = _
    +  // result buffer write by Matcher
    +  @transient private val result: StringBuffer = new StringBuffer
    +
    +  override def nullable: Boolean = children.foldLeft(false)(_ || 
_.nullable)
    +  override def foldable: Boolean = children.foldLeft(true)(_ && _.foldable)
    --- End diff --
    
    Why not `forall` and `exists` ? They should be more readable.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to