Skip to content

Enforce the uniqueness of map key name for the map/make_map function #11437

Closed

Description

@goldmedal

Is your feature request related to a problem or challenge?

In most databases, the map type only allows unique keys. Refer to the behavior of DuckDB:

D select map {'1':1, '1':2};
Invalid Input Error: Map keys must be unique.

However, the specification of MapArray states:

/// In this layout, the keys and values are each respectively contiguous. We do
/// not constrain the key and value types, so the application is responsible
/// for ensuring that the keys are hashable and unique. Whether the keys are sorted
/// may be set in the metadata for this field.

MapArray is not responsible for ensuring the uniqueness of keys. Therefore, we should ensure the keys are unique on the application side (DataFusion).

Describe the solution you'd like

We can check the keys are distinct when invoking the map and make_map functions.

Describe alternatives you've considered

No response

Additional context

No response

Activity

  1. dharanad commented on Jul 12, 2024

    @dharanad
    Contributor

    take

  2. Weijun-H commented on Aug 25, 2024

    @Weijun-H
    Member

    Hi @dharanad, if you're no longer working on this ticket, I can take over.

  3. dharanad commented on Aug 25, 2024

    @dharanad
    Contributor

    Hi @dharanad, if you're no longer working on this ticket, I can take over.

    Hey, please feel free to take it

  4. removed their assignment
    on Aug 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions