Skip to content

Increase List Size Limit Beyond 100 #949

@mohayu22

Description

@mohayu22

In Postgres, there is a limitation that prevents more than 100 arguments from being passed to a function. This limitation also applies to lists and maps constructed using the functions agtype_build_list and agtype_build_map. As a result, the size of lists and maps is restricted to a maximum of 100 elements.

SELECT * FROM cypher('test', $$
       RETURN [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
 $$) AS (res agtype);
ERROR:  cannot pass more than 100 arguments to a function

The same restriction applies to map properties.

Why:

  • A user may have a reading list that includes more than 100 books.
  • Neo4j doesn't impose a fixed limit on the number of list items or properties a node can have.

Implementation:

Change agtype_build_list and agtype_build_map to accept one agtype argument instead of VARIADIC "any"

SELECT agtype_build_list('[1, 1, 1]'::agtype);
 agtype_build_list 
-------------------
 [[1, 1, 1]]
(1 row)

Setup:
Apache AGE (master) - PostgreSQL 11.18

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions