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