8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-31 00:43:02 +01:00
Commit Graph

329 Commits

Author SHA1 Message Date
robocop
3689f15321 Style. 2009-01-20 08:33:59 +00:00
asfernandes
296f170224 Misc 2009-01-04 20:32:35 +00:00
asfernandes
79e89d573d Misc 2009-01-03 19:02:04 +00:00
hvlad
8646bad2f9 Fixed bug CORE-2241 : Wrong number of records fetched when using index 2009-01-02 09:49:50 +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
5c97a235e3 Misc 2008-12-24 00:32:49 +00:00
robocop
2fadc0e456 Style. 2008-12-22 09:00:05 +00:00
asfernandes
5311dd5a5e Misc 2008-12-20 19:57:43 +00:00
robocop
9c9e4e9b0b There's no need to check whether a pointer is null before applying delete or delete[]. 2008-12-20 08:16:55 +00:00
robocop
ff99dc3d46 Style. 2008-12-18 10:47:25 +00:00
robocop
511c7eb7d8 Promote thread_data* as function argument. 2008-12-14 10:19:27 +00:00
asfernandes
8fbf0e8e8c Remove trailing spaces (.cpp files) 2008-12-05 01:20:14 +00:00
dimitr
3b03866f7e This change is intended to make the engine responsible to async requests (shutdown, cancellation, etc) while performing long index scans. 2008-09-16 10:27:30 +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
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
robocop
b629df88ff Correction for logic error (it worked by pure coincidence). 2008-06-05 10:56:14 +00:00
robocop
8a28565ea7 Misc. 2008-05-08 08:19:50 +00:00
dimitr
e0c6d0e13d Fixed CORE-1812. 2008-05-06 09:40:22 +00:00
hvlad
7970d15d65 A little correction and more explanations in comment 2008-04-03 11:13:20 +00:00
asfernandes
f0299cfb29 Misc 2008-04-03 01:11:26 +00:00
hvlad
259fafa647 Implement CORE-1819 : More efficient solution for CORE-1300 2008-04-02 23:46:59 +00:00
hvlad
f672d51a14 Avoid manipulations with TDBB_use_db_page_space flag in jrd_rel::getPagesInternal 2008-04-02 13:55:10 +00:00
dimitr
de8514ea4c Cleanup/refactoring. 2008-03-19 11:39:25 +00:00
alexpeshkoff
39896cb955 Fixed CORE-1671: atexit() calls in client libraries cause segfaults
and CORE-1079: Every attach of fbclient/fbembed library leaks 64KB of memory

To do it:
- created new template GlobalPtr, controlling access to destructors of global objects.
- applied it to global objects.

