Commit graph

106 commits

Author SHA1 Message Date
Sergey Petrunya
3d698ac616 BUG#671361: virtual int Mrr_ordered_index_reader::refill_buffer(): Assertion `!know_key_tuple_params
- Make sure we have enough space for both rowids and keys.
2010-11-09 18:02:08 +02:00
Sergey Petrunya
0fb342ba56 BUG#670417: Diverging results in maria-5.3-mwl128-dsmrr-cpk with join buffer, attempt 4
- Disable identical key handling optimization when
  IndexConditionPushdown is used
2010-11-08 20:37:01 +03:00
Sergey Petrunya
197c99427d DS-MRR improvements
- Code cleanup
- Always propagate the error code we got from storage engine all the way up
2010-11-08 15:15:50 +03:00
Sergey Petrunya
d6ec99d0b6 Merge {DS-DRR improvements:code cleanup} into MWL#128+DS-MRR tree 2010-11-03 11:03:07 +03:00
Sergey Petrunya
c46450de72 Code cleanup 2010-11-03 00:09:28 +03:00
Sergey Petrunya
1654780f2d Code cleanup 2010-11-02 23:25:35 +03:00
Sergey Petrunya
59db1d7a39 Address problems uncovered by buildbot
- Update test results
- Handle the case where MRR implementation doesn't get any key tuples at all
2010-11-02 19:32:26 +03:00
Sergey Petrunya
6c15806b68 MWL#121-124 DS-MRR support for key-ordered retrieval, etc
- Merge into 5.3-main
2010-11-01 18:49:59 +03:00
Sergey Petrunya
b76a8595c6 Re-initialization reworked 2010-11-01 13:52:10 +03:00
Sergey Petrunya
430f63c271 use DBUG_RETURN with DBUG_ENTER 2010-11-01 00:04:34 +03:00
Sergey Petrunya
d9a8dd22b2 DS-MRR/CPK improvements: correct buffer exhaustion handling 2010-10-31 22:00:15 +03:00
Igor Babaev
0b72fd88a1 Merge. 2010-10-30 06:07:45 -07:00
Sergey Petrunya
8e4c627ef8 DS-MRR improvements:
- Correct buffer re-allocation
2010-10-29 20:21:26 +04:00
Sergey Petrunya
1e82320d27 DS-MRR improvements
- buildbot test failure fixes: don't try to get more records from SimpleIndexReader
  if we've already got EOF for it.
2010-10-29 13:42:48 +04:00
Sergei Golubchik
8e7ebfbce8 5.2 merge 2010-10-28 19:04:23 +02:00
Sergey Petrunya
a88bd5cf56 DS-MRR improvements:
- address the review feedback (class/var renames)
- fix wrong test result (bug in buffer refill logic)
2010-10-28 20:48:16 +04:00
Sergey Petrunya
d8efc3b155 DS-MRR improvements: address review feedback for R3 version of the patch 2010-10-26 15:35:13 +04:00
Igor Babaev
79087c9e07 Ported the fix for bug #57024 (a performance issue for outer joins).
Employed the same kind of optimization as in the fix for the cases
when join buffer is used.
The optimization performs early evaluation of the conditions from 
on expression with table references to only outer tables of
an outer join.
2010-10-06 13:27:12 -07:00
Sergey Petrunya
ac8a79b944 Code cleanup 2010-10-04 10:31:40 +04:00
Sergey Petrunya
d4f2e7a9a9 Fix failures introduced in the previous push 2010-10-04 00:37:30 +04:00
Sergey Petrunya
5156457506 Address review feedback
- One iterator class
- Switch back from state automaton into two-nested-iterators approach..
2010-10-03 14:48:42 +04:00
Sergey Petrunya
22d5323fac DS-MRR/CPK improvements: more of addressing review feedback 2010-10-01 15:54:35 +04:00
Sergey Petrunya
61f26f0c62 DS-MRR improvements: address review feedback
- change dsmrr_next_from_index() to a switch-based state automaton-like structure.
2010-09-28 20:20:09 +04:00
Sergey Petrunya
4f56acb676 Better comments, move Lifo_buffer to separate file. 2010-09-28 12:19:50 +04:00
Sergey Petrunya
3066c37718 DS-MRR improvements: review feedback
- Switch from one bi-directional buffer class to two 
  virtual inheritance-based forward and backward buffer classes.
2010-09-21 20:19:54 +04:00
Sergey Petrunya
2121ab1eb4 DS-MRR improvements: remove write_size/read_size, have the same size
for writing and reading
2010-09-20 13:23:51 +04:00
Sergey Petrunya
189555f39a DS-MRR improvements: more code cleanup
- better comments
- rename variables to better reflect their meaning
2010-09-20 13:02:17 +04:00
Sergey Petrunya
18a348503a DS-MRR improvements: better comments, use symbolic name instead of +1/-1 constants. 2010-09-19 01:05:47 +04:00
Sergey Petrunya
499b142ad5 BUG#628785: multi_range_read.cc:430: int DsMrr_impl::dsmrr_init(): Assertion `do_sort_keys || do_rowid_fetch' failed
- Make Ds_MrrImpl::check_cpk_scan() follow the execution code' logic: don't
  do MRR scans on clustered PK when mrr_sort_keys=off.
