Commit graph

12 commits

Author SHA1 Message Date
unknown
4b0cce4873 BUG#17314: Can't use index_merge/intersection for MERGE tables
1. Fix index access costs for MERGE tables, set block_size=myisam_block_size/#underlying_tables 
   instead of 0 which it was before.
2. Make index scans on MERGE table to return records in (key_tuple, merge_table_rowid) order, 
   instead of just (key_tuple) order. This makes an index scan on MERGE table to be truly a ROR-scan
   which is a requirement for index_merge union/intersection.


myisammrg/myrg_queue.c:
  BUG#17314: Make index scans on MERGE table return records ordered by (keytuple, merge_table_rowid).
mysql-test/r/index_merge.result:
  Testcase for BUG#17314
mysql-test/r/merge.result:
  BUG#17314: update testcase result
mysql-test/t/index_merge.test:
  Testcase for BUG#17314
sql/ha_myisammrg.cc:
  BUG#17314: For MERGE tables, set handler::block_size to myisam_block_size/#underlying_tables, and not to 0.
2006-02-11 21:51:43 +03:00
unknown
8d9ffc6ad4 BUG#16166, "Can't use index_merge with FORCE INDEX": adjust the heurstics check to take into
account that "FORCE INDEX" disables full table scans, and not range/index_merge scans.
(with post-review fixes)


mysql-test/r/index_merge.result:
  Testcase for BUG#16166
mysql-test/t/index_merge.test:
  Testcase for BUG#16166
