Commit graph

17 commits

Author SHA1 Message Date
dlenev@mockturtle.local
c0f6023aa4 Merge mockturtle.local:/home/dlenev/src/mysql-5.0-bg20390-2
into  mockturtle.local:/home/dlenev/src/mysql-5.1-bg20390
2007-01-15 12:40:07 +03:00
dlenev@mockturtle.local
ab98cbc88a Fix for bug#20390 "SELECT FOR UPDATE does not release locks
of untouched rows in full table scans".

SELECT ... FOR UPDATE/LOCK IN SHARE MODE statements as well as
UPDATE/DELETE statements which were executed using full table
scan were not releasing locks on rows which didn't satisfy
WHERE condition.
This bug surfaced in 5.0 and affected NDB tables. (InnoDB tables
intentionally don't support such unlocking in default mode).

This problem occured because code implementing join didn't call
handler::unlock_row() for rows which didn't satisfy part of condition
attached to this particular table/level of nested loop. So we solve
the problem adding this call.
Note that we already had this call in place in 4.1 but it was lost
(actually not quite correctly placed) when we have introduced nested 
joins.

Also note that additional QA should be requested once this patch is
pushed as interaction between handler::unlock_row() and many recent
MySQL features such as subqueries, unions, views is not tested enough.
2007-01-15 12:32:38 +03:00
mskold/marty@mysql.com/linux.site
66e8255491 Merge mysql.com:/windows/Linux_space/MySQL/mysql-4.1
into  mysql.com:/windows/Linux_space/MySQL/mysql-5.0
2006-08-15 13:37:39 +02:00
mskold/marty@mysql.com/linux.site
6a3143e2a0 ndb_lock.test, ndb_lock.result:
bug #18184  SELECT ... FOR UPDATE does not work..: New test case
ha_ndbcluster.h, ha_ndbcluster.cc, NdbConnection.hpp:
  Fix for bug #21059  Server crashes on join query with large dataset with NDB tables: Releasing operation for each intermediate batch, before next call to trans->execute(NoCommit);
2006-08-15 13:12:27 +02:00
mskold/marty@mysql.com/linux.site
794c874853 bug #18184 SELECT ... FOR UPDATE does not work..: Updated result file 2006-08-09 16:12:24 +02:00
mskold@mysql.com
69d52db924 Added order by 2006-06-12 15:36:12 +02:00
mskold@mysql.com
47bb569979 Added order by 2006-06-12 15:35:47 +02:00
mskold@mysql.com
ae70201afb Added order by 2006-06-12 15:28:36 +02:00
mskold@mysql.com
38a445fee1 sql_delete.cc:
Bug #18864  TRUNCATE TABLE doesn't reset AUTO_INCREMENT value on ndb table: locked lock_OPEN mutex to support TRUNCATE with re-create and cluster binlog
Many files:
  Bug #18864  TRUNCATE TABLE doesn't reset AUTO_INCREMENT value on ndb table: adaption to MySQ Cluster replication
ndb_lock.result, ha_ndbcluster.cc:
  Fix for Bug #18184  SELECT ... FOR UPDATE does not work..: Adaption to 5.1 code
NdbDictionaryImpl.hpp:
  Fix of bad merge
2006-06-12 14:23:21 +02:00
mskold@mysql.com
d17c3d3c7c Fix for Bug #18184 SELECT ... FOR UPDATE does not work..: Skipped lock check for full table scan due to bug #20390 SELECT FOR UPDATE does not release locks of untouched rows in full table scans 2006-06-12 10:40:56 +02:00
mskold@mysql.com
b89f17912c Added lock test on index scan 2006-06-12 09:28:27 +02:00
mskold@mysql.com
597e1444aa Fix for Bug #18184 SELECT ... FOR UPDATE does not work..: implemented ha_ndblcuster::unlock_row() and explicitly lock all rows that are not being unlocked 2006-06-08 16:12:38 +02:00
tomas@poseidon.ndb.mysql.com
0eb12cafe1 cleanup of ndb invalidate dictionary cache
fixed test case from previous commit
2006-03-08 15:29:57 +01:00
tomas@poseidon.ndb.mysql.com
ed1f9a3402 Bug #17812 Previous lock table for write causes "stray" lock although table is recreated
- only set table share version to 0 (zero) on global invalidation
2006-03-08 14:45:09 +01:00
joreland@mysql.com
29c270c13e Bug#6020, any lock >= write_allow_write is a write lock 2004-10-13 10:08:18 +02:00
mskold@mysql.com
24f9a2e9bb Added ORDER BY to ensure same result on all setups/platforms 2004-07-29 13:32:50 +02:00
mskold@mysql.com
42df1f0686 ndb_lock.test, ndb_lock.result:
new file
2004-07-21 12:06:46 +02:00