You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "jackylau (Jira)" <ji...@apache.org> on 2023/06/08 02:55:00 UTC

[jira] [Comment Edited] (CALCITE-5707) Add ARRAY_CONTAINS for Spark dialect

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

jackylau edited comment on CALCITE-5707 at 6/8/23 2:54 AM:
-----------------------------------------------------------

i modify the description if issue and pr 
{code:java}
// code placeholder
spark: array_contains(array[1, null], null) -> null
flink: array_contains(array[1, null], null) -> true {code}
 
{code:java}
// flink
public static final BuiltInFunctionDefinition ARRAY_CONTAINS =
            BuiltInFunctionDefinition.newBuilder()
                    .name("ARRAY_CONTAINS")
                    .kind(SCALAR)
                    .inputTypeStrategy(
                            sequence(
                                    Arrays.asList("haystack", "needle"),
                                    Arrays.asList(
                                            logical(LogicalTypeRoot.ARRAY), ARRAY_ELEMENT_ARG)))
                    .outputTypeStrategy(
                            nullableIfArgs(
                                    ConstantArgumentCount.of(0), explicit(DataTypes.BOOLEAN())))
                    .runtimeClass(
                            "org.apache.flink.table.runtime.functions.scalar.ArrayContainsFunction")
                    .build();


spark

case class ArrayContains(left: Expression, right: Expression)
  extends BinaryExpression with ImplicitCastInputTypes with NullIntolerant with Predicate
  with QueryErrorsBase {

/**
 * When an expression inherits this, meaning the expression is null intolerant (i.e. any null
 * input will result in null output). We will use this information during constructing IsNotNull
 * constraints.
 */
trait NullIntolerant extends Expression {code}


was (Author: jackylau):
i modify the description if issue and pr 
{code:java}
// code placeholder
spark: array_contains(array[1, null], null) -> null
flink: array_contains(array[1, null], null) -> true {code}

> Add ARRAY_CONTAINS for Spark dialect
> ------------------------------------
>
>                 Key: CALCITE-5707
>                 URL: https://issues.apache.org/jira/browse/CALCITE-5707
>             Project: Calcite
>          Issue Type: Improvement
>          Components: core
>    Affects Versions: 1.34.0
>            Reporter: jackylau
>            Assignee: jackylau
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.35.0
>
>
> ARRAY_CONTAINS - Returns true if the array contains the value
> For more details
> [https://spark.apache.org/docs/latest/sql-ref-functions-builtin.html]
> {code:java}
> // code placeholder
> spark: array_contains(array[1, null], null) -> null
> flink: array_contains(array[1, null], null) -> true {code}



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