8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-30 20:03:03 +01:00
Commit Graph

906 Commits

Author SHA1 Message Date
robocop
c90d9d4547 Misc. 2014-04-05 01:44:32 +00:00
alexpeshkoff
20e846369e Implemented CORE-3370: Resolve additional aspects of multiple security databases from services and cross-database requests POV (mapping names) 2014-04-04 15:57:18 +00:00
robocop
fa2f26b645 A bit less repetitive code. 2014-04-04 07:51:24 +00:00
robocop
29e36dc4f3 The 0th generator becomes unnamed. Only internal requests can access it (zero length names are not allowed from outside). RDB$GENERATORS is no longer a reserved name.System generators cannot be changed by user requests, but can be queried with gen_id(g, 0) if the permissions (ACL) allow that. We don't track dependencies on sys generators, it's not necessary. 2014-04-04 06:39:09 +00:00
robocop
58654b05cf Try to drop as many shadow files as possible. 2014-03-26 19:10:54 +00:00
robocop
66af445e2e Misc. 2014-03-22 20:51:24 +00:00
hvlad
d125f5617a Fixed warning by PVS-Studio
Review is appreciated
2014-02-25 14:18:32 +00:00
alexpeshkoff
26b090c93b Added access to configuration interfaces from IMaster and support for getting configured directories 2014-02-12 11:20:55 +00:00
asfernandes
48ea42f1c0 Misc. 2014-01-19 20:38:16 +00:00
alexpeshkoff
411c3718ca Fixed CORE-4286: "Statement already has a cursor assigned" error when trying to execute another SQL statement using different cursor name. Moved method setCursorName() from IStatement to IResultSet - it was my fault when splitting cursor from statement. 2014-01-17 12:33:23 +00:00
hvlad
5e3c596545 Fixed bug CORE-4309 : 'Cache Writer' record in MON$ATTACHMENTS dissapear when delete other connection that running some 'heavy update' on big table via delete from MON$ATTACHMENTS 2014-01-11 09:10:44 +00:00
robocop
2810026363 Misc and warnings. 2013-12-29 00:35:50 +00:00
asfernandes
2aa3e8dd4d Working in progress on the fix for CORE-4271: unify as possible the handling of procedures and functions. 2013-12-12 14:42:31 +00:00
asfernandes
9c9dd72977 Misc. 2013-11-24 03:21:11 +00:00
alexpeshkoff
4a8fe5a0de Implemented CORE-4273: Per-database control on access to database from remote stations 2013-11-22 15:21:11 +00:00
alexpeshkoff
c2efe1945a Enable linger only in multiuser server mode. This should also fix windows build. 2013-11-21 07:31:30 +00:00
alexpeshkoff
83db69c849 Fixed new gcc 4.7 warning "deleting object of polymorphic class" in many places. Adjusted use of interface types (reference counted vs just vesrioned). Avoided some hacks caused by badly chosen interface type. 2013-11-18 12:20:23 +00:00
dimitr
8033131d18 Fixed possible server crash + minor refactoring. 2013-11-17 14:24:17 +00:00
alexpeshkoff
120b10a78a Implemented CORE-4263: Database linger 2013-11-14 16:16:24 +00:00
dimitr
489480b774 Complementary patch for one of my prior commits (forced rollbacks should go through the TIP). 2013-11-13 15:39:32 +00:00
hvlad
37344e12bf Fixed bug CORE-4260 : Bugcheck 165 (cannot find tip page) happens if engine crashed right after CREATE DATABASE 2013-11-11 14:44:52 +00:00
hvlad
34b99e6f3a Don't force flush for database which creation is not complete. 2013-11-07 10:32:35 +00:00
hvlad
424fb1d75f Avoid hack in create_database when we have FW=ON at header page disk image and FW=OFF in memory structures and in fact database file is created in FW=OFF mode.
Instead of setting flag on header page when it is formatted for the first usage, explicitly set FW=ON after database creation is complete, if there was no isc_dpb_force_write in DPB.
2013-11-07 10:06:36 +00:00
alexpeshkoff
ee748b192d Make code (hopefully) better readable 2013-11-01 14:18:30 +00:00
alexpeshkoff
bd65abc1aa Cleanup 2013-10-31 15:10:26 +00:00
alexpeshkoff
dd73db4494 Fixed CORE-4200: An uncommitted select of the pseudo table sec$users blocks new database connections 2013-10-30 12:11:40 +00:00
hvlad
88a470d22c Fixed two more reasons for CORE-4235 : Deadlock is possible while accessing the monitoring tables under concurrent load. 2013-10-19 08:09:51 +00:00
alexpeshkoff
5a054cca16 Fix found by Jim Starkey man-in-themiddle attack on ATTACH packet.
That packet may contain database name, command line for service and/or some other important and critical information.
To avoid such attack wire encryption is started before attaching database or service manager, right after connect.
Also should fix a number of issues found in Alpha1 regarding services attach.
2013-10-16 12:53:04 +00:00
dimitr
c235774864 Attempted to fix CORE-4235: Deadlock is possible while accessing the monitoring tables under concurrent load.
Refactored the list of reference counted attachments to be useful in other cases.
Some minor adjustments in the monitoring code.
2013-09-22 16:10:06 +00:00
dimitr
3821ec9d41 Implemented CORE-4218 (database owner in MON$DATABASE) and CORE-4222 (auth method in MON$ATTACHMENTS). 2013-09-18 09:37:13 +00:00
alexpeshkoff
7c243418a9 Cleanup - removed unused (always NULL) field tra_sibling from transaction class in engine 2013-09-13 12:21:51 +00:00
dimitr
c9cc5294da Avoid rescheduling if we're kindly asked to stop immediately. 2013-09-04 17:52:13 +00:00
dimitr
c367d1f958 Cleanup and use the explicit rollback via TIP for all kinds of forced disconnections. 2013-09-04 17:46:09 +00:00
dimitr
01b81b1edb Code simplification and some corrections. 2013-08-19 18:50:28 +00:00
alexpeshkoff
1eace34614 CORE-3944 - fixed a bug in my previous commit, noticed by Adriano 2013-08-19 08:17:37 +00:00
alexpeshkoff
a8f8465366 Postfix for CORE-3935 & CORE-3944: helps avoid segfaults/deadlocks when shutting down firebird 2013-08-16 12:44:10 +00:00
asfernandes
b6a4d39596 Misc. 2013-07-06 23:11:13 +00:00
dimitr
9e8bbbdd13 Better protection against AST delivery during detaching. 2013-07-03 13:22:44 +00:00
hvlad
c12e731b6a Fixed bug CORE-4134 : Race condition when auto-sweep is started 2013-06-29 11:32:55 +00:00
hvlad
ffa909f8d9 Fixed bug CORE-4135 : In SS sweep blocks establishment of concurrent attachments.
More details in tracker.
2013-06-29 11:25:07 +00:00
alexpeshkoff
7583535db5 Make dialect 3 default when creating database using OO API. Keep legacy behavior in ISC API. 2013-06-24 12:24:29 +00:00
alexpeshkoff
2a66ddf07f Fixed assertion when restoring DB in non-existtent path with overwrite - reported privately by Dmitry 2013-06-18 09:10:09 +00:00
dimitr
0c6bc6844a Protection against the not supported mode. I used a non-translatable error because it might be a temporary measure, time will show. 2013-06-15 14:12:25 +00:00
robocop
c0b8b68777 Misc. 2013-05-21 21:53:39 +00:00
alexpeshkoff
b9a96911ca Avoid extra atomic operations when assigning pointer to the object with pre-incremented counter (like returned from the function) to reference-counted pointer holder 2013-04-17 11:16:06 +00:00
alexpeshkoff
6f5fedec9a Fixes related with CORE-3993 2013-04-17 08:04:02 +00:00
alexpeshkoff
3746843930 Postfix for CORE-3935 and CORE-3993: avoid opening same database file twice 2013-04-15 16:51:20 +00:00
dimitr
551e2416c6 Add interface support for scrollable DSQL cursors. Implementation will follow later. 2013-04-13 07:11:58 +00:00
asfernandes
e0567463bf Revert external routines to request-based (*) code, but now using a totally different internal approach.
* This is not ideal IMO, but much more easier to currently support stack traces, and domain's defaults and validations.
2013-04-11 15:44:17 +00:00
alexpeshkoff
8780552b94 Added support for changing configuration (client and embedded) from API 2013-04-04 13:17:57 +00:00
dimitr
dbe76bc342 The minimal patch for CORE-1604 (Error at database creation by user with non-ascii name) and CORE-3243 (CURRENT_USER and MON$USER don't work properly) that seems to work for the trusted authentication, but [at least] the legacy auth module has to be reviewed as it seems to deal with the user name "as is", without checking whether it arrived in UTF8 or not. 2013-03-24 16:16:29 +00:00
asfernandes
b9bc308a72 Work in progress fixing external triggers. 2013-03-23 21:12:27 +00:00
alexpeshkoff
afa0770781 1. Fixed broken by me a few time ago server shutdown.
2. Implemented prototype of TLS-based debugging helper holding information about 'What does firebird do now?"
   Currently it's more or less ready for use with JAttachment::release().
2013-03-15 16:37:32 +00:00
asfernandes
0d299d455a Remove FbMessage struct from the API.
This struct lost its main value (group various blr-related properties in a single parameter).
And since openCursor/fetch already split the message/buffer, it does not make sense anymore to have it.
2013-02-26 03:42:19 +00:00
asfernandes
b254fb11c7 Revert change of messages to void* in DSQL internals. 2013-02-24 16:26:00 +00:00
asfernandes
53d4d58113 Change message buffers type to void*. It adds some casts, but avoid them in users' code. 2013-02-23 03:09:17 +00:00
asfernandes
5c436f8d91 Misc. 2013-02-21 23:25:10 +00:00
alexpeshkoff
f1779a7398 Do not prefetch unneeded information in IAttachment::openCursor() 2013-02-19 12:03:07 +00:00
alexpeshkoff
ba9413b26a Add IStatement::getFlags() to help user make a solution what to do with SQL statement 2013-02-19 11:20:49 +00:00
alexpeshkoff
37d353d392 Make openCursor() use default output format when none is given explicitly 2013-02-18 13:53:46 +00:00
asfernandes
ddc4d4eac3 Misc. 2013-02-17 23:06:40 +00:00
alexpeshkoff
fc12495d0e Modified IStatement interface in our API:
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.
2013-02-17 12:08:53 +00:00
asfernandes
dc8e42e9bb Migrate external triggers to the new message-based style. 2013-01-29 01:21:32 +00:00
asfernandes
d9275d6567 Misc. 2013-01-07 01:15:24 +00:00
dimitr
e29b50f980 Front ported my yesterday's commits to trunk. 2012-12-23 07:10:56 +00:00
asfernandes
7e1ca71911 Misc. 2012-12-21 01:49:16 +00:00
alexpeshkoff
b3f9759960 Take locks in AST before building tdbb
Fixed assertion in CCH_exclusive_attachment 
Rolled back my changes required to let cancelOperation() enter engine after shutdown
Better locks' history in SyncObject
2012-12-18 13:54:18 +00:00
alexpeshkoff
c7454a49a5 Work in progress (committed due to SF upgrade). Checked only on SS.
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.
2012-12-14 17:59:02 +00:00
dimitr
4ff4290f11 Front-ported bugfixes related to CORE-4004: Sometimes long-running operations cannot be interrupted by asynchronous shutdown / cancellation requests. 2012-12-03 11:21:00 +00:00
dimitr
a85629a9de Fixed CORE-3977: DELETE FROM MON$STATEMENTS does not interrupt a longish fetch. 2012-11-11 15:33:18 +00:00
dimitr
657511babe Wiped out the legacy attachment level counters in favor of the already existing runtime statistics. Introduced a record lock counter (more to follow). 2012-11-01 00:16:55 +00:00
dimitr
9f2a992078 Implemented:
CORE-2780: Include client library version and protocol version in mon$attachments
CORE-2187: Return the Hostname in mon$attachments
CORE-3779: Report OS user name in MON$ATTACHMENTS
+ some cleanup.
2012-09-12 07:45:51 +00:00
dimitr
5f917a04ce Minor cleanup and simplification. 2012-08-28 18:19:09 +00:00
alexpeshkoff
0fc893a4e1 Better names for API functions 2012-06-26 13:43:26 +00:00
dimitr
42a4c93b97 1) Removed the no longer actual "parent lock" concept from both the lock and event managers.
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.
2012-06-21 15:37:38 +00:00
alexpeshkoff
2a01e4bcf9 Implemented CORE-3861: Make it possible to encrypt database
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
2012-05-31 16:53:42 +00:00
asfernandes
07557dc297 Misc. 2012-05-26 18:05:56 +00:00
robocop
642d506cd9 Change txn numbers to unsigned and commit after Vlad's review. If the compile-time checks (to ensure enough room for the new txn type) are too ugly, they may be deleted. 2012-05-19 12:04:37 +00:00
hvlad
d78703c9ae Improvement CORE-3539 : TRACE: add ability for logging ERRORs that occur in runtime (lock conflicts, PK/UK/FK violations et al) 2012-05-15 07:56:24 +00:00
hvlad
02adff3b63 Improvement CORE-3598 : TRACE: add statistics of actions that were after transaction finished 2012-05-12 09:48:32 +00:00
asfernandes
580172419b Misc. 2012-04-23 00:48:28 +00:00
hvlad
536c08cc01 Fixed bug CORE-3825 : If an autocommit transaction (i.e. transaction started with isc_tpb_autocommit option) run DDL using EXECUTE STATEMENT it will produce a bugcheck 287 (Too many savepoints) 2012-04-20 20:03:15 +00:00
hvlad
96a7fa2576 Front ported fix for bug CORE-3812 : Connection lost to database during massive dropping and altering primary keys of tables 2012-04-12 13:03:25 +00:00
robocop
70d5ebdfdf - Got rid of the fixed array that kept the stream count in the first element and 255 streams after it.
- 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.
2012-04-12 09:02:13 +00:00
alexpeshkoff
1ceb4847e1 Make plugins use passed instance of master interface, not one got from fb_get_master_interface(). This helps in case when >1 fbclient libraries is loaded by process. 2012-03-26 11:34:52 +00:00
alexpeshkoff
2f7c526728 Implemented CORE-3788: Make all utilities follow same rules when expanding database name 2012-03-14 08:46:27 +00:00
hvlad
52f3ed895e Fixed Windows build 2012-03-01 18:18:46 +00:00
alexpeshkoff
4e795f4047 Include platform definitions file common.h in firebird.h. Use OS-specific ThreadId instead artificial FB_THREAD_ID, avoiding unneeded casts in the code. This should fix BSD and MAC ports. 2012-03-01 08:55:43 +00:00
alexpeshkoff
12cf01d608 Cleanup unneeded parameter (was used in nbackup, where PIO is replaced with OS function calls) 2012-02-28 11:08:30 +00:00
asfernandes
435666cea5 Misc. 2012-02-26 14:27:27 +00:00
asfernandes
1198014fcf Renamed error constant/message by Alex request. 2012-02-25 13:55:04 +00:00
alexpeshkoff
acd923aabb No use in specially handling DBB_security_db when closing engine. Keep it commented for a while. 2012-02-24 12:27:36 +00:00
robocop
0b5ee78cb7 Make more members of blb private. 2012-02-15 07:13:41 +00:00
robocop
eed418a89e Make blb resemble more a class: private data members, convert some functions into methods, add methods with code that was in other files, etc. 2012-02-15 03:34:21 +00:00
robocop
186c817caa Playing with fire: converting some static functions into member functions. I tried to check every change I did. 2012-02-07 03:17:52 +00:00
asfernandes
27bb1f8bc1 1) Removed READ/WRITE BLOB sql commands. 2) Refactored request operations to fix server crashes. 2012-02-03 19:01:36 +00:00
robocop
21cd78a0fd Cleanup: unused functions, parameters & variables. 2012-01-24 03:37:43 +00:00
alexpeshkoff
7fb8ebd3a9 Fixed CORE-1898: Increase the password length from 8 characters, CORE-3372: Simplify process of non-default security database creation 2011-12-23 12:43:58 +00:00
dimitr
e7c9ebba12 Re-implemented the disabled code in the remote server. Cleaned up the legacy logic that doesn't look actual these days.
Some code refactoring.
2011-12-22 15:32:06 +00:00
dimitr
9bac54c2ca A little bit of safety doesn't hurt. 2011-11-09 13:31:27 +00:00
dimitr
444d5302e1 Refactored the tdbb initialization, especially in AST and BG threads.
Replaced dbb_use_count with a list of active requests (to be utilized later).
Misc cleanup.
2011-10-18 18:02:57 +00:00
dimitr
4263301039 Refactored the database shutdown. Work in progress. 2011-10-10 13:51:10 +00:00
alexpeshkoff
70ddf7a875 Make services work correctly with multiple security databases 2011-10-04 12:51:57 +00:00
asfernandes
5ae632cf0b Feature CORE-1288 - Sub Procedures.
They're very simple for now. No access to parent variables nor to call neighbour procedures.

