1. 30 Jan, 2008 1 commit
    • unknown's avatar
      A fix and a test case for Bug#34166 Server crash in SHOW OPEN TABLES and · a80ec7ad
      unknown authored
      pre-locking.
      
      The crash was caused by an implicit assumption in check_table_access() that
      table_list parameter is always a part of lex->query_tables.
      
      When iterating over the passed list of tables, check_table_access() used
      to stop only when lex->query_tables_last_not_own was reached. 
      In case of pre-locking, lex->query_tables_last_own is not NULL and points
      to some element of lex->query_tables. When the parameter
      of check_table_access() was not part of lex->query_tables, loop invariant
      could never be violated and a crash would happen when the current table
      pointer would point beyond the end of the provided list.
      
      The fix is to change the signature of check_table_access() to also accept
      a numeric limit of loop iterations, similarly to check_grant(), and 
      supply this limit in all places when we want to check access of tables
      that are outside lex->query_tables, or just want to check access to one table.
      
      
      mysql-test/r/information_schema.result:
        Update test results (Bug#34166).
      mysql-test/t/information_schema.test:
        Add a test case for Bug#34166.
      sql/mysql_priv.h:
        Change signature of check_table_access() to accept a numeric limit
        of tables to check.
      sql/sp_head.cc:
        Update to the new signature of check_table_access().
      sql/sql_acl.cc:
        Improve code clarity: if there is a numeric limit, we should not need
        to look at first_not_own_table.
      sql/sql_base.cc:
        Update to the new signature of check_table_access().
      sql/sql_cache.cc:
        Update to the new signature of check_table_access().
      sql/sql_parse.cc:
        Update to the new signature of check_table_access().
        Change check_table_access() to accept an optional numeric limit of tables
        to check. A crash would happen when check_table_access() was
        passed a list of tables that is not part of lex->query_tables and
        lex->query_tables_last_own was not NULL.
      sql/sql_plugin.cc:
        Update to the new signature of check_table_access().
      sql/sql_prepare.cc:
        Update to the new signature of check_table_access().
      sql/sql_show.cc:
        Update to the new signature of check_table_access().
        Ensure that check_table_access() only checks access to the first
        table in the table list when called from list_open_tables().
        list_open_tables() supplies a table list that is created on stack,
        whereas check_table_access() used to assume that the supplied list is a part
        of thd->lex.
      sql/sql_trigger.cc:
        Update to the new signature of check_table_access().
      sql/sql_view.cc:
        Update to the new signature of check_table_access().
      a80ec7ad
  2. 29 Jan, 2008 3 commits
  3. 28 Jan, 2008 2 commits
    • unknown's avatar
      Remove spurious commented out test line. · c885ba4b
      unknown authored
      
      mysql-test/t/lock_multi.test:
        Remove spurious test line.
      c885ba4b
    • unknown's avatar
      Bug#30331 Table_locks_waited shows inaccurate values · 0e315b39
      unknown authored
      The problem is that the Table_locks_waited was incremented only
      when the lock request succeed. If a thread waiting for the lock
      gets killed or the lock request is aborted, the variable would
      not be incremented, leading to inaccurate values in the variable.
      
      The solution is to increment the Table_locks_waited whenever the
      lock request is queued. This reflects better the intended behavior
      of the variable -- show how many times a lock was waited.
      
      
      mysql-test/r/lock_multi.result:
        Add test case result for Bug#30331
      mysql-test/t/lock_multi.test:
        Add test case for Bug#30331
      mysys/thr_lock.c:
        Increment locks_waited whenever the thread is supposed
        to wait for the lock.
      0e315b39
  4. 24 Jan, 2008 4 commits
  5. 23 Jan, 2008 5 commits
    • unknown's avatar
      Manual merge · bf296bb1
      unknown authored
      bf296bb1
    • unknown's avatar
      Merge lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.0-33618 · c26bcbaf
      unknown authored
      into  lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.1-33618
      
      
      mysql-test/r/sp-code.result:
        Auto merged
      mysql-test/t/sp-code.test:
        Auto merged
      sql/sp_head.cc:
        Auto merged
      sql/sp_head.h:
        Auto merged
      sql/sp_rcontext.cc:
        Auto merged
      c26bcbaf
    • unknown's avatar
      manual merge · 5ecbc830
      unknown authored
      5ecbc830
    • unknown's avatar
      Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.0-runtime · 5e065732
      unknown authored
      into  lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.0-33618
      
      
      mysql-test/t/sp.test:
        Auto merged
      sql/sp_head.cc:
        Auto merged
      sql/sql_yacc.yy:
        Auto merged
      5e065732
    • unknown's avatar
      Bug#33618 (Crash in sp_rcontext) · 96dc5f05
      unknown authored
      Bug 33983 (Stored Procedures: wrong end <label> syntax is accepted)
      
      The server used to crash when REPEAT or another control instruction
      was used in conjunction with labels and a LEAVE instruction.
      
      The crash was caused by a missing "pop" of handlers or cursors in the
      code representing the stored program. When executing the code in a loop,
      this missing "pop" would result in a stack overflow, corrupting memory.
      
      Code generation has been fixed to produce the missing h_pop/c_pop
      instructions.
      
      Also, the logic checking that labels at the beginning and the end of a
      statement are matched was incorrect, causing Bug 33983.
      End labels, when used, must match the label used at the beginning of a block.
      
      
      mysql-test/r/sp-code.result:
        Bug#33618 (Crash in sp_rcontext)
      mysql-test/r/sp-error.result:
        Bug 33983 (Stored Procedures: wrong end <label> syntax is accepted)
      mysql-test/r/sp.result:
        Bug#33618 (Crash in sp_rcontext)
      mysql-test/t/sp-code.test:
        Bug#33618 (Crash in sp_rcontext)
      mysql-test/t/sp-error.test:
        Bug 33983 (Stored Procedures: wrong end <label> syntax is accepted)
      mysql-test/t/sp.test:
        Bug#33618 (Crash in sp_rcontext)
      sql/sp_head.cc:
        Bug#33618 (Crash in sp_rcontext)
      sql/sp_head.h:
        Bug#33618 (Crash in sp_rcontext)
      sql/sp_rcontext.cc:
        Bug#33618 (Crash in sp_rcontext)
      sql/sp_rcontext.h:
        Bug#33618 (Crash in sp_rcontext)
      sql/sql_yacc.yy:
        Bug#33618 (Crash in sp_rcontext)
      96dc5f05
  6. 20 Jan, 2008 2 commits
  7. 19 Jan, 2008 7 commits
    • unknown's avatar
      Fix merge. · 61854391
      unknown authored
      61854391
    • unknown's avatar
      Merge ibm.:/home/alik/Documents/MySQL/devel/5.0-rt · 1c9040b3
      unknown authored
      into  ibm.:/home/alik/Documents/MySQL/devel/5.1-rt-merged-5.0-rt
      
      
      mysql-test/t/sp.test:
        Manually merged.
      1c9040b3
    • unknown's avatar
      Merge ibm.:/home/alik/Documents/MySQL/devel/5.1 · 37fbb4d7
      unknown authored
      into  ibm.:/home/alik/Documents/MySQL/devel/5.1-rt-merged-5.1
      
      
      configure.in:
        Auto merged
      client/mysqldump.c:
        Auto merged
      sql/item_sum.cc:
        Auto merged
      sql/sql_base.cc:
        Auto merged
      sql/sql_class.h:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      sql/sql_show.cc:
        Auto merged
      sql/sql_table.cc:
        Auto merged
      sql/sql_yacc.yy:
        Auto merged
      sql/unireg.cc:
        Auto merged
      37fbb4d7
    • unknown's avatar
      Post-merge fixes. · 72f9fc48
      unknown authored
      
      mysql-test/r/group_by.result:
        Post-merge fix after merging 5.0-opt to 5.1-opt.
      mysql-test/t/disabled.def:
        Disabled innodb_mysql back, bug #32724 is still not fixed.
      72f9fc48
    • unknown's avatar
      Merge ibm.:/home/alik/Documents/MySQL/devel/5.0 · 4e5922c3
      unknown authored
      into  ibm.:/home/alik/Documents/MySQL/devel/5.0-rt-merged-5.0
      
      4e5922c3
    • unknown's avatar
      Merge kaamos.(none):/data/src/opt/mysql-5.0-opt · 8243bdf1
      unknown authored
      into  kaamos.(none):/data/src/opt/mysql-5.1-opt
      
      
      mysql-test/r/group_by.result:
        Auto merged
      mysql-test/r/type_decimal.result:
        Auto merged
      mysql-test/r/view.result:
        Auto merged
      mysql-test/t/type_decimal.test:
        Auto merged
      sql/item.cc:
        Auto merged
      sql/item_func.cc:
        Auto merged
      sql/sql_insert.cc:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      mysql-test/r/subselect.result:
        Manual merge.
      mysql-test/t/group_by.test:
        Manual merge.
      mysql-test/t/subselect.test:
        Manual merge.
      mysql-test/t/view.test:
        Manual merge.
      8243bdf1
    • unknown's avatar
      Raise version number after cloning 5.1.23-rc · c477db1b
      unknown authored
      c477db1b
  8. 18 Jan, 2008 2 commits
    • unknown's avatar
      Merge mhansson@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 5a82c60b
      unknown authored
      into  lamia.dupka:/home/mhansson/my50-bug33143-again-pushee
      
      5a82c60b
    • unknown's avatar
      BUG#33794 "MySQL crashes executing specific query": · c726f011
      unknown authored
      The problem occurred when one had a subquery that had an equality X=Y where 
      Y referred to a named select list expression from the parent select. MySQL 
      crashed when trying to use the X=Y equality for ref-based access. 
      
      Fixed by allowing non-Item_field items in the described case.
      
      
      mysql-test/r/subselect.result:
        BUG#33794 "MySQL crashes executing specific query"
        - Testcase
      mysql-test/t/subselect.test:
        BUG#33794 "MySQL crashes executing specific query"
        - Testcase
      sql/sql_select.cc:
        BUG#33794 "MySQL crashes executing specific query"
        get_store_key() assumed that if it got a reference
          t.key=Item_outer_ref(Item_direct_ref(x)) 
        then x was an Item_field object, which is not the case when one refers to a
        named select list expression out ot subquery.
      c726f011
  9. 17 Jan, 2008 3 commits
  10. 16 Jan, 2008 1 commit
    • unknown's avatar
      A minor cleanup. · 48ada9f5
      unknown authored
      
      sql/sql_insert.cc:
        Remove a redundant call to my_error() -- in case of out of memory, the error
        is reported already by operator new (Delayed_inserts inherits from ilink).
      48ada9f5
  11. 14 Jan, 2008 1 commit
    • unknown's avatar
      Bug#33143: Incorrect ORDER BY for ROUND()/TRUNCATE() result · 01557dde
      unknown authored
      The ROUND(X, D) function would change the Item::decimals field during
      execution to achieve the effect of a dynamic number of decimal digits.
      This caused a series of bugs:
      Bug #30617:Round() function not working under some circumstances in InnoDB
      Bug #33402:ROUND with decimal and non-constant cannot round to 0 decimal places
      Bug #30889:filesort and order by with float/numeric crashes server
      Fixed by never changing the number of shown digits for DECIMAL when
      used with a nonconstant number of decimal digits.
      
      
      mysql-test/r/type_decimal.result:
        Bug#33143: Test result
      mysql-test/t/type_decimal.test:
        Bug#33143: Test case
      sql/item_func.cc:
        Bug#33143: 
        - Moved the DECIMAL_MAX_SCALE limitation to fix_length_and_dec.
        - Removed resetting of Item::decimals field.
        - set the frac field of the output value to current scale.
      strings/decimal.c:
        Bug#33143: It is necessary to set all digits in the buffer following the 
        rounded one to zero, as they may now be displayed.
      01557dde
  12. 12 Jan, 2008 1 commit
  13. 11 Jan, 2008 8 commits
    • unknown's avatar
      Post merge fix for BUG 33728 · 3320ada3
      unknown authored
      
      include/Makefile.am:
        Include gcc_builtins.h header in the list.
      3320ada3
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime · 81f972e0
      unknown authored
      into  mysql.com:/Users/davi/mysql/mysql-5.1-runtime
      
      81f972e0
    • unknown's avatar
      Bug#33728 Atomic builtins · 639fa2e1
      unknown authored
      Use compiler provided atomic builtins as a 'backend' for
      MySQL's atomic primitives. The builtins are available on
      a handful of platforms and compilers.
      
      
      configure.in:
        Check if the compiler provides atomic builtins and
        that __sync_lock_test_and_set stores the correct value.
      include/atomic/nolock.h:
        Use the atomic builtins if available.
      include/atomic/gcc_builtins.h:
        Implement the atomic ADD, SWAP, CAS, STORE (or operation
        optimized away) and LOAD primitives using atomic builtins
        provided by the compiler.
      639fa2e1
    • unknown's avatar
      Merge mhansson@bk-internal.mysql.com:/home/bk/mysql-5.1-opt · 4d2e8a69
      unknown authored
      into  lamia.dupka:/home/mhansson/my51-bug31797-pushee
      
      4d2e8a69
    • unknown's avatar
      Merge mhansson@bk-internal:/home/bk/mysql-5.1-opt · c4e2b6f5
      unknown authored
      into  linux-st28.site:/home/martin/mysql/src/bug31797/my51-bug31797-pushee
      
      
      mysql-test/r/group_by.result:
        Auto merged
      mysql-test/t/group_by.test:
        Auto merged
      sql/item.cc:
        Auto merged
      c4e2b6f5
    • unknown's avatar
      Merge linux-st28.site:/home/martin/mysql/src/bug31797/my50-bug31797 · 12c7f4c5
      unknown authored
      into  linux-st28.site:/home/martin/mysql/src/bug31797/my51-bug31797
      
      
      sql/item.cc:
        Auto merged
      mysql-test/r/group_by.result:
        Bug#31797: Manual merge
      mysql-test/t/group_by.test:
        Bug#31797: Manual merge
      12c7f4c5
    • unknown's avatar
      Merge olga.mysql.com:/home/igor/mysql-5.1-opt · f15bd806
      unknown authored
      into  olga.mysql.com:/home/igor/dev-opt/mysql-5.1-opt-bug33697
      
      
      mysql-test/t/disabled.def:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      f15bd806
    • unknown's avatar
      Fixed bug #33697. · 7a690444
      unknown authored
      When the function test_if_skip_sort_order prefers index backward scan 
      to ref access the corresponding access functions must be set accordingly.
      
      
      mysql-test/include/mix1.inc:
        Added a test case for bug #33697.
        Corrected one previous bad merge.
      mysql-test/r/innodb_mysql.result:
        Added a test case for bug #33697.
      mysql-test/t/disabled.def:
        Turned innodb_mysql test on.
      7a690444