An error occurred fetching the project authors.
  1. 08 Aug, 2006 1 commit
  2. 21 Jul, 2006 1 commit
    • timour/timka@lamia.home's avatar
      Fix for BUG#21007. · 39ada211
      timour/timka@lamia.home authored
      The problem was that store_top_level_join_columns() incorrectly assumed
      that the left/right neighbor of a nested join table reference can be only
      at the same level in the join tree.
      
      The fix checks if the current nested join table reference has no immediate
      left/right neighbor, and if so chooses the left/right neighbors of the
      nearest upper level, where these references are != NULL.
      39ada211
  3. 09 Jul, 2006 1 commit
    • aelkin/elkin@dsl-hkigw8-feb1fb00-100.dhcp.inet.fi's avatar
      BUG#20919 temp tables closing fails when binlog is off · fadbdf27
      closing temp tables through end_thread
      had a flaw in binlog-off branch of close_temporary_tables where
      next table to close was reset via table->next
       for (table= thd->temporary_tables; table; table= table->next)
      which was wrong since the current table instance got destoyed at
      	close_temporary(table, 1);
      
      The fix adapts binlog-on branch method to engage the loop's internal 'next' variable which holds table->next prior table's destoying.
      fadbdf27
  4. 26 Jun, 2006 1 commit
    • ingo@mysql.com's avatar
      Bug#16986 - Deadlock condition with MyISAM tables · d27a15a8
      ingo@mysql.com authored
      Addendum fixes after changing the condition variable
      for the global read lock.
      
      The stress test suite revealed some deadlocks. Some were
      related to the new condition variable (COND_global_read_lock)
      and some were general problems with the global read lock.
      
      It is now necessary to signal COND_global_read_lock whenever 
      COND_refresh is signalled.
      
      We need to wait for the release of a global read lock if one 
      is set before every operation that requires a write lock.
      But we must not wait if we have locked tables by LOCK TABLES.
      After setting a global read lock a thread waits until all
      write locks are released.
      d27a15a8
  5. 21 Jun, 2006 1 commit
    • gkodinov@mysql.com's avatar
      Bug #20482: failure on Create join view with sources views/tables in different · 75ca0554
      gkodinov@mysql.com authored
                  schemas
      The function check_one_table_access() called to check access to tables in 
      SELECT/INSERT/UPDATE was doing additional checks/modifications that don't hold
      in the context of setup_tables_and_check_access().
      That's why the check_one_table() was split into two : the functionality needed by
      setup_tables_and_check_access() into check_single_table_access() and the rest of 
      the functionality stays in check_one_table_access() that is made to call the new
      check_single_table_access() function.
      75ca0554
  6. 08 Jun, 2006 1 commit
    • gkodinov@mysql.com's avatar
      Bug #15355: Common natural join column not resolved in prepared statement nested · 395affb8
      gkodinov@mysql.com authored
        query
      Problem:
      There was a wrong context assigned to the columns that were added in insert_fields()
      when expanding a '*'. When this is done in a prepared statement it causes 
      fix_fields() to fail to find the table that these columns reference.
      Actually the right context is set in setup_natural_join_row_types() called at the 
      end of setup_tables(). However when executed in a context of a prepared statement
      setup_tables() resets the context, but setup_natural_join_row_types() was not
      setting it to the correct value assuming it has already done so.
      
      Solution:
      The top-most, left-most NATURAL/USING join must be set as a 
      first_name_resolution_table in context even when operating on prepared statements.
      395affb8
  7. 01 Jun, 2006 1 commit
  8. 30 May, 2006 1 commit
  9. 28 May, 2006 1 commit
  10. 26 May, 2006 1 commit
    • gkodinov@mysql.com's avatar
      BUG#18681: View privileges are broken · a21a2b5b
      gkodinov@mysql.com authored
      The check for view security was lacking several points :
      1. Check with the right set of permissions : for each table ref that
      participates in a view there were the right credentials to use in it's
      security_ctx member, but these weren't used for checking the credentials.
      This makes hard enforcing the SQL SECURITY DEFINER|INVOKER property
      consistently.
      2. Because of the above the security checking for views was just ruled out
      in explicit ways in several places.
      3. The security was checked only for the columns of the tables that are
      brought into the query from a view. So if there is no column reference
      outside of the view definition it was not detecting the lack of access to
      the tables in the view in SQL SECURITY INVOKER mode.
      
      The fix below tries to fix the above 3 points.
      a21a2b5b
  11. 24 May, 2006 1 commit
    • monty@mysql.com's avatar
      More DBUG statements · 9e9ca8b6
      monty@mysql.com authored
      Replaced COND_refresh with COND_global_read_lock becasue of a bug in NTPL threads when using different mutexes as arguments to pthread_cond_wait()
      The original code caused a hang in FLUSH TABLES WITH READ LOCK in some circumstances because pthread_cond_broadcast() was not delivered to other threads.
      This fixes:
      Bug#16986: Deadlock condition with MyISAM tables
      Bug#20048: FLUSH TABLES WITH READ LOCK causes a deadlock
      9e9ca8b6
  12. 15 May, 2006 1 commit
  13. 14 May, 2006 1 commit
  14. 12 May, 2006 1 commit
  15. 09 May, 2006 2 commits
    • aelkin@mysql.com's avatar
      BUG#14157: utf8 encoding in binlog without set character_set_client e.g DROP temporary · 226d978a
      aelkin@mysql.com authored
      Binlog lacks encoding info about DROPped temporary table.
      
      Idea of the fix is to switch temporary to system_charset_info when a temporary table
      is DROPped for binlog. Since that is the server, that automatically, but not the client, who generates the query
      the binlog should be updated on the server's encoding for the coming DROP.
      The `write_binlog_with_system_charset()' is introduced to replace similar problematic places in the code.
      226d978a
    • dlenev@mysql.com's avatar
      Fix for bugs#12472/#15137 'CREATE TABLE ... SELECT ... which explicitly · 589daad1
      dlenev@mysql.com authored
      or implicitly uses stored function gives "Table not locked" error'
      
      CREATE TABLE ... SELECT ... statement which was explicitly or implicitly
      (through view) using stored function gave "Table not locked" error.
      
      The actual bug resides in the current locking scheme of CREATE TABLE SELECT
      code, which first opens and locks tables of the SELECT statement itself,
      and then, having SELECT tables locked, creates the .FRM, opens the .FRM and
      acquires lock on it. This scheme opens a possibility for a deadlock, which
      was present and ignored since version 3.23 or earlier. This scheme also
      conflicts with the invariant of the prelocking algorithm -- no table can
      be open and locked while there are tables locked in prelocked mode.
      
      The patch makes an exception for this invariant when doing CREATE TABLE ...
      SELECT, thus extending the possibility of a deadlock to the prelocked mode.
      We can't supply a better fix in 5.0.
      589daad1
  16. 23 Apr, 2006 4 commits
  17. 19 Apr, 2006 3 commits
  18. 02 Mar, 2006 1 commit
    • timour@mysql.com's avatar
      Fix for BUG#15229. · 103604ed
      timour@mysql.com authored
      The cause of this bug was a design flaw due to which the list of natural
      join columns was incorrectly computed and stored for nested joins that
      are not natural joins, but are operands (possibly indirect) of nested joins.
      
      The patch corrects the flaw in a such a way, that the result columns of a
      table reference are materialized only if it is a leaf table (that is, only
      if it is a view, stored table, or natural/using join).
      103604ed
  19. 25 Feb, 2006 1 commit
  20. 24 Feb, 2006 1 commit
  21. 23 Feb, 2006 1 commit
  22. 16 Feb, 2006 1 commit
    • dlenev@mysql.com's avatar
      Fix for bug #16593 "Deadlock or crash in stress test for case where · 4a41a00d
      dlenev@mysql.com authored
      trigger starts trigger".
      
      In short, the deadlock/crash happened when execution of statement, which used
      stored functions or activated triggers, coincided with alteration of the
      tables used by these functions or triggers (in highly concurrent environment).
      
      Bug was caused by the incorrect handling of tables from prelocked set in
      open_tables() functions in situations when refresh happened. This fix replaces
      old smart but not very robust way of handling tables after refresh (which was
      closing only old tables), with new one which simply closes all tables opened so
      far and restarts open_tables().
      Also fixed handling of temporary tables in close_tables_for_reopen().
      
      No test case present since bug manifests itself only in concurrent environment.
      4a41a00d
  23. 03 Feb, 2006 1 commit
  24. 25 Jan, 2006 1 commit
  25. 23 Jan, 2006 1 commit
    • evgen@moonbone.local's avatar
      Fixed bug #16510: Updating field named like '*name' caused server crash. · b1967ad7
      evgen@moonbone.local authored
      When setup_fields() function finds field named '*' it expands it to the list
      of all table fields. It does so by checking that the first char of
      field_name is '*', but it doesn't checks that the '* is the only char.
      Due to this, when updating table with a field named like '*name', such field
      is wrongly treated as '*' and expanded. This leads to making list of fields
      to update being longer than list of the new values. Later, the fill_record() 
      function crashes by dereferencing null when there is left fields to update,
      but no more values.
      
      Added check in the setup_fields() function which ensures that the field
      expanding will be done only when '*' is the only char in the field name.
      b1967ad7
  26. 10 Jan, 2006 1 commit
  27. 05 Jan, 2006 1 commit
    • monty@mysql.com's avatar
      Review fixes of new pushed code · 6e22e29d
      monty@mysql.com authored
      - Fixed tests
      - Optimized new code
      - Fixed some unlikely core dumps
      - Better bug fixes for:
        - #14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
        - #14850 (ERROR 1062 when a quering a view using a Group By on a column that can be null
      6e22e29d
  28. 04 Jan, 2006 2 commits
    • konstantin@mysql.com's avatar
      Post-merge fixes. · 4a4b8eac
      konstantin@mysql.com authored
      4a4b8eac
    • konstantin@mysql.com's avatar
      A fix for Bug#7209 "Client error with "Access Denied" on updates · f7d6fa6f
      konstantin@mysql.com authored
      when high concurrency": remove HASH::current_record and make it
      an external search parameter, so that it can not be the cause of a 
      race condition under high concurrent load.
      The bug was in a race condition in table_hash_search,
      when column_priv_hash.current_record was overwritten simultaneously
      by multiple threads, causing the search for a suitable grant record
      to fail.
      No test case as the bug is repeatable only under concurrent load.
      f7d6fa6f
  29. 20 Dec, 2005 1 commit
    • ingo@mysql.com's avatar
      BUG#5390 - problems with merge tables · b0e84cb9
      ingo@mysql.com authored
      Problem #1: INSERT...SELECT, Version for 5.0.
      Extended the unique table check by a check of lock data.
      Merge sub-tables cannot be detected by doing name checks only.
      b0e84cb9
  30. 07 Dec, 2005 1 commit
    • dlenev@mysql.com's avatar
      Fix for bug #11555 "Stored procedures: current SP tables locking make · 06b895c0
      dlenev@mysql.com authored
      impossible view security".
      
      We should not expose names of tables which are explicitly or implicitly (via
      routine or trigger) used by view even if we find that they are missing.
      So during building of list of prelocked tables for statement we track which
      routines (and therefore tables for these routines) are used from views. We
      mark elements of LEX::routines set which correspond to routines used in views
      by setting Sroutine_hash_entry::belong_to_view member to point to TABLE_LIST
      object for topmost view which uses routine. We propagate this mark to all
      routines which are used by this routine and which we add to this set. We also
      mark tables used by such routine which we add to the list of tables for
      prelocking as belonging to this view.
      06b895c0
  31. 30 Nov, 2005 1 commit
  32. 28 Nov, 2005 1 commit
  33. 25 Nov, 2005 1 commit