This refactor simplifies and streamlines the code associated with server
side filters. Apart from immediate benefits (clearer code, less duplication)
it is also hoped that this will make it easier to add write filters.
The data pointer dbfl_ref.field can now either point to a copy owned by a
filter, or it can point to the original data owned by a record. In the
latter case, the dbfl_ref.dtor is NULL.
The dbExtractArray* functions are unified to the single function
dbExtractArray and stripped of conversion functionality. This is redundant
because we always call dbGet after applying filters, which takes care of
conversion. Accordingly, dbChannelMakeArrayCopy is now obsolete and its
single use (in the ts filter) replaced with dbExtractArray. Instead, we add
the helper function dbChannelGetArrayInfo to wrap the common boilerplate
around calls to the get_array_info method, used in both arr.c and ts.c.
* lp-zimoch/dbChannelForDBLinks: (43 commits)
add tests for empty array filter results
Fix linkFilterTest, move Release Notes to the right place
do not handle empty arrays (undefined behavior)
Revert "new error code for empty arrays"
test code beautification
make db_init_event_freelists private
remove unnecessary check
remove needless pointer access
new error code for empty arrays
clean up code structure
Release notes updated
set number of planned link filter tests
removed unnecessary recGblSetSevr call
re-order link filter tests to alternate between success and failure
unused variable removed
Revert "fix crash in PINI: use local db_field_log"
initialize free lists when starting dbChannel
db link filter tests added
bugfix: dbGet should not crash because of empty array requests
fix crash in PINI: use local db_field_log
...
# Conflicts:
# documentation/RELEASE_NOTES.md
* githubbhill/timestamp-before-outlink:
Update RELEASE_NOTES for timestamp-before-outlink
Patch record processing routines to update timestamp before processing outlinks