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

342 Commits

Author SHA1 Message Date
asfernandes
4763533669 Refactor jrd_req into JrdStatement (shared part) and jrd_req (execution of a statement).
Fixed some bugs found in the way.
2010-04-18 22:19:11 +00:00
alexpeshkoff
88b8a40a04 1. Cleaned up most of SUPERSERVER usage.
SUPERSERVER has 4 different meanings in our code:
- this is milticlient server (replaced with Config::getMultiClientServer())
- use shared data cache (replaced with Config::getSharedCache())
- use shared metadata cache (replaced with macro SHARED_METADATA_CACHE)
- database are NOT shared between processes (replaced with getSharedDatabase())

2. Use fb_smp_server as both superclassic and classic binary on posix
(xinetd autodecection is done).

3. Small posix build cleanup.
2010-04-15 14:40:27 +00:00
asfernandes
e1ba33a2ae Fix problem of the system transaction storing pointer to random or already deallocated attachment. Full build (or kind of) required. 2010-04-02 21:48:15 +00:00
hvlad
521f7a5cbc Fixed bug CORE-2879 : Sweep could raise error : page 0 is of wrong type (expected 6, found 1) 2010-02-22 11:09:59 +00:00
robocop
3b5a0fdae5 The way AccessItem instances were ordered was a hack that sooner or later would fail when adding more object types (that now have ACLs but we still don't enfornce them). Further, comparing numbers is faster than comparing strings. 2010-02-13 08:31:16 +00:00
dimitr
4c4a77a4fe Refactored SQZ into a class. Fixed all the SCHAR* pointers to be UCHAR* + appropriate cleanup.
Make the interface and internals friendly to any byte sequence, even the one longer than 32K.
2010-02-12 12:53:06 +00:00
robocop
656dcdb1a5 Got rid of some casts. Please double check it as it's critical for data. The only trick seems to be taking the value of a byte as a signed char, so it can become negative. 2010-02-12 11:29:51 +00:00
robocop
753f914fb1 CORE-2858: Possible memory trashing when raising some exceptions to signal failed security checks. Thanks Dmitry. 2010-02-12 11:22:22 +00:00
robocop
1d87d749f0 Misc. 2010-01-26 08:20:27 +00:00
asfernandes
2faab16698 Misc 2010-01-21 02:51:32 +00:00
hvlad
258f322f67 Avoid possible deadlock in VIO. 2010-01-19 18:41:44 +00:00
hvlad
abdfa188d5 Preserve record's flags when gathering record from fragments. Its used in prepare_update() to check if primary record was backed out. 2010-01-19 18:38:52 +00:00
asfernandes
e8cc188227 Store the view context type when it doesn't came from backup and simplify the code. Still problems altering procedures used in views. 2009-12-28 15:31:09 +00:00
asfernandes
d8c99a9be2 1) Make procedures and functions member of the same hierarchy (Routine class)
2) Some completion for external functions
2009-12-27 22:05:22 +00:00
asfernandes
534b8c020e Misc 2009-12-25 19:29:58 +00:00
dimitr
ea23c03133 PSQL functions (security). 2009-12-25 12:58:06 +00:00
dimitr
cd6f04ffb2 Corrections. 2009-12-25 10:49:53 +00:00
dimitr
cb4d798aca Corrections. 2009-12-25 09:50:35 +00:00
robocop
f3091483ca Misc. 2009-12-25 04:41:10 +00:00
dimitr
33155c65b7 An alternative way to assign auto-generated metadata IDs while restoring a database. It doesn't require system triggers.
If nobody objects, I will migrate procedure/exception/generator IDs to this approach and then redo my system triggers cleanup.
2009-12-24 15:41:39 +00:00
dimitr
6e1f8db753 Metadata cache support for PSQL functions. 2009-12-24 14:15:21 +00:00
dimitr
debe65bcfb Support for PSQL functions (other JRD changes). Still work in progress. 2009-12-21 17:43:01 +00:00
robocop
00c5d74904 Cleanup. 2009-12-13 13:49:43 +00:00
dimitr
11495a55fb Refactored the whole RSB stuff into classes. They're inside the /recsrc sub-directory now.
Fixed the layering for WITH LOCK and (partially) ANY/ALL predicates.
Cleaned up the outdated code that never worked (mapping DISTINCT to an index, some VMS remainings).
Wiped out a lot of the pre-ODS11 optimizer logic. Some minor adjustments there.
Re-implemented the full outer join from scratch. This resolves CORE-2678 (full outer join cannot use available indices).
Resolved CORE-2796: DB_KEY is always zero for external tables.
Implemented the core part of the scrollable PSQL cursors. Implementation is still incomplete, but ready for testing.
Some other changes I don't recall at the moment ;-)