Tests at http://firebird.cvs.sourceforge.net/viewvc/firebird/fbtcs/GTCS/tests/FB_SQL_SUBPROC_1.output.
2011-10-02 22:11:41 +00:00
hvlad
dc4abc05e4 Protect system attachments list with dedicated sync object. It prevents deadlocks with common sync object on process shutdown. 2011-10-02 10:19:06 +00:00
dimitr
b528faa162 Corrections. 2011-09-22 15:14:36 +00:00
dimitr
6c9840c261 Misc. 2011-09-20 15:31:47 +00:00
asfernandes
e1c4f46df2 Misc. 2011-08-13 17:07:01 +00:00
alexpeshkoff
b76a2d8c47 Getting ready for support of multiple security databases in services 2011-08-09 12:11:17 +00:00
asfernandes
4675f8d2d2 Fix build. 2011-08-05 02:10:05 +00:00
asfernandes
577e9e4b7e Misc. 2011-07-02 22:10:07 +00:00
hvlad
7cb28a7af6 Fixed some AV's reported privately 2011-06-29 20:18:37 +00:00
asfernandes
47489fa71b Misc. 2011-06-26 18:48:00 +00:00
robocop
5ad96271e6 Misc. 2011-06-24 06:34:16 +00:00
alexpeshkoff
18ef64b242 Fixed UnloadDetector in a case when it gets linked in non-plugin module 2011-06-14 11:34:26 +00:00
hvlad
81cec16f83 Fixed leak of SysAttachment instance. Noted by Claudio. 2011-06-13 11:09:19 +00:00
alexpeshkoff
40348295e1 Used upgradeInterface() in a number of places.
Fixed memory leak when unloading module, related with upgraded interfaces.
Fixed timer on posix to be high resolution.
Better diagnostic in services.
2011-06-10 12:53:51 +00:00
alexpeshkoff
4c02901734 Fixed segfault in execute statement, reported by Dmitry privately 2011-06-03 15:29:01 +00:00
asfernandes
e2bd4d0e55 Fixed CORE-3511 - Unquoted role names with non-ASCII characters passed in DPB are upper-cased wrongly. 2011-06-03 14:19:54 +00:00
asfernandes
2c9dd7e1ff Misc. 2011-05-28 02:05:45 +00:00
alexpeshkoff
2f85b664d7 Avoid deadlocks in timers. Fixes use of timers to delay plugin modules unload. 2011-05-27 11:31:29 +00:00
hvlad
99c9c8e2db Enabled background threads (garbage collector and cache writer).
Introduced special kind of system attachments used in this threads and show its activity in monitoring.
2011-05-27 07:57:16 +00:00
asfernandes
19cbed237b Misc. 2011-05-21 18:56:02 +00:00
alexpeshkoff
4641d2de68 Better interfaces hierarchy: all of them are derived from IVersioned 2011-05-19 16:24:46 +00:00
alexpeshkoff
85b3b5cf95 Interface for 2PC (distributed transactions coordinator) 2011-05-19 11:38:38 +00:00
asfernandes
7b72429210 Misc. 2011-05-13 01:15:18 +00:00
asfernandes
2fd18f68c9 Lets try to avoid global functions using name with mixed new (functionName) and old SUBSYS_name name style. 2011-05-11 17:42:44 +00:00
hvlad
479a7f600d Renamed currentProvider to EngineProvider to better reflect its nature and corrected its declaration (with Alex permission ;). Removed unneeded cast. 2011-05-11 14:45:56 +00:00
hvlad
177b43306c Adjust order of releasing metadata objects when attachment is released.
It also avoids assert in MET_verify_cache() pointed privately by Alex.
2011-05-11 09:39:57 +00:00
asfernandes
1c5770da81 Warning / error. 2011-05-11 02:43:39 +00:00
asfernandes
d0c2265105 Misc. 2011-05-10 01:12:14 +00:00
hvlad
fef1f49c94 Shared page cache implementation 2011-05-09 10:15:19 +00:00
asfernandes
69dc52ba48 Integrate IAttachment and ITransaction in the external engines API. 2011-05-07 19:52:44 +00:00
asfernandes
0b2ffeae81 Misc. 2011-04-30 02:28:31 +00:00
alexpeshkoff
c076b1d8c1 Added delay before unloading plugin module after last reference to that module outside plugin manager is gone 2011-04-29 16:24:27 +00:00
alexpeshkoff
d6f972c737 Check att_in_use before cancelling operation of attachment 2011-04-27 06:31:11 +00:00
asfernandes
a38da2a1bf Correction for statement repreparation. 2011-04-26 15:23:33 +00:00
asfernandes
9754526943 Misc; reinterpret to static casts; correction in YRequest version. 2011-04-26 01:00:33 +00:00
alexpeshkoff
256cb1e853 1. Use reference counted stable in global pool objects instead PublicHandle's validation.
2. Avoid massive segfaults when closing heavily loaded server.                                                                                 
3. Restored logic in YValve required for correct shutdown.                                                                                    
4. Do not change externally visible request body when preparing it.
2011-04-25 17:47:56 +00:00
asfernandes
d7127242c7 Improvement CORE-3446 - Allow conversion from/to BLOBs and others types in the API functions (XSQLVAR or blr messages). 2011-04-19 15:24:26 +00:00
asfernandes
b781d62d4a Make the new BLOB API use void* buffers, so applications can read/write char* strings or any other type without casts. 2011-04-15 18:54:02 +00:00
dimitr
77916f05f7 Fixed possible deadlock between the shutting down engine and the running service. Reported by RedSoft. 2011-04-15 16:37:31 +00:00
asfernandes
c63493ffba Added metadata support to IStatement. 2011-04-14 01:03:43 +00:00
alexpeshkoff
437d841cfa Rolled back my commit using IBlrMessage interface. Replaced with single plain structure FbMessage. 2011-04-13 12:41:40 +00:00
alexpeshkoff
e58f56c12f Fixed memory leak - thanks to Adriano 2011-04-11 11:22:03 +00:00
asfernandes
04bb4ba305 Remove unused parameter and rename a constant. 2011-04-09 20:00:00 +00:00
alexpeshkoff
9a4689d3e9 Use interface IBlrMessage instead passing C++ class pointer to API interface's functions 2011-04-08 16:43:05 +00:00
alexpeshkoff
4c3f87d6bd Continued renaming interfaces. Added comments 2011-04-08 15:18:50 +00:00
alexpeshkoff
5c88e478f6 Use better names for a number of objects according to Vlad's suggestion 2011-04-07 17:16:00 +00:00
asfernandes
03ce334e2b Misc 2011-04-04 13:37:47 +00:00