sql/sql_select.cc:
  BUG#16166: "Can't use index_merge with FORCE INDEX": adjust the heuristics check:
  if (force-index-is-used && there-is-possible-ref-access && 
  +    THERE IS NO POSSIBLE RANGE/INDEX_MERGE ACCESS)
  {
    ...
2006-01-12 10:48:27 +03:00
unknown
3b6d50d835 Fix for BUG#10804: allow differences in rows field in EXPLAIN output 2005-06-20 11:05:38 +02:00
unknown
b21cf962e3 concurrent-insert can now be set to 2 for concurrent inserts when there is holes in the data file
myisam_max_extra_sort_file_size is depricated
Ensure that myisam_data_pointer_size is honoured when creating new MyISAM files
Changed default value of myisam_data_pointer_size from 4 to 6 to get rid of 'table-is-full' errors



include/myisam.h:
  Change type of myisam_block_size and myisam_concurrent_insert to make them changeable in mysqld.cc
  Removed not used varaible myisam_max_extra_temp_length
include/thr_lock.h:
  Added extra parameter to get_status
myisam/mi_create.c:
  Ensure that myisam_data_pointer_size is honoured
myisam/mi_dynrec.c:
  If 'append_insert_at_end' is set, only write at end of myisam record file
myisam/mi_locking.c:
  Add extra argument to 'mi_get_status' to allow thr_lock to signal that we want to do a concurrent insert
  If this is used, we will append new insert rows at end of data file.
  Change mi_check_status() to allow concurrent_inserts even if there are holes in the file when myisam_concurent_insert=2
myisam/mi_static.c:
  Change behavior of myisam_concurrent_insert so that setting this to 2 allows inserts even if there is a hole in the data file.
  Default value is 2 for MyISAM direct usage but will be set to 1 (old default) by mysqld.cc
myisam/mi_statrec.c:
  If 'append_insert_at_end' is set, only write at end of myisam record file
myisam/mi_write.c:
  If 'append_insert_at_end' is set, only write at end of myisam record file
myisam/myisamdef.h:
  Support for insert-at-end even if there is holes in data file
mysql-test/r/gis-rtree.result:
  Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
mysql-test/r/group_min_max.result:
  Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
mysql-test/r/index_merge.result:
  Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
mysql-test/r/index_merge_ror.result:
  Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
mysql-test/r/merge.result:
  Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
mysql-test/r/myisam.result:
  Test of concurrent_insert=2
mysql-test/r/null.result:
  Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
mysql-test/r/preload.result:
  Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
mysql-test/r/ps_1general.result:
  Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
mysql-test/r/range.result:
  Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
mysql-test/r/variables.result:
  concurrent_insert is now a integer, not a boolean
  myisam_extra_sort_file_size is deleted
mysql-test/r/view.result:
  Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
mysql-test/t/index_merge.test:
  Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
mysql-test/t/myisam.test:
  Test of concurrent_insert=2
mysql-test/t/ps_1general.test:
  Drop test table
mysql-test/t/variables.test:
  concurrent_insert is now a integer, not a boolean
  myisam_extra_sort_file_size is deleted
mysql-test/t/view.test:
  Drop tables that may be left from previous tests
mysys/thr_lock.c:
  Extra paramter to get_status to signal if concurrent_insert was used
sql/mysqld.cc:
  concurrent-insert can now be set to 2 for concurrent inserts when there is holes in the data file
  myisam_max_extra_sort_file_size is depricated
sql/set_var.cc:
  concurrent-insert is now an integer, not a bool
  myisam_max_extra_sort_file_size is deleted
2005-05-13 12:08:08 +03:00
unknown
2ae812a7d6 Adjust test results for BUG#7634: The result of EXPLAIN is different if OS doesn't support file sizes > 2G 2005-02-02 07:51:43 +03:00
unknown
b5de0a073d Remove display of join buffer size, test fails when someone changes the minimum 2004-12-31 15:11:07 +03:00
unknown
febda72f62 Fix for BUG#4177:
* Make index merge quick selects code allow perform several scans.
 * Delay additional handler objects creation till row retrieval is started.


include/queues.h:
  Added trivial queue_remove_all macro
mysql-test/r/index_merge.result:
  Testcase for BUG#4177
mysql-test/t/index_merge.test:
  Testcase for BUG#4177
sql/opt_range.cc:
  Fix for BUG#4177: 
   * For any quick select, row retrieval can be performed several times. Now all index_merge quick selects code handles such cases properly.
   * In QUICK_INDEX_MERGE_SELECT we use one handler object for all merged scans, and it was possible that in 
      destructor several cleanup functions were called 
   * Additionally
    - Removed redundant QUICK_INDEX_MERGE_SELECT members.
    - Now QUICK_ROR_*_SELECTs create additional handler objects only when row retrieval is started
      So if join optimizer chooses other access method, we don't create/delete handlers.
2004-11-21 11:51:19 +03:00
unknown
3a272c1fa9 Post-merge fixes.
Note: One sp.test still fails (prime), and rpl_server_id2.test fails (will be fixed by guilhem ASAP).


mysql-test/r/index_merge.result:
  Fixed syntax error (no ',' after last index in create table any more).
mysql-test/r/index_merge_bdb.result:
  Fixed syntax error (no ',' after last index in create table any more).
mysql-test/r/index_merge_innodb.result:
  Fixed syntax error (no ',' after last index in create table any more).
mysql-test/r/index_merge_innodb2.result:
  Fixed syntax error (no ',' after last index in create table any more).
mysql-test/r/rpl_server_id1.result:
  Update result after merge.
mysql-test/r/sp-error.result:
  Update result after merge.
mysql-test/r/variables.result:
  Update result after merge.
mysql-test/t/index_merge.test:
  Fixed syntax error (no ',' after last index in create table any more).
mysql-test/t/index_merge_bdb.test:
  Fixed syntax error (no ',' after last index in create table any more).
mysql-test/t/index_merge_innodb.test:
  Fixed syntax error (no ',' after last index in create table any more).
mysql-test/t/index_merge_innodb2.test:
  Fixed syntax error (no ',' after last index in create table any more).
mysql-test/t/sp-error.test:
  Post-merge fix of error codes.
sql/opt_range.cc:
  Manually merged by Monty.
sql/opt_range.h:
  Manually merged by Monty.
sql/slave.cc:
  Post-merge fixes with some help from Guilhem.
sql/slave.h:
  Post-merge fixes with some help from Guilhem.
sql/sp_head.cc:
  Got rid of warning (reordering initialization).
sql/sql_parse.cc:
  Post-merge fix: Need to set/reset select_limit at SP CALL time as well.
tests/client_test.c:
  Post-merge fix: key_len length in explain has changed.
2004-05-14 16:00:57 +02:00
unknown
6022c31a26 Fix for Bug#3183 2004-03-15 23:11:58 +03:00
unknown
7dbdedcb72 Precise read time estimates for index_merge/Unique 2003-12-18 06:08:00 +03:00
unknown
a26c3436bd Fix for bug 1974 2003-11-28 00:31:15 +03:00
unknown
bc20df1857 logging_ok:
Logging to logging@openlogging.org accepted
sql_union.cc, sql_select.cc, opt_range.h, opt_range.cc, opt_ft.h:
  Post-merge fixes
Many files:
  new file


sql/opt_ft.h:
  Post-merge fixes
sql/opt_range.cc:
  Post-merge fixes
sql/opt_range.h:
  Post-merge fixes
sql/sql_select.cc:
  Post-merge fixes
sql/sql_union.cc:
  Post-merge fixes
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2003-11-20 23:27:11 +03:00