WARNING! The engine may be unstable. Please email me about any issues found.
2009-12-09 18:45:44 +00:00
robocop
f955568fc9 The architect created ODS12 and saw it was good, then he said "thy shall be the only one among your race", dropped the older ones and sent the developers to the four corners of the cyberspace to convert the masses to ODS12. 2009-11-27 02:33:40 +00:00
robocop
2ffcc8b2ce Style. 2009-11-25 04:06:48 +00:00
asfernandes
13e1546a70 Misc 2009-11-21 00:10:16 +00:00
robocop
9ce4040042 Replace the now obsolete dbb_minor_original by dbb_minor_version. 2009-11-18 12:02:00 +00:00
robocop
1386adcf90 Style. 2009-11-16 08:06:31 +00:00
asfernandes
79caf4e326 Improve efficiency and error reporting of CORE-1180 2009-11-11 15:12:56 +00:00
dimitr
e6909de7f7 Wipe out the SCROLLABLE_CURSORS code + minor cleanup.
Also, surfaced scrollability for PSQL cursors (without internal support yet).
2009-10-31 06:25:01 +00:00
asfernandes
a52967acfb Misc 2009-10-29 14:39:50 +00:00
asfernandes
ed0e0daeb3 - External Engines implementation.
- Plugins API.

- Feature CORE-2700 - UDR (User Defined Routines) Engine - C++ API supporting functions, triggers and stored procedures.
- Feature CORE-2470 - Support for alternate format of strings literals.
- Feature CORE-2310 - DDL triggers.
- Feature CORE-2312 - PSQL Packages.
- Feature CORE-1209 - CONTINUE statement.
- Feature CORE-1180 - DDL syntax to change (not) nullable state of columns.
- Feature CORE-2090 - Support OVER () clause with current aggregate functions.

- Fixed CORE-2699 - Common table expression context could be used with parameters.

- Introduce ODS 12.0.

