- 16 Jul, 2010 1 commit
-
-
unknown authored
1. Changed the lazy optimization for subqueries that can be materialized into bottom-up optimization during the optimization of the main query. The main change is implemented by the method Item_in_subselect::setup_engine. All other changes were required to correct problems resulting from changing the order of optimization. Most of these problems followed the same pattern - there are some shared structures between a subquery and its parent query. Depending on which one is optimized first (parent or child query), these shared strucutres may get different values, thus resulting in an inconsistent query plan. 2. Changed the code-generation for subquery materialization to be performed in runtime memory for each (re)execution, instead of in statement memory (once per prepared statement). - Item_in_subselect::setup_engine() no longer creates materialization related objects in statement memory. - Merged subselect_hash_sj_engine::init_permanent and subselect_hash_sj_engine::init_runtime into subselect_hash_sj_engine::init, which is called for each (re)execution. - Fixed deletion of the temp table accordingly. mysql-test/r/subselect_mat.result: Adjusted changed EXPLAIN because of earlier optimization of subqueries.
-
- 10 Jul, 2010 1 commit
-
-
unknown authored
libmysqld/Makefile.am: The new file added. mysql-test/r/index_merge_myisam.result: subquery_cache optimization option added. mysql-test/r/myisam_mrr.result: subquery_cache optimization option added. mysql-test/r/subquery_cache.result: The subquery cache tests added. mysql-test/r/subselect3.result: Subquery cache switched off to avoid changing read statistics. mysql-test/r/subselect3_jcl6.result: Subquery cache switched off to avoid changing read statistics. mysql-test/r/subselect_no_mat.result: subquery_cache optimization option added. mysql-test/r/subselect_no_opts.result: subquery_cache optimization option added. mysql-test/r/subselect_no_semijoin.result: subquery_cache optimization option added. mysql-test/r/subselect_sj.result: subquery_cache optimization option added. mysql-test/r/subselect_sj_jcl6.result: subquery_cache optimization option added. mysql-test/t/subquery_cache.test: The subquery cache tests added. mysql-test/t/subselect3.test: Subquery cache switched off to avoid changing read statistics. sql/CMakeLists.txt: The new file added. sql/Makefile.am: The new files added. sql/item.cc: Expression cache item (Item_cache_wrapper) added. Item_ref and Item_field fixed for correct usage of result field and fast resolwing in SP. sql/item.h: Expression cache item (Item_cache_wrapper) added. Item_ref and Item_field fixed for correct usage of result field and fast resolwing in SP. sql/item_cmpfunc.cc: Subquery cache added. sql/item_cmpfunc.h: Subquery cache added. sql/item_subselect.cc: Subquery cache added. sql/item_subselect.h: Subquery cache added. sql/item_sum.cc: Registration of subquery parameters added. sql/mysql_priv.h: subquery_cache optimization option added. sql/mysqld.cc: subquery_cache optimization option added. sql/opt_range.cc: Fix due to subquery cache. sql/opt_subselect.cc: Parameters of the function cahnged. sql/procedure.h: .h file guard added. sql/sql_base.cc: Registration of subquery parameters added. sql/sql_class.cc: Option to allow add indeces to temporary table. sql/sql_class.h: Item iterators added. Option to allow add indeces to temporary table. sql/sql_expression_cache.cc: Expression cache for caching subqueries added. sql/sql_expression_cache.h: Expression cache for caching subqueries added. sql/sql_lex.cc: Registration of subquery parameters added. sql/sql_lex.h: Registration of subqueries and subquery parameters added. sql/sql_select.cc: Subquery cache added. sql/sql_select.h: Subquery cache added. sql/sql_union.cc: A new parameter to the function added. sql/sql_update.cc: A new parameter to the function added. sql/table.cc: Procedures to manage temporarty tables index added. sql/table.h: Procedures to manage temporarty tables index added. storage/maria/ha_maria.cc: Fix of handler to allow destoy a table in case of error during the table creation. storage/maria/ha_maria.h: .h file guard added. storage/myisam/ha_myisam.cc: Fix of handler to allow destoy a table in case of error during the table creation.
-
- 06 Jul, 2010 1 commit
-
-
Sergey Petrunya authored
- Item_in_subselect::init_left_expr_cache() should not try to guess whether the left expression is accessed "over the grouping operation" (i.e. the subselect is evaluated after the grouping while the left_expr is an Item_ref that wraps an expression from before the grouping). Instead, let new_Cached_item not to try accessing item->real_item() when creating left expr cache.
-
- 02 Jul, 2010 1 commit
-
-
Igor Babaev authored
join cache module. Without these calls SELECTs over tables with virtual columns that used join cache could return wrong results. This could be seen with the test case added into vcol_misc.test
-
- 27 Jun, 2010 1 commit
-
-
Sergey Petrunya authored
-
- 26 Jun, 2010 7 commits
-
-
Sergey Petrunya authored
-
Sergey Petrunya authored
field->pack_length() bytes.
-
Sergey Petrunya authored
-
Sergey Petrunya authored
-
Sergey Petrunya authored
5.3 had handler::index_only_read_time(uint keynr, double records) while 5.2 got: handler::keyread_read_time(uint index, uint ranges, ha_rows rows) which causes floor()'ing of rows parameter, which makes all further costs different.
-
Sergey Petrunya authored
- fix a bug in LooseScan strategy execution code (exposed by changing costs/QEP) - Do set join_tab->sorted=TRUE for JOIN_TABs that use LooseScan (partitioning handler cares about "sorted" parameter of h->index_init() call)
-
Sergey Petrunya authored
-
- 14 Jun, 2010 1 commit
-
-
Sergey Petrunya authored
-
- 07 Jun, 2010 2 commits
-
-
Sergei Golubchik authored
create st_maria_plugin declarations of new xtradb I_S tables
-
Sergei Golubchik authored
-
- 05 Jun, 2010 1 commit
-
-
Sergei Golubchik authored
* remove handler::index_read_last() * create handler::keyread_read_time() (was get_index_only_read_time() in opt_range.cc) * ha_show_status() allows engine's show_status() to fail * remove HTON_FLUSH_AFTER_RENAME * fix key_cmp_if_same() to work for floats and doubles * set table->status in the server, don't force engines to do it * increment status vars in the server, don't force engines to do it mysql-test/r/status_user.result: correct test results - innodb was wrongly counting internal index searches as handler_read_* calls. sql/ha_partition.cc: compensate for handler incrementing status counters - we want to count only calls to underlying engines sql/handler.h: inline methods moved to sql_class.h sql/key.cc: simplify the check sql/opt_range.cc: move get_index_only_read_time to the handler class sql/sp.cc: don't use a key that's stored in the record buffer - the engine can overwrite the buffer with anything, destroying the key sql/sql_class.h: inline handler methods that need to see THD and TABLE definitions sql/sql_select.cc: no ha_index_read_last_map anymore sql/sql_table.cc: remove HTON_FLUSH_AFTER_RENAME sql/table.cc: set HA_CAN_MEMCMP as appropriate sql/tztime.cc: don't use a key that's stored in the record buffer - the engine can overwrite the buffer with anything, destroying the key storage/myisam/ha_myisam.cc: engines don't need to update table->status or use ha_statistic_increment anymore storage/myisam/ha_myisam.h: index_read_last_map is no more
-
- 03 Jun, 2010 2 commits
-
-
Sergei Golubchik authored
-
Sergei Golubchik authored
mysql-test/suite/pbxt/r/mysqlshow.result: update the forgotten test results sql/table.cc: add defensive asserts. fix the code that didn't in MySQL > 5.2.0 with frm's created before 5.1.10
-
- 02 Jun, 2010 1 commit
-
-
Sergei Golubchik authored
-
- 01 Jun, 2010 1 commit
-
-
Sergei Golubchik authored
-
- 31 May, 2010 1 commit
-
-
unknown authored
-
- 28 May, 2010 1 commit
-
-
Sergei Golubchik authored
-
- 27 May, 2010 3 commits
-
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Michael Widenius authored
Fixed failing test innodb.innodb-autoinc.test Enabled innodb test suite mysql-test/mysql-test-run.pl: Enabled innodb test suite mysql-test/r/innodb-autoinc.result: Removed test as it exists in suite innodb mysql-test/suite/innodb/t/disabled.def: Removed innodb-autoinc mysql-test/suite/innodb/t/innodb-autoinc.test: Update to be able to run with plugin mysql-test/t/innodb-autoinc.test: Removed test as it exists in suite innodb sql/filesort.cc: Removed not used variable sql/slave.cc: Remove compiler warnings storage/pbxt/src/ha_pbxt.cc: Removed not used variable storage/xtradb/dict/dict0crea.c: Fixed compiler warning about unsigned comparison support-files/compiler_warnings.supp: Disable some not relevant warnings
-
- 26 May, 2010 7 commits
-
-
Michael Widenius authored
include/Makefile.am: Make my_valgrind.h global (as it's used by my_global.h) include/my_global.h: Include my_valgrind.h include/my_sys.h: TRASH() moved to my_valgrind.h include/my_valgrind.h: Add VALGRIND defines to mark memory mysys/my_alloc.c: Mark internal freed memory as undefined
-
Michael Widenius authored
storage/pbxt/src/ha_pbxt.cc: LOCK_plugin is not locked anymore as part of plugin initialization
-
Michael Widenius authored
Fixed some bugs introduced in 5.1.47 Disabled some tests until we have merged with latest Xtradb configure.in: Added testing if valgrind/memcheck.h exists storage/pbxt/src/ha_pbxt.cc: LOCK_plugin is not anymore locked in init
-
Sergei Golubchik authored
-
unknown authored
-
Bo Thorsen authored
-
Igor Babaev authored
Bug #39022: completed Bug #39653: reverted as invalid Bug #45640: ameliorated, simplified, optimized Bug #48483: completed Bug #49324: improved Bug #51242/52336: reverted, applied a real fix.
-
- 25 May, 2010 1 commit
-
-
Bo Thorsen authored
Fix a couple of problems in the pack script, and disable a check feature that doesn't work right now
-
- 21 May, 2010 1 commit
-
-
Sergei Golubchik authored
and the server suddenly goes away
-
- 15 May, 2010 5 commits
-
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
unknown authored
-
unknown authored
The statistics after a sequence of inserts/deletes are updated asynchronously in PBXT, causing unpredictable test results. Fix by running the test on a fresh copy of the table with no deletes performed, to get stable results.
-
- 14 May, 2010 1 commit
-
-
Sergei Golubchik authored
1. fix broken change user handling (no restart should happen in the normal case) 2. add assert to guarantee that we never send a request to change to the same plugin 3. "fix" plugin string as sent by the client to be able to compare native plugins by pointers 4. more complete MYSQL initialization in the embedded case 5. change_user.test updated to handle -with-embedded-privilege-control builds
-