1. 18 Oct, 2007 1 commit
    • unknown's avatar
      Bug#21557 entries in the general query log truncated at 1000 characters. · b9b481ec
      unknown authored
      The general log write function (general_log_print) uses printf style
      arguments which need to be pre-processed, meaning that the all arguments
      are copied to a single buffer and the problem is that the buffer size is
      constant (1022 characters) but queries can be much larger then this.
      
      The solution is to introduce a new log write function that accepts a
      buffer and it's length as arguments. The function is to be used when
      a formatted output is not required, which is the case for almost all
      query write-to-log calls.
      
      This is a incompatible change with respect to the log format of prepared
      statements.
      
      
      mysql-test/r/log_tables.result:
        Add test case result for Bug#21557
      mysql-test/t/log_tables.test:
        Add test case for Bug#21557
      sql/log.cc:
        Introduce the logger function general_log_write which is similar to
        general_log_print but accepts a single buffer and the buffer length.
        The function doesn't perform any formatting and sends the buffer
        directly to the underlying log handlers.
      sql/log.h:
        Introduce the logger function general_log_write.
      sql/log_event.cc:
        Pass the query buffer directly to the logger function, formatting
        is not required on this case.
      sql/mysql_priv.h:
        Prototype for the logger function general_log_write.
      sql/sp_head.cc:
        Pass the query buffer directly to the logger function, formatting
        is not required on this case.
      sql/sql_parse.cc:
        Pass the buffer directly to the logger function when formatting
        is not required.
      sql/sql_prepare.cc:
        Don't log the statement id, it avoids making a extra copy of the query
        and the query is not truncated anymore if it exceeds the limit.
      b9b481ec
  2. 15 Oct, 2007 2 commits
  3. 12 Oct, 2007 3 commits
  4. 11 Oct, 2007 7 commits
    • unknown's avatar
      Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.1-runtime · f22b9540
      unknown authored
      into  weblab.(none):/home/marcsql/TREE/mysql-5.1-27858-b
      
      
      mysql-test/r/log_tables.result:
        Auto merged
      f22b9540
    • unknown's avatar
      Bug#27858 (Failing to log to a log table doesn't log anything to error log) · 3df1613f
      unknown authored
      Before this patch, failures to write to the log tables (mysql.slow_log
      and mysql.general_log) were improperly printed (the time was printed twice),
      or not printed at all.
      
      With this patch, failures to write to the log tables is reported in the
      error log, for all cases of failures.
      
      
      mysql-test/r/log_tables.result:
        Bug#27858 (Failing to log to a log table doesn't log anything to error log)
      mysql-test/t/log_tables.test:
        Bug#27858 (Failing to log to a log table doesn't log anything to error log)
      sql/log.cc:
        Bug#27858 (Failing to log to a log table doesn't log anything to error log)
      3df1613f
    • unknown's avatar
      Bug#29223 declare cursor c for SHOW ..... · 03e74b8c
      unknown authored
      "DECLARE CURSOR FOR SHOW ..." is a syntax that currently appears to work,
      but is untested for some SHOW commands and does not work for other SHOW
      commands.
      
      Since this is an un-intended feature that leaked as a result of a coding bug
      (in the parser grammar), the correct fix is to fix the grammar to not accept
      this construct.
      
      In other words, "DECLARE CURSOR FOR SHOW <other commands that don't work>"
      is not considered a bug, and we will not implement other features to make all
      the SHOW commands usable inside a cursor just because someone exploited a bug.
      
      
      mysql-test/r/sp-error.result:
        Only allow declaring cursors for SELECT statements to avoid
        possible further confusion/problems.
      mysql-test/t/information_schema.test:
        Only SELECT statements are allowed in cursors.
      mysql-test/t/sp-error.test:
        Add test case for Bug#29223. Non-SELECT statements in cursors now
        yields a parser error.
      sql/sql_yacc.yy:
        Rework DECLARE CURSOR statement to not allow non-SELECT statements.
      03e74b8c
    • unknown's avatar
      A patch for BUG#31418: User locks misfunctioning after · 3ca34c10
      unknown authored
      mysql_change_user().
      
      The problem was that THD::ull was not reset in THD::cleanup().
      
      The fix is to reset it.
      
      
      sql/sql_class.cc:
        Reset THD::ull after cleanup to prevent memory corruption.
      tests/mysql_client_test.c:
        Add test case for BUG#31418.
      3ca34c10
    • unknown's avatar
      Post-merge test case for Bug 31409 · 27e2f30e
      unknown authored
      
      mysql-test/include/handler.inc:
        Add test case for Bug 31409
      mysql-test/r/handler_innodb.result:
        Add test case result for InnoDB run of the handler test for Bug 31409
      mysql-test/r/handler_myisam.result:
        Add test case result for MyISAM run of the handler test for Bug 31409
      27e2f30e
    • unknown's avatar
      Merge moksha.com.br:/Users/davi/mysql/mysql-5.0-runtime · b24d4a97
      unknown authored
      into  moksha.com.br:/Users/davi/mysql/bugs/31409-5.1
      
      
      sql/sql_base.cc:
        Auto merged
      sql/sql_handler.cc:
        Auto merged
      b24d4a97
    • unknown's avatar
      Mismerge broken 5.1-runtime compilation because do_command was defined · dc1ce0ba
      unknown authored
      static but it's still used by another compilation unit.
      
      Remove static qualifier from do_command definition.
      
      
      sql/sql_parse.cc:
        do_command is also used by sql_connect.c in 5.1
      dc1ce0ba
  5. 10 Oct, 2007 11 commits
  6. 09 Oct, 2007 5 commits
    • unknown's avatar
      Merge moksha.com.br:/Users/davi/mysql/push/mysql-5.0-runtime · 91923ed2
      unknown authored
      into  moksha.com.br:/Users/davi/mysql/push/bugs/31409-5.0
      
      
      91923ed2
    • unknown's avatar
      Bug#31409 RENAME TABLE causes server crash or deadlock when used with HANDLER statements · f57813e4
      unknown authored
      This deadlock occurs when a client issues a HANDLER ... OPEN statement
      that tries to open a table that has a pending name-lock on it by another
      client that also needs a name-lock on some other table which is already
      open and associated to a HANDLER instance owned by the first client.
      The deadlock happens because the open_table() function will back-off
      and wait until the name-lock goes away, causing a circular wait if some
      other name-lock is also pending for one of the open HANDLER tables.
      
      Such situation, for example, can be easily repeated by issuing a RENAME
      TABLE command in such a way that the existing table is already open
      as a HANDLER table by another client and this client tries to open
      a HANDLER to the new table name.
      
      The solution is to allow handler tables with older versions (marked for
      flush) to be closed before waiting for the name-lock completion. This is
      safe because no other name-lock can be issued between the flush and the
      check for pending name-locks.
      
      The test case for this bug is going to be committed into 5.1 because it
      requires a test feature only avaiable in 5.1 (wait_condition).
      
      
      sql/sql_base.cc:
        Improve comments in the open_table() function, stating the importance
        of the handler tables flushing for the back-off process.
      sql/sql_handler.cc:
        Allows handler tables flushes when opening new tables in order to avoid
        potential deadlocks. Add comments explaining the importance of the flush.
      f57813e4
    • unknown's avatar
      Merge moksha.local:/Users/davi/mysql/push/mysql-5.0-runtime · 6769a80d
      unknown authored
      into  moksha.local:/Users/davi/mysql/push/mysql-5.1-runtime
      
      
      include/config-win.h:
        Auto merged
      include/my_pthread.h:
        Auto merged
      mysys/thr_mutex.c:
        Auto merged
      6769a80d
    • unknown's avatar
      Fix merge. · 701ea230
      unknown authored
      701ea230
    • unknown's avatar
      Merge station.:/mnt/raid/alik/MySQL/devel/5.0-rt · 2e53f363
      unknown authored
      into  station.:/mnt/raid/alik/MySQL/devel/5.1-rt-merged
      
      
      sql/mysql_priv.h:
        Auto merged
      sql/sql_parse.cc:
        Manual merge/
      2e53f363
  7. 08 Oct, 2007 3 commits
  8. 07 Oct, 2007 2 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 7ac3645a
      unknown authored
      into  bodhi.(none):/opt/local/work/mysql-5.0-runtime
      
      
      mysql-test/r/sp.result:
        Auto merged
      mysql-test/t/sp.test:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      7ac3645a
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.1 · ded7fe7f
      unknown authored
      into  bodhi.(none):/opt/local/work/mysql-5.1-runtime
      
      
      mysql-test/include/mix1.inc:
        Auto merged
      mysql-test/r/create.result:
        Auto merged
      mysql-test/r/innodb_mysql.result:
        Auto merged
      mysql-test/r/sp.result:
        Auto merged
      mysql-test/t/sp.test:
        Auto merged
      sql/sql_lex.h:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      sql/sql_yacc.yy:
        Auto merged
      libmysql/libmysql.c:
        Manual merge.
      ded7fe7f
  9. 05 Oct, 2007 2 commits
    • unknown's avatar
      Merge bk-internal:/home/bk/mysql-5.0-runtime · 017a0fef
      unknown authored
      into  pilot.mysql.com:/data/msvensson/mysql/my50-r-bug30992
      
      
      017a0fef
    • unknown's avatar
      Fix for BUG#20550: Stored function: wrong RETURN type metadata · c215e78d
      unknown authored
      when used in a VIEW.
      
      The problem was that wrong function (create_tmp_from_item())
      was used to create a temporary field for Item_func_sp.
      
      The fix is to use create_tmp_from_field().
      
      
      mysql-test/r/sp.result:
        Update result file.
      mysql-test/t/sp.test:
        Add a test case for BUG#20550.
      sql/item_func.h:
        Add a getter for Item_func_sp::sp_result_field.
      sql/sql_select.cc:
        Use create_tmp_from_field() to create a temporary field
        for Item_func_sp.
      c215e78d
  10. 04 Oct, 2007 4 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime · 2fec8bee
      unknown authored
      into  moksha.local:/Users/davi/mysql/push/mysql-5.0-runtime
      
      
      2fec8bee
    • unknown's avatar
      Bug#21587 FLUSH TABLES causes server crash when used with HANDLER statements · f5dd3491
      unknown authored
      This bug is a symptom of the way handler's tables are managed. The
      most different aspect, compared to the conventional behavior, is that
      the handler's tables are long lived, meaning that their lifetimes are
      not bounded by the duration of the command that opened them. For this
      effect the handler code uses its own list (handler_tables instead of
      open_tables) to hold open handler tables so that the tables won't be
      closed at the end of the command/statement. Besides the handler_tables
      list, there is a hash (handler_tables_hash) which is used to associate
      handler aliases to tables and to refresh the tables upon demand (flush
      tables).
      
      The current implementation doesn't work properly with refreshed tables
      -- more precisely when flush commands are issued by other initiators.
      This happens because when a handler open or read statement is being
      processed, the associated table has to be opened or locked and, for this
      matter, the open_tables and handler_tables lists are swapped so that the
      new table being opened is inserted into the handler_tables list. But when
      opening or locking the table, if the refresh version is different from the
      thread refresh version then all used tables in the open_tables list (now
      handler_tables) are refreshed. In the "refreshing" process the handler
      tables are flushed (closed) without being properly unlinked from the
      handler hash.
      
      The current implementation also fails to properly discard handlers of
      dropped tables, but this and other problems are going to be addressed
      in the fixes for bugs 31397 and 31409.
      
      The chosen approach tries to properly save and restore the table state
      so that no table is flushed during the table open and lock operations.
      The logic is almost the same as before with the list swapping, but with
      a working glue code.
      
      The test case for this bug is going to be committed into 5.1 because it
      requires a test feature only avaiable in 5.1 (wait_condition).
      
      
      sql/sql_handler.cc:
        Backup and reset the open_tables and handler_table lists when opening
        a new handler table and merge the opened table into the handler_tables
        list afterwards. When locking, do the same but possibly close the table
        if a refresh is pending.
      f5dd3491
    • unknown's avatar
      Merge trift2.:/MySQL/M50/push-5.0 · 03bef972
      unknown authored
      into  trift2.:/MySQL/M51/push-5.1
      
      
      storage/ndb/test/ndbapi/testScanFilter.cpp:
        Auto merged
      03bef972
    • unknown's avatar
      Merge trift2.:/MySQL/M50/mysql-5.0 · f4b6234c
      unknown authored
      into  trift2.:/MySQL/M50/push-5.0
      
      
      f4b6234c