1. 09 Nov, 2007 2 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.1-community · f0e24c79
      unknown authored
      into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1-forcollapseandmerge
      
      
      sql/ha_ndbcluster.cc:
        Auto merged
      sql/item_func.cc:
        Auto merged
      sql/log_event.cc:
        Auto merged
      sql/mysql_priv.h:
        Auto merged
      sql/mysqld.cc:
        Auto merged
      sql/set_var.cc:
        Auto merged
      sql/slave.cc:
        Auto merged
      sql/sp_head.cc:
        Auto merged
      sql/sql_base.cc:
        Auto merged
      sql/sql_class.cc:
        Auto merged
      sql/sql_class.h:
        Auto merged
      sql/sql_delete.cc:
        Auto merged
      sql/sql_insert.cc:
        Auto merged
      sql/sql_lex.h:
        Auto merged
      sql/sql_prepare.cc:
        Auto merged
      sql/sql_table.cc:
        Auto merged
      sql/sql_update.cc:
        Auto merged
      sql/sql_view.cc:
        Auto merged
      sql/sql_yacc.yy:
        Auto merged
      sql/table.h:
        Auto merged
      sql/sql_parse.cc:
        Manual merge.
      sql/sql_select.cc:
        Manual merge.
      f0e24c79
    • unknown's avatar
      Rewrite profiler code to be easier to maintain and less buggy. · 69aee073
      unknown authored
      Between 5.0 and 5.1, the step of incrementing the global query id
      changed, which broke how the profiler noticed when a new query had
      started.  That reset the state list and caused all but the last 
      five (or so) states to be thrown away.
      
      Now, don't watch for query_id changes in the lower level.
      
      Add a bogus state change at the end of profiling so that the last 
      real state change is timed.
      
      Emit source reference for the start of the span of time instead of
      the end of it.
      
      
      mysql-test/r/profiling.result:
        Add a test that shows continuation of execution with multi-statement
        packets.
      mysql-test/t/profiling.test:
        Add a test that shows continuation of execution with multi-statement
        packets.
      sql/sql_parse.cc:
        Insert profiling calls at beginnings and ends of each query.
        
        Remove the old way of keeping or discarding profiles, and flipping 
        to new query profiles.
      sql/sql_profile.cc:
        No longer use the thread's query_id to determine when we flip
        to a new statement.
        
        Some status statements are set to be NULL in the server.  We don't
        log those, as it doesn't fit this style of profiling yet.
        
        Rewrite the parser code to be more active and legible.  
        
        Relying on passive/lazy discovery of new queries was buggy.
        
        Add a bogus status change before ending a profile, so that the 
        previous real status has a endpoint.
        
        Emit source reference of the start of the span-of-time instead of
        the end of it.
      sql/sql_profile.h:
        Store the server_query_id at instantiation time for a new query.
        
        Rewrite the parser code to be more active.  Relying on passive/lazy
        discovery of new queries was buggy.
        
        Name first state to more honestly describe the state.  We don't 
        really know of initialization that will follow.
      sql/sql_show.cc:
        Update comment to note the decidedly weird field_length behavior
        on Decimal types in information_schema.
      69aee073
  2. 08 Nov, 2007 1 commit
  3. 06 Nov, 2007 3 commits
  4. 05 Nov, 2007 8 commits
  5. 03 Nov, 2007 1 commit
    • unknown's avatar
      BUG#31611 (Security risk with BINLOG statement): · b835c18a
      unknown authored
      Adding check that the user executing a BINLOG statement has SUPER
      privileges and aborting execution of the statement with an error
      otherwise.
      
      
      mysql-test/r/mysqlbinlog.result:
        Result change.
      mysql-test/t/mysqlbinlog.test:
        Adding test that generates a BINLOG command for inserting data into a
        table and feed the BINLOG statement into the database as an untrusted
        user. Also checking that insertion into the table fails for that user
        and that the table only contain a single line: the original one inserted.
      sql/sql_binlog.cc:
        Adding a check that the executor of the BINLOG command has
        SUPER privileges and give an error and abort execution if not.
      b835c18a
  6. 02 Nov, 2007 6 commits
  7. 01 Nov, 2007 19 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime · bc8e5574
      unknown authored
      into  bodhi.(none):/opt/local/work/mysql-5.1-runtime-inc-2
      
      
      bc8e5574
    • unknown's avatar
      A fix for Bug#32030 "DELETE does not return an error and deletes rows if · 0c1bdcbd
      unknown authored
      error evaluating WHERE"
      
      DELETE with a subquery in WHERE clause would sometimes ignore subquery
      evaluation error and proceed with deletion.
      
      The fix is to check for an error after evaluation of the WHERE clause
      in DELETE.
      
      Addressed review comments.
      
      
      mysql-test/r/group_min_max.result:
        Update the test results to reflect the fix for Bug#32030.
      mysql-test/r/ps.result:
        Update test results (Bug#32030)
      mysql-test/t/group_min_max.test:
        Update the test case to reflect the fix for Bug#32030
      mysql-test/t/ps.test:
        Add a test case for Bug#32030
      sql/sql_delete.cc:
        Check for an error before calling send_ok(). Two different places are
        covered because the subquery code has slightly different execution
        paths depending on ps-protocol/old-protocol
      0c1bdcbd
    • unknown's avatar
      Merge endora.local:/Users/davi/mysql/bugs/30882-5.1 · fe683443
      unknown authored
      into  endora.local:/Users/davi/mysql/mysql-5.1-runtime
      
      
      sql/sql_parse.cc:
        Auto merged
      sql/sql_table.cc:
        Auto merged
      fe683443
    • unknown's avatar
      Merge endora.local:/Users/davi/mysql/bugs/31850-5.1 · 0e675d81
      unknown authored
      into  endora.local:/Users/davi/mysql/mysql-5.1-runtime
      
      
      sql/sql_connect.cc:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      0e675d81
    • unknown's avatar
      Bug#30882 Dropping a temporary table inside a stored function may cause a server crash · 611dbd0b
      unknown authored
      If a stored function that contains a drop temporary table statement
      is invoked by a create temporary table of the same name may cause
      a server crash. The problem is that when dropping a table no check
      is done to ensure that table is not being used by some outer query
      (or outer statement), potentially leaving the outer query with a
      reference to a stale (freed) table.
      
      The solution is when dropping a temporary table, always check if
      the table is being used by some outer statement as a temporary
      table can be dropped inside stored procedures.
      
      The check is performed by looking at the TABLE::query_id value for
      temporary tables. To simplify this check and to solve a bug related
      to handling of temporary tables in prelocked mode, this patch changes
      the way in which this member is used to track the fact that table is
      used/unused. Now we ensure that TABLE::query_id is zero for unused
      temporary tables (which means that all temporary tables which were
      used by a statement should be marked as free for reuse after it's
      execution has been completed).
      
      
      mysql-test/include/handler.inc:
        Add test case for side effect of Bug#30882
      mysql-test/r/handler_innodb.result:
        Add test case result for side effect of Bug#30882
      mysql-test/r/handler_myisam.result:
        Add test case result for side effect of Bug#30882
      mysql-test/r/sp-error.result:
        Add test case result for Bug#30882
      mysql-test/t/sp-error.test:
        Add test case for Bug#30882
      sql/event_db_repository.cc:
        Update close_thread_tables call, no more default values.
      sql/mysql_priv.h:
        Remove implicit default parameters values of the close_thread_tables
        function as no callers are using it.
      sql/slave.cc:
        Update close_thread_tables call, no more default values
      sql/sp_head.cc:
        Update close_thread_tables call, no more default values
      sql/sql_base.cc:
        Changed the approach to distinguishing currently unused temporary tables.
        Now we ensure that such tables always have TABLE::query_id set to 0 and
        use this fact to perform checks during opening and dropping of temporary
        tables. This means that we have to call close_thread_tables() even for
        statements which use only temporary tables. To make this call cheaper,
        we re-factored close_thread_tables() to not take LOCK_open unless there
        are open base tables.
      sql/sql_handler.cc:
        Properly close temporary tables associated with a handler.
      sql/sql_insert.cc:
        close_temporary_table is now merged into drop_temporary_table.
      sql/sql_parse.cc:
        Now the condition doesn't cover all cases because close_thread_tables()
        must be called even for statements that use only temporary tables.
      sql/sql_table.cc:
        Use drop_temporary_table which perform checks to verify if
        the table is not being used. Error path problem is due to
        a handler tables issue and is going to be addressed in bug
        31397.
      sql/table.h:
        Rename previously unused clear_query_id and document the usage of
        query_id and open_by_handler.
      611dbd0b
    • unknown's avatar
      Bug#31850 Test crashes in "embedded" server · 8f0df2ef
      unknown authored
      The mysql_change_user command fails to properly update the database pointer
      when no database is selected, leading to "use after free" errors. The same
      happens on the user privilege pointer in the thread security context.
      
      The solution is to properly reset and update the database name. Also update
      the user_priv pointer so that it doesn't point to freed memory.
      
      
      sql/sql_connect.cc:
        After a successful call to check_user() without specifying a new
        database name, the previous database thd->db) is freed but the
        pointer is not updated to NULL.
      sql/sql_parse.cc:
        Update the security_ctx->priv_user pointer as it is a alias for
        the user security_ctx->user pointer. Also remove unneeded cast,
        the x_free macro casts the argument.
      8f0df2ef
    • unknown's avatar
      disable test · 81246745
      unknown authored
      81246745
    • unknown's avatar
      Cleanup execute_ddl_log_recovery() to not generate an error if · 6dd04c22
      unknown authored
      there is nothing to recover.
      
      Discovered while working on Bug#12713
      
      
      sql/sql_table.cc:
        Use MYF(0) in my_open() in read_ddl_log_header() called from
        execute_ddl_log_recovery() called during the server start up to not
        generate an error if no ddl log exists. This is not an erroneous situation,
        in fact it's the case in any server statrtup. The error was lost
        anyway, since it was pushed into the stack of the artificial thd.
      6dd04c22
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime · e70f6a90
      unknown authored
      into  bodhi.(none):/opt/local/work/mysql-5.1-net_end
      
      
      e70f6a90
    • unknown's avatar
      Use Internal_error_handler mechanism to silence ER_TOO_MANY_FIELDS · 3536c5d5
      unknown authored
      error in mysql_create_frm instead of
      direct access to my_error() members.
      
      This is a pre-requisite for the patch for Bug#12713.
      
      
      sql/unireg.cc:
        Use Internal_error_handler mechanism to silence ER_TOO_MANY_FIELDS
        error in mysql_create_frm instead of
        direct access to my_error() members.
      3536c5d5
    • unknown's avatar
      Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.1-runtime · 8c3a08e4
      unknown authored
      into  lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.1-rt-merge
      
      
      8c3a08e4
    • unknown's avatar
      Use thd->is_error() instead of direct access to thd->net.report_error · ecef8379
      unknown authored
      in evaluate_join_record().
      
      A minor cleanup required for the fix for Bug#12713.
      
      
      sql/sql_select.cc:
        Use thd->is_error() instead of direct access to thd->net.report_error
        in evaluate_join_record()
      ecef8379
    • unknown's avatar
      Fix a compilation warning. · fbf75e0d
      unknown authored
      
      sql/sql_connect.cc:
        Fix a compilation warning (unused variable).
      fbf75e0d
    • unknown's avatar
      Merge lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.1-base · cf8275e0
      unknown authored
      into  lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.1-rt-merge
      
      
      sql/item_func.cc:
        Auto merged
      cf8275e0
    • unknown's avatar
      Merge lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.0-base · 74394b27
      unknown authored
      into  lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.0-rt-merge
      
      
      74394b27
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime · ad723cd5
      unknown authored
      into  bodhi.(none):/opt/local/work/mysql-5.1-runtime-inc-2
      
      
      sql/sql_parse.cc:
        Auto merged
      ad723cd5
    • unknown's avatar
      disable tests · f75923b1
      unknown authored
      
      BitKeeper/etc/ignore:
        Added libmysql_r/client_settings.h to the ignore list
      f75923b1
    • unknown's avatar
      Merge whalegate.ndb.mysql.com:/home/tomas/cge-5.1 · a9d61e09
      unknown authored
      into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb-merge
      
      
      a9d61e09
    • unknown's avatar
      Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.1 · 8011819a
      unknown authored
      into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb-merge
      
      
      8011819a