1. 06 Jan, 2005 1 commit
    • unknown's avatar
      Fix for BUG#7331. · d96b59f5
      unknown authored
      The problem was that when a QUICK_SELECT access method is chosen,
      test_if_skip_sort_order() discovered that the index being used
      by the quick select will not deliver tuples in sorted order.
      In this case test_if_skip_sort_order() tried to change the index
      used by the quick select, but it didn't properly set the other
      members of the quick select, and especially the range flags of
      the ranges in QUICK_SELECT::ranges.
      
      The fix re-invokes the function SQL_SELECT::test_quick_select
      to correctly create a valid QUICK_SELECT object.
      
      
      mysql-test/r/order_by.result:
        Added test results.
      mysql-test/t/order_by.test:
        Added test for BUG#7331.
      sql/sql_select.cc:
        Fix for BUG#7331.
      d96b59f5
  2. 18 Dec, 2004 1 commit
  3. 14 Dec, 2004 1 commit
    • unknown's avatar
      * Added comments and one assert · 0e5537ec
      unknown authored
       * Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      
      
      sql/item.cc:
         * More comments
         * Backport of safety measures from 5.0: make numeorous replaces:
            s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      sql/item.h:
        Assert added
      sql/item_cmpfunc.cc:
        Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      sql/item_func.cc:
        Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      sql/item_strfunc.h:
        Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      sql/item_subselect.cc:
        Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      sql/item_sum.cc:
        Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      sql/set_var.cc:
        Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      sql/sql_base.cc:
        Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      sql/sql_handler.cc:
        Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      sql/sql_help.cc:
        Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      sql/sql_select.cc:
        Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      0e5537ec
  4. 13 Dec, 2004 1 commit
  5. 11 Dec, 2004 1 commit
    • unknown's avatar
      Fix for BUG#5837 - attempt 3. · 4ca0670d
      unknown authored
        Call mark_as_null_row in join_read_const and join_read_system.
      
      
      mysql-test/r/multi_update.result:
        Testcase for BUG#5837
      mysql-test/t/multi_update.test:
        Testcase for BUG#5837
      sql/table.h:
        Added comments
      4ca0670d
  6. 30 Nov, 2004 1 commit
    • unknown's avatar
      now we create temporary join for all queries with subqueries to make correct... · 1ef933d6
      unknown authored
      now we create temporary join for all queries with subqueries to make correct cleunup of tables and avoid too early unlock (BUG#6841)
      
      
      mysql-test/t/subselect_innodb.test:
        possible early unlock
      sql/sql_lex.cc:
        subqueries presence flag
      sql/sql_lex.h:
        subqueries presence flag
      sql/sql_parse.cc:
        subqueries presence flag
      sql/sql_select.cc:
        removed some too optimistic optimisation, now we create temporary join for all queries with subqueries to make correct cleunup of tables and avoid too early unlock
      1ef933d6
  7. 22 Nov, 2004 1 commit
    • unknown's avatar
      Bug #6748 heap_rfirst() doesn't work (and never did!) · bc6c2264
      unknown authored
      range for BETWEEN typo fixed
      
      
      extra/perror.c:
        meaningless error message fixed
      heap/hp_rfirst.c:
        Bug #6748 heap_rfirst() doesn't work (and never did!)
      mysql-test/r/heap.result:
        Bug #6748 heap_rfirst() doesn't work (and never did!)
      mysql-test/r/range.result:
        range for BETWEEN typo fixed
      mysql-test/t/heap.test:
        Bug #6748 heap_rfirst() doesn't work (and never did!)
      sql/handler.cc:
        Bug #6748 heap_rfirst() doesn't work (and never did!)
      sql/sql_select.cc:
        range for BETWEEN typo fixed
      bc6c2264
  8. 16 Nov, 2004 1 commit
    • unknown's avatar
      backport Serg's fix of FT interface (BUG#6523) · b28b0e69
      unknown authored
      mysql-test/r/subselect.result:
        subqueries with full text search
      mysql-test/t/subselect.test:
        subqueries with full text search
      sql/ha_myisam.h:
        backport Serg's fix of FT interface
      sql/handler.h:
        backport Serg's fix of FT interface
      sql/opt_range.h:
        backport Serg's fix of FT interface
      sql/sql_select.cc:
        comment for previous patch
      b28b0e69
  9. 15 Nov, 2004 1 commit
    • unknown's avatar
      fixed joincleunup to avoid double deletin tables, and too earlyfull cleanup in case of EXPLAIN · 5d842c4e
      unknown authored
      fixed cleunup of TMP_TABLE_PARAM
      (BUG#6406)
      
      
      mysql-test/r/subselect.result:
        primary query with temporary table and subquery with groupping
      mysql-test/t/subselect.test:
        primary query with temporary table and subquery with groupping
      sql/sql_class.h:
        fixed cleunup of TMP_TABLE_PARAM
      sql/sql_select.cc:
        uncacheable test made simplier
        fixed joincleunup to avoid double deletin tables, and too earlyfull cleanup in case of EXPLAIN
      5d842c4e
  10. 07 Nov, 2004 1 commit
    • unknown's avatar
      Simpler arena swapping code · dda7a6a9
      unknown authored
      Now thd->mem_root is a pointer to thd->main_mem_root and THR_MALLOC is a pointer to thd->mem_root.
      This gives us the following benefits:
      - Allow us to easily detect if arena has already been swapped before (this fixes a bug in setup_conds() where arena was swaped twice in some cases)
      - Faster swaps of arenas (as we don't have to copy the whole MEM_ROOT)
      - We don't anymore have to call my_pthread_setspecific_ptr(THR_MALLOC,...) to change where memory is alloced. Now it's enough to set thd->mem_root
      
      
      
      client/mysqltest.c:
        Remove some not needed defines
        (Things like this should be done in config-win.h)
      include/config-win.h:
        Added popen() and pclose() compatibility macros
      mysql-test/t/rpl_failed_optimize-master.opt:
        Portability fix
      sql/ha_berkeley.cc:
        New thd->memroot handling
      sql/item_cmpfunc.cc:
        Simpler arena swapping code
      sql/item_func.cc:
        Simpler arena swapping code
      sql/item_subselect.cc:
        Simpler arena swapping code
        New thd->mem_root handling
      sql/item_sum.cc:
        New thd->mem_root handling
      sql/item_timefunc.cc:
        Fixed not-initalized usage errors found by valgrind
      sql/log_event.cc:
        New thd->mem_root handling
      sql/mysql_priv.h:
        New thd->mem_root handling
      sql/mysqld.cc:
        New thd->mem_root handling
      sql/opt_range.cc:
        New thd->mem_root handling
      sql/repl_failsafe.cc:
        New thd->mem_root handling
      sql/set_var.cc:
        New thd->mem_root handling
      sql/sql_acl.cc:
        New thd->mem_root handling
      sql/sql_base.cc:
        Simpler arena swapping code
        New thd->mem_root handling
      sql/sql_class.cc:
        New thd->mem_root handling
      sql/sql_class.h:
        Simpler arena swapping code
        New thd->mem_root handling
      sql/sql_db.cc:
        New thd->mem_root handling
      sql/sql_error.cc:
        New thd->mem_root handling
      sql/sql_help.cc:
        New thd->mem_root handling
      sql/sql_insert.cc:
        New thd->mem_root handling
      sql/sql_parse.cc:
        New thd->mem_root handling
        Added some extra checking of return value of new
      sql/sql_prepare.cc:
        New thd->mem_root handling
      sql/sql_select.cc:
        New thd->mem_root handling
      sql/sql_select.h:
        New thd->mem_root handling
      sql/sql_union.cc:
        Simpler arena swapping code
      sql/sql_yacc.yy:
        New thd->mem_root handling
      sql/table.cc:
        New thd->mem_root handling
      sql/thr_malloc.cc:
        New thd->mem_root handling
      tests/client_test.c:
        Added drop table to some tests
        Changed some table names to 't1'
      dda7a6a9
  11. 06 Nov, 2004 1 commit
    • unknown's avatar
      join_outer.result, join_outer.test: · 08d43108
      unknown authored
        Added cases for bugs #6307 and #6460.
      sql_select.cc:
        Fixed the problem of bug reports #6307 and #6460.
        The reported wrong result sets were due to the fact that
        the added call of the fix_fields method for the built
        AND condition that joined WHERE and ON conditions
        broke ON expression, as it removed extra AND levels
        in the built condition. 
        It looks like that no attributes of the built condition
        are needed, so we don't have to call fix_fields here.
      
      
      sql/sql_select.cc:
        Fixed the problem of bug report #6307 and #6460.
        The reported wrong result sets were due to the fact that
        the added call of the fix_fields method for the built
        AND condition that joined WHERE and ON conditions
        broke ON expression. 
        It looks like that no attributes of the built condition
        are needed, so we don't have to call fix_fields here.
      mysql-test/t/join_outer.test:
        Added cases for bugs #6307 and #6460.
      mysql-test/r/join_outer.result:
        Added cases for bugs #6307 and #6460.
      08d43108
  12. 19 Oct, 2004 1 commit
    • unknown's avatar
      Review of all code pushed since last review · da02110d
      unknown authored
      Simple optimzations and cleanups
      Removed compiler warnings and fixed portability issues
      Added client functions 'mysql_embedded()' to allow client to check if we are using embedded server
      Fixes for purify
      
      
      client/mysqlimport.c:
        Remove not used variable
      client/mysqltest.c:
        Remove usage of MAXPATHLEN (all MySQL code uses FN_REFLEN)
        Simplified code
        Remove usage of sprintf("%llu") as this is not portable
      include/mysql.h:
        Added mysql_embedded() to be able to easily check if we are using the embedded server
      innobase/srv/srv0start.c:
        Don't use memcmp() when using purify (to avoid false warnings)
      libmysql/libmysql.c:
        Added mysql_embedded() to be able to easily check if we are using the embedded server
      libmysql/libmysql.def:
        Added mysql_embedded() to be able to easily check if we are using the embedded server
      myisam/myisam_ftdump.c:
        Remove compiler warning
      myisam/myisamchk.c:
        Remove compiler warning
      myisam/rt_test.c:
        #ifdef not used code
      mysys/hash.c:
        Remove compiler warning (from last push)
      mysys/my_gethwaddr.c:
        Remove compiler warning
      ndb/src/ndbapi/ndberror.c:
        #ifdef not used code
      regex/regcomp.c:
        Remove not used code
      regex/regcomp.ih:
        Remove not used code (to remove compiler warnings)
      sql-common/client.c:
        Remove compiler warnings
      sql/field.cc:
        Simple optimization
      sql/ha_innodb.cc:
        Rename mysql_embedded -> mysqld_embedded
      sql/item.cc:
        Fix comments
        Move variables first on block
        Remove else after return
        Simple optimizations
        (no logic changes)
      sql/item_cmpfunc.cc:
        Added comment
      sql/mysql_priv.h:
        Rename mysql_embedded -> mysqld_embedded
      sql/mysqld.cc:
        Rename mysql_embedded -> mysqld_embedded
      sql/sql_acl.cc:
        Added comments
        simple optimization
        Fixed 'very unlikely' bug when doing REVOKE ALL PRIVILEGES
      sql/sql_select.cc:
        More comments
        Simple optimization
      sql/sql_show.cc:
        Simple changes to make similar code similar
        More comments
      sql/sql_string.cc:
        Trivial optimization and better code layout
      strings/Makefile.am:
        Change xml.c to use bcmp to avoid warnings from purify
      strings/xml.c:
        Change xml.c to use bcmp to avoid warnings from purify
      tests/client_test.c:
        Remove usage of MAXPATHLEN (all MySQL code uses FN_REFLEN)
      da02110d
  13. 10 Oct, 2004 1 commit
    • unknown's avatar
      Blob support for the group_concat() function. · 5acf251b
      unknown authored
      (Bug #4315: GROUP_CONCAT with ORDER BY returns strange results for TEXT fields
       Bug #5564: Strange behaviour with group_concat and distinct
       Bug #5970: group_concat doesn't print warnings)
      
      5acf251b
  14. 09 Oct, 2004 2 commits
    • unknown's avatar
      A small simplification: perform two actions at once, register a · c90fd2c4
      unknown authored
      change, and perform it (the new Item changes registry).
      
      
      sql/item.cc:
        A small simplification: perform two actions at once, register a
        change, and perform it.
      sql/item_cmpfunc.cc:
        register_item_tree_change -> change_item_tree
      sql/item_func.cc:
        register_item_tree_change -> change_item_tree
      sql/item_row.cc:
        register_item_tree_change -> change_item_tree
      sql/item_strfunc.cc:
        register_item_tree_change -> change_item_tree
      sql/sql_class.h:
        register_item_tree_change -> change_item_tree
      sql/sql_select.cc:
        register_item_tree_change -> change_item_tree
      c90fd2c4
    • unknown's avatar
      A fix and test case for Bug#5987 "subselect in bool function · bcc6f615
      unknown authored
      crashes server (prepared statements)": the bug was that all boolean
      items always recovered its original arguments at statement cleanup 
      stage.
      This collided with Item_subselect::select_transformer, which tries to 
      permanently change the item tree to use a transformed subselect instead of
      original one.
      So we had this call sequence for prepare:
      mysql_stmt_prepare -> JOIN::prepare -> 
      Item_subselect::fix_fields -> the item tree gets transformed ->
      Item_bool_rowready_func2::cleanup, item tree is recovered to original
      state, while it shouldn't have been;
      mysql_stmt_execute -> attempts to execute a broken tree -> crash.
      Now instead of bluntly recovering all arguments of bool functions in 
      Item_bool_rowready_func2::cleanup, we recover only those
      which were changed, and do it in one place.
      There still would exist a possibility for a collision with subselect
      tranformation, if permanent and temporary changes were performed at the 
      same stage.
      But fortunately subselect transformation is always done first, so it 
      doesn't conflict with the optimization done by propogate_cond_constants.
      Now we have: 
      mysql_stmt_prepare -> JOIN::prepare -> subselect transformation 
      permanently changes the tree -> cleanup doesn't recover anything, 
      because nothing was registered for recovery.
      mysql_stmt_execute -> JOIN::prepare (the tree is already transformed, 
      so it doesn't change), JOIN::optimize -> 
      propogate_cond_constants -> temporary changes the item tree 
      with constants -> JOIN::execute -> cleanup -> 
      the changes done by propogate_cond_constants are recovered, as
      they were registered for recovery.
      
      
      mysql-test/r/ps.result:
        Bug#5987: test results fixed.
      mysql-test/t/ps.test:
        A test for bug#5987 "subselect in bool function crashes server 
        (prepared statements)"
      sql/item.cc:
        resolve_const_item is now responsible to register all changes of the 
        item tree for recovery
      sql/item.h:
        resolve_const_item signagture changed
      sql/item_cmpfunc.h:
        Arguments of boolean functions are now recovered using the 
        centralized registry of THD.
      sql/sql_class.cc:
        It's crucial to add new items to the beginning of the recovery list,
        so that the recovery is performed in LIFO mode: otherwise if we 
        change one node of a tree twice, it will be recovered to some intermediate
        state.
      sql/sql_select.cc:
        change_cond_ref_to_const and propogate_cond_constants are now responsible
        to register all changes of the item tree for recovery.
        The recovery is done using the centralized THD registry of
        changed tree items.
      bcc6f615
  15. 08 Oct, 2004 2 commits
    • unknown's avatar
      args_copy and cleunup() removed from Item_sum · 29d87fee
      unknown authored
      registration changing ITEM_SUM arguments added
      
      
      sql/item.cc:
        cleunup for Item_result_field
      sql/item.h:
        cleunup for Item_result_field
      sql/item_sum.cc:
        args_copy and cleunup() removed from Item_sum
      sql/item_sum.h:
        args_copy and cleunup() removed from Item_sum
      sql/sql_select.cc:
        registration changing ITEM_SUM arguments
      29d87fee
    • unknown's avatar
      Deployment of centralized Item change registry, step 2: Item_ref · 9ba3c23e
      unknown authored
      doesn't need to have it's own recovery mechanism.
      
      
      sql/item.cc:
        Deployment of centralized Item change registry, step 2: Item_ref 
        doesn't need to have it's own recovery mechanism, so it was simplified.
      sql/item.h:
        Deployment of centralized Item change registry, step 2: Item_ref 
        doesn't need to have it's own recovery mechanism, so it was simplified.
      sql/item_cmpfunc.cc:
        - Item::split_sum_func now requires THD
        - use THD::register_item_tree_change
      sql/item_cmpfunc.h:
        - Item::split_sum_func now requires THD
      sql/item_func.cc:
        - Item::split_sum_func now requires THD
        - use THD::register_item_tree_change
      sql/item_func.h:
        - Item::split_sum_func now requires THD
      sql/item_row.cc:
        - Item::split_sum_func now requires THD
        - use THD::register_item_tree_change
      sql/item_row.h:
        - Item::split_sum_func now requires THD
      sql/item_strfunc.cc:
        - Item::split_sum_func now requires THD
        - use THD::register_item_tree_change to register changes in the item
          tree
      sql/item_strfunc.h:
        - Item::split_sum_func now requires THD
      sql/item_subselect.cc:
        - use updated Item_ref constructor
      sql/sql_base.cc:
        - Item::split_sum_func now requires THD
      sql/sql_select.cc:
        - Item::split_sum_func now requires THD
      sql/sql_yacc.yy:
        - use updated Item_ref constructor
      9ba3c23e
  16. 07 Oct, 2004 1 commit
    • unknown's avatar
      After merge fixes · 73950f75
      unknown authored
      Some bigger code changes was necessary becasue of the multi-table-update and the new HANDLER code
      
      
      include/hash.h:
        Added back function that's was used in 4.0
      mysql-test/r/delete.result:
        Update results after merge
      mysql-test/r/flush_table.result:
        Update results after merge
      mysql-test/r/func_str.result:
        Update results after merge
      mysql-test/r/handler.result:
        Update results after merge
        Change is big becasue in MySQL 4.1 you are not allowed to qualify the handler alias with a databasename
      mysql-test/r/multi_update.result:
        More startup cleanups
      mysql-test/r/rename.result:
        More startup-cleanups
      mysql-test/r/select.result:
        More startup cleanups
      mysql-test/r/show_check.result:
        More startup-cleanups
      mysql-test/t/ctype_latin1_de.test:
        Cleanup
      mysql-test/t/derived.test:
        Portability fix
      mysql-test/t/handler.test:
        Update results after merge
        Change is big becasue in MySQL 4.1 you are not allowed to qualify the handler alias with a databasename
      mysql-test/t/multi_update.test:
        More startup cleanups
      mysql-test/t/range.test:
        More comments
      mysql-test/t/rename.test:
        More startup cleanups
      mysql-test/t/select.test:
        More startup cleanups
      mysql-test/t/show_check.test:
        More startup cleanups
      mysql-test/t/type_timestamp.test:
        Add back test deleted during merge
      sql/item_cmpfunc.cc:
        After merge fixes
      sql/item_func.cc:
        Remove compiler warning
      sql/mysql_priv.h:
        After merge fixes
      sql/mysqld.cc:
        After merge fixes
      sql/sql_acl.cc:
        More debugging
      sql/sql_base.cc:
        After merge fixes
        (This fix was needed bacause of multi-table-update reopens tables)
      sql/sql_handler.cc:
        After merge fixes
      sql/sql_lex.h:
        After merge fixes
      sql/sql_select.cc:
        After merge fixes
      sql/sql_show.cc:
        After merge fixes
      sql/sql_table.cc:
        After merge fixes
        Simple cleanup of mysql_discard_or_import_tablespace
      sql/sql_update.cc:
        After merge fixes
        Rework mysql_multi_update to take into account derived tables.
      sql/sql_yacc.yy:
        After merge fixes
      73950f75
  17. 01 Oct, 2004 1 commit
  18. 30 Sep, 2004 2 commits
    • unknown's avatar
      bug#5782 · 214d20a6
      unknown authored
      214d20a6
    • unknown's avatar
      Final solution for bug# 4302 "Ambiguos order by when renamed column is · 570923eb
      unknown authored
      identical to another in result"
      According to SQL standard queries like 
      "select t1.a as col from t1, t2 order by a" should return an error if
      both tables contain field a.
      
      
      mysql-test/r/order_by.result:
        Updated test to conform SQL-standard.
      mysql-test/t/order_by.test:
        Updated test to conform SQL-standard.
      sql/item.cc:
        find_item_in_list() has now one more out parameter which is not used
        in item.cc functions.
      sql/mysql_priv.h:
        find_item_in_list(): Added boolean out parameter "unaliased" which
        indicates that we have found field by its original name and not by
        its alias in item (select) list.
      sql/sql_base.cc:
        find_item_in_list(): Added boolean out parameter "unaliased" which
        indicates that we have found field by its original name and not by
        its alias in item (select) list. This means that additional check is
        required to ensure there will be no ambiguity if we would search for this
        field in all tables.
      sql/sql_select.cc:
        find_order_in_list(): If we have found field in select list by its
        original name and not by its alias then we should perform additional
        check to ensure that there will be no ambiguity if we will search for
        this field in all tables. Also small cleanup.
      570923eb
  19. 13 Sep, 2004 2 commits
  20. 06 Sep, 2004 1 commit
    • unknown's avatar
      fixed temporary table processing expresions of subqueries and removed wrong... · d6be2826
      unknown authored
      fixed temporary table processing expresions of subqueries and removed wrong restrictions of field resolving (BUG#5326)
      
      
      mysql-test/r/subselect.result:
        tests of fields resolving
      mysql-test/t/subselect.test:
        tests of fields resolving
      sql/item.cc:
        fixed fild resolving
      sql/item_subselect.cc:
        removed aneed call
      sql/sql_base.cc:
        fixed case whan we scan un-fixfielded fields
      sql/sql_select.cc:
        fixed temporary table processing expresions of subqueries
      d6be2826
  21. 03 Sep, 2004 1 commit
    • unknown's avatar
      select.result, select.test: · 76936ace
      unknown authored
        Added a test case for bug #5333.
      null_key.result, key_primary.result:
        Made covering index usable for const tables.
      sql_select.cc:
        Made covering index usable for const tables:
        downported the corresponding code from 4.1.
        Simultaneously fixed bug #5333 reported for 4.1.
        The bug was due to the fact that field index in join
        structures was always set to 0 for const tables.
      
      
      sql/sql_select.cc:
        Made covering index usable for const tables:
        downported the corresponding code from 4.1.
        Simultaneously fixed bug #5333 reported for 4.1.
        The bug was due to the fact that field index in join
        structures was always set to 0 for const tables.
      mysql-test/t/select.test:
        Added a test case for bug #5333.
      mysql-test/r/key_primary.result:
        Made covering index usable for const tables.
      mysql-test/r/null_key.result:
        Made covering index usable for const tables.
      mysql-test/r/select.result:
        Added a test case for bug #5333.
      76936ace
  22. 31 Aug, 2004 2 commits
    • unknown's avatar
      after review patch · e6fbc582
      unknown authored
      mysql-test/r/negation_elimination.result:
        new tests of negation elimination
      mysql-test/t/negation_elimination.test:
        new tests of negation elimination
      sql/item.h:
        test of boolean functions added
      sql/item_cmpfunc.cc:
        NOT subtree is already checked, so wee need to return just argument
      sql/item_cmpfunc.h:
        test of boolean functions added
      sql/mysql_priv.h:
        'place' to detect WHERE clause
      sql/sql_parse.cc:
        function for creation negated expression
      sql/sql_select.cc:
        removed unused function
      sql/sql_select.h:
        removed unused function
      sql/sql_yacc.yy:
        'place' to detect WHERE clause
      e6fbc582
    • unknown's avatar
      Review of new pushed code (Indentation fixes and simple optimizations) · efcf75a9
      unknown authored
      Use 'mysqltest' as test database instead of test_$1 or test1,test2 to not accidently delete an important database
      Safety fix for mailformed MERGE files
      
      
      Build-tools/mysql-copyright:
        Print correct file name in case of errors
        Fixed indentation
      include/config-win.h:
        Removed unnecessary #ifdef
      myisammrg/myrg_open.c:
        Don't give a core if merge file contains INSERT_METHOD first (not legal but better safe than sorry)
        Don't set struct variables to zero that are already zero
        Indentation fixes
      mysql-test/r/create.result:
        Use 'mysqltest' as test database
      mysql-test/r/ndb_basic.result:
        Use 'mysqltest' as test database
      mysql-test/r/ndb_blob.result:
        Use 'mysqltest' as test database
      mysql-test/r/ndb_transaction.result:
        Use 'mysqltest' as test database
      mysql-test/r/ps_1general.result:
        Use 'mysqltest' as test database
      mysql-test/r/rpl_charset.result:
        Use 'mysqltest' as test database
      mysql-test/r/rpl_delete_all.result:
        Use 'mysqltest' as test database
      mysql-test/r/show_check.result:
        Use 'mysqltest' as test database
      mysql-test/t/create.test:
        Use 'mysqltest' as test database
      mysql-test/t/ndb_basic.test:
        Use 'mysqltest' as test database
      mysql-test/t/ndb_blob.test:
        Use 'mysqltest' as test database
      mysql-test/t/ndb_transaction.test:
        Use 'mysqltest' as test database
      mysql-test/t/ps_1general.test:
        Use 'mysqltest' as test database
      mysql-test/t/rpl_charset.test:
        Use 'mysqltest' as test database
      mysql-test/t/rpl_delete_all.test:
        Use 'mysqltest' as test database
      mysql-test/t/show_check.test:
        Use 'mysqltest' as test database
      sql/field.h:
        Mark functions that should be deleted as soon as we have a new prototype for store(longlong)
      sql/lock.cc:
        Indentation fix
      sql/sql_base.cc:
        Better comment.
        Break find_item_in_list in case of perfect match
      sql/sql_prepare.cc:
        Simple optimization
      sql/sql_select.cc:
        Portability fix
      efcf75a9
  23. 29 Aug, 2004 1 commit
    • unknown's avatar
      NOT elimination moved in parsing (suggested by Monty) · 6a890621
      unknown authored
      sql/item_cmpfunc.cc:
        NOT elimination moved in parsing (we do not need fix fields in it and PS processing)
      sql/item_cmpfunc.h:
        NOT elimination moved in parsing (we do not need fix fields in it and PS processing)
      sql/sql_select.cc:
        NOT elimination moved in parsing (we do not need fix fields in it and PS processing)
      sql/sql_yacc.yy:
        NOT elimination moved in parsing
      6a890621
  24. 26 Aug, 2004 1 commit
    • unknown's avatar
      Portability fixes · f78bbc8c
      unknown authored
      Fixed bug in end space handle for WHERE text_column="constant"
      
      
      heap/hp_hash.c:
        Optimzations (no change of logic)
      libmysql/libmysql.c:
        Added missing casts (portability fix)
      myisam/mi_key.c:
        Changed macro to take arguments and not depend on local variables
        Simple indentation fixes ?
      mysql-test/r/connect.result:
        Added test for setting empty password
      mysql-test/r/create_select_tmp.result:
        TYPE -> ENGINE
      mysql-test/r/ctype_utf8.result:
        Combine drop's
      mysql-test/r/endspace.result:
        Added more tests to test end space behaviour
      mysql-test/r/having.result:
        Added missing DROP TABLE
      mysql-test/r/type_blob.result:
        Added more tests to ensure that fix for BLOB usage is correct
      mysql-test/r/type_timestamp.result:
        Add test from 4.0
      mysql-test/t/connect.test:
        Added test for setting empty password
      mysql-test/t/create_select_tmp.test:
        TYPE -> ENGINE
      mysql-test/t/ctype_utf8.test:
        Combine drop's
      mysql-test/t/endspace.test:
        Added more tests to test end space behaviour
      mysql-test/t/having.test:
        Added missing DROP TABLE
      mysql-test/t/type_blob.test:
        Added more tests to ensure that fix for BLOB usage is correct
      mysql-test/t/type_timestamp.test:
        Add test from 4.0
      sql/field.cc:
        Removed not used variable
        Portability fix (cast)
        Simplified Field_str::double()
        Simple indentation cleanups
      sql/field.h:
        Removed not needed class variable
      sql/item_cmpfunc.cc:
        Indentation fix
      sql/item_strfunc.cc:
        Use on stack variable for Item_str_func::val() instead of str_value.
        This makes it safe to use str_value inside the Item's val function.
        Cleaned up LEFT() usage, thanks to the above change
      sql/item_sum.cc:
        Indentation cleanups
      sql/protocol.cc:
        Added missing cast
      sql/sql_acl.cc:
        Indentatin cleanups.
        Added missing cast
        Simple optimization of get_sort()
      sql/sql_select.cc:
        Don't use 'ref' to search on text field that is not of type BINARY (use 'range' instead).
        The reson is that for 'ref' we use 'index_next_same' to read the next possible row. 
        For text fields, rows in a ref may not come in order, like for 'x', 'x\t' 'x ' (stored in this order) which causes a search for 'column='x ' to fail
      sql/tztime.cc:
        Simple cleanup
      strings/ctype-bin.c:
        Comment fixes
      strings/ctype-mb.c:
        Changed variable names for arguments
      f78bbc8c
  25. 24 Aug, 2004 2 commits
    • unknown's avatar
      Fix for Bug#5034 "prepared "select 1 into @arg15", second · dd5022c0
      unknown authored
      execute crashes server": we were deleting lex->result
      after each execute, but prepared statements assumed that
      it's left intact.
      The fix adds cleanup() method to select_result hierarchy,
      so that result objects can be reused.
      Plus we now need to delete result objects more wisely.
      
      
      mysql-test/r/ps.result:
        Test results fixed: test case for bug#5034
      mysql-test/t/ps.test:
        A test case for bug#5034, few followups
      sql/sql_class.cc:
        - fix warning in THD::THD
        - implementation of cleanup() for select_result hierarchy
        - select_export::send_eof was identical to 
          select_dump::send_eof: moved to the base class select_to_file.
        - Statement::end_statement() to end lex, free items, and
          delete possible select_result
      sql/sql_class.h:
        - select_result::cleanup() declaration
        -
      sql/sql_insert.cc:
        - implementation of select_insert::cleanup(): currently
          we always create a new instance of select_insert/
          select_create on each execute.
      sql/sql_lex.cc:
        - with more complicated logic of freeing lex->result it's 
          easier to have it non-zero only if it points to a valid
          result.
      sql/sql_lex.h:
        Now st_lex::st_lex is not empty.
      sql/sql_parse.cc:
        mysql_execute_command():
        - delete select_result *result only if it was created in
          this function.
        - use end_statement() to cleanup lex and thd in the end of
          each statement.
        - no need to save THD::lock if this is explain. This save
          apparently left from times when derived tables were 
          materialized here, not in open_and_lock_tables.
      sql/sql_prepare.cc:
        - call result->cleanup() in reset_stmt_for_execute
        - now Statement is responsible for freeing its lex->result.
      sql/sql_select.cc:
        handle_select():
        - don't delete result, it might be needed
          for next executions
        - result is never null
      dd5022c0
    • unknown's avatar
      Portablity fixes & simple optimizations · 04691360
      unknown authored
      sql/ha_ndbcluster.cc:
        Added missing cast
      sql/item.cc:
        Portability fix (for windows)
      sql/lock.cc:
        Cleanup + more comments
      sql/sql_class.cc:
        Portability fix + more comments
      sql/sql_select.cc:
        Portability fix
      sql/sql_table.cc:
        Simpler handling of auto_increment in ALTER TABLE
      04691360
  26. 23 Aug, 2004 5 commits
    • unknown's avatar
      Fix for bug #5134: WHERE x = 'bar' AND x LIKE BINARY 'bar' returns wrong results(for 4.1 tree) · d88fc974
      unknown authored
      mysql-test/r/binary.result:
        Fix for bug #5134: WHERE x = 'bar' AND x LIKE BINARY 'bar' returns wrong results
      mysql-test/t/binary.test:
        Fix for bug #5134: WHERE x = 'bar' AND x LIKE BINARY 'bar' returns wrong results
      sql/sql_select.cc:
        Fix for bug #5134: WHERE x = 'bar' AND x LIKE BINARY 'bar' returns wrong results
      d88fc974
    • unknown's avatar
      Fix for bug #5134: WHERE x = 'bar' AND x LIKE BINARY 'bar' returns · bea59bbc
      unknown authored
      wrong results
      
      bea59bbc
    • unknown's avatar
      Changed %lx -> 0x%lx (for easier comparison of debug files) · 19984dae
      unknown authored
      Cosmetic cleanups
      Don't call 'delete_elements' on copy_funcs as this causes elements to be freed twice
      
      
      mysys/hash.c:
        Changed %lx -> 0x%lx (for easier comparison of debug files)
      mysys/list.c:
        Changed %lx -> 0x%lx (for easier comparison of debug files)
      mysys/mf_iocache.c:
        Changed %lx -> 0x%lx (for easier comparison of debug files)
      mysys/mf_keycache.c:
        Changed %lx -> 0x%lx (for easier comparison of debug files)
        Changed debug messages to be more consistent with other mysys files.
      mysys/mf_keycaches.c:
        Changed %lx -> 0x%lx (for easier comparison of debug files)
      mysys/my_alloc.c:
        Changed %lx -> 0x%lx (for easier comparison of debug files)
      mysys/my_fopen.c:
        Changed %lx -> 0x%lx (for easier comparison of debug files)
      mysys/my_fstream.c:
        Changed %lx -> 0x%lx (for easier comparison of debug files)
      mysys/my_getwd.c:
        Changed %lx -> 0x%lx (for easier comparison of debug files)
      mysys/my_lib.c:
        Changed %lx -> 0x%lx (for easier comparison of debug files)
      mysys/my_lwrite.c:
        Changed %lx -> 0x%lx (for easier comparison of debug files)
      mysys/my_malloc.c:
        Changed %lx -> 0x%lx (for easier comparison of debug files)
      mysys/my_pread.c:
        Changed %lx -> 0x%lx (for easier comparison of debug files)
      mysys/my_read.c:
        Changed %lx -> 0x%lx (for easier comparison of debug files)
      mysys/my_realloc.c:
        Changed %lx -> 0x%lx (for easier comparison of debug files)
      mysys/my_write.c:
        Changed %lx -> 0x%lx (for easier comparison of debug files)
      mysys/safemalloc.c:
        Changed %lx -> 0x%lx (for easier comparison of debug files)
      mysys/thr_alarm.c:
        Changed %lx -> 0x%lx (for easier comparison of debug files)
      mysys/thr_lock.c:
        Changed %lx -> 0x%lx (for easier comparison of debug files)
      mysys/thr_mutex.c:
        Changed %lx -> 0x%lx (for easier comparison of debug files)
      mysys/tree.c:
        Changed %lx -> 0x%lx (for easier comparison of debug files)
      mysys/typelib.c:
        Changed %lx -> 0x%lx (for easier comparison of debug files)
      sql/examples/ha_archive.cc:
        Changed to return error number for some functions (instead of -1)
        Updated function comments & some other minor cleanups
        Ensure that free_share() and gzclose() are always called
        Use 'TRUE' and 'FALSE' instead of 'true' and 'false'
        Removed some compiler warnings
      sql/examples/ha_archive.h:
        Fixed to use new prototypes for records_in_range
      sql/sql_select.cc:
        Don't call 'delete_elements' on copy_funcs
      19984dae
    • unknown's avatar
      better for for bug#4767 · e8db4b63
      unknown authored
      e8db4b63
    • unknown's avatar
      Fix for bug#5088: · f2612141
      unknown authored
       * When executing EXPLAIN, do the same as for the query: convert join type to JT_CONST if keyuse array covers all key parts and all of them are constants.
       * In remove_const, don't remove conditions that depend on some-const-table and current-table.
      
      
      mysql-test/r/join_outer.result:
        Testcase for bug#5088
      mysql-test/t/join_outer.test:
        Testcase for bug#5088
      f2612141
  27. 20 Aug, 2004 3 commits
    • unknown's avatar
      Fix for bug#4912 "mysqld crashs in case a statement is executed · 48bb5630
      unknown authored
       a second time". The bug was caused by incompatibility of
      negations elimination algorithm and PS: during first statement 
      execute a subtree with negation was replaced with equivalent 
      subtree without NOTs.
      The problem was that although this transformation was permanent, 
      items of the new subtree were created in execute-local memory.
      The patch adds means to check if it is the first execute of a
      prepared statement, and if this is the case, to allocate items
      in memory of the prepared statement.
      The implementation:
      - backports Item_arena from 5.0
      - adds Item_arena::is_stmt_prepare(), 
        Item_arena::is_first_stmt_execute().
      - deletes THD::allocate_temporary_pool_for_ps_preparing(),
        THD::free_temporary_pool_for_ps_preparing(); they
        were redundant.
      and adds a few invariants:
      - thd->free_list never contains junk (= freed items)
      - thd->current_arena is never null. If there is no
        prepared statement, it points at the thd. 
      The rest of the patch contains mainly mechanical changes and
      cleanups.
      
      
      mysql-test/r/ps.result:
        Test results updated (test case for Bug#4912)
      mysql-test/t/ps.test:
        A test case for Bug#4912 "mysqld crashs in case a statement is 
        executed a second time"
      sql/item_cmpfunc.cc:
        current_statement -> current_arena
      sql/item_subselect.cc:
        Statement -> Item_arena, current_statement -> current_arena
      sql/item_subselect.h:
        Item_subselect does not need to save thd->current_statement.
      sql/item_sum.cc:
        Statement -> Item_arena
      sql/item_sum.h:
        Statement -> Item_arena
      sql/mysql_priv.h:
        Statement -> Item_arena
      sql/sql_base.cc:
        current_statement -> current_arena
      sql/sql_class.cc:
        - Item_arena
        - convenient set_n_backup_statement, restore_backup_statement
        (nice idea, Sanja)
      sql/sql_class.h:
        - Item_arena: backport from 5.0
        - allocate_temporary_pool_for_ps_preparing,
          free_temporary_pool_for_ps_preparing removed.
      sql/sql_derived.cc:
        current_statement -> current_arena
      sql/sql_lex.cc:
        current_statement -> current_arena
      sql/sql_parse.cc:
        Deploy invariant that thd->free_list never contains junk items
        (backport from 5.0).
      sql/sql_prepare.cc:
        - backporting Item_arena
        - no need to allocate_temporary_pool_for_ps_preparing().
      sql/sql_select.cc:
        Fix for bug#4912 "mysqld crashs in case a statement is 
        executed a second time": if this is the first execute of
        a prepared statement, negation elimination is
        done in memory of the prepared statement.
      sql/sql_union.cc:
        Backporting Item_arena from 5.0.
      48bb5630
    • unknown's avatar
      sql_select.cc: compilation failure fixed · 059d85fe
      unknown authored
      
      sql/sql_select.cc:
        why cannot I compare (type) to (const type) ?????
      059d85fe
    • unknown's avatar
      Fix for bug#4302 "ambiguos order by when renamed column is identical to another in result" · 0f5fa0eb
      unknown authored
      When in find_item_in_list() we are looking for item we should take into account unaliased 
      names of the fields but only if item with such aliased name is not found.
      Also we should ignore aliases when looking for fully specified field.
      
      
      mysql-test/r/order_by.result:
        Fixed wrong (non-standard) test results
        Added test case for bug #4302
        Added tests for other ambiguos and potentially ambigous cases in order by clause
      mysql-test/t/order_by.test:
        Fixed wrong (non-standard) test results
        Added test case for bug #4302
        Added tests for other ambiguos and potentially ambigous cases in order by clause
      sql/sql_select.cc:
        We should ignore only not_found_item errors when searching for item in find_order_in_list() 
        to be able to catch ambiguities.
      0f5fa0eb
  28. 19 Aug, 2004 1 commit