1. 05 Sep, 2008 1 commit
    • Evgeny Potemkin's avatar
      Bug#37908: Skipped access right check caused server crash. · aa74a314
      Evgeny Potemkin authored
            
      The check_table_access function initializes per-table grant info and performs
      access rights check. It wasn't called for SHOW STATUS statement thus left
      grants info uninitialized. In some cases this led to server crash. In other
      cases it allowed a user to check for presence/absence of arbitrary values in
      any tables.
            
      Now the check_table_access function is called prior to the statement
      processing.
      aa74a314
  2. 03 Sep, 2008 7 commits
    • Mats Kindahl's avatar
      BUG#32709: Assertion failed: trx_data->empty(), file log.cc · 565c4d2b
      Mats Kindahl authored
      Incremental fixes: updating a comment and fixing a result file.
      565c4d2b
    • Mats Kindahl's avatar
      Bug #32709: Assertion failed: trx_data->empty(), file log.cc · 9755f072
      Mats Kindahl authored
      The assertion indicates that some data was left in the transaction
      cache when the server was shut down, which means that a previous
      statement did not commit or rollback correctly.
      
      What happened was that a bug in the rollback of a transactional
      table caused the transaction cache to be emptied, but not reset.
      The error can be triggered by having a failing UPDATE or INSERT,
      on a transactional table, causing an implicit rollback.
      
      Fixed by always flushing the pending event to reset the state
      properly.
      9755f072
    • Andrei Elkin's avatar
      merging with 5.1.29. · 83ce448c
      Andrei Elkin authored
      83ce448c
    • Andrei Elkin's avatar
      Bug#36099 replicate-do-db affects replaying RBR events with mysqlbinlog · 21a08eab
      Andrei Elkin authored
            
      The replication filtering rules were inappropiately applied when
      executing BINLOG pseudo-query.  The rules are supposed to be active
      only at times when the slave's sql thread executes an event.
                  
      Fixed with correcting a condition to call replication rules only if
      the slave sql thread executes the event.
      21a08eab
    • Gleb Shchepa's avatar
      merge 5.0 --> 5.1 · 2b0a534b
      Gleb Shchepa authored
      2b0a534b
    • Gleb Shchepa's avatar
      merge with local tree · cfb4a66a
      Gleb Shchepa authored
      cfb4a66a
    • Gleb Shchepa's avatar
      Bug #39002: The server crashes on the query: · 6f94324f
      Gleb Shchepa authored
        INSERT .. SELECT .. ON DUPLICATE KEY UPDATE col=DEFAULT
      
      In order to get correct values from update fields that
      belongs to the SELECT part in the INSERT .. SELECT .. ON
      DUPLICATE KEY UPDATE statement, the server adds referenced
      fields to the select list. Part of the code that does this
      transformation is shared between implementations of
      the DEFAULT(col) function and the DEFAULT keyword (in
      the col=DEFAULT expression), and an implementation of
      the DEFAULT keyword is incomplete.
      6f94324f
  3. 28 Aug, 2008 3 commits
  4. 27 Aug, 2008 11 commits
    • Gleb Shchepa's avatar
      Bug #37799: SELECT with a BIT column in WHERE clause · 2c53f109
      Gleb Shchepa authored
                  returns unexpected result
      
      If:
        1. a table has a not nullable BIT column c1 with a length
           shorter than 8 bits and some additional not nullable
           columns c2 etc, and
        2. the WHERE clause is like: (c1 = constant) AND c2 ...,
      the SELECT query returns unexpected result set.
      
      
      The server stores BIT columns in a tricky way to save disk
      space: if column's bit length is not divisible by 8, the
      server places reminder bits among the null bits at the start
      of a record. The rest bytes are stored in the record itself,
      and Field::ptr points to these rest bytes.
      
      However if a bit length of the whole column is less than 8,
      there are no remaining bytes, and there is nothing to store in
      the record at its regular place. In this case Field::ptr points
      to bytes actually occupied by the next column in a record.
      If both columns (BIT and the next column) are NOT NULL,
      the Field::eq function incorrectly deduces that this is the
      same column, so query transformation/equal item elimination
      code (see build_equal_items_for_cond) may mix these columns
      and damage conditions containing references to them.
      2c53f109
    • Mats Kindahl's avatar
      Merging 5.1 into 5.1-rpl-merge · 42339e0f
      Mats Kindahl authored
      42339e0f
    • Georgi Kodinov's avatar
      merged 5.1-bugteam into B37548 tree · a320e867
      Georgi Kodinov authored
      a320e867
    • Georgi Kodinov's avatar
      Bug#37548: result value erronously reported being NULL in certain subqueries · 3468f4b4
      Georgi Kodinov authored
            
      When switching to indexed ORDER BY we must be sure to reset the index read
      flag if we are switching from a covering index to non-covering.
      3468f4b4
    • Mats Kindahl's avatar
      Automerge · 4c30c091
      Mats Kindahl authored
      4c30c091
    • Mats Kindahl's avatar
      Result file change. · dd34cceb
      Mats Kindahl authored
      dd34cceb
    • Evgeny Potemkin's avatar
      Bug#38195: Incorrect handling of aggregate functions when loose index scan is · 1f28ee88
      Evgeny Potemkin authored
      used causes server crash.
            
      When the loose index scan access method is used values of aggregated functions
      are precomputed by it. Aggregation of such functions shouldn't be performed
      in this case and functions should be treated as normal ones.
      The create_tmp_table function wasn't taking this into account and this led to
      a crash if a query has MIN/MAX aggregate functions and employs temporary table
      and loose index scan.
      Now the JOIN::exec and the create_tmp_table functions treat MIN/MAX aggregate
      functions as normal ones when the loose index scan is used.
      1f28ee88
    • Mats Kindahl's avatar
      Automerge · 3b6195a7
      Mats Kindahl authored
      3b6195a7
    • Mats Kindahl's avatar
      f1b8441e
    • Mats Kindahl's avatar
      Bug #38773: DROP DATABASE cause switch to stmt-mode when there are temporary · 64610898
      Mats Kindahl authored
                  tables open
      
      When executing a DROP DATABASE statement in ROW mode and having temporary
      tables open at the same time, the existance of temporary tables prevent
      the server from switching back to row mode after temporarily switching to
      statement mode to handle the logging of the statement.
      
      Fixed the problem by removing the code to switch to statement mode and added
      code to temporarily disable the binary log while dropping the objects in the
      database.
      64610898
    • Davi Arnaut's avatar
      Merge of mysql-5.1 branch. · 88e3906a
      Davi Arnaut authored
      88e3906a
  5. 26 Aug, 2008 18 commits