[ https://issues.apache.org/jira/browse/FLINK-6975?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16086823#comment-16086823 ]
ASF GitHub Bot commented on FLINK-6975: --------------------------------------- Github user wuchong commented on a diff in the pull request: https://github.com/apache/flink/pull/4274#discussion_r127382075 --- Diff: flink-libraries/flink-table/src/main/scala/org/apache/flink/table/expressions/stringExpressions.scala --- @@ -277,3 +278,47 @@ case class Overlay( position.toRexNode) } } + +/** + * Returns the string that results from concatenating the arguments. + * Returns NULL if any argument is NULL. + */ +case class Concat(strings: Seq[Expression]) extends Expression with InputTypeSpec { + + override private[flink] def children: Seq[Expression] = strings + + override private[flink] def resultType: TypeInformation[_] = BasicTypeInfo.STRING_TYPE_INFO + + override private[flink] def expectedTypes: Seq[TypeInformation[_]] = + children.map(_ => STRING_TYPE_INFO) + + override def toString: String = s"concat($strings)" + + override private[flink] def toRexNode(implicit relBuilder: RelBuilder): RexNode = { + relBuilder.call(ScalarSqlFunctions.CONCAT, children.map(_.toRexNode)) + } +} + +/** + * Returns the string that results from concatenating the arguments and separator. + * Returns NULL If the separator is NULL. + * + * Note: this user-defined function does not skip empty strings. However, it does skip any NULL + * values after the separator argument. + **/ +case class ConcatWs(separator: Expression, strings: Seq[Expression]) --- End diff -- What about make this signature to `args: Seq[Expression]`, which combines `separator` and `strings` before construct `ConcatWs`. So that we do not need to change the FunctionCatalog. I think it's fine, because `ConcatWs` is not used by users. > Add CONCAT/CONCAT_WS supported in TableAPI > ------------------------------------------ > > Key: FLINK-6975 > URL: https://issues.apache.org/jira/browse/FLINK-6975 > Project: Flink > Issue Type: Sub-task > Components: Table API & SQL > Affects Versions: 1.4.0 > Reporter: sunjincheng > Assignee: sunjincheng > Labels: starter > > See FLINK-6925 for detail. -- This message was sent by Atlassian JIRA (v6.4.14#64029)