beyond-the-cloud-dev / soql-lib

The SOQL Lib provides functional constructs for SOQL queries in Apex.
https://soql.beyondthecloud.dev/
MIT License
61 stars 9 forks source link

exception is thrown when more than 9 FilterGroups #122

Closed Aschalin closed 4 months ago

Aschalin commented 4 months ago

example:

SOQL.of(Account.SObjectType)
.whereAre(SOQL.FilterGroup.add(SOQL.Filter.with(Account.Name).contains('1')))
.whereAre(SOQL.FilterGroup.add(SOQL.Filter.with(Account.Name).contains('2')))
.whereAre(SOQL.FilterGroup.add(SOQL.Filter.with(Account.Name).contains('3')))
.whereAre(SOQL.FilterGroup.add(SOQL.Filter.with(Account.Name).contains('4')))
.whereAre(SOQL.FilterGroup.add(SOQL.Filter.with(Account.Name).contains('5')))
.whereAre(SOQL.FilterGroup.add(SOQL.Filter.with(Account.Name).contains('6')))
.whereAre(SOQL.FilterGroup.add(SOQL.Filter.with(Account.Name).contains('7')))
.whereAre(SOQL.FilterGroup.add(SOQL.Filter.with(Account.Name).contains('8')))
.whereAre(SOQL.FilterGroup.add(SOQL.Filter.with(Account.Name).contains('9')))
.whereAre(SOQL.FilterGroup.add(SOQL.Filter.with(Account.Name).contains('0')))
.whereAre(SOQL.FilterGroup.add(SOQL.Filter.with(Account.Name).contains('a')))
.preview()
.toList();

preview result: 14:35:31:000 USER_DEBUG WHERE (Name LIKE :v1) AND (Name LIKE :v2) AND (Name LIKE :v3) AND (Name LIKE :v4) AND (Name LIKE :v5) AND (Name LIKE :v6) AND (Name LIKE :v7) AND (Name LIKE :v8) AND (Name LIKE :v9) AND (Name LIKE :v1)0 AND (Name LIKE :v1)(Name LIKE :v1) Screenshot 2024-05-13 at 14 39 57

expected preview result: 14:35:31:000 USER_DEBUG WHERE (Name LIKE :v1) AND (Name LIKE :v2) AND (Name LIKE :v3) AND (Name LIKE :v4) AND (Name LIKE :v5) AND (Name LIKE :v6) AND (Name LIKE :v7) AND (Name LIKE :v8) AND (Name LIKE :v9) AND (Name LIKE :v10) AND (Name LIKE :v11)

exception: Screenshot 2024-05-13 at 14 44 17

pgajek2 commented 4 months ago

Hi @Aschalin ,

Here is the fix: https://github.com/beyond-the-cloud-dev/soql-lib/pull/123

pgajek2 commented 4 months ago

@Aschalin code on the main branch.