Database triggers ON DISCONNECT and ON CONNECT is fired during session reset.
New system variable RESETTING is introduced to detect session reset state.
More detailed description see in tracker.
globally.
Also removed SCL_checks from VIO_store, VIO_modify, VIO_erase which were
switched off by TDBB_trudted_ddl after checkPermission in DdlNode.
Other ways to run VIO_xxx are prohibited and users cannot modify system
tables directly.
Now error includes an object name when user does not have the privilege CREATE for it.
* Now we take into account the call hierarchy when use SQL SECURITY
option.
Added new context variable in SYSTEM namespace - EFFICIENT_USER which is
returns user name in which context a code works.
We change efficient user before call procedure and function, fetch a
record from selective procedure and before execute a trigger.
* Renamed new context variable to EFFECTIVE_USER. Fixed nested calls.
* Improved error messages to print effective user when there is no permission.
* Added description of new context variable EFFECTIVE_USER. Improved description of SQL SECURITY clause.
With this feature it's possible to create parallel (via different attachments) processes reading consistent data from a database.
For example, a backup process may create multiple threads paralleling read data from the database.
Also a web service may dispatch distributed sub services paralleling doing some processing.
That is accomplished creating a transaction with SET TRANSACTION SNAPSHOT [ AT NUMBER <snapshot number> ] or isc_tpb_at_snapshot_number.
The <snapshot number> from the first transaction may be obtained with RDB$GET_CONTEXT('SYSTEM', 'SNAPSHOT_NUMBER') or transaction info call with fb_info_tra_snapshot_number.
Also added CORE-6017 - Add transaction info fb_info_tra_snapshot_number.
* Initial implementation of replication
* Postfixes for configuration and Windows builds
* Misc Windows adjustments
* Forgotten changes from prior commits
* Last round (fingers crossed) of fixing the Windows build
* Improve self-documentation
* Misc improvements
* Updates the docs
* More configuration
* Frontported some remaining pieces
* Installation post-fixes
* Special permission for replication
* Fixed issue: Database is corrupted when conflicting "starting at page" values is specified for secondary files
* Raise error when conflicting "starting at page" values is specified for secondary database files
- ignore prepared 2PC transactions when check if session reset is allowed
- if there is current active user transaction - rollback it before session reset and start new transaction with same properties after reset
- add warning if current transaction changes any table before reset
I didn't verified why the error messages are being truncated. It seems idiotic if
the engine, library or ISQL does not accept these not-so-detailed messages.