Also some related cleanup.
2008-01-23 15:52:40 +00:00
dimitr
db7d3ecd4c The merge continued. 2008-01-16 08:31:31 +00:00
hvlad
e833be6785 Correction for fix for CORE-1199. Thanks to Claudio 2007-12-17 07:36:46 +00:00
hvlad
37e3128777 Fixed bug CORE-1199 : Firebird SS: internal gds software consistency check (CCH_precedence: block marked (212), file: cch.cpp line: 3640) 2007-12-16 20:14:53 +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
paulbeach
7602a29b94 HPUX Port 2007-11-12 14:26:44 +00:00
asfernandes
f3ba6d4fa5 Misc 2007-08-29 02:33:35 +00:00
hvlad
8de5dd7342 Fixed bug CORE-1361 : Index operations for global temporary tables are not visible for the active connection 2007-08-28 20:17:36 +00:00
asfernandes
4cc5949028 Misc 2007-08-05 19:56:27 +00:00
hvlad
e196a9e42f Fixed bug CORE-1401 : Global temporary table instance may pick up not all indices 2007-08-02 20:20:16 +00:00
hvlad
04f367d0d2 Fixed CORE-1300 : Lower level index pages in missed from parent page 2007-06-02 12:15:18 +00:00
hvlad
512a33e0c0 Fixed CORE-1299 : Wrong index entries order at non-leaf b-tree pages 2007-06-02 12:10:40 +00:00
hvlad
f3163f9295 Fixed CORE-1298 : BTR\garbage_collect code can make a deadlock in a page cache 2007-06-02 12:07:52 +00:00
hvlad
13cfb0e2f6 Correct error handling in index creation code when no space left on disk 2007-04-25 20:54:36 +00:00
asfernandes
f676883248 Misc 2007-04-21 03:27:36 +00:00
robocop
0a0213ff84 Totally misc. 2007-04-19 07:51:22 +00:00
hvlad
7b020a53ba Fixed bug CORE-1215 : Wrong SELECT query results using index to evaluate >= condition 2007-04-18 10:47:10 +00:00
hvlad
8bfa87d892 Let store plain 64-bit record number in index_sort_record (and in sort scratch file) and became independent of additional fields of RecordNumber class.
Also pack index_sort_record structure to avoid compiler added padding which unnecessary grow sort scratch file
2007-03-20 18:02:10 +00:00
dimitr
a72f56ea4b Misc. 2007-02-08 14:03:41 +00:00
hvlad
2e343c74ef Implement improvement CORE-1069 : Optimize index scan when more than one index scanned and ANDed 2006-12-27 21:01:02 +00:00
robocop
9a61c5185f Totally misc. 2006-12-19 08:36:48 +00:00
alexpeshkoff
8896a21641 frontported fixes from 2.0 2006-12-15 17:30:41 +00:00
alexpeshkoff
f86fef0c48 Fixed CORE-1053 2006-12-14 16:20:35 +00:00
hvlad
f206c67d12 Fixed CORE-1040: Wrong single-segment ascending index on character field with NULL and empty string values 2006-12-06 09:37:25 +00:00
dimitr
543fc5e0d1 Enabled rescheduling points for classic. It allows to shutdown database or cancel operation timely for a heavy loaded attachment. 2006-10-31 15:59:23 +00:00
hvlad
c747acbbaa Fixed CORE-952: AV when blob is used in expression index 2006-10-17 11:03:20 +00:00
robocop
870b1a0363 Misc. 2006-10-08 06:43:59 +00:00
dimitr
988782a96a 1) A new class to handle aggregated multi-level performance counters.
2) Cleanup and minor fixing.
3) A few monitoring changes.
2006-10-07 10:53:01 +00:00
robocop
581d251c82 Misc: idx_id is already USHORT. 2006-09-15 07:24:31 +00:00
hvlad
04051ab102 Fix for CORE-895: possible unique index violation 2006-08-12 17:21:55 +00:00
hvlad
8d7cd54229 Correction to the fix :) 2006-06-01 16:28:38 +00:00
hvlad
029706631f Fixed unregistered FB2 bug:
endless loop when exception during index's expression evaluation occured
2006-06-01 16:25:30 +00:00
robocop
7040d668fd Misc. 2006-05-25 08:40:23 +00:00
dimitr
211645e3dc Getting rid of the old allocator routines. 2006-05-23 10:17:00 +00:00
asfernandes
24d936cd70 Misc 2006-05-22 01:29:06 +00:00
hvlad
701f2cbda4 Global temporary tables implementation 2006-05-21 22:07:35 +00:00
asfernandes
292ad66e96 Misc 2006-05-20 01:53:51 +00:00
alexpeshkoff
b056a118b5 1. Avoid use of STL
2. Reworked exceptions to make status_exception always hold correct status vector
3. Avoid use of RTTI
2006-05-19 15:17:02 +00:00
dimitr
8c66a4883a 1) Fixed wrong ALL results in the ODS11 optimizer.
2) Fixed SF #527681 -- Strange/Inconsistent query results
2006-05-17 19:15:41 +00:00
asfernandes
eb77ff3709 Misc 2006-05-01 02:26:10 +00:00
dimitr
b8342226e6 Const'ness. 2006-04-30 15:11:50 +00:00
alexpeshkoff
469589f573 Use Firebird::Array instead of STL's vector 2006-04-25 17:49:24 +00:00
robocop
d74438baed Fix the discordant data types between flags and the vars used to work with them (really dangerous if the flag is USHORT and you hold it in a UCHAR). Also, get rid of some debris of the uppercased typedefs. 2006-04-19 07:10:53 +00:00
hvlad
6cf18cc072 Bug fix: don't use page buffer after page was released - it can be replaced
by another page and may lead to serious corruptions
2006-04-18 12:45:22 +00:00
robocop
c5f2284b15 Style. 2006-04-06 08:18:53 +00:00
dimitr
5010e6b0cb Fixed the bug that caused unexpected bugcheck(205) in big databases. 2006-03-29 15:26:24 +00:00
robocop
10cb928ddc More cleanup. 2006-02-23 06:52:25 +00:00
robocop
1f84bac700 Mark unused data members, discover more code associated to conditional compilation, clean some places, replace custom loops by memcpy and memset when possible, etc. 2006-02-23 05:08:26 +00:00
hvlad
47ac2b981a bugfix 2006-02-08 10:11:46 +00:00
robocop
1ca7a582f9 EXPRESSION_INDICES code is considered stable and therefore there's no need to keep it protected by macros. Please do a full rebuild. 2006-01-14 07:00:44 +00:00
dimitr
2e258f4cf9 Fixed BUGCHECK(205) related to ODS11 index changes. 2006-01-08 08:21:46 +00:00
robocop
c76a021f70 Misc. 2005-11-29 06:18:06 +00:00
hvlad
80827a5284 1. Move IDX\eval_expr_idx into BTR_eval_expression
2. Replace similar code in BTR_key by new BTR_eval_expression
3. Use EXE_find_request in index expression evaluation to avoid AV in case of using index simultaneously in some connections
2005-11-28 21:43:06 +00:00
robocop
85c48cb387 Misc. 2005-10-28 04:15:09 +00:00
hvlad
15ac3a9f47 Fixed SF #223060
Slow processing of GREATER-THEN operator
2005-10-27 21:52:17 +00:00
hvlad
0216a3d2f5 Don't allow to create primary key constraint on non-null fields with null values.
For example:

create table buggg (f1 int not null, f2 int not null);
commit;

insert into buggg values (1, 1)
commit;

alter table buggg add pk int not null primary key;
or
alter table buggg add constraint pk_buggg primary key (pk)
or
alter table buggg add constraint pk_buggg primary key (f1, f2, pk)
2005-10-26 15:11:51 +00:00
dimitr
48a377cd7a Fixed server crashes caused by buffer overruns if too big index key was used. 2005-09-30 08:48:17 +00:00
robocop
6c89683142 Totally misc. 2005-07-31 00:45:38 +00:00
arnobrinkman
0725746548 Fix scope problem reported by Konstantin 2005-07-29 10:42:38 +00:00
arnobrinkman
14f667f4b6 Fix bug SF #1242982
Equality search on first segment (integer) in compound indexes resulted
in more scans on specific values (2^n, f.e. 131072) then needed.
2005-07-24 18:32:29 +00:00
dimitr
894fa1e011 Removed unused thread scheduling option. 2005-06-12 06:27:12 +00:00
asfernandes
59213efe7e Merge INTL branch into HEAD 2005-05-27 22:45:31 +00:00
hvlad
7fd4f64863 Correct previous fix for multisegment descending indexes 2005-05-08 09:43:36 +00:00
hvlad
f1d576feb4 Fixed unregistered bug - "index key too big" when creating descending index 2005-05-07 19:45:57 +00:00
hvlad
493bdd92cd Correct index validation code. Big thanks to Arno 2005-05-03 15:45:23 +00:00
hvlad
565b5e173b Undo my previous commit. Duplicate chains in not null keys in unique indexes not sorted by design. Changes must be done in index validation code 2005-05-01 19:23:04 +00:00
hvlad
735f369d76 Duplicate chains not sorted by record number in unique indices 2005-04-30 10:10:48 +00:00
dimitr
92dbd6ae59 More complete fix for DESC indices. 2005-02-22 06:32:35 +00:00
arnobrinkman
11a7710b92 Fix segment-selectivity values for descending indexes, reported by Dmitry Yemanov 2005-02-21 20:07:24 +00:00
hvlad
5247ca5bab Fix AV when expression index is created 2005-02-10 13:37:05 +00:00
hvlad
9826986fb8 Fix bug SF #1076858 2005-02-08 21:23:59 +00:00
arnobrinkman
a3b6944a75 Fix duplicate checking for unique indexes 2005-01-27 14:33:58 +00:00
robocop
8d4b89723f Welcome to paranoid programming. 2005-01-25 06:33:07 +00:00
dimitr
567fafa30c Fixed expression indices bugs. 2005-01-24 09:35:47 +00:00
robocop
229d08b927 Misc. 2005-01-22 04:16:55 +00:00
alexpeshkoff
f9898ffb5a fixed my bug with descending indices in referential constraints 2005-01-21 13:49:35 +00:00
arnobrinkman
eddac3c767 Fix index bug when a single NULL with recordnumber 0 was 2 times removed.
Due this the LevelNode was removed, which of course may never happen.
2005-01-03 19:24:48 +00:00
robocop
4012106884 Misc. 2004-12-25 09:44:03 +00:00
robocop
d65307b497 Style. 2004-12-24 08:52:39 +00:00
skidder
f44f06d085 Fix the memory leak from transaction pool when selectable stored procedures are called from PSQL or in subqueries 2004-12-07 01:19:55 +00:00
robocop
6c7f268dbd Style. 2004-12-04 06:50:38 +00:00
hvlad
ff69a28ece Don't check uniqueness for null keys - this leads to big waste of time 2004-12-03 07:55:32 +00:00
robocop
d6535351a2 Misc: style. 2004-11-24 09:22:07 +00:00
robocop
795a70df00 const. 2004-10-20 00:09:39 +00:00
dimitr
421f259a4e 1) Locks related cleanup
2) Got rid of TRA_nowait + transaction waits related cleanup
3) Return isc_lock_timeout when it's necessary
TODO: Enhance SET TRANSACTION
2004-10-07 09:15:32 +00:00
robocop
cad2990b6e Make comment clear 2004-10-02 09:26:21 +00:00
skidder
02a0915156 Teach engine to work with larger record numbers - 64-bit internally, 40-bit externally 2004-09-28 06:28:38 +00:00
arnobrinkman
9d63050cf4 bugfix in delete_node
litlle optimization in compress() function
2004-09-27 22:42:56 +00:00
robocop
d293b51c50 Things that don't change are const 2004-09-25 10:19:50 +00:00
arnobrinkman
3a5cec7e97 1) Add filename and linenumber to loginformation for ERR_BUGCHECK
2) Fix some index bugs and little refactoring
2004-09-24 00:11:32 +00:00
robocop
4c48615dc5 Style 2004-09-15 03:46:33 +00:00
dimitr
a975c23a96 Fixed the context pool management. 2004-09-03 06:10:23 +00:00
alexpeshkoff
c3db4aaa97 added (and used in sources) template to change and restore default pool 2004-08-30 18:11:08 +00:00
robocop
3a45a04ea7 MSVC6 doesn't keep variables in a for() only in that scope. This standard construction is rejected:
for (int i = ...);
for (int i = ...);
Put the variable again before the loops to be able to compile.
2004-08-27 04:46:01 +00:00
brodsom
15a5a276da Fix signed/unsigned comparisons 2004-08-26 21:47:19 +00:00
dimitr
9d37131978 Fixed a server crash I introduced recently. 2004-08-23 18:45:40 +00:00
arnobrinkman
2260f712f9 add missing initializations 2004-08-22 01:00:51 +00:00
dimitr
cfb0e2eb5a More asserts and some style changes. Thanks to Claudio. 2004-08-20 07:55:09 +00:00
dimitr
f84006b483 Cosmetics. 2004-08-20 07:18:16 +00:00
dimitr
89a31cdd07 Make EXPRESSION_INDICES generally working. 2004-08-20 04:04:06 +00:00
dimitr
d09aa165db The EXPRESSION_INDICES code now compiles. 2004-08-19 18:41:19 +00:00
skidder
faabb4b9b4 Fix some of the problems in new indices code noted by Valgrind. These fixes are result of discussion with Arno. But indices are still broken; Arno promised to fix remaining stuff from this area during next weekend 2004-08-19 00:48:11 +00:00
dimitr
ca4ea54a1e Small optimization of multiple OR booleans (or a constant IN predicate).
The idea is to use a single sparse bitmap for an index matching and hence avoid OR'ing bitmaps for every argument value.
Ported from Yaffil.
2004-08-17 17:52:19 +00:00
alexpeshkoff
31039a254e next step preparing to allocate auto objects memory from appropriate pool 2004-08-16 12:28:43 +00:00
arnobrinkman
5c1e32de9e Bugfix with dates below Julian date and old code removed 2004-08-07 16:44:05 +00:00
robocop
507f53d9bd Style and misc 2004-07-22 07:15:10 +00:00
arnobrinkman
cd36ca6e05 fix bug in ignore_nulls part 2004-07-20 18:57:42 +00:00
arnobrinkman
945fefb3b2 When we ignore NULLs in the index then we must already skip them very efficiently from the start. 2004-07-16 01:30:33 +00:00
arnobrinkman
401fb7d12f 1) Fix starting with and empty string index problem where empty string is passed in parameter. (STARTING WITH ?) ? = ''
2) New index structure ensures that NULLs cannot hold the same key-value as a data value.
3) Ignore NULLs already on scanning index where possible.
2004-07-15 23:01:12 +00:00
robocop
1bbb740b98 Undo inheritance in ODS page types as requested by Nickolay. Either some macros are too silly or the compiler is limited by the standard here.
Notice I may have missed some file that's not compiled in Win32.
2004-07-10 03:20:33 +00:00
skidder
f4e7ebdd3b Implement rudimentary framework to track lifetimes of active BLOBs.
This solves the following issues:
1) Outrageous memory consumption when blobs are converted from strings during request processing
2) Materialization doesn't cause invalidation of BLOB IDs too early.
Original behaviour caused errors with updatable views or procedures receiving BLOB arguments.
2004-06-22 20:13:10 +00:00
alexpeshkoff
1591a54e5e Thread cleanup:
1. Added macros to declare thread entrypoints
2. THD_mutex_* functions use Firebird::Mutex
3. Thread local storage use fb_tls.h
2004-06-08 13:41:08 +00:00
brodsom
64c1dee04e -Use C++ struct declaration style. 2004-05-24 17:31:47 +00:00
brodsom
bed146ad19 -Replace *_thread_data macros with inline functions (jrd step 2) 2004-05-23 03:18:10 +00:00
brodsom
f4ca41fa3d -Replace *_thread_data macros with inline functions (jrd step 1) 2004-05-22 14:28:54 +00:00
robocop
441817bd82 1.- Misc changes
2.- Style
3.- Recover dsc_ttype in dsc after Blas' cleanup as a synonym for dsc_sub_type in text types
2004-05-21 06:16:17 +00:00
brodsom
68cb86b274 - Remove *_THREAD_DATA definitions from thd.h, are unneeded and conflicts with definitions in providers/services main headers (which need to use undef).
- Use different names for each service/provider *_THREAD_DATA macros.
2004-05-19 18:14:29 +00:00
brodsom
9dbe1e64fe -Remove casts unneeded after macro cleaning 2004-05-14 18:43:34 +00:00
brodsom
1ffe279896 -Avoid shadow warning 2004-05-12 19:39:17 +00:00
brodsom
b30a0b8799 Macro cleaning 2004-05-12 00:02:37 +00:00
brodsom
62a4b10c22 -Replace define with const
-Remove ifdef cplusplus from internal code
-Remove unused macros
2004-05-06 18:09:24 +00:00
brodsom
2f4865a195 Replace defines for constants 2004-04-29 14:51:02 +00:00
brodsom
5cf9fdfc90 Removing ib_stdio.h 2004-04-28 22:43:34 +00:00
alexpeshkoff
045e9dc8ec 1. removed any mentions of blk_pool() from engine (and method itself)
2. replaced 'struct lls' with 'template Stack'
2004-04-18 14:22:27 +00:00
alexpeshkoff
0acfd46d50 better memory allocation for csb_idx_allocation 2004-04-04 08:25:40 +00:00
alexpeshkoff
98aebc619a changed csb_index_allocation to Array from str 2004-04-01 16:32:54 +00:00
robocop
faa41f7b3b Cleanup 2004-03-30 04:10:52 +00:00