1. 30 Jun, 2009 2 commits
    • Sergey Petrunya's avatar
      MWL#17: Table elimination · 7b3d4645
      Sergey Petrunya authored
      - More comments
      - Renove old code
      
      7b3d4645
    • Sergey Petrunya's avatar
      MWL#17: Table elimination · 8156d9eb
      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
      8156d9eb
  2. 29 Jun, 2009 1 commit
    • Sergey Petrunya's avatar
      MWL#17: Table elimination · 9fa1bce4
      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
      9fa1bce4
  3. 25 Jun, 2009 3 commits
    • Sergey Petrunia's avatar
      MWL#17: Table elimination · d764108a
      Sergey Petrunia authored
      - Better comments, variable/function renames 
      
      d764108a
    • Sergey Petrunia's avatar
      Automerge · 15f964b6
      Sergey Petrunia authored
      15f964b6
    • Sergey Petrunia's avatar
      MWL#17: Table elimination · 4102605f
      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
      4102605f
  4. 24 Jun, 2009 2 commits
    • Sergey Petrunia's avatar
      MWL#17: Table elimination · e1250b86
      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()
      e1250b86
    • Sergey Petrunia's avatar
      More comments · defbdce7
      Sergey Petrunia authored
      defbdce7
  5. 23 Jun, 2009 1 commit
    • Sergey Petrunia's avatar
      MWL#17: Table elimination · c4922cbf
      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
      c4922cbf
  6. 22 Jun, 2009 1 commit
    • Sergey Petrunia's avatar
      MWL#17: Table elimination · 9e65634b
      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
      9e65634b
  7. 17 Jun, 2009 1 commit
  8. 16 Jun, 2009 2 commits
    • Sergey Petrunia's avatar
      * Merge · c0103f70
      Sergey Petrunia authored
      * Change valgrind suppression to work on valgrind 3.3.0
      
      c0103f70
    • Sergey Petrunia's avatar
      MWL#17: Table elimination · d8640e3e
      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)
      d8640e3e
  9. 15 Jun, 2009 1 commit
  10. 14 Jun, 2009 3 commits
    • Sergey Petrunia's avatar
      MWL#17: Table elimination · 6b4727dc
      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
      6b4727dc
    • Sergey Petrunia's avatar
      MWL#17: Table elimination · b1e25edc
      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. 
      
      
      b1e25edc
    • Sergey Petrunia's avatar
      MWL#17: Table elimination · 402e58cf
      Sergey Petrunia authored
      - Do not show eliminated tables in the output of EXPLAIN EXTENDED
      
      402e58cf
  11. 09 Jun, 2009 1 commit
    • Sergey Petrunia's avatar
      MWL#17: Table elimination · fd485ad9
      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
      fd485ad9
  12. 08 Jun, 2009 1 commit
  13. 07 Jun, 2009 2 commits
  14. 03 Jun, 2009 2 commits
    • Sergey Petrunia's avatar
      Merge MWL#17 with maria/5.1 · 680107f1
      Sergey Petrunia authored
      680107f1
    • Sergey Petrunia's avatar
      MWL#17: Table elimination · 275a4b35
      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.
      275a4b35
  15. 02 Jun, 2009 2 commits
  16. 25 May, 2009 1 commit
  17. 22 May, 2009 2 commits
    • unknown's avatar
    • unknown's avatar
      After-merge fixes for problems seen in buildbot after merging MySQL-5.1.35. · 48083d73
      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.
      48083d73
  18. 20 May, 2009 1 commit
  19. 19 May, 2009 2 commits
    • Michael Widenius's avatar
      Merge · a129a824
      Michael Widenius authored
      support-files/build-tags:
        Merge.
      a129a824
    • Michael Widenius's avatar
      Fixed problems in merge · 224108a1
      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
      224108a1
  20. 18 May, 2009 1 commit
  21. 12 May, 2009 1 commit
    • Michael Widenius's avatar
      Merge fixes. · b94f191a
      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.
      b94f191a
  22. 11 May, 2009 1 commit
  23. 09 May, 2009 1 commit
  24. 06 May, 2009 1 commit
    • unknown's avatar
      We are now using Valgrind rather than purify, and have for quite some time. · b125770a
      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.
      b125770a
  25. 25 Apr, 2009 2 commits
    • Michael Widenius's avatar
      Merged with mysql-5.1 tree. · e726e587
      Michael Widenius authored
      client/mysqltest.cc:
        Manually merged
      configure.in:
        Manually merged
      mysql-test/r/variables.result:
        Manually merged
      mysql-test/t/variables.test:
        Manually merged
      mysys/my_pread.c:
        Manually merged
      mysys/my_read.c:
        Manually merged
      sql/mysqld.cc:
        Manually merged
      storage/csv/ha_tina.h:
        Manually merged
      storage/myisam/ha_myisam.cc:
        Manually merged
      storage/myisam/mi_check.c:
        Manually merged
      storage/myisam/mi_search.c:
        Manually merged
      e726e587
    • Michael Widenius's avatar
      bzr merge from guilhem's maria tree to our local 5.1 · 210a4125
      Michael Widenius authored
      configure.in:
        Manually merged
      mysql-test/lib/My/ConfigFactory.pm:
        Manually merged
      mysql-test/mysql-test-run.pl:
        Manually merged
      mysql-test/t/information_schema.test:
        Manually merged
      sql/handler.cc:
        Manually merged
      support-files/mysql.spec.sh:
        Manually merged
      210a4125
  26. 23 Apr, 2009 1 commit
  27. 21 Apr, 2009 1 commit