-
Notifications
You must be signed in to change notification settings - Fork 467
Closed
Labels
enhancementNew requestNew request
Description
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
Labels
enhancementNew requestNew request
Type
Projects
Status
Done