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

63 Commits

Author SHA1 Message Date
tamlin
3ef654d69f Just a bit of cleanup, nothing interesting. 2003-03-02 16:17:08 +00:00
arnobrinkman
28c3eb69a3 Comments added 2003-02-27 23:07:15 +00:00
tamlin
b99ae4c70c Basic code cleanup and fixed a problem spotted by Dmitry Yemanov. 2003-02-27 18:46:49 +00:00
tamlin
66527bca20 Fix optimizer crasher with too many streams (UCHAR overflow/wrap-around). 2003-02-27 16:28:53 +00:00
arnobrinkman
57eb03f09f bugfix: Fix FB1.5 optimizer bug which causes the server to crash. 2003-02-25 18:34:52 +00:00
dimitr
09c3847515 A bit reworked fixed-size vector allocations. Thanks to Mike for the hint. 2003-02-23 10:23:19 +00:00
dimitr
18549a8e14 Cleanup and some economy of the stack space (in favor of the heap). Performance penalty isn't noticable. 2003-02-22 17:09:02 +00:00
dimitr
02963521f8 Some cleanup of the optimizer. 2003-02-22 15:10:29 +00:00
dimitr
09dec233aa Made the optimizer a bit better in the case of old index statistics. 2003-02-22 12:20:53 +00:00
tamlin
f5676d103e A little bit of code cleanup and addition of a few asserts, to get early warning before it crashes. 2003-02-22 10:10:37 +00:00
arnobrinkman
59c31c48bc Let the optimizer build MERGE/SORT where possible.
This is : Multiple STORED PROCEDURES and/or VIEWS with internally aggregate or union
2003-02-22 00:48:38 +00:00
dimitr
17f69fc9e5 Fixed stack oveflow caused by deep recursion and big stack arrays in the optimizer. 2003-02-20 10:58:46 +00:00
arnobrinkman
afc3d38954 More optimizer enhancements.
When an equal-node and other nodes (geq, leq, between...) are available for an index retrieval, then use the equal node always instead of the others.
2003-02-15 01:35:19 +00:00
brodsom
3cb91fce80 Remove PIPE and STACK defines (PIPE_SERVER, PIPE_CLIENT, PIPE_LIBRARY, PIPE_SERVER_YVALUE, PIPE_BRIDGE_TO_V3, V3, V3_PATH, ALTPIPE)(STACK_EFFICIENT, STACK_REDUCTION) 2003-02-14 02:24:44 +00:00
dimitr
67749f906b Fixed exception handling. 2003-02-13 13:33:57 +00:00
dimitr
b096a2593d CONST -> const 2003-02-13 10:11:35 +00:00
eku
a7f18b2e31 Removed "register" variables from the source code. It's up to the compiler
to hold variables in CPU registers.
2003-02-10 13:28:35 +00:00
arnobrinkman
52a7ba0d51 bugfix: a simple LEFT JOIN on a VIEW with only a ON clause didn't use an index even if it was possible.
SF BUG # [ 508594 ]
2003-02-01 00:08:18 +00:00
arnobrinkman
fcb77779fa More and better optimizations with "complex" JOIN queries (LEFT JOIN, views, sp etc...).
bugfix: An SORT can't be generated when there are already RSBs on the stack, because this will lead to strange values. See also SF BUG # [ 221921 ].
2003-01-22 00:17:27 +00:00
arnobrinkman
d4624c794e bugfix: SF BUG # [ 221921 ] ORDER BY has no effect 2003-01-12 22:33:43 +00:00
arnobrinkman
a09fc594fb Reworked the last bugfix by dmitry 2003-01-12 13:55:35 +00:00
dimitr
ab4b67b24c 1. More proper implementation of my last bugfix.
2. Fixed known problems with explicit plans.
2003-01-11 19:04:36 +00:00
dimitr
2b0913546f Fix for the optimizer issue with compound indices. Leave it up to Arno to decide whether this fix is correct or not. 2003-01-11 18:02:17 +00:00
arnobrinkman
c83b1db4a7 more cosmetic changes to opt.cpp
bugfix: When UNIONS where used in a VIEW and that VIEW was used in the where clause inside an sub-select then the engine crashed !!
2002-12-31 00:12:18 +00:00
arnobrinkman
7e2b62528a bugfix: OUTER JOINs and no current record for fetch operation, caused by previous optimizer change 2002-12-28 00:20:45 +00:00
arnobrinkman
aa638632a3 another bugfix Alpha5 "no current record for fetch operation"
Added code so that more index-retrieval can be used.
Cases where an LEFT OUTER JOIN messed-up the optimizer should be much lower.
Example :
SELECT * FROM
  SomeTable t1
  LEFT JOIN AnotherTable t2 ON (t1.PK_Key = t2.FK_Key)
  JOIN AnotherTable t3 ON (t1.PK_Key = t3.FK_Key)