- Work in progress in type-safe parser.
- Refactor some DDL commands (procedures and triggers) from DYN to DdlNodes.
- Refactor virtual tables to use a class hierarchy instead of namespaces. This is basic thing, not based on the changes done in Vulcan. Window functions is based on this work.
- Refactor COMMENT ON and DROP FUNCTION from DYN to DdlNodes. COMMENT ON do not use GDML anymore, it uses DSQL with PreparedStatement class.
- Refactor EXECUTE BLOCK to StmtNodes.
- Refactor the IUDF to SysFunctions. That eliminates RDB$GET_CONTEXT and RDB$SET_CONTEXT from RDB$FUNCTIONS.
2009-10-21 00:42:38 +00:00
asfernandes
90dfb9a411 Misc 2009-09-30 01:10:11 +00:00
alexpeshkoff
b19dacee16 Ported fix for CORE-2634: Performance regression when restoring database with big metadata 2009-09-29 10:35:16 +00:00
robocop
17cefa486e Comments. 2009-08-21 08:54:56 +00:00
robocop
bb83e70cfe Isolate even more the scrollable cursors-related code. 2009-06-22 08:45:38 +00:00
asfernandes
26c1892310 Misc 2009-06-20 18:46:59 +00:00
hvlad
e0a9bd88d9 Initialize variables before it could be used.
GCC complains about potential use of not initialized variables : if exception occurs "goto gc_exit" will bypass initialization.
2009-06-19 13:34:06 +00:00
robocop
3c65def766 - Better input type for SQZ_decompress plus a bit of style.
- Txn state is int.
- Some internal data is better handled as plain int.
2009-06-14 12:19:32 +00:00
robocop
ad1621c0e5 Style. 2009-06-13 05:40:47 +00:00
robocop
6e1ec65c25 Misc. 2009-06-10 14:09:39 +00:00
hvlad
643a6f933b Undo huge and not friendly fix for Sun compiler 2009-06-10 12:11:53 +00:00
robocop
bfcf6a699d Missing rpb_page/rpb_line changes and misc. 2009-06-10 10:50:45 +00:00
alexpeshkoff
cf14a23b6f Fixed Sun compiler build 2009-06-10 10:09:01 +00:00
robocop
2d7cb94844 Unused params
Some BLR checks
2009-04-28 13:08:04 +00:00
robocop
888000e21e Unused function params. 2009-04-26 10:24:44 +00:00
asfernandes
f6f364da49 Trim trailling spaces 2009-04-04 16:39:31 +00:00
hvlad
062a1a2216 Fixed bug CORE-2397 : If you drop two different indexes within the same transaction, you get database corruption 2009-03-30 08:40:19 +00:00
robocop
fab6a3a6cf Get rid of superflous parentheses. 2009-02-28 11:57:40 +00:00
alexpeshkoff
40e2f7f892 Fixed transactions support in user management commands 2009-02-19 12:59:32 +00:00
hvlad
115602ff06 Trace services support 2009-02-01 22:10:12 +00:00
robocop
3689f15321 Style. 2009-01-20 08:33:59 +00:00
robocop
21bb7f3d20 Style. 2009-01-03 09:14:29 +00:00
robocop
6406e45337 Shut up compiler warnings (unreferenced vars, uninitialized vars, compile-time conditional code, etc.) 2009-01-02 06:36:12 +00:00
asfernandes
5a85277726 Misc 2008-12-25 14:25:01 +00:00
robocop
762d7e1392 Style. 2008-12-25 06:09:37 +00:00
robocop
2fadc0e456 Style. 2008-12-22 09:00:05 +00:00
robocop
e63b46bb9c There's no need to check whether a pointer is null before applying delete or delete[]. 2008-12-21 03:50:29 +00:00
robocop
e0bc2dd4f5 Style. 2008-12-19 11:12:28 +00:00
robocop
e4650d5027 Promote thread_data* as function argument. Only exception where both tdbb and dbb were left together as arguments is nbak.cpp's call to CCH_rollover_to_shadow to avoid any side effect in the changed code, but anyway, that function calls SDW_rollover_to_shadow that takes the dbb from the tdbb and not explicitly. 2008-12-14 09:28:25 +00:00
robocop
d39690fbff Style (and let lines grow up to 100 columns). 2008-12-04 09:29:16 +00:00
asfernandes
3dcddd6ed5 Misc 2008-11-30 02:23:01 +00:00
dimitr
e0db5f3ecd Splitted the undo log into two parts: in-memory one for initial undo items (but they're much more dense now) and on-disk (cached up to TempSpaceLimit) one for full record versions (used in update-in-place).
This dramatically reduces the memory usage for bulk updates, thus solving CORE-1575 (serious memory bug on multiple update a table in a single transaction) and CORE-1477 (Avoiding excessive memory consumption by undo-log after series of updates) and predicting out-of-memory conditions that could often lead to record-level corruptions.
2008-10-14 10:32:54 +00:00
alexpeshkoff
e79f55708d 1. Cleanup - use Firebird::Semaphore instead of local events, removed code
related with local events from isc_sync.cpp.

2. Cleanup - removed unused parameter 'number of events' from ISC_event_wait()
and two unused parameters from ISC_event_init().

3. Added SYSV-semaphore based implementation of IPC to isc_sync.cpp.
This should fix CORE-2102: Firebird 2.5 does not build on MacOS (Darwin).

4. Fixed use of posic CS without (x)inetd (i.e. fb_inet_server -s).

5. Fixed (to be reviewed by Dmitry) recovery after some process death in lock manager.
2008-10-10 15:58:05 +00:00
asfernandes
28e3a05434 Misc 2008-10-09 01:05:13 +00:00
dimitr
d58aa84877 Misc. 2008-10-08 11:58:17 +00:00
dimitr
a73d0c72ea Misc. 2008-09-02 07:31:07 +00:00
alexpeshkoff
13a15d4bfe 1. Final fix for CORE-1964 - finished vararg cleanup in jrd.
2. Generic cleanup of error reporting functions all around engine.
2008-08-27 12:20:47 +00:00
hvlad
53f21b34c8 Fixed bug CORE-1970 : Lock conversion denied (215) error may occurs 2008-07-17 12:49:19 +00:00
asfernandes
1442725a4a Fixed CORE-1986 - Altering domains name drops dependencies using the domain 2008-07-15 15:41:43 +00:00
roman-simakov
a9203adf92 Patch from Alexander Potapchenko for improvement foreign key handling. Now one can reference to key fields of active record when they are not changed. 2008-06-30 12:23:48 +00:00
alexpeshkoff
a2e416210b Fixed CORE-1964: Use of 0 instead of isc_arg_end to terminate list of ERR_post's (and cousines) arguments is invalid.
Also cleaned up use of gds__log() in a few places.
2008-06-26 09:47:59 +00:00
dimitr
fe2e2ed3a3 Fixed CORE-1958: Bugcheck 179 (decompression overran buffer) when attempting to update the same record multiple times. 2008-06-24 18:24:46 +00:00
hvlad
422338e5e3 Lock att_mutex in Attachment's constructor 2008-05-08 07:45:19 +00:00
dimitr
0a9e8c8382 Implemented CORE-1751. The changes include:
1) Make memory counters aggregated.
2) Add attachment pool and allocate appropriate resources out of this pool.
3) Always release attachments explicitly (via destructor).
4) Always delete user requests prior to attachment deletion.
5) Introduce memory usage counters per every monitoring object.
6) Misc refactoring.
Some pieces are still incomplete (although everything basically works), but I'd like to get feedback and testing sooner rather than later.
2008-05-06 08:46:39 +00:00
hvlad
a8d9303dc7 Restore att_mutex blocking logic as prior commit broked EXECUTE STATEMENT. Add extra mt protection in cancel_attachments. 2008-05-04 21:24:33 +00:00
hvlad
9280a572a0 Avoid long blocking of att_mutex and make sure it is always released when attachment deleted.
Move active requests cancellation at engine shutdown from Y-valve into engine and let them stop execution before deletion of attachments.
Make sweep run in separate thread despite of engine architecture.
2008-05-04 12:49:29 +00:00
asfernandes
8d04f25fb3 Misc 2008-04-30 01:42:09 +00:00
hvlad
b04aa77f13 Fixed bug CORE-1830 2008-04-28 09:35:10 +00:00
asfernandes
f0299cfb29 Misc 2008-04-03 01:11:26 +00:00
hvlad
37a03b26b8 Split TDBB_deferred flag by two separate flags as its used for two different purposes now 2008-04-02 13:46:29 +00:00
robocop
3e724a9286 Misc. 2008-03-18 13:02:21 +00:00
asfernandes
493a6eab3c Misc 2008-03-17 02:00:16 +00:00
alexpeshkoff
d3ec37bba0 Fixed CORE-1770: Bugcheck 291 in DDL 2008-03-16 17:10:41 +00:00
dimitr
afb970dba1 1) Cleanup.
2) Catch exceptions in AST routines.
2008-03-12 16:53:57 +00:00
robocop
97d0692180 Cleanup. Done separately in case bad behavior happens.
Notice you can't safely assume SCHAR is signed char since Mike Nordell made it a synonym for plain char that's compiler-dependent.
SCHAR is defined in both types_pub.h and fb_types.h.
2008-03-10 09:42:48 +00:00
robocop
30b4021b88 Pass thread_db* since it's available from the caller. 2008-03-08 11:33:57 +00:00
hvlad
7d54298dea Fixed CORE-1775 : Improve performance of security checking 2008-03-06 13:13:31 +00:00
robocop
4c3381ef6b Style, constness and macro cleanup. 2008-02-03 10:41:44 +00:00
dimitr
a38b327886 Cleanup. Get rid of the JrdMemoryPool. 2008-01-29 10:11:52 +00:00
dimitr
43594ed53a Major synchronization changes. Description of the commit will be posted to fb-devel. 2008-01-26 13:17:19 +00:00
dimitr
ae692fc319 The merge continued. 2008-01-16 10:17:51 +00:00
asfernandes
37d3c84da2 Misc 2007-12-17 23:58:42 +00:00
hvlad
025a8d13cc Fixed unregistered bug : wrong record number calculation in garbage collector thread 2007-12-17 12:15:36 +00:00
dimitr
d276641cc8 Fixed CORE-1610 and its subtask CORE-1615. 2007-12-10 07:18:54 +00:00
alexpeshkoff
eea9070f48 Optimized RuntimeStaticstics (and related part of ThreadDb) for performance - some tests run 25faster 2007-12-03 15:46:39 +00:00
dimitr
6d8033f146 Fixed the server crash that appeared after a recent restore.epp commit by Nickolay.
Now a domain can be altered while not being linked to a particilar relation yet.
2007-10-31 12:00:16 +00:00
robocop
fa1538a1ae Minor changes in MetaName usage. 2007-08-26 09:05:29 +00:00
asfernandes
a568843ccd Fixed CORE-1395 - Few problems with domains's check constraints 2007-08-04 02:11:07 +00:00