Commit graph

147 commits

Author SHA1 Message Date
monty@mysql.com
e59360ac86 Review of new code:
Change argument order to be database, tablename for some functions
2005-07-27 13:05:30 +03:00
monty@mysql.com
4098c40d87 Review fixes:
Fixed portability problem with bool in C programs
Moved close_thread_tables out from LOCK_thread_count mutex (safety fix)
my_sleep() -> pthread_cond_timedwait()
2005-07-26 17:55:58 +03:00
pappa@c-450ae253.1238-1-64736c10.cust.bredbandsbolaget.se
6026054ead Merge mronstrom@bk-internal.mysql.com:/home/bk/mysql-4.1
into  c-450ae253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/mysql-5.0
2005-07-21 01:29:57 -04:00
pappa@c-450ae253.1238-1-64736c10.cust.bredbandsbolaget.se
9663b9a974 Merge mronstrom@bk-internal.mysql.com:/home/bk/mysql-4.0
into  c-450ae253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/mysql-4.1
2005-07-20 21:58:33 -04:00
mronstrom@mysql.com
4cb963439a Bug #10600 After review fixes 2005-07-20 21:19:01 +02:00
konstantin@mysql.com
14344b658a A fix and a test case for Bug#10760 and complementary cleanups.
The idea of the patch
is that every cursor gets its own lock id for table level locking.
Thus cursors are protected from updates performed within the same 
connection. Additionally a list of transient (must be closed at
commit) cursors is maintained and all transient cursors are closed
when necessary. Lastly, this patch adds support for deadlock
timeouts to TLL locking when using cursors.
+ post-review fixes.
2005-07-19 22:21:12 +04:00
mronstrom@mysql.com
2d23c691f7 Bug #10600
remove_table_from_cache fails to signal other thread and gets
blocked when other thread also gets blocked
2005-07-19 00:29:19 +02:00
dlenev@mysql.com
f334ea1fc6 Implementation of Monty's idea: Now we can open mysql.proc table for lookup
of stored routines definitions even if we already have some tables open and
locked. To avoid deadlocks in this case we have to put certain restrictions
on locking of mysql.proc table.

This allows to use stored routines safely under LOCK TABLES without explicitly
mentioning mysql.proc in the list of locked tables. It also fixes bug #11554
"Server crashes on statement indirectly using non-cached function".
2005-07-13 13:48:13 +04:00
ingo@mysql.com
0a1e38b7ed Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
Manual merge from 4.1.
2005-06-01 11:15:21 +02:00
ingo@mysql.com
c420599581 Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
Hand merged from 4.0.
2005-05-31 19:37:24 +02:00
ingo@mysql.com
51d80960ea Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
1.) Added a new option to mysql_lock_tables() for ignoring FLUSH TABLES.
Used the new option in create_table_from_items().
It is necessary to prevent the SELECT table from being reopend.
It would get new storage assigned for its fields, while the
SELECT part of the command would still use the old (freed) storage.
2.) Protected the CREATE TABLE and CREATE TABLE ... SELECT commands
against a global read lock. This prevents a deadlock in
CREATE TABLE ... SELECT in conjunction with FLUSH TABLES WITH READ LOCK
and avoids the creation of new tables during a global read lock.
3.) Replaced set_protect_against_global_read_lock() and
unset_protect_against_global_read_lock() by
wait_if_global_read_lock() and start_waiting_global_read_lock()
in the INSERT DELAYED handling.
2005-05-31 11:08:14 +02:00
ingo@mysql.com
731c8da030 Bug#7823 - FLUSH TABLES WITH READ LOCK + INSERT DELAYED = deadlock
After merge fix.
2005-04-27 22:58:11 +02:00
ingo@mysql.com
235d2295da Merge from 4.0 needs fixes 2005-04-27 18:59:31 +02:00
ingo@mysql.com
0998abc831 Bug#7823 - FLUSH TABLES WITH READ LOCK + INSERT DELAYED = deadlock
Added protection against global read lock while creating and
initializing a delayed insert handler.
Allowed to ignore a global read lock when locking the table
inside the delayed insert handler.
Added some minor improvements.
2005-04-27 12:40:37 +02:00
serg@serg.mylan
52770e8682 XID SQL syntax
minor cleanups
XA tests
2005-04-04 00:50:05 +02:00
serg@serg.mylan
41997cf263 Merge bk-internal:/home/bk/mysql-5.0
into serg.mylan:/usr/home/serg/Abk/mysql-5.0
2005-03-17 08:46:48 +01:00
monty@mysql.com
594ef41b2d Cleanup during reviews
Removed some optional arguments
Fixed portability problem in federated tests
2005-03-16 16:11:01 +02:00
serg@serg.mylan
d7b2d4c541 global read lock code now uses a dedicated mutex
(otherwise a deadlock when ALTER writes to
binlog holding LOCK_open, it causes binlog rotation,
binlog waits for prepared transactions to commit, and commit
needs LOCK_open to check for global read lock)
2005-03-16 08:40:19 +01:00
guilhem@mysql.com
99f0d74688 Merge mysql.com:/home/mysql_src/mysql-4.1-clean
into mysql.com:/home/mysql_src/mysql-5.0-xa
2005-02-23 18:52:15 +01:00
guilhem@mysql.com
086c2a915a FIx for BUG#8682 "flush_block_commit test hangs on HPUX":
start_waiting_global_read_lock() should wake up all those who are waiting
for protect_against_global_read_lock to go down to 0: those registered in waiting_for_read_lock
AND those registered in global_read_lock_blocks_commit.
2005-02-23 17:38:51 +01:00
tomas@poseidon.ndb.mysql.com
ac53ecce1c added variable NDB_MGM to be able to run the management client in tests
added testcase for Bug#8035
    added option to wait for not-started
    Bug#8035
2005-01-20 13:45:42 +01:00
monty@mysql.com
d35140a851 First stage of table definition cache
Split TABLE to TABLE and TABLE_SHARE (TABLE_SHARE is still allocated as part of table, will be fixed soon)
Created Field::make_field() and made Field_num::make_field() to call this
Added 'TABLE_SHARE->db' that points to database name; Changed all usage of table_cache_key as database name to use this instead
Changed field->table_name to point to pointer to alias. This allows us to change alias for a table by just updating one pointer.
Renamed TABLE_SHARE->real_name to table_name
Renamed TABLE->table_name to alias
Renamed TABLE_LIST->real_name to table_name
2005-01-06 13:00:13 +02:00
serg@serg.mylan
19e3c001f4 revert "LOCK TABLES ... WHERE ENGINE=INNODB" 2004-12-27 12:08:22 +01:00
jan@hundin.mysql.fi
c187798fcb Print a error message if the handler don't support transactional table
locks (LOCK TABLES ... WHERE ENGINE = ).
2004-12-16 09:52:19 +02:00
jan@hundin.mysql.fi
49c0044a2f Content merge. 2004-12-09 11:20:50 +02:00
jan@hundin.mysql.fi
d6effde5d0 Added support for a LOCK TABLES...WHERE ENGINE = InnoDB query which sets
transactional table locks to tables mentioned in the query. These locks
are released at the end of the transaction automatically.
This is fix for bugs #5655, #5998 and issue #3762.
2004-12-09 11:10:45 +02:00
monty@mysql.com
0de4777187 Merge with 4.1 2004-12-06 11:38:56 +02:00
guilhem@mysql.com
f3b577f591 Making FLUSH TABLES WITH READ LOCK killable while it's waiting for running commits to finish. Normally this step is not long but it's still nice to be killable
(especially in case of bug like BUG#6732 "FLUSH TABLES WITH READ LOCK + COMMIT makes next FLUSH...LOCK hang forever").
2004-12-02 23:02:38 +01:00
guilhem@mysql.com
81609d6e1c Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/mysql_src/mysql-4.1-clean
2004-11-30 22:22:12 +01:00
guilhem@mysql.com
7219d2be90 two-line fix for BUG#6732 "FLUSH TABLES WITH READ LOCK + COMMIT makes next FLUSH...LOCK hang forever"
(originally reported as "second run of innobackup hangs forever and can even hang server").
Plus testcase for the bugfix and comments about global read locks.
2004-11-30 22:20:52 +01:00
bell@sanja.is.com.ua
7210195f1e now my_printf_error is not better then my_error, but my_error call is shorter
used only one implementation of format parser of (printf)
fixed multistatement
2004-11-13 19:35:51 +02:00
bell@sanja.is.com.ua
1555469b64 merge 2004-11-12 15:36:31 +02:00
bell@sanja.is.com.ua
31f7811183 post-review fixes 2004-11-12 14:34:00 +02:00
monty@mysql.com
afbe601302 merge with 4.1 2004-10-29 19:26:52 +03:00
monty@mysql.com
e1218474b8 Merge with 4.0 2004-10-20 16:24:28 +03:00
guilhem@mysql.com
13af58aab6 Fix for BUG#5949 "error code 1223 in binlog when using innobackup":
when one connection had done FLUSH TABLES WITH READ LOCK, some updates, and then COMMIT,
it was accepted but my_error() was called and so, while client got no error, error was logged in binlog.
We now don't call my_error() in this case; we assume the connection know what it does.
This problem was specific to 4.0.21. The change is needed to make replication work with existing versions of innobackup.
2004-10-11 11:01:38 +02:00
monty@mysql.com
31122efde7 Merge with 4.1
(Includes merge of arena code in 4.1 and 5.0)
2004-09-06 15:14:10 +03:00
monty@mysql.com
6adaff23a4 Review of new pushed code (Indentation fixes and simple optimizations)
Use 'mysqltest' as test database instead of test_$1 or test1,test2 to not accidently delete an important database
Safety fix for mailformed MERGE files
2004-08-31 14:35:04 +03:00
monty@mysql.com
c44d4debfa Portablity fixes & simple optimizations 2004-08-24 18:00:45 +03:00
serg@serg.mylan
050bf6a89f merged 2004-08-20 21:56:29 +02:00
guilhem@mysql.com
5db56a106b Making FLUSH TABLES WITH READ LOCK block COMMITs of existing transactions,
in a deadlock-free manner. This splits locking the global read lock in two steps.
This fixes a consequence of this bug, known as:
BUG#4953 'mysqldump --master-data may report incorrect binlog position if using InnoDB'
And a test.
2004-08-20 16:35:23 +02:00
serg@serg.mylan
e1237cbc53 manually merged 2004-08-18 19:57:55 +02:00
guilhem@mysql.com
dd023bc878 Fix for:
Bug #4810 "deadlock with KILL when the victim was in a wait state"
(I included mutex unlock into exit_cond() for future safety)
and BUG#4827 "KILL while START SLAVE may lead to replication slave crash"
2004-07-31 22:33:20 +02:00
bell@sanja.is.com.ua
9336d36cf8 VIEW
two TABLE_LIST copy eliminated
2004-07-16 01:15:55 +03:00
pem@mysql.com
71eddc362e Merging 4.1 to 5.0. 2004-05-26 17:04:45 +02:00
konstantin@mysql.com
f207b33a7b Support for character set conversion in binary protocol: another go
after Monty's review.
- Item_param was rewritten.
- it turns out that we can't convert string data to character set of
  connection on the fly, because they first should be written to the binary
  log.
  To support efficient conversion we need to rewrite prepared statements
  binlogging code first.
2004-05-25 02:03:49 +04:00
pem@mysql.com
dfd59e296e Merge 4.1 -> 5.0. 2004-04-07 19:07:44 +02:00
monty@mysql.com
34df0b3d1c Force clients to recompile if client lib changes (Bug #3009) 2004-03-30 22:13:25 +03:00
monty@mysql.com
350b433569 merge with 4.0 2004-03-16 22:41:30 +02:00
monty@mysql.com
cf66e187e2 Optimizations 2004-03-15 12:53:27 +02:00
monty@mysql.com
4ee44751d9 Fixed memory leak in DROP DATABASE when using RAID tables (Bug #2882) 2004-03-10 13:46:11 +02:00
pem@mysql.com
337238b78a Merging 4.1->5.0 2003-10-22 16:10:22 +02:00
pem@mysql.com
8d884c02bb Merging 4.1 -> 5.0 2003-09-24 11:29:38 +02:00
monty@mishka.mysql.fi
c22c1d8a4d merge 2003-09-24 10:24:56 +03:00
hf@deer.(none)
a2dbfaefa3 SCRUM
embedded library
hash_insert renamed to my_hash_insert to avoid name intersection
with another libraries
is there better idea?
2003-09-19 14:44:31 +05:00
monty@mashka.mysql.fi
f300e3a164 Remove 'extern' references from .cc files 2003-09-13 11:35:29 +03:00
hf@deer.mysql.r18.ru
0428d08606 SCRUM
two KILL versions
code trimming with headquarter's suggestions
2003-04-08 19:18:33 +05:00
hf@genie.(none)
0ee0589e93 Merge abotchkov@bk-internal.mysql.com:/home/bk/mysql-5.0
into genie.(none):/home/hf/work/mysql-5.0.kil
2003-03-31 13:42:37 +05:00
hf@genie.(none)
f8f0b70380 SCRUM
two KILL commands implementation (version 2)
2003-03-31 13:39:46 +05:00
monty@narttu.mysql.fi
a434bca704 Merge with 4.0 2003-03-16 19:17:54 +02:00
monty@mashka.mysql.fi
d56e2acf50 Merge to get fix for LOCK TABLES + DROP TABLE in another thread 2003-03-07 01:20:56 +02:00
monty@narttu.mysql.fi
2a7dfa172c Fixed bug in LOCK TABLE + DROP TABLE when other thread was waiting for a table that was locked bug not droped 2003-03-04 12:22:35 +02:00
monty@narttu.mysql.fi
8c51eb2c12 Fixed a deadlock problem when using LOCK TABLE in one thread and DROP TABLE in another 2003-03-03 20:42:49 +02:00
monty@mashka.mysql.fi
25c393a12e Portability fixes (for windows)
Some changes to the prepared statement protocol to make it easier to use and faster.
2003-01-21 21:07:59 +02:00
monty@mashka.mysql.fi
dac6498f9b Merge with 4.0 2002-11-21 15:56:48 +02:00
monty@mashka.mysql.fi
a65beee00d Added 'table lock' state while MySQL is waiting to get locks for tables. 2002-11-21 02:13:37 +02:00
monty@mashka.mysql.fi
1a96948e81 Small improvement to alloc_root
Add support for LIMIT # OFFSET #
Changed lock handling:  Now all locks should be stored in TABLE_LIST instead of passed to functions.
Don't call query_cache_invalidate() twice in some cases
mysql_change_user() now clears states to be equal to close + connect.
Fixed a bug with multi-table-update and multi-table-delete when used with LOCK TABLES
Fixed a bug with replicate-do and UPDATE
2002-11-16 20:19:10 +02:00
monty@hundin.mysql.fi
5333cfb429 Removed wrong patch to fix DATE BETWEEN TIMESTAMP1 AND TIMESTAMP2
Some simple optimizations
2002-11-05 22:45:42 +02:00
Sinisa@sinisa.nasamreza.org
5fbd7b63c5 changes for mysqladmin debug
and a bug fix for derived tables
2002-10-30 16:52:12 +02:00
monty@mashka.mysql.fi
755d4952af Change name -> alias in TABLE_LIST.
Added missing mutex-lock around critical section in GRANT handling.
2002-09-21 21:36:23 +03:00
monty@mashka.mysql.fi
cb8580a2cd Changed table_list->name -> table_list->alias to find places where we where using alias instead of table_name.
This should fix some issues where --lower-case-table-names doesn't work properly under windows.
2002-09-20 14:05:18 +03:00
monty@mashka.mysql.fi
ce4b584a85 Increased max possible max_allowed_packet to 1G
Small optimization to not do external locking of temporary MyISAM tables.
2002-09-19 17:49:41 +03:00
monty@mashka.mysql.fi
2c4fa340cc Lots of code fixes to the replication code (especially the binary logging and index log file handling)
Fixed bugs in my last changeset that made MySQL hard to compile.
Added mutex around some data that could cause table cache corruptions when using OPTIMIZE TABLE / REPAIR TABLE or automatic repair of MyISAM tables.
Added mutex around some data in the slave start/stop code that could cause THD linked list corruptions
Extended my_chsize() to allow one to specify a filler character.
Extend vio_blocking to return the old state (This made some usage of this function much simpler)
Added testing for some functions that they caller have got the required mutexes before calling the function.
Use setrlimit() to ensure that we can write core file if one specifies --core-file.
Added --slave-compressed-protocol
Made 2 the minimum length for ft_min_word_len
Added variables foreign_key_checks & unique_checks.
Less logging from replication code (if not started with --log-warnings)
Changed that SHOW INNODB STATUS requre the SUPER privilege
More DBUG statements and a lot of new code comments
2002-08-08 03:12:02 +03:00
monty@mashka.mysql.fi
2aecdd1a91 Big code cleanup/review before 4.0.2 release.
(All commit emails since 4.0.1 checked)
This had to be done now, before the 4.1 tree changes to much, to make it easy to propagate bug fixes to the 4.1 tree.
2002-06-11 11:20:31 +03:00
monty@hundin.mysql.fi
727e507bca merge with 3.23.50 2002-03-27 01:56:10 +02:00
monty@tik.mysql.fi
ee162d86a6 Quote names to SHOW CREATE for mysqldump
Fix thread-related bug when doing DROP TABLE
Fix bug in RENAME TABLE on windows
2002-03-21 23:06:48 +02:00
monty@hundin.mysql.fi
be46289855 New error messages
Test of unsigned BIGINT values
Fixes for queries-per-hour
Cleanup of replication code (comments and portability fixes)
Make most of the binary log code 4G clean
Changed syntax for GRANT ... QUERIES PER HOUR
2002-01-29 18:32:16 +02:00
monty@hundin.mysql.fi
b658662ae4 Update copyright
Fixed memory leak on shutdown (Affects the embedded version & MyODBC)
2001-12-06 14:10:51 +02:00
monty@hundin.mysql.fi
e9677eda60 Add missing exit_cond() to lock_global_read_lock(). 2001-11-26 02:09:45 +02:00
monty@work.mysql.com
18474d8419 Merge with 3.23.42 2001-09-13 09:52:35 +02:00
monty@hundin.mysql.fi
442c03f071 Fix bugs when using LOCK TABLES with BDB tables
Optimized remove of key when using internal cursor in BDB tables.
2001-09-08 20:45:53 +03:00
monty@hundin.mysql.fi
e24bdfa8bb More debug info
Fix DBUG_ASSERT()
Optimization for BDB tables
Fix for BDB under Win98
2001-09-08 11:47:34 +03:00
monty@hundin.mysql.fi
279de0c67c Update of manual with 4.0 changes
Create innodb table space if configuring with InnoDB and not using --skip-innodb
Fixes for TRUNCATE TABLE and DROP DATABASE.
2001-09-03 05:16:15 +03:00
monty@hundin.mysql.fi
04ec0de7d0 Changed DB_TYPE_INNOBASE to DB_TYPE_INNODB
Fix that DROP DATABASE works with all table types
Use BULK_INSERT when inserting more than one row
Better TRUNCATE TABLE
2001-09-02 13:47:00 +03:00
monty@hundin.mysql.fi
7f4aee1c90 Make killing of threads safer 2001-09-01 10:38:16 +03:00
monty@hundin.mysql.fi
59e7c97dab Remove warnings and portability fixes
New global read lock code
Fixed bug in DATETIME with WHERE optimization
Made UNION code more general.
2001-08-14 20:33:49 +03:00
mikef@nslinux.bedford.progress.com
ceac5f9227 Pushing all the Gemini changes above the table handler. 2001-05-29 09:29:08 -04:00
monty@donna.mysql.fi
965cd30f87 Applied patches for BDB tables
Fixes to InnoDB to compile on Windows
Fix for temporary InnoDB tables
Fixed bug in REPLACE()
Fixed sub char keys for InnoDB
2001-05-09 23:02:36 +03:00
monty@donna.mysql.com
d218ebcc51 Added locks needed for Innobase
Fixed mutex problem when doing automatic repair of MyISAM tables
2001-02-18 00:03:37 +02:00
monty@tik.mysql.com
7a013339f8 Bug fixes, TRUNCATE, safer passwords on command line and connect timeout 2000-11-13 23:55:10 +02:00
monty@tik.mysql.com
09dce662e2 Automatic repair of MyISAM tables + portability fixes 2000-10-11 00:06:37 +03:00
monty@donna.mysql.com
751f2d1f16 Faster log::write() call, memory leak fix, flush master fix. 2000-09-16 04:27:21 +03:00
monty@donna.mysql.com
066d55c0c0 Bug fixes for 3.23.23 2000-08-29 12:31:01 +03:00
monty@donna.mysql.com
d564acf14e Fixes for Ia64 2000-08-23 15:02:27 +03:00
monty@donna.mysql.com
f0952ce3e1 FLUSH TABLE table_list
Fixes for RENAME TABLE
Portability fixes
2000-08-22 00:18:32 +03:00
monty@donna.mysql.com
aa3580924b RENAME TABLE table_name TO new_table_name ; Faster Alloc
Small bug fixes
2000-08-21 03:00:52 +03:00
bk@work.mysql.com
f4c589ff6c Import changeset 2000-07-31 21:29:14 +02:00