This change fixed also BUG SF #219525.
2002-12-16 00:45:35 +00:00
arnobrinkman
7f67f42a5f bugfix: no index was used for STARTING WITH and IS NULL comparison inside OR structures. 2002-12-04 20:05:04 +00:00
arnobrinkman
fb42c5b975 Cosmetic changes with thanks to Claudio V.
A better/logical change so that the optimizer can use indices in sub-selects and aggregate-statements.
2002-12-04 18:39:14 +00:00
eku
34e9391a97 Use the new macro FB_NELEM to calculate the number of elements in an array. 2002-12-02 09:45:52 +00:00
arnobrinkman
b5f4f72800 1) bugfix another LEFT JOIN and 'no current record for fetch operation'.
2) Let sub-selects also use indices when there parent is a stored procedure.
2002-11-23 23:36:22 +00:00
dimitr
3d55c724ae no message 2002-11-23 17:59:11 +00:00
arnobrinkman
5b4b3ef482 bugfix Optimizer LEFT OUTER JOIN and error : no current record for fetch operation 2002-11-21 23:02:54 +00:00
hippoman
7387e6fb70 changed nod,tra,req,trg,rel,ctx,prc struct names to local module names 2002-11-20 23:18:16 +00:00
arnobrinkman
e1f9fefb15 More optimizer improvement of handle AND nodes inside an OR node. 2002-11-18 21:31:01 +00:00
skidder
53f625e077 New explicit pessimistic locks implementation. It is logically consistent in all TPB modes and should be very fast. 2002-11-18 20:27:24 +00:00
hippoman
4a76e9e4fe change TRA,REQ,TRG,REL,CTX or PRC, to module local names. 2002-11-17 00:13:59 +00:00
skidder
5a712a4fee Fixed restore problem for databases having views that use procedures AND are used by procedures. General procedure metadata related cleanup. 2002-11-16 18:48:01 +00:00
hippoman
25c1dbd367 * Changed NOD struct name to JRD_NOD. 2002-11-11 19:42:47 +00:00
arnobrinkman
2600ac844b Update for explicit PLAN support and little cosmetic changes. 2002-11-09 01:42:10 +00:00
dimitr
8d62d05d5c Yep, I've joined with Arno in his struggle with the optimizer ;-) 2002-11-08 16:23:20 +00:00
arnobrinkman
65251221cd no message 2002-11-06 19:23:48 +00:00
arnobrinkman
b652434669 New changes to the optimizer. Better backward compatibility with forced PLAN's 2002-11-06 03:07:50 +00:00
arnobrinkman
d3ed97fa75 Give ASC a higher priority against same selectivity indices. 2002-11-04 21:57:39 +00:00
arnobrinkman
1d84ffbfd3 Added better support for using indices with "OR".
Pick the best available compound index from all "AND" nodes.
2002-11-02 03:20:52 +00:00
seanleyne
0b82f4aa07 Removed obsolete "Netware" port 2002-10-30 06:40:58 +00:00
tamlin
fb3cfa85da const correctness etc 2002-10-29 16:27:47 +00:00
arnobrinkman
3b053bc9c3 AB: Added support for detecting use of index with sub-selects in aggregate selects 2002-10-26 21:16:39 +00:00
skidder
6d499910f9 Move nulls first/last code out of SCROLLABLE_CURSORS ifdef 2002-10-12 20:27:26 +00:00
skidder
b9b600d7fd Fixed problem which caused complex outer joins to produce wrong results 2002-10-12 19:46:29 +00:00
skidder
b4cb6b07ff Fixed problem which caused complex outer joins to produce wrong results 2002-10-12 19:39:19 +00:00