-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Epic] General ticket for the concept of the practical implementation of ARRAY
#6980
Comments
cc @alamb @jayzhan211 |
@izveigor, since there are array_intersect and array_except, did you find any function similar to array_union, the function that returns a list of all elements that exist in |
It makes sense to allow nested array as the lhs value of three of the The difference of I found Azure has just
|
I think we can use Apache Spark SQL and Azure DataBricks function
Absolutely agree! I think this is the main mistake with PostgreSQL's array function set. Each element, including the array/list itself, must be processed by any function.
I prefer to use ClickHouse/DuckDB version of these functions, because there are a lot of possibilities for making full use of the set language (specifically we should check whether an element belongs to a set and check whether a set is a subset of a certain set). |
I will work on three of |
ARRAY
I would like to try on |
@izveigor , I dont fully understand about the difference between How do we differentiate |
It sounds great! Thank you, @jayzhan211! I created the tickets about this topic: #7213 and #7214.
I don't fully understand DuckDB principles myself. In my opinion every function should have |
I asked someone that is familiar with duckdb, he says the reason that they have list_xxx and array_xxx is due to compatibility, postgres for array_xxx, and others for list_xxx. In this case, since we heavily adopted from duckdb, clickhouse and others, we should also use similar naming from them, but I don't think mutability is the thing that differentiates list_xxx and array_xxx, it might be misleading if we said that. If someone asks what is the difference between |
This would be great to add to the documentation if you had a chance -- thank you for the research @jayzhan211 |
@jayzhan211, thank you for the research. I agree with you and we should create the subpage of the documentation that represents our syntax (we diccussed it in #6855 (comment)). I will deal with it soon. |
Can I pick something @jiangzhx that nobody else is looking to? |
Hello, @edmondop! |
Hello, @alamb and @jayzhan211. |
@izveigor -- thank you for letting us know and for all your work so far in this project. I think it has driven DataFusion significantly and we have all benefited from your work and inspiration. Good luck with your next adventure. |
TODO:
|
This looks pretty good to me now, I think we have done all the major items so closing this epic as good. We can handle small cleanup items as normal tickets. Please let me know if you disagree |
Is your feature request related to a problem or challenge?
It was decided that further development of array functions will be carried out according to the following concept: #6855.
According to the concept, any changes may be subject to rational criticism, so some aspects may change.
It should be noted that this list is incomplete and will be updated in the future.
The ticket contains many tickets. Each ticket is divided into respective categories:
List of features
A complete list of features, the implementation of which is desirable from the point of view of this concept 🎯:
Cleanups
array_replace_all
,array_replace_n
,array_replace
, etc) #7988Managing array elements:
By index:
array_element
Implementarray_element
function #6974array_slice
Implementarray_slice
function #6975By borders:
array_pop_front
Implementarray_pop_front
function #6996array_pop_back
Implementarray_pop_back
function #6997Working with Array Characteristics
Dimension
flatten
Implementflatten
function #6995Set language:
Basic operations on sets:
array_union
function #6981array_intersect
function #6978array_except
function #6979Checking if elements belong:
array_has_all
Implementarray_has_all
function #6973array_has_any
Implementarray_has_any
function #6976array_has
Implementarray_has
function #6977Form an array:
array_repeat
Implementarray_repeat
function #7197array_resize
Implementarray_resize
function #7194Array aggregate functions:
array_aggregate
function #7213Array operators:
Handling
NULL
and empty array:NULL
and empty array for array functions. #7143NULL
as an element #7142make_array
should support pure null array #7144make_array
null handling with nested version #7136empty
function #7290Refactoring:
Other functions:
array_distinct
function #7289range
#8028Bugs
Describe the solution you'd like
No response
Describe alternatives you've considered
No response
Additional context
No response
The text was updated successfully, but these errors were encountered: