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

66 Commits

Author SHA1 Message Date
dimitr
05c27aa212 Integrated the jumping information natively into the index bucket.
WARNING: This is an ODS change, databases must be recreated.
2012-03-14 14:33:41 +00:00
dimitr
ea73eb8935 Misc. 2012-01-08 09:40:58 +00:00
dimitr
bccfda7aa6 Misc. 2011-02-15 07:32:56 +00:00
dimitr
a59dc809a0 Misc. 2011-02-12 08:59:55 +00:00
alexpeshkoff
f89ac854ef Getting ready to use 32 (not 31) page and transaction numbers 2011-01-21 17:55:04 +00:00
asfernandes
c9ec26c0c3 Feature CORE-726 - Boolean data type 2010-12-18 02:17:06 +00:00
asfernandes
9c42d4e5af Finish the statements refactor in the engine. Get rid of jrd_nod. 2010-12-04 22:15:03 +00:00
asfernandes
a3064848d6 Make ExprNodes and RecordSourceNodes reference others directly instead of via jrd_nod.
Store ValueExprNodes instead of jrd_nod in the metadata cache.
Make RecordSourceNode child of ExprNode as they share most operations.
Get rid of the JRD visitors in favor of direct calls.
Convert assignments statement lists created inside expressions to separate source and targets ValuesExprNodes.
2010-11-21 03:47:29 +00:00
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
dimitr
1c9adc5300 Cleanup. 2010-04-06 16:26:27 +00:00
dimitr
de48af30a7 Cleanup. 2010-01-28 10:46:40 +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
asfernandes
d81d9da928 Misc 2009-09-25 02:17:08 +00:00
hvlad
6fde607f41 Fixed bug CORE-2616 : page 1530262 is of wrong type (expected 7, found 5) 2009-09-24 21:05:45 +00:00
robocop
f3fdc5b5c7 Give idx_id and associated values a consistent data type and treatment. 2009-06-21 06:04:18 +00:00
robocop
a958da87f5 Style. 2009-06-21 05:46:51 +00:00
alexpeshkoff
b9db12c676 Solaris port 2009-05-27 11:32:59 +00:00
alexpeshkoff
bd680bcb47 Solaris port 2008-12-28 15:26:05 +00:00
asfernandes
ff5f8745fb Remove trailing spaces (.h files) 2008-12-05 00:56:15 +00:00
robocop
e44a99f339 Style and minor cleanup. 2008-05-10 03:44:57 +00:00
hvlad
259fafa647 Implement CORE-1819 : More efficient solution for CORE-1300 2008-04-02 23:46:59 +00:00
dimitr
f5659c0b70 1) Major cleanup of the old-style blk and allocator-based blk_type.
2) Added synchronization for the JRD locks.
2008-03-19 16:19:56 +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
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
robocop
f00fc0ff56 1.- Make "vec" type safe and get rid of several code contortions. Fix some small bugs meanwhile.
2.- Put inside PC_ENGINE several data members that belong to that feature.
3.- Put inside PC_ENGINE the code that does cleanup on those unused data members.
2005-12-02 07:35:34 +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
hvlad
08c8843d5c Correction 2005-08-10 13:36:42 +00:00
asfernandes
59213efe7e Merge INTL branch into HEAD 2005-05-27 22:45:31 +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
arnobrinkman
36f0cc2527 fix problem with duplicate keys and wrong second recordnumber order in IDX_create_index 2004-10-05 21:09:51 +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
5c1e32de9e Bugfix with dates below Julian date and old code removed 2004-08-07 16:44:05 +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
brodsom
ebd158a5b1 Comment unused macro 2004-05-02 22:36:35 +00:00
brodsom
2f4865a195 Replace defines for constants 2004-04-29 14:51:02 +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
robocop
1824343930 Cleanup.
Fixed a linking error with MSVC6, too.
2004-03-28 09:10:30 +00:00
alexpeshkoff
7007d6f2a4 1. introduced Jrd and Ods namespaces
2. cleanup of blk* request conversions
3. fixed memory allocation in Execute Statement
2004-03-20 14:57:40 +00:00
robocop
958f9e31aa Cleanup
A few new[] - delete[] pairs fixed.
2004-03-19 06:14:53 +00:00
robocop
f58c769c37 Cleanup. In geeky words:
PandoraBox* pbox = reinterpret_cast<PandoraBox*>(&can_of_worms);
pbox->open();
pbox->flush();
Nickolay may want to undo my ods.h changes if gcc insists
in its crusade against non-PODs and poodles.
2004-03-18 05:56:06 +00:00
robocop
2ab1f94dd2 Cleanup
Some minor corrections
Second step to rename
2004-03-11 05:04:26 +00:00
robocop
5c3c8abd9a Big cleanup.
God have pity on platform maintainers.
I only can compile/test Win32; sorry, folks.
2004-02-20 06:43:27 +00:00
robocop
663e3b16e7 Cleanup 2004-02-02 11:02:12 +00:00
skidder
7dc877ff23 Fix ODS10 support after per-segment index selectivity was introduced 2003-12-31 22:40:09 +00:00
dimitr
6ae0d51b91 IMPORTANT - this commit introduces an ODS change!
1. Added selectivity to idx_repeat and irtd
2. Let's make the selectivity array independent from ODS
3. Cleanup
TODO - use per-segment selectivities in the optimizer and get rid of idx::idx_selectivity for ever
2003-12-14 18:22:06 +00:00
arnobrinkman
710037031f Enhanced Index Structure.
1) NULLs on top when sorting on ASC index, DESC stays the same.
2) Support for larger index lengths, can be up to 1/4 page size.
3) Store record-number on non-leafpages for faster lookup in many duplicates.
4) Jump-nodes for faster key-lookup in index on larger page-sizes.
5) Segment selectivity calculation added.
2003-12-01 02:37:25 +00:00
dimitr
f99e3373d4 Let's support segment-level selectivities. Amen. 2003-11-30 21:14:30 +00:00
skidder
e0ecc4583c Finish fixing class/struct inconsistencies. Firebird now builds using MSVC2003 2003-11-30 19:13:42 +00:00