- removed never used bcb_checkpoint and BDB_checkpoint
- removed conditional compilation for CACHE_WRITER as it is already ruled by flag BCB_cache_writer at almost all places
- added necessary checks for BCB_cache_writer when it was missed
1. Never allocate empty statement - always use att->prepare() to create statement interface
2. Separated IStatement into 2 parts - statement itself and resultset.
3. Added stmt->openCursor() (and att->openCursor() for unprepared statements) to create IResultSet.
4. Always use IMessageMetadata (former IParametersMetadata) to pass message fromat info from client,
therefore avoiding need in BLR generation in client applications.
Fixed assertion in CCH_exclusive_attachment
Rolled back my changes required to let cancelOperation() enter engine after shutdown
Better locks' history in SyncObject
1. Frontported fix for CORE-3935 and CORE-3993.
2. Added debugging support for mutexes and rwlocks in Vulcan style.
Unfortunately after last 'svn up' build asserts in JrdStatement:71.
2) Reworked the lock manager synchronization: added the RAII mutex holders and avoided dirty reads for the shared memory.
3) Encapsulated lck_length into the Lock class + small related refactoring.
4) Front ported recent fixes from the v2.x branches.
5) Misc cleanup.
Also some cleanups, the most important are:
- meaningful ctor on Jrd::Lock, helping to avoid code dup
- avoid unneeded h-file dependencies, making boot build engine dependent
- Changed streams from UCHAR to ULONG as Dmitry wanted
- Got rid of some redundant flags to indicate BLR level
- Misc changes (for example, converted to test for DBB_read_only in Database to a function)
- BLR v6 is left commented (waiting for a better solution to appear, if any exists)
- This change is not going to raise the engine limits until a solution is found to express more than 255 streams in BLR.
- it doesn't make sense to return -1, as the result is void* with PTHREADS
- a single try-catch block looks better
- cross-helping between GC and CW/CR threads is agreed to be a bad idea