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