WT_DATA_SOURCE handles, called when the handle is discarded,
intended to allow general cleanup when the database is closed.
Re-work the BDB KVS and Memrata support to handle multiple open
databases, that is, get rid of all of the globals.
builds cleanly so I'm going to commit it). Change the extension API
handle methods to take the handle as their first argument, get rid of
the WT_EXTENSION_API.default_session method, instead, store a reference
to the enclosing WT_CONNECTION in the extension handle.
This push also includes a few changes that are part of creating a STEC
data source.
a WT_CONNECTION, we need a session to use the other WT_EXTENSION_API
methods.
Remove the "exclusive" argument to the WT_DATA_SOURCE.create method:
we handle it internally and it's not documented anywhere (besides it's
not standard for the WT_SESSION.create method, if the WT_SESSION.create
method needs it, it should retrieve it from the configuration information).
We can't stack a random set of entries into a cfg[] because we don't
want to allocate memory in the API. Instead, whenever a method's
arguments are reconfigured, re-build the base configuration string by
appending the new configuration, and re-build the checks array, that way
we always have a single base configuration string and a single checks
array.
Re-work how we're handling lists, we can't expect the application to
crack them, they can be seriously messy. If it's a list, create an
array of NULL-terminated refrences to nul-terminated strings (create
an "argv" array, in other words). It's ugly, and the user has to free
the memory, but I don't see an alternative.