1. 30 Jan, 2008 2 commits
    • unknown's avatar
      Fix a build failure (embedded server). · 96f33937
      unknown authored
      96f33937
    • unknown's avatar
      A fix and a test case for Bug#34166 Server crash in SHOW OPEN TABLES and · 39509d64
      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().
      39509d64
  2. 29 Jan, 2008 3 commits
  3. 28 Jan, 2008 2 commits
    • unknown's avatar
      Remove spurious commented out test line. · cdc66b12
      unknown authored
      
      mysql-test/t/lock_multi.test:
        Remove spurious test line.
      cdc66b12
    • unknown's avatar
      Bug#30331 Table_locks_waited shows inaccurate values · 3d5e32b2
      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.
      3d5e32b2
  4. 24 Jan, 2008 4 commits
  5. 23 Jan, 2008 5 commits
    • unknown's avatar
      Manual merge · e63a0501
      unknown authored
      e63a0501
    • unknown's avatar
      Merge lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.0-33618 · 9d96bb98
      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
      9d96bb98
    • unknown's avatar
      manual merge · 8430df5a
      unknown authored
      8430df5a
    • unknown's avatar
      Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.0-runtime · e7b65baa
      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
      e7b65baa
    • unknown's avatar
      Bug#33618 (Crash in sp_rcontext) · e6a077e3
      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)
      e6a077e3
  6. 20 Jan, 2008 2 commits
  7. 19 Jan, 2008 7 commits
    • unknown's avatar
      Fix merge. · fca38dd7
      unknown authored
      fca38dd7
    • unknown's avatar
      Merge ibm.:/home/alik/Documents/MySQL/devel/5.0-rt · 6e142eeb
      unknown authored
      into  ibm.:/home/alik/Documents/MySQL/devel/5.1-rt-merged-5.0-rt
      
      
      mysql-test/t/sp.test:
        Manually merged.
      6e142eeb
    • unknown's avatar
      Merge ibm.:/home/alik/Documents/MySQL/devel/5.1 · b9ec8f6a
      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
      b9ec8f6a
    • unknown's avatar
      Post-merge fixes. · 80857e0d
      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.
      80857e0d
    • unknown's avatar
      Merge ibm.:/home/alik/Documents/MySQL/devel/5.0 · 5410627b
      unknown authored
      into  ibm.:/home/alik/Documents/MySQL/devel/5.0-rt-merged-5.0
      
      
      5410627b
    • unknown's avatar
      Merge kaamos.(none):/data/src/opt/mysql-5.0-opt · 153771ed
      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.
      153771ed
    • unknown's avatar
      Raise version number after cloning 5.1.23-rc · 37ff91b3
      unknown authored
      37ff91b3
  8. 18 Jan, 2008 2 commits
    • unknown's avatar
      Merge mhansson@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 35b035cf
      unknown authored
      into  lamia.dupka:/home/mhansson/my50-bug33143-again-pushee
      
      
      35b035cf
    • unknown's avatar
      BUG#33794 "MySQL crashes executing specific query": · c71a6428
      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.
      c71a6428
  9. 17 Jan, 2008 3 commits
  10. 16 Jan, 2008 1 commit
    • unknown's avatar
      A minor cleanup. · bab13c89
      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).
      bab13c89
  11. 14 Jan, 2008 1 commit
    • unknown's avatar
      Bug#33143: Incorrect ORDER BY for ROUND()/TRUNCATE() result · f9440588
      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.
      f9440588
  12. 12 Jan, 2008 1 commit
  13. 11 Jan, 2008 7 commits