2010-09-15 16:58:01 +04:00
Sergey Petrunya
188de43db1 - Fixed BUG#623285: Crash in quick_range_seq_next() in maria-5.3-dsmrr-cpk
- Relax overly-strict assert added in previous commit
- Run generic MRR testsuite for Maria engine, too.
2010-09-13 19:45:41 +04:00
Sergey Petrunya
b9e5125050 Remove garbage comments, coding style conformance (no functional changes). 2010-09-12 13:21:25 +04:00
Sergey Petrunya
a730bb9caf Fix a typo bug in SimpleBuffer.read() 2010-09-11 21:56:43 +04:00
Sergey Petrunya
9b04caffd4 Commit for buildbot checks 2010-09-10 20:48:11 +04:00
Sergey Petrunya
dbc63bed22 MWL#121-125: DS-MRR improvements
- Address review feedback, step 1
2010-09-05 14:32:14 +04:00
Sergey Petrunya
fae27347d1 Fix one more problem with buffer exhaustion scenario 2010-08-19 19:52:58 +02:00
Sergey Petrunya
d4f057f256 More valgrind fixes 2010-08-15 22:30:18 +04:00
Sergey Petrunya
3b85e019ab Fix another (possibly dangerous) valgrind failure. 2010-08-15 07:59:39 +04:00
Sergey Petrunya
889e6170fe Fix [harmless] valgrind failure 2010-08-15 06:59:23 +04:00
Sergey Petrunya
c964cb1b62 key/rowid buffer overflow fixes for various tricky cases. 2010-08-14 18:56:37 +04:00
Sergey Petrunya
d098596ba5 Fix a number of problems with reverse buffer use 2010-08-12 23:59:29 +04:00
Sergey Petrunya
8d07c16ad9 Do dynamic buffer growing/shrinking. 2010-08-12 21:18:41 +04:00
Sergey Petrunya
8dc81f47ef Use reverse/backwards buffer for keys (now works)
- don't allocate space for rowid buffer when we don't really need it.
- fix buffer iterator
2010-08-11 14:54:34 +04:00
Sergey Petrunya
57c17e18af Fix valgrind failure 2010-08-09 00:38:42 +04:00
Sergey Petrunya
a2e29a83aa We can't check that assertion at the first iteration 2010-08-08 15:44:32 +04:00
Sergey Petrunya
758b68a980 Fix valgrind failure: don't access key_buffer if we haven't set it up yet. 2010-08-08 12:30:48 +04:00
Sergey Petrunya
e25db795bd DS-MRR, key-ordered retrievals: commit for buildbot 2010-08-08 11:13:54 +04:00
Sergey Petrunya
7391175d7e DS-MRR support improvements (MWL#123, MWL#124, MWL#125)
- Let DS-MRR/CPK take advantage of materialized keys, when possible
2010-07-18 01:05:44 +04:00
Sergey Petrunya
e0999cdf7c DS-MRR support improvements (MWL#123, MWL#124, MWL#125)
- Lots of TODO comments
- add mrr_sort_keys flag to @@optimizer_switch
- [from Igor] SQL layer part passes HA_MRR_MATERIALIZED_KEYS flag
- Don't call rnd_pos() many times in a row if sorted rowid buffer
  has the same rowid value for multiple consequive (rowid, range_id) pairs.
2010-07-17 18:03:50 +04:00
Sergey Petrunya
e1006e9e1f MWL#121: DS-MRR support for clustered primary keys
- Merge with current 5.3
2010-07-16 13:38:23 +04:00
Sergey Petrunya
27f9fc063c MariaDB 5.2 -> MariaDB 5.3 merge 2010-06-26 14:05:41 +04:00
Sergey Petrunya
488d352a66 MWL#121: DS-MRR support for clustered primary keys
- Remove back key_parts from multi_range_read_init() parameters
- Related code simplification/cleanup
2010-06-22 23:26:11 +04:00
Sergey Petrunya
b45748f058 MWL#121: DS-MRR support for clustered primary keys
- Fix the code to work with IndexConditionPushdown+BKA (EXPLAIN is still 
  incorrect, see comments in the patch)
- Test coverage for ICP+BKA
2010-06-22 22:38:52 +04:00
Sergey Petrunya
16e197f5b1 MWL#121: DS-MRR support for clustered primary keys
- Add testcases
- Code cleanup: garbage removal, better comments, make members private where possible
2010-06-22 21:24:22 +04:00
Sergey Petrunya
82f8ed17e1 MWL#121: DS-MRR support for clustered primary keys
- Add testcases
2010-06-21 12:34:31 +04:00
Sergey Petrunya
925e508a2e MWL#121: DS-MRR support for clustered primary keys
- First code (will need code cleanup)
2010-06-19 15:40:19 +04:00
Sergey Petrunya
da5edf5057 MWL#67: MRR backport
- Make index condition pushdown be controlled by an @@optimizer_switch flag,
  not by @@engine_condition_pushdown
- Make MRR buffer size be controlled by @@mrr_buffer_size, not 
  by @@read_rnd_buffer_size
- Move parts of code to separate files
- Code cleanup
- Add --sorted_result to some SELECTs in tests.
2009-12-22 15:33:21 +03:00
Renamed from sql/ds_mrr.cc (Browse further)