flink icon indicating copy to clipboard operation
flink copied to clipboard

[FLINK-31664][table]Add ARRAY_INTERSECT function

Open hanyuzheng7 opened this issue 1 year ago • 6 comments

What is the purpose of the change

This is an implementation of ARRAY_INTERSECT function Returns an array of the elements in the intersection of array1 and array2, without duplicates.

Brief change log

ARRAY_INTERSECT for Table API and SQL

Syntax:

ARRAY_INTERSECT(array1, array2)

Arguments:

array: An ARRAY to be handled.

Returns:

Returns an array of the elements in the intersection of array1 and array2, without duplicates.

Examples:

SELECT array_intersect(array(1, 2, 3), array(1, 3, 5));
[1,3]

Verifying this change

CollectionFunctionsITCase

see also:

spark https://spark.apache.org/docs/latest/api/sql/index.html#array_intersect presto https://prestodb.io/docs/current/functions/array.html

Does this pull request potentially affect one of the following parts:

  • Dependencies (does it add or upgrade a dependency): (yes / no)
  • The public API, i.e., is any changed class annotated with @Public(Evolving): (yes / no)
  • The serializers: (yes / no / don't know)
  • The runtime per-record code paths (performance sensitive): (yes / no / don't know)
  • Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: (yes / no / don't know)
  • The S3 file system connector: (yes / no / don't know)

Documentation

  • Does this pull request introduce a new feature? (yes / no)
  • If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

hanyuzheng7 avatar Aug 08 '23 20:08 hanyuzheng7

CI report:

  • 9df9f79cdb7b0849eb621f9538f75b14b0d5ff04 UNKNOWN
  • c6e5d3d6ec41572c8a52752c059dfb0963da669c Azure: FAILURE
Bot commands The @flinkbot bot supports the following commands:
  • @flinkbot run azure re-run the last Azure build

flinkbot avatar Aug 08 '23 20:08 flinkbot

@flinkbot run azure

hanyuzheng7 avatar Feb 12 '24 17:02 hanyuzheng7

hi @hanyuzheng7 @dawidwys , i submit pr before, why submit another pr? https://github.com/apache/flink/pull/22629 https://github.com/apache/flink/pull/23959

liuyongvs avatar Feb 18 '24 04:02 liuyongvs

Hey @liuyongvs I am sorry for the situation we ended up here. You're right we should've checked with you. I admit I have not been careful enough here. Please accept my apologies.

Let's try to solve it now somehow @liuyongvs @hanyuzheng7 @zzzzzzzs How do you all feel if

  1. @hanyuzheng7 continues with ARRAY_EXCEPT. We can reuse parts of the solution in ARRAY_INTERSECT (e.g. ObjectContainer) We should also first solve the question and apply in both cases
  2. @liuyongvs takes care of ARRAY_INTERSECT after ARRAY_EXCEPT is merged? Both his and @hanyuzheng7 PRs are closest to be completed.

Do all feel okish with such a plan? I know it's not a perfect solution, but I want to find a way out of it.

dawidwys avatar Feb 21 '24 12:02 dawidwys

@dawidwys great plan +1. because my prs do not have people to review. will you have time to help review them?

liuyongvs avatar Feb 21 '24 12:02 liuyongvs

@dawidwys @liuyongvs Ok

hanyuzheng7 avatar Feb 21 '24 18:02 hanyuzheng7

hi @dawidwys will you help review this https://github.com/apache/flink/pull/24526

liuyongvs avatar Mar 21 '24 01:03 liuyongvs