[ 
https://issues.apache.org/jira/browse/KYLIN-5524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17716117#comment-17716117
 ] 

Yaguang Jia edited comment on KYLIN-5524 at 4/25/23 6:48 AM:
-------------------------------------------------------------

In Kylin, realize the custom function of concat with multiple parameters by 
directly newing a org.apache.calcite.sql.Sql Function. In addition, when 
transferring spark query plans, directly call the concat function of spark with 
multiple parameters. See org.apache.kylin.query.runtime.Expression 
Converter#convert
The query will eventually convert the query plan into a spark query plan. When 
encountering the concat function in sql, it will take out each parameter of 
concat and call the concat function of spark 
org.apache.spark.sql.functions#concat( it receives variadic arguments)

!image-2023-04-25-14-48-51-840.png!

在Kylin中通过直接new一个org.apache.calcite.sql.SqlFunction的方式实现concat多个参数的自定义函数。另外,在转spark查询计划时,直接调用spark多个参数的concat函数。见org.apache.kylin.query.runtime.ExpressionConverter#convert

查询最终会将查询计划转成spark的查询计划,当遇到sql中的concat函数时,会把concat的每个参数拿出来,调用spark的concat函数org.apache.spark.sql.functions#concat(它接收可变参数)


was (Author: JIRAUSER298908):
In Kylin, realize the custom function of concat with multiple parameters by 
directly newing a org.apache.calcite.sql.Sql Function. In addition, when 
transferring spark query plans, directly call the concat function of spark with 
multiple parameters. See org.apache.kylin.query.runtime.Expression 
Converter#convert
The query will eventually convert the query plan into a spark query plan. When 
encountering the concat function in sql, it will take out each parameter of 
concat and call the concat function of spark 
org.apache.spark.sql.functions#concat( it receives variadic arguments)

 

在Kylin中通过直接new一个org.apache.calcite.sql.SqlFunction的方式实现concat多个参数的自定义函数。另外,在转spark查询计划时,直接调用spark多个参数的concat函数。见org.apache.kylin.query.runtime.ExpressionConverter#convert

查询最终会将查询计划转成spark的查询计划,当遇到sql中的concat函数时,会把concat的每个参数拿出来,调用spark的concat函数org.apache.spark.sql.functions#concat(它接收可变参数)

> When there are more than 2 parameters of concat function in cc column, SQL 
> modeling fails.
> ------------------------------------------------------------------------------------------
>
>                 Key: KYLIN-5524
>                 URL: https://issues.apache.org/jira/browse/KYLIN-5524
>             Project: Kylin
>          Issue Type: New Feature
>          Components: Modeling
>    Affects Versions: 5.0-alpha
>            Reporter: Yaguang Jia
>            Priority: Major
>             Fix For: 5.0-beta
>
>         Attachments: image-2023-04-25-14-48-51-840.png
>
>
> When there are more than 2 parameters of concat function listed in cc in SQL, 
> SQL modeling fails and an error of \{{no match found for function signature}} 
> is reported.
>  
> 在 SQL 中 cc 列有concat函数参数大于 2 个的情况下,SQL 建模失败,报\{{no match found for function 
> signature}}的错误



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to