1. 26 Feb, 2008 1 commit
  2. 21 Feb, 2008 4 commits
    • unknown's avatar
      Post-merge fix to silence compiler warning. · bda1c813
      unknown authored
      
      sql/sql_prepare.cc:
        Removed unused variable.
      bda1c813
    • unknown's avatar
      Bug#32890 Crash after repeated create and drop of tables and views · f001005a
      unknown authored
      The problem is that CREATE VIEW statements inside prepared statements
      weren't being expanded during the prepare phase, which leads to objects
      not being allocated in the appropriate memory arenas.
      
      The solution is to perform the validation of CREATE VIEW statements
      during the prepare phase of a prepared statement. The validation
      during the prepare phase assures that transformations of the parsed
      tree will use the permanent arena of the prepared statement.
      
      
      mysql-test/r/ps.result:
        Add test case result for Bug#32890
      mysql-test/t/ps.test:
        Add test case for Bug#32890
      sql/item.h:
        Restore original field name if name is auto generated.
      sql/sql_prepare.cc:
        Validate and prepare a CREATE VIEW statement for execution.
      sql/sql_view.cc:
        Move privileges check to it's own function.
      sql/sql_view.h:
        Export function which check privileges of a CREATE VIEW statement.
      f001005a
    • unknown's avatar
      Fix for Bug#34337: Server crash when Altering a view using · a1e999bf
      unknown authored
      a table name.
        
      The problem was that fill_defined_view_parts() did not return
      an error if a table is going to be altered. That happened if
      the table was already in the table cache. In that case,
      open_table() returned non-NULL value (valid TABLE-instance from
      the cache).
        
      The fix is to ensure that an error is thrown even if the table
      is in the cache.
      
      (This is a backport of the original patch for 5.1)
      
      
      mysql-test/r/view.result:
        Fix result file.
      mysql-test/r/view_grant.result:
        Fix result file.
      mysql-test/t/view.test:
        Add a test case for Bug#34337: Server crash when Altering a view
        using a table name.
      mysql-test/t/view_grant.test:
        Fix order-dependency.
      sql/sql_view.cc:
        Report an error if we're going to work with a table.
      a1e999bf
    • unknown's avatar
      Post-merge fix to silence a compilation warning introduced · 30750e49
      unknown authored
      by patch for bug 32265 .
      
      
      tests/mysql_client_test.c:
        Removed unused variable.
      30750e49
  3. 20 Feb, 2008 1 commit
    • unknown's avatar
      Bug#32265 Server returns different metadata if prepared statement is used · 718f920f
      unknown authored
      Executing a prepared statement associated with a materialized
      cursor yields to the client a metadata packet with wrong table
      and database names. The problem was occurring because the server
      was sending the the name of the temporary table used by the cursor
      instead of the table name of the original table. The same problem
      occurs when selecting from views, in which case the table name was
      being sent and not the name of the view.
        
      The solution is to fill the list item from the temporary table but
      preserving the table and database names of the original fields. This
      is achieved by tweaking the Select_materialize to accept a pointer to
      the Materialized_cursor class which contains the item list to be filled.
      
      
      sql/sql_cursor.cc:
        Fill the item list in the send_fields method and preserve
        the table and database name of the fields.
      tests/mysql_client_test.c:
        Add test case for Bug#32265
      718f920f
  4. 11 Feb, 2008 2 commits
  5. 08 Feb, 2008 2 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 955f1885
      unknown authored
      into  dipika.(none):/opt/local/work/mysql-5.0-runtime
      
      955f1885
    • unknown's avatar
      Bug#33798 prepared statements improperly handle large unsigned ints · cea021da
      unknown authored
      The unsignedness of large integer user variables was not being
      properly preserved when feeded to prepared statements. This was
      happening because the unsigned flags wasn't being updated when
      converting the user variable is converted to a parameter.
      
      The solution is to copy the unsigned flag when converting the
      user variable to a parameter and take the unsigned flag into
      account when converting the integer to a string.
      
      
      mysql-test/r/binlog.result:
        Add test case result for Bug#33798
      mysql-test/r/ps.result:
        Add test case result for Bug#33798
      mysql-test/t/binlog.test:
        Add test case for Bug#33798
      mysql-test/t/ps.test:
        Add test case for Bug#33798
      sql/item.cc:
        Take the unsigned flag into account when converting the
        user variable.
      cea021da
  6. 07 Feb, 2008 2 commits
  7. 06 Feb, 2008 2 commits
    • unknown's avatar
      Replace windows path separator backslash by unix path separator forward · 270e2f3c
      unknown authored
      slash in filenames also for Create_file_log_event.
      
      
      client/mysqlbinlog.cc:
        BUG#34355: mysqlbinlog outputs backslash as path separator for 4.1 binlogs
        Problem: When the windows version of mysqlbinlog reads 4.1 binlogs
        containing LOAD DATA INFILE, it outputs backslashes as path separators in
        filenames. However, the output is typically piped to a client, and client
        expects forward slashes.
        Fix: Replace '\\' by '/' in filenames.
      270e2f3c
    • unknown's avatar
      Raise version number after cloning 5.0.56 · 94e5b2ed
      unknown authored
      94e5b2ed
  8. 05 Feb, 2008 1 commit
    • unknown's avatar
      Bug #34305 show slave status handling segfaults when slave io is about · 89e828b4
      unknown authored
          to leave
      
      The artifact was caused by
      a flaw in concurrent accessing the slave's io thd by
      the io itself and a handling show slave status thread.
      Namely, show_master_info did not acquire mi->run_lock mutex that is
      specified for mi->io_thd member.
      
      Fixed with deploying the mutex locking and unlocking. The mutex is kept
      short time and without interleaving with mi->data_lock mutex.
      
      Todo: to report and fix an issue with 
          sys_var_slave_skip_counter::{methods} 
      seem to acquire incorrectly
           active_mi->rli.run_lock
      instead of the specified
           active_mi->rli.data_lock
      
      A test case is difficult to compose, so rpl_packet should continue serving
      as the indicator.
      
      
      sql/slave.cc:
        implementing a TODO left at 4.1 time:
        mending access to mi->io_thd with the specified mutex;
      sql/slave.h:
        adding a member name to the list of that run_lock guards.
      89e828b4
  9. 04 Feb, 2008 2 commits
  10. 01 Feb, 2008 6 commits
  11. 31 Jan, 2008 3 commits
    • unknown's avatar
      Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.0 · fc72d468
      unknown authored
      into  dl145h.mysql.com:/data0/mkindahl/mysql-5.0-rpl-merge
      
      
      include/my_sys.h:
        Auto merged
      sql/log.cc:
        Auto merged
      sql/set_var.cc:
        Auto merged
      sql/sql_acl.cc:
        Auto merged
      fc72d468
    • unknown's avatar
      Changes to fix tests in pushbuild. · 5e0f848b
      unknown authored
      
      mysql-test/include/have_local_infile.inc:
        BitKeeper file /data0/mkindahl/mysql-5.0-rpl-merge/mysql-test/include/have_local_infile.inc
      mysql-test/r/have_local_infile.require:
        BitKeeper file /data0/mkindahl/mysql-5.0-rpl-merge/mysql-test/r/have_local_infile.require
      mysql-test/t/binlog_start_comment.test:
        Test requires that local_infile is on, so added require for that.
      mysql-test/t/rpl_sp.test:
        Adding missing sync_slave_with_master causing following tests to fail.
      5e0f848b
    • unknown's avatar
      Fixes to make code compile on Windows. · dcb6e497
      unknown authored
      
      sql/sql_repl.cc:
        Adding cast to remove compile error on Windows platform.
      dcb6e497
  12. 30 Jan, 2008 4 commits
  13. 29 Jan, 2008 2 commits
    • unknown's avatar
      update test result · 6b608eaa
      unknown authored
      
      mysql-test/r/rpl_grant.result:
        update result
      6b608eaa
    • unknown's avatar
      BUG#26489 Corruption in relay logs · cbcbfd77
      unknown authored
      Here is the scenario that causes the failure.(by Mats)
      
      1. The to-be corrupt log event (let's call it X), is split into two
         packets B and C on the network level (net_write_buff()). The parts
         are X = (x',x''). The part x' ends up in packet B and part x''
         ends up in packet C. Prior to the corrupt event X, the event Y has
         been written successfully, but has been split into two packets as
         well, which we call (y',y'').
      2. The master sends packet A = (y'',x') to the slave, increases the
         packet sequence number, the slave receives the packet, but fails
         to reply before the master gets a timeout.
      3. Since the master got a timeout, it reports failure, and aborts
         sending the binary log by exiting mysql_binlog_send(). However, it
         leaves the buffer intact, still holding y'' (but not x', since the
         write_pos is not increased).
      4. After exiting mysql_binlog_send(), the master does a
         disconnection of the client thread, which involves sending an
         error message e to the client (i.e., the slave).
      5. In this case, net_write_buff() is used again, but this time the
         old contents of the packet is used so that the new packet is
         D = (y'',e). Note that this will use a new packet sequence number,
         since the packet number was increased in step 2.
      6. The slave receives the tail y'' of the Y log event, concatenates
         this with x' (which it already received), and writes the event
         (x',y'') it to the relay log since it hasn't noticed anything is
         amiss.
      7. It then tries to read more bytes, which is either e (if the length
         given for X just happened to match the length given for Y, or just
         plain garbage because the slave is out of sync with what is
         actually sent.
      8. After a while, the SQL thread tries to execute the event (x',y''),
         which is very likely to be just nonsense.
      
      The problem can be fixed by not resetting net->error after the call of 
      mysql_binlog_send, so the error message will not be sent and the connection
      will be closed.
      
      
      sql/sql_parse.cc:
        Do not reset net->error, if net->error == 2, we should not try to use the connection again
      cbcbfd77
  14. 27 Jan, 2008 1 commit
    • unknown's avatar
      Fix test case for Bug #25347 so that it actually tests the code fix, · 2989a539
      unknown authored
      and so that it works correctly on Windows.
      
      
      mysql-test/r/mysqlcheck.result:
        Flush tables before monkeying around with underlying MyISAM data files
      mysql-test/t/mysqlcheck.test:
        Fix the test case for bug #25347 so that it actually does test the behavior.
        Also, this makes it work on Windows by ensuring that mysqld doesn't hold the
        underlying MyISAM files open while we try to corrupt them on disk.
        
        Flush tables before monkeying around with underlying MyISAM data files;
        --use-frm, so that mysqlcheck will succeed.
      2989a539
  15. 25 Jan, 2008 3 commits
    • unknown's avatar
      Un-break test case on Windows, for bug #25347 · f1669721
      unknown authored
      
      mysql-test/t/mysqlcheck.test:
        Use --remove_file and --write_file instead of --exec rm and --exec touch.
      f1669721
    • unknown's avatar
      Merge ramayana.hindu.god:/home/tsmith/m/bk/50 · 93d6b918
      unknown authored
      into  ramayana.hindu.god:/home/tsmith/m/bk/maint/50
      
      
      sql/sql_select.cc:
        Auto merged
      93d6b918
    • unknown's avatar
      BUG#33862 completely failed DROP USER statement gets replicated · c78852a5
      unknown authored
      The problem is when create/rename/drop users, the statement was logged regardless of error, even if no data has been changed, the statement was logged.
      
      After this patch, create/rename/drop users don't write the binlog if the statement makes no changes, if the statement does make any changes, log the statement with possible error code.
      
      This patch is based on the patch for BUG#29749, which is not pushed
      
      
      sql/sql_acl.cc:
        when create/rename/drop users, don't write the binlog if the statement make no changes
      mysql-test/r/rpl_user.result:
        New BitKeeper file ``mysql-test/r/rpl_user.result''
      mysql-test/t/rpl_user.test:
        New BitKeeper file ``mysql-test/t/rpl_user.test''
      c78852a5
  16. 24 Jan, 2008 1 commit
  17. 23 Jan, 2008 3 commits
    • 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