circles-learning-labs / ecto_adapters_dynamodb

DynamoDB adapter for Elixir's Ecto Database layer.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Support 'all/in/and... in...' queries for composite primary keys, > 100 records

darrenklein opened this issue · comments

At the moment, using a query to search for more than 100 records on a composite primary key will fail, when using an 'all/in/and... in...' queries, such as

from bp in BookPage, where: bp.id in ^ids and bp.page_num in ^pages

Queries where the second condition is a variable (as above) will fail for different reasons than a hard-coded list - in the former, queries for more than 50 records will actually fail because both lists will be merged and seem like a request for more than 100 records; in the latter, the current method of breaking the query into chunks of 100 items will only affect the hash key, and so on the next iteration the values of the two indexes will fall out of sync.