1. 01 Jul, 2005 1 commit
    • unknown's avatar
      "Fix" for bug #11394 "Recursion in SP crash server" and bug #11600 · fb8a8425
      unknown authored
      "Stored procedures: crash with function calling itself".
      
      Disallow recursive stored routines until we either make Item's and LEX
      reentrant safe or will use spearate sp_head instances (and thus separate
      LEX objects and Item trees) for each routine invocation.
      
      
      mysql-test/r/sp-error.result:
        Added tests for bug #11394 "Recursion in SP crash server" and
        bug #11600 "Stored procedures: crash with function calling itself".
        (We simply disallow recursion for stored routines).
      mysql-test/r/sp.result:
        Disabled test cases containing recursive stored routines until we will
        support for them.
      mysql-test/t/sp-error.test:
        Added tests for bug #11394 "Recursion in SP crash server" and
        bug #11600 "Stored procedures: crash with function calling itself".
        (We simply disallow recursion for stored routines).
      mysql-test/t/sp.test:
        Disabled test cases containing recursive stored routines until we will
        support for them.
      sql/share/errmsg.txt:
        Added error message saying that recursive stored routines are disallowed.
      sql/sp_head.cc:
        sp_head::execute():
          Since many Item's and LEX members can't be used in reentrant fashion
          we have to disable recursion for stored routines. So let us track
          routine invocations using sp_head::m_is_invoked member and raise
          error when one attempts to call routine recursively.
      sql/sp_head.h:
        sp_head:
          Added m_is_invoked member for tracking of routine invocations and
          preventing recursion.
      fb8a8425
  2. 29 Jun, 2005 5 commits
  3. 28 Jun, 2005 7 commits
    • unknown's avatar
      Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0 · 1072fab7
      unknown authored
      into rurik.mysql.com:/home/igor/mysql-5.0
      
      
      sql/opt_range.cc:
        Auto merged
      1072fab7
    • unknown's avatar
      opt_range.cc: · dbd1d927
      unknown authored
        Fixed a compilation error.
      
      
      sql/opt_range.cc:
        Fixed a compilation error.
      dbd1d927
    • unknown's avatar
      Fixed comments. · e899af6b
      unknown authored
      
      sql/opt_range.cc:
        comment fixed.
      sql/sp_head.cc:
        An obsolete comment removed.
      e899af6b
    • unknown's avatar
      Merge rurik.mysql.com:/home/igor/mysql-5.0 · af78014c
      unknown authored
      into rurik.mysql.com:/home/igor/dev/mysql-5.0-0
      
      
      sql/opt_range.cc:
        Auto merged
      af78014c
    • unknown's avatar
      A fix and a test case for Bug#10736 "mysql_stmt_attr_set · cbb60f5e
      unknown authored
      CURSOR_TYPE_READ_ONLY select within select".
      The bug was caused by the reset of thd->mem_root to thd->main_mem_root in 
      Item_subselect::exec, which in turn triggered too early free_root() for
      data which was needed on subsequent fetches from a cursor.
      This reset also caused a memory leak in stored procedures, as 
      subsequent executions of instructions containing a subselect
      were allocating memory in thd->main_mem_root, which is not freed
      until the end of the entire SP, instead of the per-call mem_root,
      which is freed in the end of execution of the instruction.
      
      
      sql/item_subselect.cc:
        Don't try to protect subqueries from the code that assumes that
        it can reset thd->mem_root and get away with it: it's responsibility
        of the caller to ensure that no assumption about the life span
        of the allocated memory made by the called code is broken.
        Besides, this didn't work well with cursors and stored procedures, 
        where the runtime memory root is not the same as &thd->main_mem_root.
      sql/opt_range.cc:
        In get_mm_leaf restore the original mem_root of the thd which has
        been temporarily reset with the quick select mem_root earlier: if 
        thd->mem_root points to the QUICK...::mem_root, the memory allocated
        in JOIN::exec during evaluation of a subquery gets freed too early.
      tests/mysql_client_test.c:
        A test case for Bug#10736 "mysql_stmt_attr_set CURSOR_TYPE_READ_ONLY
         select within select"
      cbb60f5e
    • unknown's avatar
      range.result, range.test: · c83972fa
      unknown authored
        Added a test case for bug #10031.
      opt_range.cc:
        Fixed bug #10031: range condition was not used with
        views. Range analyzer did not take into account that
        view columns were always referred through Item_ref.
      
      
      sql/opt_range.cc:
        Fixed bug #10031: range condition was not used with
        views. Range analyzer did not take into account that
        view columns were always referred through Item_ref.
      mysql-test/t/range.test:
        Added a test case for bug #10031.
      mysql-test/r/range.result:
        Added a test case for bug #10031.
      c83972fa
    • unknown's avatar
      Merge hundin.mysql.fi:/home/marko/mysql-4.1 · 625c862b
      unknown authored
      into hundin.mysql.fi:/home/marko/mysql-5.0-current
      
      
      innobase/fil/fil0fil.c:
        SCCS merged
      innobase/include/os0file.h:
        SCCS merged
      innobase/os/os0file.c:
        SCCS merged
      625c862b
  4. 27 Jun, 2005 18 commits
    • unknown's avatar
      Fix typo in --default-store-engine help. (Bug #11534) · c3abc8f0
      unknown authored
      
      sql/mysqld.cc:
        Fix typo
      c3abc8f0
    • unknown's avatar
      Many files: · 118978eb
      unknown authored
        Remove compiler warnings on Windows - Bug #11580
      
      
      innobase/btr/btr0btr.c:
        Remove compiler warnings on Windows - Bug #11580
      innobase/btr/btr0cur.c:
        Remove compiler warnings on Windows - Bug #11580
      innobase/fil/fil0fil.c:
        Remove compiler warnings on Windows - Bug #11580
      innobase/ibuf/ibuf0ibuf.c:
        Remove compiler warnings on Windows - Bug #11580
      innobase/log/log0recv.c:
        Remove compiler warnings on Windows - Bug #11580
      innobase/os/os0file.c:
        Remove compiler warnings on Windows - Bug #11580
      innobase/page/page0page.c:
        Remove compiler warnings on Windows - Bug #11580
      innobase/row/row0upd.c:
        Remove compiler warnings on Windows - Bug #11580
      118978eb
    • unknown's avatar
      InnoDB: After review fixes · 3e5cc49a
      unknown authored
      
      innobase/os/os0file.c:
        os_file_set_size(): After review fixes (prevent overflows)
      3e5cc49a
    • unknown's avatar
      InnoDB: Optimize the extension of files. This will greatly speed · 1b9e7350
      unknown authored
      up CREATE TABLE in innodb_file_per_table=1 mode.
      
      
      innobase/fil/fil0fil.c:
        fil_extend_space_to_desired_size(): Do not allocate or initialize
        more memory than is necessary.  Write at most one megabyte at a time.
      innobase/include/os0file.h:
        os_file_set_size(): Corrected the synopsis
      innobase/os/os0file.c:
        os_file_set_size(): Corrected the synopsis and some comments.
        s/offset/current_size; s/low/desired_size/;
        Do not allocate or initialize more memory than is necessary.
        Write at most one megabyte at a time.
      1b9e7350
    • unknown's avatar
      Merge heikki@bk-internal.mysql.com:/home/bk/mysql-5.0 · f4a72069
      unknown authored
      into hundin.mysql.fi:/home/heikki/mysql-5.0
      
      f4a72069
    • unknown's avatar
      Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1 · 57c8f4ef
      unknown authored
      into neptunus.(none):/home/msvensson/mysql/mysql-5.0
      
      
      client/mysqltest.c:
        Auto merged
      57c8f4ef
    • unknown's avatar
      Include <sys/wait.h> to get WEXITSTATUS · dca8f40c
      unknown authored
      dca8f40c
    • unknown's avatar
      Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1 · 9ef5c755
      unknown authored
      into neptunus.(none):/home/msvensson/mysql/mysql-5.0
      
      
      client/mysqltest.c:
        Auto merged
      sql/sql_base.cc:
        Auto merged
      9ef5c755
    • unknown's avatar
      Add "#include <stdlib.h>" to define WEXITSTATUS · 952ad99c
      unknown authored
      952ad99c
    • unknown's avatar
      Simpler impl. · 51fa5733
      unknown authored
      
      sql/sql_parse.cc:
        Just do a simple sprintf to format error message.
      51fa5733
    • unknown's avatar
      Merge neptunus.(none):/home/msvensson/mysql/mysql-5.0 · fed72117
      unknown authored
      into neptunus.(none):/home/msvensson/mysql/bug10466
      
      
      mysql-test/r/alias.result:
        Auto merged
      mysql-test/r/func_str.result:
        Auto merged
      mysql-test/r/func_time.result:
        Auto merged
      mysql-test/r/group_by.result:
        Auto merged
      mysql-test/r/innodb.result:
        Auto merged
      mysql-test/r/ps.result:
        Auto merged
      mysql-test/r/ps_2myisam.result:
        Auto merged
      mysql-test/r/ps_3innodb.result:
        Auto merged
      mysql-test/r/ps_4heap.result:
        Auto merged
      mysql-test/r/ps_5merge.result:
        Auto merged
      mysql-test/r/ps_6bdb.result:
        Auto merged
      mysql-test/r/ps_7ndb.result:
        Auto merged
      mysql-test/r/select.result:
        Auto merged
      mysql-test/t/alias.test:
        Auto merged
      mysql-test/t/func_str.test:
        Auto merged
      mysql-test/t/func_time.test:
        Auto merged
      mysql-test/t/group_by.test:
        Auto merged
      mysql-test/t/innodb.test:
        Auto merged
      mysql-test/t/ps.test:
        Auto merged
      mysql-test/t/select.test:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      sql/share/errmsg.txt:
        Auto merged
      fed72117
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 85c0b742
      unknown authored
      into neptunus.(none):/home/msvensson/mysql/mysql-5.0
      
      85c0b742
    • unknown's avatar
      Merge problem fixes · 69487da2
      unknown authored
      
      mysql-test/r/client_xml.result:
        Update testresult
      mysql-test/r/ndb_autodiscover.result:
        Moving order opf test results to match test execution order
      69487da2
    • unknown's avatar
      Fix the broken test suite in -debug build. · 3bcab50f
      unknown authored
      
      sql/sql_select.cc:
        If we use subqueries, we can have double-free of tmp_table_param.copy_field
        in JOIN::destroy and in JOIN::join_free because.
      3bcab50f
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 778a9b56
      unknown authored
      into neptunus.(none):/home/msvensson/mysql/mysql-5.0
      
      
      mysql-test/mysql-test-run.sh:
        Auto merged
      778a9b56
    • unknown's avatar
      Merge heikki@bk-internal.mysql.com:/home/bk/mysql-5.0 · a6ef5ed9
      unknown authored
      into hundin.mysql.fi:/home/heikki/mysql-5.0
      
      a6ef5ed9
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-4.1 · 9eb9eca7
      unknown authored
      into neptunus.(none):/home/msvensson/mysql/mysql-4.1
      
      9eb9eca7
    • unknown's avatar
      Fix for Intel compiler · fc88e43f
      unknown authored
      fc88e43f
  5. 25 Jun, 2005 1 commit
  6. 24 Jun, 2005 8 commits
    • unknown's avatar
      Free unused JOINs early even if using subqueries. · 04f08168
      unknown authored
      
      sql/sql_select.cc:
        According to the conclusion made in the previous patch, we can widen
        the range of cases when JOINs are fully freed early, and include 
        subqueries to it.
      04f08168
    • unknown's avatar
      Remove an unrelevant assert. · dab66aa3
      unknown authored
      
      sql/sql_select.cc:
        This assert is not relevant because:
        - the correct assert is DBUG_ASSERT(! (full && sl->uncacheable)) 
          (prevents freeing of uncacheable JOINs), it breaks view.test
        - it seems we can free internal JOINs, even if they are uncacheable:
          if the top level join is evaluated, we're not going to need  the
          internal joins any more
      dab66aa3
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 072779c0
      unknown authored
      into mysql.com:/opt/local/work/mysql-5.0-join_free2push
      
      072779c0
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 820abd29
      unknown authored
      into mysql.com:/opt/local/work/mysql-5.0-join_free2push
      
      
      sql/sql_select.cc:
        Auto merged
      sql/sql_select.h:
        Auto merged
      820abd29
    • unknown's avatar
      - don't call JOIN::join_free(1) twice for every join in JOIN::cleanup(). · d662c283
      unknown authored
      The reason it happened was that both, JOIN::cleanup() and JOIN::join_free(),
      went over all nested joins and called cleanup/join_free for them.
      For that:
      - split recursive and non-recursive parts of JOIN::cleanup() and
      JOIN::join_free()
      - rename JOIN::cleanup to JOIN::destroy, as it actually destroys its
        argument
      - move the recursive part of JOIN::cleanup to st_select_lex::cleanup
      - move the non-recursive part of JOIN::join_free to the introduced
        method JOIN::cleanup().
      
      
      sql/sql_lex.h:
        Add st_select_lex::cleanup, a counterpart of st_select_lex_unit::cleanup()
      sql/sql_select.cc:
        - remove two unused arguments from return_zero_rows
        - split JOIN::join_free and JOIN::cleanup to recursive and non-recursive
          parts.
        - note, the assert in JOIN::join_free _does_ fail in having.test.
          We have two options: a) propagate `full' flag to the nested joins.
          We did it before, and this patch didn't change it. If so, we 
          can end up cleaning up an uncacheable JOIN (that is, the join that
          we might need again).
          b) evaluate own 'full' flag on every level. In this case, we might
          end up with tables freed in mysql_unlock_read_tables, but not
          cleaned up properly, and this may be even worse. The test suite
          passes with both approaches, but not with the assert.
      sql/sql_select.h:
        - declarations for JOIN::cleanup() and JOIN::join_free()
      sql/sql_union.cc:
        Add st_select_lex::cleanup, a counterpart of st_select_lex_unit::cleanup():
        move the recursive part of JOIN::cleanup to it.
      d662c283
    • unknown's avatar
      Merge mysql.com:/home/mydev/mysql-5.0 · f593a201
      unknown authored
      into mysql.com:/home/mydev/mysql-5.0-bug8321
      
      f593a201
    • unknown's avatar
      Bug#10178 - failure to find a row in heap table by concurrent UPDATEs · 3972a3d2
      unknown authored
      After merge fixes of test result.
      
      3972a3d2
    • unknown's avatar
      Merge mysql.com:/Users/kent/mysql/bk/mysql-5.0-release · a744d53e
      unknown authored
      into mysql.com:/Users/kent/mysql/bk/mysql-5.0
      
      a744d53e