Concern | Current Implementation | QueryFieldExorcism | LightweightQueryField |
---|---|---|---|
Dev Console / Developer experience | With Apex log level at FINEST or NONE, Set<QueryField> performance becomes linear (see #79) and results in CPU timeouts |
Fixed; a Set<String> is used instead |
Fixed; a List<QueryField> is used instead |
Debug Log output | With Apex log level at FINEST, log file overflows 2MB with QueryField.equals() calls |
Fixed; inserting into Set<String> doesn't create log output |
Fixed; inserting into List<QueryField> doesn't call equals() override |
CRUD/FLS enforcement (optional) | Supported | Supported | Unsupported |
Performance of building SOQL string in production environment | 147ms | 81ms | 39ms |
API backwards compatibility | N/A | Four 'deprecated' public methods on SObjectSelector were removed: fflib_StringBuilder.FieldListBuilder getFieldListBuilder() , void setFieldListBuilder(fflib_StringBuilder.FieldListBuilder fieldListBuilder) , String getFieldListString() , String getRelatedFieldListString(String relation) ; Also, the method signature for fflib_QueryFactory.getSelectedFields now returns a Set<String> instead of a Set<QueryField> |
No API changes (The "sortFields" feature is now a no-op since deduplicating the List<QueryField> requires that the list be sorted then deduped) |
Gracefully handles duplicate fields in Selector | Yes | Yes | Yes |
Last active
March 23, 2016 12:30
-
-
Save daveespo/d2500834934a7dcf88f4 to your computer and use it in GitHub Desktop.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment