1. 29 Jun, 2006 1 commit
  2. 28 Jun, 2006 8 commits
    • unknown's avatar
      Merge pgalbraith@bk-internal.mysql.com:/home/bk/mysql-5.0 · 7f9a6aa9
      unknown authored
      into  govinda.patg.net:/home/patg/mysql-build/mysql-5.0-engines-bug19773
      
      
      sql/ha_federated.cc:
        Auto merged
      7f9a6aa9
    • unknown's avatar
      Merge xiphis.org:/home/antony/work2/p4-bug12096.2 · 76d0badd
      unknown authored
      into  xiphis.org:/home/antony/work2/p4-bug12096.2-merge
      
      
      configure.in:
        Auto merged
      sql/mysqld.cc:
        Auto merged
      76d0badd
    • unknown's avatar
      Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0 · 2f45384b
      unknown authored
      into  mysql.com:/home/tnurnberg/mysql-5.0
      
      
      2f45384b
    • unknown's avatar
      Merge mysql.com:/home/tnurnberg/work/mysql-5.0-maint-19857 · 03ce4312
      unknown authored
      into  mysql.com:/home/tnurnberg/mysql-5.0
      
      
      03ce4312
    • unknown's avatar
      Bug#19857: When a user with CREATE ROUTINE priv creates a routine it results in NULL p/w · 5312b349
      unknown authored
        
      sp_grant_privileges(), the function that GRANTs EXECUTE + ALTER privs on a SP,
      did so creating a user-entry with not password; mysql_routine_grant() would then
      write that "change" to the user-table.
      
      
      mysql-test/r/sp-security.result:
        prove that creating a stored procedure will not destroy the creator's password
      mysql-test/t/sp-security.test:
        prove that creating a stored procedure will not destroy the creator's password
      sql/sql_acl.cc:
        get password from ACLs, convert to correct format, and use it when
        forcing GRANTS for SPs
      5312b349
    • unknown's avatar
      Merge sgluhov@bk-internal.mysql.com:/home/bk/mysql-5.0 · b5f89708
      unknown authored
      into mysql.com:/home/gluh/MySQL/Merge/5.0-kt
      
      
      sql/set_var.cc:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      b5f89708
    • unknown's avatar
      BUG #19773 · 2ee3ef2e
      unknown authored
        
      Final-review fixes per Monty, pre-push. OK'd for 
      push. Please see each file's comments.
      
      
      
      mysql-test/r/federated.result:
        BUG #19773
            
        Results for multi-table deletes, updates
      mysql-test/t/federated.test:
        BUG #19773
            
        Test multi table update and delete. Added drop table to end of previous test.
      sql/ha_federated.cc:
        BUG #19773 
            
        Post-review changes, per Monty. 3rd patch, OK'd for push.
        - Added index_read_idx_with_result_set, which uses the result set passed to it
        - Hash by entire connection scheme
        - Protected store_result result set for table scan by adding a method result set
          to index_read_idx and index_read which is passed to index_read_with_result, which
          in turn iterates over the single record via read_next.
          This is a change from having two result sets in the first two patches. 
          This keeps the code clean and avoids the need for yet another result set.
        - Rewrote ::position and ::rnd_pos to store position - if primary key use 
          primary key, if not, use record buffer.
        - Rewrote get_share to store hash with connect string vs. table name
        - delete_row added subtration of "records" by affected->rows
        - Added read_next to handle what rnd_next used to do (converting raw record
           to query and vice versa)
        - Removed many DBUG_PRINT lines
        - Removed memset initialisation since subsequent loop accomplishes
        - Removed un-necessary mysql_free_result lines
      sql/ha_federated.h:
         BUG #19773
            
            Fixed "SET " to " SET " to make sure built statements are built with 
            "UPDATE `t1` SET .." instead of "UPDATE `t1`SET"
      2ee3ef2e
    • unknown's avatar
      Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0 · a4c95a18
      unknown authored
      into  poseidon.ndb.mysql.com:/home/tomas/mysql-5.0-main
      
      
      a4c95a18
  3. 27 Jun, 2006 14 commits
    • unknown's avatar
      Merge jbruehe@bk-internal.mysql.com:/home/bk/mysql-5.0 · 1e22a12d
      unknown authored
      into mysql.com:/M50/autopush20216-5.0
      
      
      scripts/make_binary_distribution.sh:
        Auto merged
      1e22a12d
    • unknown's avatar
      Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0 · 7279446f
      unknown authored
      into  poseidon.ndb.mysql.com:/home/tomas/mysql-5.0-main
      
      
      7279446f
    • unknown's avatar
      Manual merge for bug#20216. · b024b6c0
      unknown authored
      
      support-files/mysql.spec.sh:
        Manual merge for bug#20216, due to some conflict in the changenotes.
      b024b6c0
    • unknown's avatar
      Revert all previous attempts to call "mysql_upgrade" during RPM upgrade. · 0604daa4
      unknown authored
      This finishes bug#18516, as far as "generic RPMs" are concerned.
      
      
      support-files/mysql.spec.sh:
        Revert all previous attempts to call "mysql_upgrade" during RPM upgrade,
        there are some more aspects which need to be solved before this is possible.
        For now, just ensure the binary "mysql_upgrade" is delivered and installed.
        This finishes bug#18516, as far as "generic RPMs" are concerned.
      0604daa4
    • unknown's avatar
      Merge mysql.com:/M50/bug19353-5.0-2 into mysql.com:/M50/bug20216-5.0 · 0b6de748
      unknown authored
      
      support-files/mysql.spec.sh:
        Auto merged
      0b6de748
    • unknown's avatar
      Move "mysqldumpslow" from the client RPM to the server RPM (bug#20216), · 30b1d658
      unknown authored
      manual merge from 4.0.
      
      
      support-files/mysql.spec.sh:
        Manual merge of the fix for bug#20216.
        (became necessary because 4.0 and 4.1 spec files use different file sort order).
      30b1d658
    • unknown's avatar
    • unknown's avatar
      7982816b
    • unknown's avatar
      Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0 · cee3b44d
      unknown authored
      into  poseidon.ndb.mysql.com:/home/tomas/mysql-5.0-main
      
      
      mysql-test/mysql-test-run.sh:
        Auto merged
      ndb/include/kernel/GlobalSignalNumbers.h:
        Auto merged
      ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
        Auto merged
      ndb/src/kernel/blocks/dbdict/Dbdict.hpp:
        Auto merged
      sql/ha_ndbcluster.cc:
        Auto merged
      cee3b44d
    • unknown's avatar
      merging fix · e8329641
      unknown authored
      e8329641
    • unknown's avatar
      Fix yet another place with an obsolete explicit cast to byte *. · 44672ae5
      unknown authored
      
      sql/set_var.h:
        Fix yet another place with an obsolete explicit cast to byte *
      44672ae5
    • unknown's avatar
      Fix compilation failures on Windows caused by the patch for Bug#17199. · e3ef15ea
      unknown authored
      Fix a minor issue with Bug#16206 (bdb.test failed if the tree is compiled 
      without blackhole).
      
      
      include/my_sys.h:
        Change declaration of my_strdup_with_length to accept const char *,
        not const byte *: in 5 places out of 6 where this function is used,
        it's being passed char *, not byte *
      mysql-test/r/bdb.result:
        Remove dependency on an optional engine (updated test results).
      mysql-test/t/bdb.test:
        Remove dependency on an optional engine.
      mysys/my_malloc.c:
        my_strdup_with_length: const byte * -> const char *
      mysys/safemalloc.c:
        my_strdup_with_length: const byte * -> const char *
      sql/ha_federated.cc:
        my_strdup_with_length: const byte * -> const char *
      sql/log_event.cc:
        my_strdup_with_length: const byte * -> const char *
      sql/set_var.cc:
        my_strdup_with_length: const byte * -> const char *
      sql/sql_class.h:
        Change db_length type to uint from uint32 (see also table.h)
      sql/table.h:
        Change the type of db_length to uint from uint32: LEX_STRING uses uint for 
        length, we need a small and consistent set of types to store length to 
        minimize cast and compile failures.
      e3ef15ea
    • unknown's avatar
      Bug #19852 Restoring backup made from cluster with full data memory fails · d2da3c96
      unknown authored
      - correction of previous patch
      
      
      d2da3c96
    • unknown's avatar
      Bug #19852 Restoring backup made from cluster with full data memory fails · 0335013f
      unknown authored
      - make sure to allocate just enough pages in the fragments by using the actual
        row count from the backup, to avoid over allocation of pages to fragments, and
        thus avoid the bug
      
      
      ndb/include/kernel/GlobalSignalNumbers.h:
        Bug #19852  	Restoring backup made from cluster with full data memory fails
        - distribute fragment complete to all participants to update row count
      ndb/include/kernel/signaldata/BackupContinueB.hpp:
        Bug #19852  	Restoring backup made from cluster with full data memory fails
        - time slica writing of fragment info to ctl file
      ndb/include/kernel/signaldata/BackupImpl.hpp:
        Bug #19852  	Restoring backup made from cluster with full data memory fails
        - 32 -> 64 bit on bytes and records
        - new signal fragment complete to all participants
      ndb/include/kernel/signaldata/BackupSignalData.hpp:
        Bug #19852  	Restoring backup made from cluster with full data memory fails
        - 32 -> 64 bit on bytes and records
      ndb/include/kernel/signaldata/DictTabInfo.hpp:
        Bug #19852  	Restoring backup made from cluster with full data memory fails
        - add min and max rows to dict tab info
      ndb/include/kernel/signaldata/LqhFrag.hpp:
        Bug #19852  	Restoring backup made from cluster with full data memory fails
        - added min and max rows to add frag req
      ndb/include/kernel/signaldata/TupFrag.hpp:
        Bug #19852  	Restoring backup made from cluster with full data memory fails
        - added min and max rows to add frag req
      ndb/include/ndbapi/NdbDictionary.hpp:
        Bug #19852  	Restoring backup made from cluster with full data memory fails
        - added get/set of min max rows
      ndb/src/common/debugger/signaldata/BackupImpl.cpp:
        Bug #19852  	Restoring backup made from cluster with full data memory fails
        - 32 -> 64 bit on bytes and records
      ndb/src/common/debugger/signaldata/BackupSignalData.cpp:
        Bug #19852  	Restoring backup made from cluster with full data memory fails
        - 32 -> 64 bit on bytes and records
      ndb/src/common/debugger/signaldata/DictTabInfo.cpp:
        Bug #19852  	Restoring backup made from cluster with full data memory fails
        - added min and max rows to dict tab info
      ndb/src/common/debugger/signaldata/LqhFrag.cpp:
        Bug #19852  	Restoring backup made from cluster with full data memory fails
        - added min and max rows to frag req
      ndb/src/kernel/blocks/backup/Backup.cpp:
        Bug #19852  	Restoring backup made from cluster with full data memory fails
        - new section in backup with per fragment info in ctl file
        - 32 -> 64 bit on bytes and records
      ndb/src/kernel/blocks/backup/Backup.hpp:
        Bug #19852  	Restoring backup made from cluster with full data memory fails
        - new section in backup with per fragment info in ctl file
        - 32 -> 64 bit on bytes and records
      ndb/src/kernel/blocks/backup/BackupFormat.hpp:
        Bug #19852  	Restoring backup made from cluster with full data memory fails
        - new section in backup with per fragment info in ctl file
        - 32 -> 64 bit on bytes and records
      ndb/src/kernel/blocks/backup/BackupInit.cpp:
        Bug #19852  	Restoring backup made from cluster with full data memory fails
        - new signal fragment complete to all participants
      ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
        Bug #19852  	Restoring backup made from cluster with full data memory fails
        - added max and min rows to dict table object
      ndb/src/kernel/blocks/dbdict/Dbdict.hpp:
        Bug #19852  	Restoring backup made from cluster with full data memory fails
        - added max and min rows to dict table object
      ndb/src/kernel/blocks/dblqh/Dblqh.hpp:
        Bug #19852  	Restoring backup made from cluster with full data memory fails
        - added min and max rows to frag req
      ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
        Bug #19852  	Restoring backup made from cluster with full data memory fails
        - added min and max rows to frag req
      ndb/src/kernel/blocks/dbtup/Dbtup.hpp:
        Bug #19852  	Restoring backup made from cluster with full data memory fails
        - added min and max rows to frag req
      ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp:
        Bug #19852  	Restoring backup made from cluster with full data memory fails
        - added min and max rows to frag req
        - move memory allocation to fragment to after adding of attributes to get correct headsize
        - allocate pages to fragments according to min rows setting
      ndb/src/kernel/blocks/dbtup/DbtupPageMap.cpp:
        Bug #19852  	Restoring backup made from cluster with full data memory fails
        - grow page allocation starting from 2 irrespective of first page allocation
      ndb/src/mgmsrv/MgmtSrvr.cpp:
        Bug #19852  	Restoring backup made from cluster with full data memory fails
        - 32 -> 64 bits on bytes and records
      ndb/src/mgmsrv/MgmtSrvr.hpp:
        Bug #19852  	Restoring backup made from cluster with full data memory fails
        - 32 -> 64 bits on bytes and records
      ndb/src/ndbapi/NdbDictionary.cpp:
        Bug #19852  	Restoring backup made from cluster with full data memory fails
        - min and max rows in dict
      ndb/src/ndbapi/NdbDictionaryImpl.cpp:
        Bug #19852  	Restoring backup made from cluster with full data memory fails
        - min and max rows in dict
      ndb/src/ndbapi/NdbDictionaryImpl.hpp:
        Bug #19852  	Restoring backup made from cluster with full data memory fails
        - min and max rows in dict
      ndb/tools/restore/Restore.cpp:
        Bug #19852  	Restoring backup made from cluster with full data memory fails
        - add retrieval of fragment info
      ndb/tools/restore/Restore.hpp:
        Bug #19852  	Restoring backup made from cluster with full data memory fails
        - add retrieval of fragment info
      ndb/tools/restore/consumer_restore.cpp:
        Bug #19852  	Restoring backup made from cluster with full data memory fails
        - set min in restore to the actual row count (this is the actual bug fix)
      sql/ha_ndbcluster.cc:
        Bug #19852  	Restoring backup made from cluster with full data memory fails
        - set min and max rows according to sql definition
      0335013f
  4. 26 Jun, 2006 17 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 25652349
      unknown authored
      into  mysql.com:/opt/local/work/mysql-5.0-17199
      
      
      sql/sql_insert.cc:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      sql/sql_table.cc:
        Auto merged
      25652349
    • unknown's avatar
      Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-5.0 · 800f6ff7
      unknown authored
      into mysql.com:/Users/kent/mysql/bk/mysql-5.0-new
      
      
      800f6ff7
    • unknown's avatar
      Merge mysql.com:/Users/kent/mysql/bk/mysql-4.1-new · bee94ca8
      unknown authored
      into mysql.com:/Users/kent/mysql/bk/mysql-5.0-new
      
      
      scripts/make_binary_distribution.sh:
        Auto merged
      bee94ca8
    • unknown's avatar
      Merge mysql.com:/Users/kent/mysql/bk/mysql-4.0 · 4a4ec679
      unknown authored
      into mysql.com:/Users/kent/mysql/bk/mysql-4.1-new
      
      
      scripts/make_binary_distribution.sh:
        Auto merged
      scripts/make_sharedlib_distribution.sh:
        Auto merged
      4a4ec679
    • unknown's avatar
      make_sharedlib_distribution.sh: · c90f464d
      unknown authored
        For compatibility, don't use {..,..} in pattern matching
      make_binary_distribution.sh:
        Added .dylib and .sl as shared library extensions
      
      
      scripts/make_binary_distribution.sh:
        Added .dylib and .sl as shared library extensions
      scripts/make_sharedlib_distribution.sh:
        For compatibility, don't use {..,..} in pattern matching
      c90f464d
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime · cf119987
      unknown authored
      into  mysql.com:/opt/local/work/mysql-5.0-17199
      
      
      mysql-test/r/create.result:
        Auto merged
      mysql-test/t/create.test:
        Auto merged
      sql/item_strfunc.cc:
        Auto merged
      sql/log_event.cc:
        Auto merged
      sql/slave.cc:
        Auto merged
      sql/sp_head.cc:
        Auto merged
      sql/sql_class.h:
        Auto merged
      sql/sql_db.cc:
        Auto merged
      sql/sql_insert.cc:
        Auto merged
      sql/sql_lex.h:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      sql/sql_table.cc:
        Auto merged
      sql/sql_yacc.yy:
        Auto merged
      mysql-test/r/sp.result:
        SCCS merged
      mysql-test/t/sp.test:
        SCCS merged
      cf119987
    • unknown's avatar
      A fix and a test case for · d6bcbfbe
      unknown authored
       Bug#19022 "Memory bug when switching db during trigger execution"
       Bug#17199 "Problem when view calls function from another database."
       Bug#18444 "Fully qualified stored function names don't work correctly in
                  SELECT statements"
      
       Documentation note: this patch introduces a change in behaviour of prepared
       statements.
      
       This patch adds a few new invariants with regard to how THD::db should
       be used. These invariants should be preserved in future:
      
        - one should never refer to THD::db by pointer and always make a deep copy
          (strmake, strdup)
        - one should never compare two databases by pointer, but use strncmp or
          my_strncasecmp
        - TABLE_LIST object table->db should be always initialized in the parser or
          by creator of the object.
      
          For prepared statements it means that if the current database is changed
          after a statement is prepared, the database that was current at prepare
          remains active. This also means that you can not prepare a statement that
          implicitly refers to the current database if the latter is not set.
          This is not documented, and therefore needs documentation. This is NOT a
          change in behavior for almost all SQL statements except:
           - ALTER TABLE t1 RENAME t2 
           - OPTIMIZE TABLE t1
           - ANALYZE TABLE t1
           - TRUNCATE TABLE t1 --
           until this patch t1 or t2 could be evaluated at the first execution of
           prepared statement. 
      
           CURRENT_DATABASE() still works OK and is evaluated at every execution
           of prepared statement.
      
           Note, that in stored routines this is not an issue as the default
           database is the database of the stored procedure and "use" statement
           is prohibited in stored routines.
      
        This patch makes obsolete the use of check_db_used (it was never used in the
        old code too) and all other places that check for table->db and assign it
        from THD::db if it's NULL, except the parser.
      
       How this patch was created: THD::{db,db_length} were replaced with a
       LEX_STRING, THD::db. All the places that refer to THD::{db,db_length} were
       manually checked and:
        - if the place uses thd->db by pointer, it was fixed to make a deep copy
        - if a place compared two db pointers, it was fixed to compare them by value
          (via strcmp/my_strcasecmp, whatever was approproate)
       Then this intermediate patch was used to write a smaller patch that does the
       same thing but without a rename.
      
       TODO in 5.1:
         - remove check_db_used
         - deploy THD::set_db in mysql_change_db
      
       See also comments to individual files.
      
      
      mysql-test/r/create.result:
        Modify the result file: a database can never be NULL.
      mysql-test/r/ps.result:
        Update test results (Bug#17199 et al)
      mysql-test/r/sp.result:
        Update test results (Bug#17199 et al)
      mysql-test/t/create.test:
        Update the id of the returned error.
      mysql-test/t/ps.test:
        Add test coverage for prepared statements and current database. In scope of
        work on Bug#17199 "Problem when view calls function from another database."
      mysql-test/t/sp.test:
        Add a test case for Bug#17199 "Problem when view calls function from another
        database." and Bug#18444 "Fully qualified stored function names don't work
        correctly in SELECT statements". Test a complementary problem.
      sql/item_strfunc.cc:
        Touch the code that reads thd->db (cleanup).
      sql/log_event.cc:
        While we are at it, replace direct access to thd->db with a method.
        Should simplify future conversion of THD::db to LEX_STRING.
      sql/slave.cc:
        While we are at it, replace direct access to thd->db with a method.
        Should simplify future conversion of THD::db to LEX_STRING.
      sql/slave.h:
        Remove a declaration for a method that is used only in one module.
      sql/sp.cc:
        Rewrite sp_use_new_db: this is a cleanup that I needed in order to understand
        this function and ensure that it has no bugs.
      sql/sp.h:
        Add a new declaration for sp_use_new_db (uses LEX_STRINGs) and a comment.
      sql/sp_head.cc:
        - drop sp_name_current_db_new - a creator of sp_name class that was used
        when sp_name was created for an identifier without an explicitly initialized
        database. Now we pass thd->db to constructor of sp_name right in the 
        parser.
        - rewrite sp_head::init_strings: name->m_db is always set now
        - use the new variant of sp_use_new_db
        - we don't need to update thd->db with SP MEM_ROOT pointer anymore when
        parsing a stored procedure, as noone will refer to it (yes!)
      sql/sp_head.h:
        - remove unneded methods and members
      sql/sql_class.h:
        - introduce 3 THD  methods to work with THD::db:
          .set_db to assign the current database
          .reset_db to reset the current database (temporarily) or set it to NULL
          .opt_copy_db_to - to deep-copy thd->db to a pointer if it's not NULL
      sql/sql_db.cc:
        While we are at it, replace direct access to thd->db with a method.
        Should simplify future conversion of THD::db to LEX_STRING.
      sql/sql_insert.cc:
        - replace checks with asserts: table_list->db must be always set in the parser.
      sql/sql_lex.h:
        - add a comment
      sql/sql_parse.cc:
        - implement the invariant described in the changeset comment.
        - remove juggling with lex->sphead in SQLCOM_CREATE_PROCEDURE:
          now db_load_routine uses its own LEX object and doesn't damage the main
          LEX.
        - add DBUG_ASSERT(0) to unused "check_db_used"
      sql/sql_table.cc:
        - replace a check with an assert (table_ident->db)
      sql/sql_trigger.cc:
        While we are at it, replace direct access to thd->db with a method.
        Should simplify future conversion of THD::db to LEX_STRING.
      sql/sql_udf.cc:
        - use thd->set_db instead of direct modification of to thd->db
      sql/sql_view.cc:
        - replace a check with an assert (view->db)
      sql/sql_yacc.yy:
        - make sure that we always copy table->db or name->db or ident->db or
          select_lex->db from thd->db if the former is not set. If thd->db
          is not set but is accessed, return an error.
      sql/tztime.cc:
        - be nice, never copy thd->db by pointer.
      d6bcbfbe
    • unknown's avatar
      Merge istruewing@bk-internal.mysql.com:/home/bk/mysql-5.0 · 0f93a64e
      unknown authored
      into  mysql.com:/nfstmp1/ingo/autopush-75/mysql-5.0
      
      
      0f93a64e
    • unknown's avatar
      Merge mysql.com:/home/alik/MySQL/devel/5.0-tree · c3cb4690
      unknown authored
      into  mysql.com:/home/alik/MySQL/devel/5.0-rt
      
      
      c3cb4690
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0-maint · 3ddea20d
      unknown authored
      into  mysql.com:/home/tnurnberg/review/mysql-5.0-maint-20588
      
      
      mysql-test/t/mysqldump.test:
        Auto merged
      3ddea20d
    • unknown's avatar
      Merge istruewing@bk-internal.mysql.com:/home/bk/mysql-5.0 · 8fe3c29f
      unknown authored
      into  mysql.com:/home/mydev/mysql-5.0-bug16986-main
      
      
      sql/sql_table.cc:
        Auto merged
      8fe3c29f
    • unknown's avatar
      Merge mysql.com:/home/hf/work/mysql-5.0.16832 · 360ae7fe
      unknown authored
      into mysql.com:/home/hf/work/mysql-5.0.clean
      
      
      360ae7fe
    • unknown's avatar
      merging · 87257abe
      unknown authored
      
      libmysqld/libmysqld.c:
        Auto merged
      sql/item_geofunc.h:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      87257abe
    • unknown's avatar
      Merge mysql.com:/home/mydev/mysql-5.0--main · 70c7e30d
      unknown authored
      into  mysql.com:/home/mydev/mysql-5.0-bug16986-main
      
      
      sql/mysql_priv.h:
        Auto merged
      sql/sql_base.cc:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      70c7e30d
    • unknown's avatar
      Merge mysql.com:/home/hf/work/mysql-4.1.20318 · 31ffea2a
      unknown authored
      into mysql.com:/home/hf/work/mysql-4.1.clean
      
      
      sql/sql_parse.cc:
        Auto merged
      31ffea2a
    • unknown's avatar
      Bug#16986 - Deadlock condition with MyISAM tables · 1c2a13b8
      unknown 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.
      
      
      mysql-test/r/lock_multi.result:
        Bug#16986 - Deadlock condition with MyISAM tables
        Addendum fixes after changing the condition variable
        for the global read lock.
        Added test results.
      mysql-test/t/lock_multi.test:
        Bug#16986 - Deadlock condition with MyISAM tables
        Addendum fixes after changing the condition variable
        for the global read lock.
        Added tests for possible deadlocks that did not occur
        with the stress test suite.
      mysys/thr_lock.c:
        Bug#16986 - Deadlock condition with MyISAM tables
        Addendum fixes after changing the condition variable
        for the global read lock.
        Added a protection against an infinite loop that occurs
        with the test case for Bug #20662.
      sql/lock.cc:
        Bug#16986 - Deadlock condition with MyISAM tables
        Addendum fixes after changing the condition variable
        for the global read lock.
        Signal COND_global_read_lock whenever COND_refresh
        is signalled by using the new function broadcast_refresh().
        Added the definition of a new function that signals 
        COND_global_read_lock whenever COND_refresh is signalled.
      sql/mysql_priv.h:
        Bug#16986 - Deadlock condition with MyISAM tables
        Addendum fixes after changing the condition variable
        for the global read lock.
        Added a declaration for a new function that signals 
        COND_global_read_lock whenever COND_refresh is signalled.
      sql/sql_base.cc:
        Bug#16986 - Deadlock condition with MyISAM tables
        Addendum fixes after changing the condition variable
        for the global read lock.
        Signal COND_global_read_lock whenever COND_refresh
        is signalled by using the new function broadcast_refresh().
      sql/sql_handler.cc:
        Bug#16986 - Deadlock condition with MyISAM tables
        Addendum fixes after changing the condition variable
        for the global read lock.
        Signal COND_global_read_lock whenever COND_refresh
        is signalled by using the new function broadcast_refresh().
      sql/sql_insert.cc:
        Bug#16986 - Deadlock condition with MyISAM tables
        Addendum fixes after changing the condition variable
        for the global read lock.
        Removed global read lock handling from inside of 
        INSERT DELAYED. It is handled on a higher level now.
      sql/sql_parse.cc:
        Bug#16986 - Deadlock condition with MyISAM tables
        Addendum fixes after changing the condition variable
        for the global read lock.
        Wait for the release of a global read lock if one is set
        before every operation that requires a write lock.
        But don't wait if locked tables exist already.
      sql/sql_table.cc:
        Bug#16986 - Deadlock condition with MyISAM tables
        Addendum fixes after changing the condition variable
        for the global read lock.
        Removed global read lock handling from inside of 
        CREATE TABLE. It is handled on a higher level now.
        Signal COND_global_read_lock whenever COND_refresh
        is signalled by using the new function broadcast_refresh().
      1c2a13b8
    • unknown's avatar
      Merge mysql.com:/home/hf/work/mysql-4.1.10166 · fbed697d
      unknown authored
      into mysql.com:/home/hf/work/mysql-4.1.clean
      
      
      fbed697d