robocop
c5f2284b15
Style.
2006-04-06 08:18:53 +00:00
robocop
e455915e74
Misc.
2006-02-18 23:39:23 +00:00
robocop
044c5841ad
Misc.
2006-02-10 03:28:43 +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
dimitr
bf1562a49a
Fixed a bug with NOT ANY/ALL reported by Alex.
2006-02-02 12:56:57 +00:00
robocop
2b99e764e3
The files rng.cpp, rng.h, rng_proto.h, bookmark.cpp and bookmark.h belong exclusively to PC_ENGINE, that's obsolete functionality.
...
Sixth step: remove the places protected by the macro PC_ENGINE. More to come. (I guess all of you who have pending functional changes to post will love this commit. <g>)
2006-02-02 07:32:07 +00:00
robocop
51e1d59ac5
Misc.
2006-01-28 04:12:42 +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
8174f08112
Allowed expression indices to be used for navigation on outer streams.
2006-01-05 17:13:23 +00:00
alexpeshkoff
f4feffe700
fixed some warnings
2005-12-02 16:48:47 +00:00
robocop
105cd42e21
Non-member functions that are used in other modules should have a prefix.
...
Created a couple of temporary vars for code simplification.
2005-11-06 01:56:03 +00:00
hvlad
15ac3a9f47
Fixed SF #223060
...
Slow processing of GREATER-THEN operator
2005-10-27 21:52:17 +00:00
arnobrinkman
c3f9c5bebc
Some more cost based calculation. Fine-tunning will follow
2005-08-08 22:17:40 +00:00
aafemt
b61d8b3c17
Warnings
2005-06-22 05:13:54 +00:00
asfernandes
b0ab11bc9a
Misc.
2005-06-21 01:44:43 +00:00
asfernandes
890494ac7c
1) Fixed SF #1016040 Missing external libraries causes engine exception
...
2) Use better error messages
2005-06-14 03:16:54 +00:00
asfernandes
559ce29c51
1) Replace length_ to strlen as noted by Claudio and Dmitry
...
2) Change USHORT to ULONG in intl.cpp
2005-06-06 18:14:10 +00:00
robocop
b8d1f00f94
- Corrections and changes to Adriano's commit, subject to his inspection.
...
- Solved an endless loop with trim and zero-length trim characters, etc.
- Some places are signaled with FB_COMPILER_MESSAGE for prompt attention.
2005-06-06 08:30:03 +00:00
asfernandes
59213efe7e
Merge INTL branch into HEAD
2005-05-27 22:45:31 +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
robocop
68bb0c4308
Totally misc.
2005-05-12 06:51:33 +00:00
hvlad
f1d576feb4
Fixed unregistered bug - "index key too big" when creating descending index
2005-05-07 19:45:57 +00:00
arnobrinkman
d8764cbdb1
Fix problem with distributing sort to deeper RSE, query example:
...
SELECT
RDB$RELATION_NAME
FROM
(SELECT FIRST 10 * FROM RDB$RELATIONS ORDER BY RDB$RELATION_NAME DESC)
ORDER BY
RDB$RELATION_NAME
2005-05-04 08:56:14 +00:00
arnobrinkman
b4b0a354ca
Fix bug with ORDER BY and DISTINCT on OUTER JOIN where the ORDER BY clause was given to a deeper rse, but shouldn't because the distinct should be applied first.
...
Reproducable query:
SELECT
DISTINCT r.rdb$relation_name, r.rdb$relation_id
FROM
rdb$relations r
LEFT JOIN rdb$relation_fields f ON (f.rdb$relation_name = r.rdb$relation_name)
ORDER BY
r.rdb$relation_id
2005-04-21 17:35:44 +00:00
dimitr
44b2667c68
Oops.
2005-03-28 15:39:52 +00:00
dimitr
706a1b925d
Corrected previous commit + ODS11 branch.
2005-03-28 15:24:18 +00:00
dimitr
3037a12405
Allowed navigation using an expression index.
2005-03-28 15:07:44 +00:00
dimitr
d629414f0d
Minor RSB tree output change.
2005-03-25 08:05:34 +00:00
alexpeshkoff
0e98fe0052
fix gcc warnings
2005-03-20 13:52:51 +00:00
robocop
94e04d3768
Misc.
2005-03-20 04:26:10 +00:00
dimitr
3075bdcdf2
1) Fixed bug with the lost sort node that caused unordered data to be returned.
...
2) Fixed badly optimized join orders in triggers.
2005-03-19 16:55:26 +00:00
arnobrinkman
5d2b73e496
Fix bug with index navigation were both dependent streams and free streams are performed in a inner join list
2005-02-22 22:12:19 +00:00
arnobrinkman
3a2d65b777
Fix, aggregate functions were also delivered from HAVING to the WHERE clause
2005-02-22 21:04:47 +00:00
dimitr
62b09e9bfc
Fixed SEGV related to explicit plans.
2005-02-21 20:32:18 +00:00
robocop
854da4e241
Misc.
2005-02-21 06:01:01 +00:00
arnobrinkman
229d4415a4
Allow some more complex expressions to be unmapped
2005-02-15 12:17:51 +00:00
dimitr
e74888f7fc
Minor stuff.
2005-02-15 11:52:52 +00:00
arnobrinkman
9ae0b6d273
simplify code and some cosmetic changes
2005-02-14 18:51:16 +00:00
robocop
7e5696adcd
Misc.
2005-02-14 05:56:04 +00:00
arnobrinkman
29715e6834
Fix wrong commit, thanks to Claudio!
2005-02-13 11:38:39 +00:00
arnobrinkman
964710f2a0
Remove unneeded comment-blocks
2005-02-10 23:05:04 +00:00
arnobrinkman
283d7f0d8c
Add new optimizer logic for handling :
...
ODS11:
- segment-selectivity
- better support for IS NULL
- better support for STARTING WITH
- matching both OR and AND nodes to indexes
- pick better JOIN order based on cost rules
ODSx:
- Indexed order on OUTER JOIN queries
2005-02-10 22:54:17 +00:00
arnobrinkman
d7792a2d76
fix some dependency issues
2005-02-01 14:39:36 +00:00
robocop
4fa02dbff2
Misc.
2005-01-25 06:38:58 +00:00
arnobrinkman
d299e4dae3
fix problems with explicit given PLAN and MERGE
2005-01-24 23:12:15 +00:00
robocop
778fecb78d
1.- Fix unregistered bug where an attempt to use an invalid index in an explicit plan causes garbage to be shown in the error message instead of the rejected index name.
...
2.- Use constants instead of hardcoded positions in node's arguments.
2005-01-21 08:39:28 +00:00
robocop
d65307b497
Style.
2004-12-24 08:52:39 +00:00
robocop
cb74ecd1f9
Fixing comments.
2004-12-22 08:50:47 +00:00
robocop
365de0fa48
Misc.
2004-12-16 03:10:20 +00:00
arnobrinkman
08ef027dfa
fix wrong join order with parameters/variables/constants after my last commits
2004-12-15 20:12:27 +00:00
robocop
308bdd3de1
Misc.
2004-12-07 00:33:16 +00:00
arnobrinkman
e25f925d8e
Improve cross join and merge/sort handeling
2004-12-03 23:56:51 +00:00
robocop
af6a16107a
Misc.
2004-11-30 06:18:39 +00:00
arnobrinkman
e8e46c3381
1) Try to make new nodes from conjunctions applied to the top RSE of a UNION.
...
Deliver the new nodes (created per rse inside the union) to the optimizing phase of every rse.
2) Little refactoring of above function and the one for aggregate
2004-11-28 23:09:37 +00:00
dimitr
f570023657
Improved optimization of mixed AND/OR predicates.
2004-11-27 20:54:52 +00:00
arnobrinkman
eca3322cd2
Distribute HAVING clause conjunctions to the WHERE clause when possible.
...
This will improve VIEWs that contain a aggregate query and comparisons are done on fields from that VIEW that are also part of the GROUP BY clause.
2004-11-27 00:52:10 +00:00
arnobrinkman
2e8c916482
fix bug with partially matched lower bounds on descending multi segment index.
2004-11-23 22:43:26 +00:00
skidder
c40eb08a27
Remove CURRENT_DATABASE keyword
2004-11-22 20:50:34 +00:00
dimitr
b741e2c136
Fixed bugs SF #459059 and #543106 .
2004-11-17 19:33:11 +00:00
skidder
1e26d6c80d
CURRENT_DATABASE implementation. Established identity may also be used for isc_info_db_id datum
2004-11-11 05:37:52 +00:00
robocop
628b088d2c
Treat string literals and string constants with more respect.
2004-11-10 04:26:45 +00:00
arnobrinkman
5f13621bf9
1) fix outer join issues
...
2) fix problem with ORDER BY <index> and missing NULLs
2004-10-26 22:23:56 +00:00
dimitr
09c51110b4
Added the equivalence operator. The major index optimizations are done.
...
Notes:
1) Some optimizations will follow after more deep analysis.
2) The syntax "==" is not yet agreed on. I'd prefer it to be changed.
2004-10-14 19:09:19 +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
skidder
02a0915156
Teach engine to work with larger record numbers - 64-bit internally, 40-bit externally
2004-09-28 06:28:38 +00:00
dimitr
0551c0fcb6
Fixed some issues with expression indices.
2004-09-26 12:37:24 +00:00
dimitr
47d00c34e0
A number of little corrections.
2004-09-13 21:06:41 +00:00
dimitr
a975c23a96
Fixed the context pool management.
2004-09-03 06:10:23 +00:00
dimitr
270841c3e9
More EXPRESSION_INDICES changes.
2004-09-03 05:27:44 +00:00
dimitr
62c11614fc
Let's choose a reasonable join order for intermixed inner and outer joins.
2004-09-02 14:53:43 +00:00
dimitr
7f16a055e9
A few little fixes in the optimizer.
2004-09-02 14:43:26 +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
robocop
b60c0e4cab
Misc: format
2004-08-21 09:29:46 +00:00
dimitr
cfb0e2eb5a
More asserts and some style changes. Thanks to Claudio.
2004-08-20 07:55:09 +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
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
skidder
311d7b4b34
Fix a couple 'invalid read' problems found by Valgrind. Both could cause crashes, one could result in invalid nulls placement. Removed const*const*const stuff in couple places because things like that make code really hard to understand
2004-08-11 05:34:23 +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
arnobrinkman
f2345109a0
Bugfix: optimizer didn't add boolean-node when it was a OR operator and no index could be used.
...
This caused unnecessary evaluation of joined rse's to that rse.
2004-07-20 18:55:03 +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
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
skidder
5f43cf8683
Report PLANs for selectable procedures in correct order. This is a fix for regression which I introduced a few months ago and it was found by Vlad Horsun
2004-06-23 16:40:19 +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
alexpeshkoff
9a34ce553c
make bool (isEmpty/hasData) checks for string and stack safe
2004-05-27 16:26:52 +00:00
alexpeshkoff
2f99a5ebf1
small strings cleanup
2004-05-26 16:12:05 +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
1ffe279896
-Avoid shadow warning
2004-05-12 19:39:17 +00:00
brodsom
b30a0b8799
Macro cleaning
2004-05-12 00:02:37 +00:00
robocop
802f244ec1
Misc changes
2004-05-09 05:48:33 +00:00
brodsom
c8db819ac5
Replace defines with consts
2004-05-07 07:57:46 +00:00
arnobrinkman
8e472b4fc4
Fix bug with slow MERGE
...
Fix bug with FULL JOIN and IS NULL in where clause.
SELECT * FROM TableX FULL OUTER JOIN TableY ON (...) WHERE TableY IS NULL
2004-05-06 22:06:56 +00:00
brodsom
60d9d085a0
Macro cleaning
2004-05-03 21:43:56 +00:00
skidder
43cb0d1ce4
Y-Valve handle translation layer
2004-05-02 23:06:37 +00:00
brodsom
5cf9fdfc90
Removing ib_stdio.h
2004-04-28 22:43:34 +00:00
skidder
7e7b6f604c
Slightly better fix for the FBTCS problem spotted by Blas
2004-04-28 17:28:33 +00:00
skidder
5f909e21b8
Fix for FBTCS Join 17 testcase
2004-04-28 05:18:27 +00:00
hvlad
2afe197918
Added Stack::iterator::hasMore method. Replaced getCount() and notEmpty() with hasMore() when it's possible
2004-04-23 08:02:52 +00:00
alexpeshkoff
7b27fa55be
fixed number problems after lls to Stack conversion
2004-04-21 14:14:36 +00:00
alexpeshkoff
176041c63e
applied fixes, mentioned by Claudio
2004-04-19 13:40:30 +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
skidder
abdbec6f84
Switch to Firebird container templates for request resource tracking. This significantly reduces CPU time any memory consumption for databases with complex metadata
2004-04-18 02:50:38 +00:00
robocop
6d4c0ab908
Three changes to isql:
...
Fix isql bug #910430 .
Add SET HEADING ON/OFF option
Add -M2 command-line option to send output of statistics and plans to the same file than the rest of the output.
Those items do not appear when using HELP SET inside isql or with isql -? from the command line.
2004-04-11 04:04:18 +00:00
robocop
59b235cea3
Small corrections
2004-04-10 00:25:22 +00:00
alexpeshkoff
1678d0f819
Returned opt.cpp to buildable state
2004-04-08 14:51:31 +00:00
alexpeshkoff
98aebc619a
changed csb_index_allocation to Array from str
2004-04-01 16:32:54 +00:00
alexpeshkoff
4650f4975f
string cleanup
2004-03-31 18:03:51 +00:00
aafemt
e20a3a4304
Fix variables' scope
2004-03-30 10:26:55 +00:00
robocop
faa41f7b3b
Cleanup
2004-03-30 04:10:52 +00:00
robocop
1824343930
Cleanup.
...
Fixed a linking error with MSVC6, too.
2004-03-28 09:10:30 +00:00
alexpeshkoff
1e6c7b18e9
fixed problem with loop in includes
2004-03-22 11:38:23 +00:00
dimitr
441e9fbbd9
Correction.
2004-03-21 09:35:27 +00:00
arnobrinkman
b355d3411e
1) Fix bug with LEFT JOIN ViewX and where clause with ViewX.FieldX IS NULL
...
2) When FIRST / SKIP is used in a sub-query it may not be affected by conjunctions in higher contexts.
Example (should return 1 row instead of 5):
SELECT * FROM
(SELECT FIRST 5 SKIP 2 cs.* FROM RDB$CHARACTER_SETS cs)
WHERE
RDB$CHARACTER_SET_NAME starting with 'D'
2004-03-21 02:07:48 +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
8630547081
Cleanup.
2004-03-20 03:07:21 +00:00
aafemt
e2c3431671
Fix double const
2004-03-19 11:27:28 +00:00
robocop
958f9e31aa
Cleanup
...
A few new[] - delete[] pairs fixed.
2004-03-19 06:14:53 +00:00
skidder
341c37033d
Fix SF#918653, nulls placement ignored with queries using UNION, GROUP BY and DISTINCT clauses
2004-03-18 19:19:30 +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
alexpeshkoff
67f1740fea
Various cleanup to make engine compile and work after mentioned earlier changes.
...
Mainly:
1) MemoryPool* => MemoryPool& in arrays' constructors
2) use Firebird::string to keep strings data
2004-03-14 13:40:14 +00:00
skidder
f015557545
GCC doesn't consider double const a valid C++
2004-03-11 05:41:51 +00:00
robocop
2ab1f94dd2
Cleanup
...
Some minor corrections
Second step to rename
2004-03-11 05:04:26 +00:00
dimitr
9e5b3ef1a1
Added short-circuit optimization of user-supplied plans. Call find_best() exactly number-of-stream times.
2004-03-07 15:13:53 +00:00
robocop
e6187cecd2
Cleanup
...
Some bug fixes
Style
2004-03-07 07:58:55 +00:00
skidder
dc7aab8f9c
Fix up exception handling. Handle (do not ignore) std::bad_alloc and generic exceptions, provide syscall and error information in system_call_failed
2004-03-01 03:35:23 +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
robocop
2b295a9108
General cleanup. Sorry if I missed some occurrence.
2004-01-28 07:50:41 +00:00
skidder
08eee5ebaa
Further AMD64 fixes. Given this fixes you may start playing with databases using isql_static.
2004-01-21 07:18:30 +00:00
robocop
b441cd9aef
Cleanup
2004-01-13 09:52:19 +00:00
dimitr
64a481346f
Fixed recently introduced regression. Never rely on vector data pointers after a grow() call.
2004-01-11 12:28:06 +00:00
skidder
f13d160aa5
Fix resource leak for recursive procedures when procedure request is closed at
...
SUSPEND statement. This leak prevented more then 1000 such operations for one connection.
This bug was reported by Claus Holst
2004-01-10 01:48:46 +00:00
skidder
09214e8669
Use backward-compatible default nulls ordering for old ODS as suggested by Dmitry Emanov to preserve backward compatibility
2004-01-08 21:29:34 +00:00
robocop
fd93837ec3
Cleanup:
...
const correctness
BOOLEAN -> bool
Vars in scope
Formatting
JRD_REQ -> jrd_req*
JRD_TRA -> jrd_tra*
JRD_REL -> jrd_rel*
JRD_FLD -> jrd_fld*
event -> event_t, EVENT_T dropped, EVENT should go in the future
Frank's corrections
alice's STR -> alice_str*
remote's STR -> rem_str*
etc.
It creates entities and backups and restores for me. :-)
2004-01-03 10:59:52 +00:00
skidder
d7fb2d6cb3
Integrate new LIKE/STARTING WITH/CONTAINING algorithms into the engine. This has following impact:
...
1. String functions now search BLOBs correctly
2. Their performace is improved
3. Fixed crash when NULL is passed as escape value to LIKE
2003-12-27 04:37:23 +00:00
robocop
ad0b5c4de3
General cleanup
2003-12-22 10:00:59 +00:00
skidder
e216f1f09d
Implement MSSQL-like (standard conforming) behavior regarding default nulls placement.
...
Thanks to Arno changes we can map default placement to indices directly for ODS11+.
This should close SF#225218
2003-12-21 02:34:34 +00:00
arnobrinkman
bcaa8859d3
Fix some descending bugs i created
2003-12-11 23:06:36 +00:00
robocop
d020ea5ca1
ping-pong cleanup: change one place and you have to change several others
2003-12-11 10:33:30 +00:00
arnobrinkman
ce69dfce07
Fix bugs created by myself and the problem (finally ;-) why descending indices were slower as ascending in some cases.
2003-12-04 00:22:12 +00:00
robocop
84062732d8
More cleanup
2003-12-03 08:19:24 +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
d0ad504f5e
Minor protection against improper index locks reference.
2003-11-23 17:54:59 +00:00
dimitr
4c0ce86c24
1) Fixed server crashes when a SP is used as inner stream in left joins
...
2) Fixed conjuncts out-of-limits issue
2003-11-18 16:54:01 +00:00
dimitr
e255304619
Fixed new bug with explicit plans.
2003-11-12 18:30:25 +00:00
brodsom
4285bc623c
Removing gdsold.h and gds.h
2003-11-08 16:40:17 +00:00
robocop
db77ffa605
const correctness, variables in scope, cleanup, etc.
2003-11-07 08:06:35 +00:00
dimitr
ef3c1183cb
Correction.
2003-11-06 16:21:59 +00:00
arnobrinkman
22e26c7dbf
bugfix: A user specified PLAN with MERGE and JOINS crashed the server, noted by Dmitry.
...
simplified : PLAN MERGE (JOIN ..., JOIN ...)
2003-11-06 00:25:48 +00:00
brodsom
ff070a16a8
Replacing assert with fb_assert
2003-11-03 23:59:24 +00:00
skidder
7b99b8a57b
Basic INTL cleanup.
...
- Rework (mostly undo) John's changes
- Some function type safety
- Make INTL OO layer very thin (this should slightly improve performance)
2003-11-03 17:14:45 +00:00
dimitr
0856425a57
no message
2003-11-01 10:58:44 +00:00
skidder
908ae98a75
Return engine to compilable state on Win32 after Dmitry's cleanup
2003-10-30 21:17:16 +00:00
robocop
9ead7a37b4
const correctness
...
placed some variables in context
fixed some function signatures
closed a few possible buffer overruns
sorry to the platform maintainers, I can't verify what I did for non-Win32 builds
2003-10-29 10:53:47 +00:00
skidder
33ae7c50cb
Make Linux SS engine compile. Noted by Blas
2003-10-20 12:27:00 +00:00
robocop
1e75492a50
Style: make the code more readable, keep spaces around operators
2003-10-20 10:18:41 +00:00
skidder
d7e24011b7
Clean up optimizer
2003-10-17 20:29:52 +00:00
arnobrinkman
fa934885e8
bugfix: Missing initialization of position vector. Thanks for Nickolay who notice this.
2003-10-16 21:02:51 +00:00
robocop
8182b6cba2
const correctness and other tasks
2003-10-16 08:51:06 +00:00
skidder
4e8605294e
Forward port Sparc fixes
2003-10-10 23:56:57 +00:00
dimitr
7cc43e264a
Fixed bug introduced one year ago.
2003-10-01 19:46:01 +00:00
skidder
235db035ce
Ok, i'm joining Firebird destruction team with my cleanup:
...
1. Bring trace DSQL, DYN and BLR trace logging up-to-date
2. Remove redundant CSB pointer dereferences in BLR parser and request compiler
3. Convert RIGHT JOIN to LEFT JOIN early during BLR parsing
4. Check BLR syntax for unititalized contexts usage
5. Some type-safety and const-correctness fixes
2003-09-28 21:36:05 +00:00
arnobrinkman
7e024c858e
Remove IGNORE_NULL_IDX_KEY define.
...
Still to go : nav.cpp, nav_proto.h, ods.h, dba.epp
2003-09-16 23:19:46 +00:00
dimitr
f7aa490111
The final part of my little PLAN enhancement.
2003-09-14 15:37:05 +00:00
dimitr
5ec79f66ef
PLAN enhancements. The DSQL part of this change will follow.
2003-09-10 13:24:49 +00:00
arnobrinkman
6770751035
Don't forget the OR operations Arno
2003-09-08 08:56:13 +00:00
brodsom
382cd1c45e
Code cleaning
2003-09-08 01:45:09 +00:00
arnobrinkman
75486586c9
Added some comments and boolean replacement
2003-09-04 21:37:55 +00:00
brodsom
f76f59a61e
Replace BOOLEAN, TRUE and FALSE
2003-09-04 21:20:01 +00:00
arnobrinkman
bfd32caffa
Fix wrong last commit :-(
2003-09-02 16:39:58 +00:00
arnobrinkman
e5574959ad
Change BOOLEAN to bool type
2003-09-01 23:22:22 +00:00
arnobrinkman
df3c6abf15
1) fix: Unique index must be complete used else we keep on looking for another one.
...
2) MERGE can also handle expressions, stupid example :
SELECT
*
FROM
RDB$RELATIONS r,
RDB$RELATION_FIELDS rf
WHERE
rf.RDB$RELATION_NAME || 'A' = r.RDB$RELATION_NAME || 'A'
3) Do some code style issues
2003-08-31 22:41:19 +00:00
arnobrinkman
5ce032f2d9
Optimizer fix. Compound-indices were choosen above single-indices where we need only the single-field-index.
2003-08-30 19:51:44 +00:00
brodsom
6a2ef35fda
-Remove NULL_PTR
...
-Remove unneeded NULL casts
-Remove (void) function return cast
2003-08-28 13:16:03 +00:00
skidder
27ebbfe696
Get rid of alloca usage
2003-08-19 12:49:33 +00:00
skidder
b05dc24810
Forward port removal of artificial index number limitation from 1.0.3.
...
Fix bug in dbb_max_idx calculation. Do not port GC and metadata versioning
changes as they seem very dangerous to me.
2003-08-18 21:13:56 +00:00
brodsom
daf2d5ff2c
-Fix cast warnings
...
-Fix signed/unsigned comparison warnings
-Fix format warnings
-Add MinGW 3.0 rc header
2003-08-09 21:15:32 +00:00
arnobrinkman
e091f9e9c3
bugfix: All flags csb_flags were cleared except csb_active. Thanks to Claudio V.
2003-08-08 21:35:27 +00:00
dimitr
38a973d2b1
Let's fix the cause instead of the effect. No more buffer overflows.
2003-07-15 13:35:23 +00:00
alexpeshkoff
5933e22503
added static function declaration
2003-07-08 12:26:44 +00:00
alexpeshkoff
8ecb3a933b
fixed AV on some combinations of CAST, BETWEEN and sub-select
2003-07-08 12:12:34 +00:00
dimitr
7374918a78
Bugfix for SF #736318 .
2003-06-27 17:04:07 +00:00
arnobrinkman
ec7ff125ce
bugfix: When 1 merge was done no other merge could be generated. for example with 4 stored procedures.
2003-06-26 22:14:55 +00:00
arnobrinkman
d26fd757cb
bugfix: More bugfixes for 'no current record for fetch operation' errors.
...
These were mostly related to queries where a MERGE was done and/or SP/VIEW/Aggregates/Unions were used together.
2003-06-09 23:04:29 +00:00
dimitr
cb844e541a
Fixed random crashes with big queries prepared.
2003-06-05 16:09:37 +00:00
arnobrinkman
98b28378a9
bugfix FB1.5: Optimizer crashed when all indices of a table had the selectivity of 1
2003-05-16 22:15:39 +00:00
brodsom
a4903c9278
- Comment unneeded checks or conditions
2003-04-02 11:13:11 +00:00
dimitr
46fd65228a
Cleanup.
2003-03-25 09:51:52 +00:00
dimitr
20ce2e24d8
Fixed optimizer bug introduced by me appr. one month ago.
2003-03-25 09:40:15 +00:00
tamlin
de27710a5e
Fixed a comment mistake (*/ leftover at EOL of //) spotted by Claudio.
2003-03-09 09:06:47 +00:00
brodsom
a808195f28
Avoid undefined function warning
2003-03-07 00:36:44 +00:00
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
skidder
6d64014e57
Changed engine to store source file name/line number information for EVERY allocation when DEBUG_GDS_ALLOC is defined. All allocation should be done using FB_NEW or FB_NEW_RPT macros instead of keyword new since now
2002-09-25 17:12:16 +00:00
eku
4eaf8c0914
Autoconf cleanup:
...
o since the define 'VAX' was only used to tell that the byte order is
LITTLE_ENDIAN (it have nothing else to do with the VAX computer family)
it can safely replaced with '!WORDS_BIGENDIAN'.
o check if pointers are 64 bit
o replaced HAS_64BIT_POINTERS with 'SIZEOF_VOID_P == 8'
2002-09-17 05:58:40 +00:00
skidder
f1b4c04d42
Added nulls first/last support
2002-09-10 18:34:00 +00:00
skywalker
d89b1a0842
Changes to make fb2 compile super version for linux
2002-07-29 15:37:59 +00:00
skywalker
82d8017317
Merged change from fb1.
2002-07-01 16:59:09 +00:00
dimitr
67fd70aa1d
Fixed bug with uninitialized local variables. Thanks to Oleg LOA.
2002-06-20 10:10:28 +00:00
dimitr
c5f50577cb
1. New system variables - CONNECTION_ID and TRANSACTION_ID
...
2. Universal triggers
2002-06-14 12:09:37 +00:00
bellardo
895801a449
Changes to bring intl support to FB2.
2002-06-04 19:56:16 +00:00
bellardo
773836f1b1
Finished removal of setjmp/longjmp code, and fixed a handful of FB1->FB2
...
porting bugs.
2002-04-04 07:10:40 +00:00
skywalker
a887af3646
Changes to make it compile on linux.
...
and work through a few issues.
2002-01-04 11:34:22 +00:00
tamlin
80f7fb6dd4
New C++ memory pool
2001-12-24 02:51:06 +00:00
skywalker
365a7fe19c
Changes to compile fb2 under autoconf includes some structural changes
2001-07-29 17:42:23 +00:00
tamlin
9a776a604e
First steps towards a C++ conversion.
2001-05-23 13:26:42 +00:00