Skip to content

Instantly share code, notes, and snippets.

@daveespo
Last active March 23, 2016 12:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save daveespo/d2500834934a7dcf88f4 to your computer and use it in GitHub Desktop.
Save daveespo/d2500834934a7dcf88f4 to your computer and use it in GitHub Desktop.
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment