- 13 Aug, 2009 1 commit
-
-
Sergey Petrunya authored
- When making inferences "field is bound" -> "key is bound", do check that the field is part of the key
-
- 12 Aug, 2009 2 commits
-
-
Sergey Petrunya authored
- Continue addressing review feedback: remove "unusable KEYUSEs" extension as it is no longer needed. sql/item.h: MWL#17: Table elimination - Code cleanup sql/opt_table_elimination.cc: MWL#17: Table elimination - Code cleanup
-
Sergey Petrunya authored
Address review feedback: - Change from Wave-based approach (a-la const table detection) to building and walking functional dependency graph. - Change from piggy-backing on ref-access code and KEYUSE structures to using our own expression analyzer. sql/item.cc: MWL#17: Table elimination - Move from C-ish Field_processor_info to C++ ish and generic Field_enumerator sql/item.h: MWL#17: Table elimination - Move from C-ish Field_processor_info to C++ ish and generic Field_enumerator sql/sql_bitmap.h: MWL#17: Table elimination - Backport of Table_map_iterator from 6.0
-
- 08 Jul, 2009 1 commit
-
-
Sergey Petrunya authored
- When collecting Item_subselect::refers_to, put references to the correct subselect entry.
-
- 30 Jun, 2009 2 commits
-
-
Sergey Petrunya authored
- More comments - Renove old code
-
Sergey Petrunya authored
- Last fixes sql/item.cc: MWL#17: Table elimination - Don't make multiple calls of ::walk(check_column_usage_processor), call once and cache the value sql/item.h: MWL#17: Table elimination - s/KEYUSE::usable/KEYUSE::type/, more comments sql/opt_table_elimination.cc: MWL#17: Table elimination - Don't make multiple calls of ::walk(check_column_usage_processor), call once and cache the value sql/sql_select.cc: MWL#17: Table elimination - s/KEYUSE::usable/KEYUSE::type/, more comments sql/sql_select.h: MWL#17: Table elimination - s/KEYUSE::usable/KEYUSE::type/, more comments sql/table.h: MWL#17: Table elimination - Better comments
-
- 29 Jun, 2009 1 commit
-
-
Sergey Petrunya authored
mysql-test/r/table_elim.result: MWL#17: Table elimination - More tests mysql-test/t/table_elim.test: MWL#17: Table elimination - More tests sql/opt_table_elimination.cc: MWL#17: Table elimination - Code cleanup sql/sql_select.cc: MWL#17: Table elimination - Code cleanup sql/sql_select.h: MWL#17: Table elimination - Code cleanup sql/table.h: MWL#17: Table elimination - Code cleanup
-
- 25 Jun, 2009 3 commits
-
-
Sergey Petrunia authored
- Better comments, variable/function renames
-
Sergey Petrunia authored
-
Sergey Petrunia authored
- Moved table elimination code to sql/opt_table_elimination.cc - Added comments .bzrignore: MWL#17: Table elimination - Moved table elimination code to sql/opt_table_elimination.cc libmysqld/Makefile.am: MWL#17: Table elimination - Moved table elimination code to sql/opt_table_elimination.cc sql/CMakeLists.txt: MWL#17: Table elimination - Moved table elimination code to sql/opt_table_elimination.cc sql/Makefile.am: MWL#17: Table elimination - Moved table elimination code to sql/opt_table_elimination.cc
-
- 24 Jun, 2009 2 commits
-
-
Sergey Petrunia authored
- fix a typo bug in has_eqref_access_candidate() - Adjust test to remove race condition mysql-test/r/mysql-bug41486.result: Adjust test to remove race condition mysql-test/t/mysql-bug41486.test: Adjust test to remove race condition sql/item.cc: MWL#17: Table elimination: fix a typo bug in has_eqref_access_candidate()
-
Sergey Petrunia authored
-
- 23 Jun, 2009 1 commit
-
-
Sergey Petrunia authored
- More testcases - Let add_ft_key() set keyuse->usable mysql-test/r/table_elim.result: MWL#17: Table elimination - More testcases mysql-test/t/table_elim.test: MWL#17: Table elimination - More testcases sql/sql_select.cc: MWL#17: Table elimination - Let add_ft_key() set keyuse->usable
-
- 22 Jun, 2009 1 commit
-
-
Sergey Petrunia authored
- Make elimination check to be able detect cases like t.primary_key_col1=othertbl.col AND t.primary_key_col2=func(t.primary_key_col1). These are needed to handle e.g. the case of func() being a correlated subquery that selects the latest value. - If we've removed a condition with subquery predicate, EXPLAIN [EXTENDED] won't show the subquery anymore sql/item.cc: MWL#17: Table elimination - Add tem_field::check_column_usage_processor(). it allows to check which key parts a condition depends on. sql/item.h: MWL#17: Table elimination - Add tem_field::check_column_usage_processor(). it allows to check which key parts a condition depends on. sql/item_subselect.cc: MWL#17: Table elimination - Item_subselect got 'eliminated' attribute. It is used only to determine if the subselect should be printed by EXPLAIN. - Item_subselect got List<Item> refers_to - a list of item in the current select that are referred to from within the subselect. - Added Item_*::check_column_usage_processor(). it allows to check which key parts a condition depends on. - Added a comment about possible problem in Item_subselect::walk sql/item_subselect.h: MWL#17: Table elimination - Item_subselect got 'eliminated' attribute. It is used only to determine if the subselect should be printed by EXPLAIN. - Item_subselect got List<Item> refers_to - a list of item in the current select that are referred to from within the subselect. - Added Item_*::check_column_usage_processor(). it allows to check which key parts a condition depends on. sql/item_sum.cc: MWL#17: Table elimination sql/sql_lex.cc: MWL#17: Table elimination sql/sql_lex.h: MWL#17: Table elimination sql/sql_select.h: MWL#17: Table elimination
-
- 17 Jun, 2009 1 commit
-
-
Sergey Petrunia authored
* Fix test results to account for changes in previous cset
-
- 16 Jun, 2009 2 commits
-
-
Sergey Petrunia authored
* Change valgrind suppression to work on valgrind 3.3.0
-
Sergey Petrunia authored
- Move eliminate_tables() to before constant table detection. - First code for benchmark sql-bench/test-table-elimination.sh: MWL#17: Table elimination - sql-bench "Benchmark", incomplete sql/sql_select.cc: MWL#17: Table elimination - Move eliminate_tables() to before constant table detection, this will allow to spare const table reads (at a cost of not being able to take advantage of tables that are constant because they have no records, but this case is of lesser importance)
-
- 15 Jun, 2009 1 commit
-
-
Sergey Petrunia authored
-
- 14 Jun, 2009 3 commits
-
-
Sergey Petrunia authored
- Fix print_join() to work both for EXPLAIN EXTENDED (after table elimination) and for CREATE VIEW (after join->prepare() but without any optimization). mysql-test/r/union.result: MWL#17: Table elimination - Adjust test results
-
Sergey Petrunia authored
- Fix the previous cset: take into account that select_lex may be printed when 1. There is no select_lex->join at all (in that case, assume that no tables were eliminated) 2. select_lex->join exists but there was no JOIN::optimize() call yet. handle this by initializing join->eliminated really early.
-
Sergey Petrunia authored
- Do not show eliminated tables in the output of EXPLAIN EXTENDED
-
- 09 Jun, 2009 1 commit
-
-
Sergey Petrunia authored
- Make elimination work with aggregate functions. The problem was that aggregate functions reported all table bits in used_tables(), and that prevented table elimination. Fixed by making aggregate functions return more correct value from used_tables(). mysql-test/r/ps_11bugs.result: MWL#17: Table elimination - Update test results. The difference is because of Item_ref change: outer references to constants are now recognized as constants, too. mysql-test/r/subselect.result: - Update test results. The difference is because of Item_ref change: outer references to constants are now recognized as constants, too. mysql-test/r/table_elim.result: MWL#17: Table elimination - Check that elimination works in presense of aggreagate functions mysql-test/t/table_elim.test: MWL#17: Table elimination - Check that elimination works in presense of aggreagate functions sql/item.h: MWL#17: Table elimination - Add Item_ref::const_item() which calls (*ref)->const_item(). Before this diff Item_ref used the default implementation of const_item(){ return used_tables()==0; }. This is no longer true, as COUNT(*) now has used_tables()==0 but const_item()==FALSE. sql/item_sum.cc: MWL#17: Table elimination - Make Item_sum() and it descendants not to return all bits in used_tables(). This is needed because otherwise table elimination can't work in presense of aggregate functions - COUNT(*) now has used_tables()==0 and const_item()==FALSE. Had to change Item_ref::const_item() to account for this. sql/item_sum.h: MWL#17: Table elimination - Add comments
-
- 08 Jun, 2009 1 commit
-
-
Sergey Petrunya authored
handle overlapping. include/m_string.h: Fix valgrind failure: provide an implementation of strmov_overlapp() that really can handle overlapping.
-
- 07 Jun, 2009 2 commits
-
-
Sergey Petrunia authored
-
Sergey Petrunia authored
- Fix trivial valgrind warning
-
- 03 Jun, 2009 2 commits
-
-
Sergey Petrunia authored
-
Sergey Petrunia authored
- First code. Elimination works for simple cases, passes the testsuite. - Known issues: = No elimination is done for aggregate functions. = EXPLAIN EXTENDED shows eliminated tables (I think it better not) = No benchmark yet = The code needs some polishing. mysql-test/r/table_elim.result: MWL#17: Table elimination - Testcases mysql-test/t/table_elim.test: MWL#17: Table elimination - Testcases sql/sql_select.cc: MWL#17: Table elimination sql/sql_select.h: MWL#17: Table elimination - Added JOIN_TAB::eliminated (is JOIN_TAB the best place to store this flag?) sql/table.h: MWL#17: Table elimination - ADded NESTED_JOIN::n_tables. We need to have the number of real tables remaining in an outer join nest.
-
- 02 Jun, 2009 2 commits
-
-
unknown authored
-
Michael Widenius authored
mysql-test/suite/maria/r/maria3.result: Merged fix from bug #39200. mysql-test/suite/maria/t/maria3.test: Merged maria3.test sql/sql_table.cc: Bug fix for 39200
-
- 25 May, 2009 1 commit
-
-
unknown authored
-
- 22 May, 2009 2 commits
-
-
unknown authored
-
unknown authored
- Version number. - Valgrind false alarms in libz. - New variant of suppression for Valgrind warning in dlclose(). - Fix double free() in plugin init error case. configure.in: Fix version number. We should reset the maria variant back to `1' when the MySQL version number increases. include/my_sys.h: Fix false alarms in Valgrind for zlib. Apply same fix as for archive storage handler also to the cases of compression in the client protocol, and to the compression SQL function. mysql-test/valgrind.supp: A new variant of the dlclose() suppression is needed now. mysys/my_compress.c: Fix false alarms in Valgrind for zlib. Apply same fix as for archive storage handler also to the cases of compression in the client protocol, and to the compression SQL function. sql/handler.cc: Fix a double free() in error case for plugin initialisation. sql/item_strfunc.cc: Fix false alarms in Valgrind for zlib. Apply same fix as for archive storage handler also to the cases of compression in the client protocol, and to the compression SQL function.
-
- 20 May, 2009 1 commit
-
-
unknown authored
-
- 19 May, 2009 2 commits
-
-
Michael Widenius authored
support-files/build-tags: Merge.
-
Michael Widenius authored
mysql-test/r/information_schema.result: Fixed a result file. mysql-test/r/innodb-autoinc.result: Fixed a result file. mysql-test/t/connect.test: Fixed a problem with merge, needed to close connections and use the default
-
- 18 May, 2009 1 commit
-
-
unknown authored
-
- 12 May, 2009 1 commit
-
-
Michael Widenius authored
mysql-test/mysql-test-run.pl: Fixed missed lines in merge. storage/maria/plug.in: Fixed problem with configuration. This is now included top level. storage/pbxt/plug.in: Fixed problem with configuration. This is included now in top level.
-
- 11 May, 2009 1 commit
-
-
unknown authored
-
- 09 May, 2009 1 commit
-
-
Toby Thain authored
Portability changes for Solaris 10 (amd64). Re-hash BUILD/ scripts for Solaris to be more in line with generic scripts.
-
- 06 May, 2009 1 commit
-
-
unknown authored
Consequently, rename HAVE_purify to HAVE_valgrind, and related changes. Leave some comments about purify when not clear that they apply also to Valgrind. Fix redundant IF_VALGRIND declaration. Misc. small fixes: - Fixes for pool-of-threads patch. - Fixes for push of PBXT storage engine. - mysql-test-run.pl fix. - Fix build problem in compile-pentium64-max. BUILD/SETUP.sh: Rename purify -> valgrind. BUILD/build_mccge.sh: Rename purify -> valgrind. BUILD/compile-dist: Fix that PBXT was missing in source tarball after `BUILD/compile-dist && make dist` BUILD/compile-pentium64-max: Fix a build problem with BUILD/compile-pentium64-max on CentOS/Fedora Core 10 amd64. On these systems, there is libz.so but no libz.a. Finding libz.so, ./configure decides to use system zlib. But since BUILD/compile-pentium64-max builds a fully static binary with -all-static, the link of mysqld fails due to missing libz.a. Fix by using bundled zlib in the build script. BUILD/compile-solaris-sparc-purify: Rename purify -> valgrind. include/m_string.h: Rename purify -> valgrind. include/my_global.h: Rename purify -> valgrind. mysql-test/Makefile.am: Fix that PBXT test suite was missing from `make dist` source tarball. mysql-test/lib/mtr_unique.pm: Better fix to avoid races when chmod'ing the semaphore file. (Though using chmod 666 shared files in /tmp/ is still not a very good solution). mysql-test/t/pool_of_threads.cnf: Fix that test case pool_of_threads fails if run on mysqld with no --with-libevent support. mysys/mf_qsort.c: Rename purify -> valgrind. mysys/my_alloc.c: Rename purify -> valgrind. mysys/my_init.c: Rename purify -> valgrind. mysys/my_rnd.c: Rename purify -> valgrind. mysys/safemalloc.c: Rename purify -> valgrind. scripts/mysql_config.pl.in: Rename purify -> valgrind. scripts/mysql_config.sh: Rename purify -> valgrind. sql/field_conv.cc: Rename purify -> valgrind. sql/filesort.cc: Rename purify -> valgrind. sql/ha_partition.cc: Rename purify -> valgrind. sql/hostname.cc: Rename purify -> valgrind. sql/item_timefunc.cc: Rename purify -> valgrind. sql/log_event.cc: Rename purify -> valgrind. sql/log_event_old.cc: Rename purify -> valgrind. sql/my_decimal.h: Rename purify -> valgrind. sql/mysqld.cc: Rename purify -> valgrind. Fix redundant IF_VALGRIND declaration. sql/opt_range.cc: Rename purify -> valgrind. sql/opt_range.h: Rename purify -> valgrind. sql/records.cc: Rename purify -> valgrind. sql/rpl_rli.cc: Rename purify -> valgrind. sql/rpl_rli.h: Rename purify -> valgrind. sql/set_var.cc: Fix missing static declaration on pool_of_threads. sql/slave.cc: Rename purify -> valgrind. sql/sql_base.cc: Rename purify -> valgrind. sql/sql_binlog.cc: Rename purify -> valgrind. sql/sql_class.cc: Rename purify -> valgrind. sql/sql_list.h: Rename purify -> valgrind. sql/sql_load.cc: Rename purify -> valgrind. sql/sql_select.cc: Rename purify -> valgrind. sql/table.cc: Rename purify -> valgrind. storage/archive/azio.c: Rename purify -> valgrind. storage/innobase/buf/buf0buf.c: Rename purify -> valgrind. storage/innobase/include/univ.i: Rename purify -> valgrind. storage/innobase/srv/srv0start.c: Rename purify -> valgrind. storage/maria/ha_maria.cc: Rename purify -> valgrind. storage/maria/ma_blockrec.c: Rename purify -> valgrind. storage/maria/ma_check.c: Rename purify -> valgrind. storage/maria/ma_loghandler.c: Rename purify -> valgrind. storage/maria/ma_packrec.c: Rename purify -> valgrind. storage/maria/ma_page.c: Rename purify -> valgrind. storage/maria/ma_pagecrc.c: Rename purify -> valgrind. storage/maria/ma_search.c: Rename purify -> valgrind. storage/myisam/mi_check.c: Rename purify -> valgrind. storage/myisam/mi_page.c: Rename purify -> valgrind. storage/myisam/mi_search.c: Rename purify -> valgrind. storage/myisammrg/ha_myisammrg.cc: Rename purify -> valgrind. strings/bcmp.c: Rename purify -> valgrind. strings/decimal.c: Rename purify -> valgrind. strings/strmake.c: Rename purify -> valgrind.
-