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

81 Commits

Author SHA1 Message Date
alexpeshkoff
2dc25a44bb OSRI and new posix build 2010-10-12 08:02:57 +00:00
asfernandes
9b8171d5c1 1) Refactor nod_value_if.
2) Created ExprNode::expressionEqual method to replace a new big and ugly switch.
3) Make boolean referencers use BoolExprNode instead of jrd_nod, except nod_validate for now. This includes BinaryBoolNode and NotBoolNode working without jrd_nod references.
4) Rework in the impure allocation code (replace "csb_impure += ..." by CMP_impure calls).
2010-09-20 16:07:50 +00:00
asfernandes
53d7b386fa Move dozen of parameters of virtual/overriden function to OptimizerBlk 2010-08-25 03:10:12 +00:00
dimitr
c030d0f939 Let's consistently handle offsets as unsigned integers. 2010-04-08 12:17:54 +00:00
dimitr
d4c71039d5 Cleanup. 2010-01-18 11:56:39 +00:00
dimitr
87f8838a04 Cleanup. 2010-01-18 11:46:21 +00:00
dimitr
df53be29bf Misc. 2010-01-18 11:39:34 +00:00
dimitr
4862999990 Cleanup. Hopefully valid this time ;-) 2010-01-15 11:36:42 +00:00
dimitr
7d7aef4228 Cleanup and refactoring in the optimizer (mostly related to rivers and sort/merge). 2010-01-13 11:46:16 +00:00
dimitr
41df69ff26 Cleanup. 2010-01-12 11:45:49 +00:00
asfernandes
7b8ea84561 Sort maps refactor 2009-12-12 20:36:56 +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
b3b5166dbf Cleanup and eliminating gaps in flags. 2009-11-28 07:38:08 +00:00
asfernandes
79e9320875 Refactor aggregate handling into AggregateRsb class 2009-10-31 19:03:30 +00:00
asfernandes
d59001341c Misc 2009-10-31 17:31:48 +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
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
hvlad
6fde607f41 Fixed bug CORE-2616 : page 1530262 is of wrong type (expected 7, found 5) 2009-09-24 21:05:45 +00:00
dimitr
8c731a42d7 Misc. 2009-08-27 10:48:59 +00:00
dimitr
9b90f012ca Fixed CORE-1971: Set the fixed and documented check order for WHERE clause and other conditional sentences.
The order of evaluation is now always from left to right.
2009-07-12 10:16:15 +00:00
asfernandes
f6f364da49 Trim trailling spaces 2009-04-04 16:39:31 +00:00
robocop
a730fbf074 Get rid of more typedefs. 2009-04-03 10:07:55 +00:00
hvlad
0950f997fb Fixed bug CORE-2311 : Possible memory leak in WITH RECURSIVE query 2009-02-08 15:50:12 +00:00
robocop
2fadc0e456 Style. 2008-12-22 09:00:05 +00:00
asfernandes
ff5f8745fb Remove trailing spaces (.h files) 2008-12-05 00:56:15 +00:00
dimitr
a2eee6c085 Fixed CORE-2101: Bugcheck 249 when attempting to fetch outside the end-of-stream mark for the open PSQL cursor. 2008-10-08 11:59:56 +00:00
asfernandes
84da641b55 Fixed CORE-2034 - Problems related to CORE-1254 (Problem with DISTINCT and insensitive collations) re. UNICODE insensitive collations with DISTINCT or GROUP BY. 2008-08-08 01:44:42 +00:00
robocop
e44a99f339 Style and minor cleanup. 2008-05-10 03:44:57 +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
dimitr
a38b327886 Cleanup. Get rid of the JrdMemoryPool. 2008-01-29 10:11:52 +00:00
hvlad
4ec502a7f6 a) Refactor sort module. All related sort_work_file management moved into TempSpace class now. Former sort_work_file is now TempSpace::Segment
b) Add parameter names to declarations of TempSpace methods. It make sources much more readable, i believe, and allow IntelliSense to make useful hints
c) Reworked sort module to use more memory for merge buffers. It significantly increased speed of large sorts. Memory mostly reused from TempSpace memory blocks
2007-04-03 12:57:32 +00:00
asfernandes
5c26d54f02 1) Fixed CORE-899 - Problems with explicit cursors in unwanted states
2) Make RDB$DB_KEY in outer joins returns NULL when appropriate
2006-09-07 01:55:49 +00:00
asfernandes
151bbaf9ce Fix MSVC6 build 2006-08-02 19:45:49 +00:00
asfernandes
a34dcf3722 Misc 2006-08-02 01:43:50 +00:00
hvlad
b20aa92714 Common table expressions implementation 2006-08-01 20:37:58 +00:00
dimitr
c68587fe66 1. Virtual tables
2. ODS 11.1, procedure type and relation type
2006-07-17 17:44:18 +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
3389149564 The files rng.cpp, rng.h, rng_proto.h, bookmark.cpp and bookmark.h belong exclusively to PC_ENGINE, that's obsolete functionality.
Tenth step: some code was tagged PC_ENGINE but was for SCROLLABLE_CURSORS instead, hence restore it. Also, clean unused data members, obsolete BLR verbs and the like.
2006-02-07 08:08:49 +00:00
robocop
2011950972 The files rng.cpp, rng.h, rng_proto.h, bookmark.cpp and bookmark.h belong exclusively to PC_ENGINE, that's obsolete functionality.
Ninth step: while doing cleanup, I discovered some data members that aren't used anymore or that should be inside conditional code. This is the result.
2006-02-03 02:28:58 +00:00
robocop
ebf632d050 The files rng.cpp, rng.h, rng_proto.h, bookmark.cpp and bookmark.h belong exclusively to PC_ENGINE, that's obsolete functionality.
Third step: remove references to the deleted objects Bookmark and RefreshRange in blk.h and dbt.cpp (debug). Remove definition of Bookmark from rse.h. More to come.
2006-02-01 09:21:05 +00:00
robocop
d57942f544 Isolate scrollable cursors (checked by Dmitry Y.) 2005-12-31 05:58:36 +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
robocop
4ec65d006a Get rid of some redundant or unused stuff. 2005-11-06 03:31:16 +00:00
robocop
3f0b18df85 Misc. 2005-05-16 09:15:31 +00:00
alexpeshkoff
5729790ed6 1. Applied class MetaName
2. Small generic cleanup
2005-05-12 18:28:04 +00:00
skidder
d65eac7698 Go back to passing pointers to impure areas instead of direct bitmap pointers. The approach I tried doesn't work with nod_bit_in correctly and doesn't seem pretty to me anymore 2004-10-28 23:26:16 +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
f42e0e4f55 Bugfix with OUTER JOINS
Finally i got them as they should have been
2004-08-07 16:49:00 +00:00
skidder
2915fcf547 Somewhat simplify invariant tracking stuff. It is more pessimistic now, but should work more reliably when invariants are modified (see QMDB tests for details) 2004-06-25 22:12:20 +00:00
brodsom
64c1dee04e -Use C++ struct declaration style. 2004-05-24 17:31:47 +00:00