1. 30 May, 2006 1 commit
    • unknown's avatar
      Bug#17204 "second CALL to procedure crashes Server" · 0838a57e
      unknown authored
      Bug#18282 "INFORMATION_SCHEMA.TABLES provides inconsistent info about invalid views"
      This bug caused crashes or resulted in wrong data being returned
      when one tried to obtain information from I_S tables about views
      using stored functions.
      
      It was caused by the fact that we were using LEX representing
      statement which were doing select from I_S tables as active LEX
      when contents of I_S table were built. So state of this LEX both
      affected and was affected by open_tables() calls which happened
      during this process. This resulted in wrong behavior and in
      violations of some of invariants which caused crashes.
      
      This fix tries to solve this problem by properly saving/resetting
      and restoring part of LEX which affects and is affected by the
      process of opening tables and views in get_all_tables() routine.
      To simplify things we separated this part of LEX in a new class
      and made LEX its descendant.
      
      
      mysql-test/r/information_schema_db.result:
        test case
      mysql-test/t/information_schema_db.test:
        test case
      sql/sql_lex.cc:
        To simplify saving/resetting and restoring part of LEX which
        affects and is affected by the process of opening tables and
        views we moved it to new class Query_tables_list and made LEX
        descendant of this class. Also introduced two LEX methods 
        which can be used to save and reset or to restore this state.
      sql/sql_lex.h:
        To simplify saving/resetting and restoring part of LEX which
        affects and is affected by the process of opening tables and
        views we moved it to new class Query_tables_list and made LEX
        descendant of this class. Also introduced two LEX methods 
        which can be used to save and reset or to restore this state.
      sql/sql_show.cc:
        Now in get_all_tables() routine we properly save/reset and
        restore part of LEX (statement table list and information
        about routines used) which affects and is affected by the
        process of opening tables and views.
      sql/sql_table.cc:
        Now we clean-up LEX after opening table (view) in two stages.
        In the first stage we call LEX::cleanup_after_one_table_open()
        to clean-up selects lists and derived tables state. In the
        second stage which happens after close_thread_tables() is
        invoked we call Query_tables_list::reset_query_tables_list(FALSE)
        to rollback changes in Query_tables_list.
      0838a57e
  2. 29 May, 2006 15 commits
  3. 26 May, 2006 7 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 317928f7
      unknown authored
      into  mysql.com:/home/emurphy/iggy/mysql-5.0
      
      
      sql/mysqld.cc:
        Auto merged
      317928f7
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0 · 62e4f81f
      unknown authored
      into  mysql.com:/home/kgeorge/mysql/5.0/clean
      
      62e4f81f
    • unknown's avatar
      Merge mysql.com:/home/kgeorge/mysql/5.0/clean · c1e6606d
      unknown authored
      into  mysql.com:/home/kgeorge/mysql/5.0/B18681
      
      
      sql/sql_acl.cc:
        Auto merged
      sql/table.cc:
        Auto merged
      mysql-test/r/view_grant.result:
        resolved conflict
      mysql-test/t/view_grant.test:
        resolved merge conflict
      c1e6606d
    • unknown's avatar
      Merge mysql.com:/home/kgeorge/mysql/5.0/clean · 6df7e493
      unknown authored
      into  mysql.com:/home/kgeorge/mysql/5.0/B18681
      
      
      sql/mysql_priv.h:
        Auto merged
      sql/sql_acl.cc:
        Auto merged
      sql/sql_base.cc:
        Auto merged
      sql/sql_insert.cc:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      6df7e493
    • unknown's avatar
      Merge mysql.com:/home/kgeorge/mysql/5.0/clean · c0241ded
      unknown authored
      into  mysql.com:/home/kgeorge/mysql/5.0/B14875
      
      c0241ded
    • unknown's avatar
      Bug #14875: Bad view DEFINER makes SHOW CREATE VIEW fail · cf69af37
      unknown authored
      When reading a view definition from a .frm file it was
      throwing a SQL error if the DEFINER user is not defined.
      Changed it to a warning to match the (documented) case
      when a view with undefined DEFINER user is created.
      
      
      mysql-test/r/view_grant.result:
        test case for the bug
      mysql-test/t/view_grant.test:
        test case for the bug
      sql/sql_acl.cc:
        Initialized the members to no privileges so even if
        the subsequent checks fail it will still initialize
        the security context.
      sql/table.cc:
        Turned the error of undefined DEFINER user in reading 
        a view definition to a warning.
      cf69af37
    • unknown's avatar
      BUG#18681: View privileges are broken · 89444fa0
      unknown 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.
      
      
      mysql-test/r/grant.result:
        removed nondeterminism (unspecified order) in some test output
      mysql-test/r/view_grant.result:
        Somewhat extended test case for the bug and similar queries.
      mysql-test/t/grant.test:
        removed nondeterminism (unspecified order) in some test output
      mysql-test/t/view_grant.test:
        Somewhat extended test case for the bug and similar queries.
      sql/mysql_priv.h:
        A wrapper for setup_tables that also checks access to the tables
      sql/sql_acl.cc:
        removed artificial security check stop and used the table ref's credentials.
      sql/sql_base.cc:
        a wrapper for setup_tables to check access to the tables
      sql/sql_delete.cc:
        wrapper called.
      sql/sql_insert.cc:
        wrapper called
      sql/sql_load.cc:
        wrapper called
      sql/sql_parse.cc:
        wrapper called and artificial check stop removed
      sql/sql_select.cc:
        wrapper called
      sql/sql_update.cc:
        wrapper called
      sql/table.cc:
        Mask table access to the view error as well.
      89444fa0
  4. 25 May, 2006 8 commits
  5. 24 May, 2006 9 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 01cdf975
      unknown authored
      into  mysql.com:/home/my/mysql-5.0
      
      01cdf975
    • unknown's avatar
      Merge monty@192.168.0.9:/my/mysql-5.0 · f06e3b57
      unknown authored
      into  mysql.com:/home/my/mysql-5.0
      
      
      sql/mysqld.cc:
        Auto merged
      f06e3b57
    • unknown's avatar
      More DBUG statements · 15a41be4
      unknown 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
      
      
      mysql-test/r/flush.result:
        Added test case for deadlock with FLUSH TABLES WITH READ LOCK
      mysql-test/r/lock_multi.result:
        Test for bug in LOCK TABLE + optimize table
      mysql-test/t/flush.test:
        Added test case for deadlock with FLUSH TABLES WITH READ LOCK
      mysql-test/t/lock_multi.test:
        Test for bug in LOCK TABLE + optimize table
      sql/lock.cc:
        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
      sql/mysql_priv.h:
        Added COND_global_read_lock
      sql/mysqld.cc:
        Added COND_global_read_lock
      sql/sql_base.cc:
        More DBUG statements
        Added a broadcast in remove_table_from_cache() to release any threads waiting in open
      15a41be4
    • unknown's avatar
      Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.0 · edb3c164
      unknown authored
      into  april.(none):/home/svoj/devel/mysql/BUG17001/mysql-5.0
      
      edb3c164
    • unknown's avatar
      Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.0 · f514e6b7
      unknown authored
      into  april.(none):/home/svoj/devel/mysql/BUG17001/mysql-5.0
      
      f514e6b7
    • unknown's avatar
      Merge mysql.com:/opt/local/work/mysql-5.0-root · 647648a7
      unknown authored
      into  mysql.com:/opt/local/work/mysql-5.0-runtime
      
      647648a7
    • unknown's avatar
      configure.in: · 48b5e8f0
      unknown authored
        Update NDB version as well
      
      
      configure.in:
        Update NDB version as well
      48b5e8f0
    • unknown's avatar
      configure.in: · d67ce4d6
      unknown authored
        Stepped up to 5.0.23
      
      
      configure.in:
        Stepped up to 5.0.23
      d67ce4d6
    • unknown's avatar
      configure.in: · 5cf61c49
      unknown authored
        Stepped up to 4.1.22
      
      
      configure.in:
        Stepped up to 4.1.22
      5cf61c49