Commit graph

1051 commits

Author SHA1 Message Date
jonas@perch.ndb.mysql.com
93a83f3884 Merge joreland@bk-internal.mysql.com:/home/bk/mysql-5.1
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new
2006-08-22 20:55:28 +02:00
pekka@orca.ndb.mysql.com
9dc6087d4d ndb - post-merge fix 5.0 to 5.0-ndb: number of frags if --without-big-tables 2006-08-22 14:26:56 +02:00
jonas@perch.ndb.mysql.com
a1420b1df8 merge 2006-08-17 20:51:44 +02:00
jonas@perch.ndb.mysql.com
560fc3e3b3 Merge perch.ndb.mysql.com:/home/jonas/src/51-clean
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb
2006-08-17 19:49:00 +02:00
mskold/marty@linux.site
604f3f8a69 Merge mysql.com:/windows/Linux_space/MySQL/mysql-5.0
into  mysql.com:/windows/Linux_space/MySQL/mysql-5.1
2006-08-15 14:39:48 +02:00
mskold/marty@mysql.com/linux.site
c8b93da355 Fix for bug #21059 Server crashes on join query with large dataset with NDB tables: do not release operation records for on-going read_multi_range 2006-08-15 14:31:21 +02:00
jonas@perch.ndb.mysql.com
3cd1826ef0 ndb - bug#20708
init ndb_cache_check_time and honor value in my.cnf
2006-08-15 14:22:47 +02: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
gni/root@dev3-127.(none)
3b413775c5 Merge gni@bk-internal.mysql.com:/home/bk/mysql-5.1-ndb
into  dev3-127.(none):/mnt/mysql/home/ngb/mysql-5.1-ndb-bj
2006-08-15 18:04:55 +08:00
jonas@perch.ndb.mysql.com
b1d87126bf Merge perch.ndb.mysql.com:/home/jonas/src/51-work
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new
2006-08-15 09:39:26 +02:00
stewart@willster.(none)
0d7beacf31 Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  willster.(none):/home/stewart/Documents/MySQL/5.1/ndb
2006-08-15 11:28:27 +08:00
justin.he@qa3-104.qa.cn.tlan
9d6de5c894 BUG#20848 2006-08-11 18:01:46 +08:00
justin.he@qa3-104.qa.cn.tlan
5e5084dde4 Merge qa3-104.qa.cn.tlan:/mnt/sda7/justin.he/mysql/mysql-5.0-ndb-bj
into  qa3-104.qa.cn.tlan:/mnt/sda7/justin.he/mysql/mysql-5.1-ndb-bj
2006-08-11 15:18:40 +08:00
justin.he@qa3-104.qa.cn.tlan
265b9cf6cd BUG#20848 SHOW STATUS LIKE 'NDB%' should be data nodes not storage nodes
use correct termninology
2006-08-11 15:10:08 +08:00
stewart@willster.(none)
9d2e6b8d23 BUG#19914 SELECT COUNT(*) sometimes returns MAX_INT on cluster tables
allow handler::info to return an error code (that will be returned to the user)
2006-08-10 22:55:20 +08:00
jonas@perch.ndb.mysql.com
29eaad6288 Merge perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb
2006-08-10 13:47:20 +02:00
mskold/marty@linux.site
c3da14f4c5 Merge mysql.com:/home/marty/MySQL/mysql-5.0
into  mysql.com:/home/marty/MySQL/mysql-5.1-ndb
2006-08-09 15:02:30 +02:00
mskold/marty@mysql.com/linux.site
9241fba4ae Merge mysql.com:/home/marty/MySQL/mysql-4.1
into  mysql.com:/home/marty/MySQL/mysql-5.0
2006-08-08 14:42:05 +02:00
mskold/marty@mysql.com/linux.site
a922e328af bug #18184 SELECT ... FOR UPDATE does not work..: Added lockTuple call in close_scan 2006-08-08 12:22:23 +02:00
mskold/marty@mysql.com/linux.site
d7f8c331e1 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-07 14:48:54 +02:00
mskold/marty@mysql.com/linux.site
3c61424563 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-07 13:51:20 +02:00
ingo/istruewing@chilla.local
c20030ef26 Merge istruewing@bk-internal.mysql.com:/home/bk/mysql-5.1-engines
into  chilla.local:/home/mydev/mysql-5.1-bug18775
2006-08-02 18:10:51 +02:00
ingo/istruewing@chilla.local
8e4c36ad4a Bug#18775 - Temporary table from alter table visible to other threads
Continued implementation of WL#1324 (table name to filename encoding)

The intermediate (not temporary) files of the new table
during ALTER TABLE was visible for SHOW TABLES. These
intermediate files are copies of the original table with
the changes done by ALTER TABLE. After all the data is
copied over from the original table, these files are renamed 
to the original tables file names. So they are not temporary 
files. They persist after ALTER TABLE, but just with another 
name.

In 5.0 the intermediate files are invisible for SHOW TABLES
because all file names beginning with "#sql" were suppressed.

This failed since 5.1.6 because even temporary table names were
converted when making file names from them. The prefix became
converted to "@0023sql". Converting the prefix during SHOW TABLES
would suppress the listing of user tables that start with "#sql".

The solution of the problem is to continue the implementation of
the table name to file name conversion feature. One requirement
is to suppress the conversion for temporary table names.

This change is straightforward for real temporary tables as there
is a function that creates temporary file names.

But the generated path names are located in TMPDIR and have no
relation to the internal table name. This cannot be used for
ALTER TABLE. Its intermediate files need to be in the same
directory as the old table files. And it is necessary to be
able to deduce the same path from the same table name repeatedly.

Consequently the intermediate table files must be handled like normal
tables. Their internal names shall start with tmp_file_prefix
(#sql) and they shall not be converted like normal table names.

I added a flags parameter to all relevant functions that are
called from ALTER TABLE. It is used to suppress the conversion
for the intermediate table files.

The outcome is that the suppression of #sql in SHOW TABLES
works again. It does not suppress user tables as these are
converted to @0023sql on file level.

This patch does also fix ALTER TABLE ... RENAME, which could not 
rename a table with non-ASCII characters in its name.

It does also fix the problem that a user could create a table like
`#sql-xxxx-yyyy`, where xxxx is mysqld's pid and yyyy is the thread
ID of some other thread, which prevented this thread from running 
ALTER TABLE.

Some of the above problems are mentioned in Bug 1405, which can
be closed with this patch.

This patch does also contain some minor fixes for other forgotten
conversions. Still known problems are reported as bugs 21370,
21373, and 21387.
2006-08-02 17:57:06 +02:00
kostja@bodhi.local
436e7a2dd9 Post-merge fixes. 2006-07-14 02:07:37 +04:00
kostja@bodhi.local
d7845b74db Merge bodhi.local:/opt/local/work/tmp_merge
into  bodhi.local:/opt/local/work/mysql-5.1-runtime-merge-5.0
2006-07-13 22:09:36 +04:00
kostja@bodhi.local
56353959e7 Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  bodhi.local:/opt/local/work/mysql-5.1-runtime-merge
2006-07-13 00:18:59 +04:00
mkindahl@dl145k.mysql.com
9415b24139 Merge dl145k.mysql.com:/data0/mkindahl/bkroot/mysql-5.1-new-rpl
into  dl145k.mysql.com:/data0/mkindahl/bk/MERGE/mysql-5.1-merge
2006-07-11 12:17:19 +02:00
guilhem@gbichot3.local
0594e1b84b WL#3146 "less locking in auto_increment":
this is a cleanup patch for our current auto_increment handling:
new names for auto_increment variables in THD, new methods to manipulate them
(see sql_class.h), some move into handler::, causing less backup/restore
work when executing substatements. 
This makes the logic hopefully clearer, less work is is needed in
mysql_insert().
By cleaning up, using different variables for different purposes (instead
of one for 3 things...), we fix those bugs, which someone may want to fix
in 5.0 too:
BUG#20339 "stored procedure using LAST_INSERT_ID() does not replicate
statement-based"
BUG#20341 "stored function inserting into one auto_increment puts bad
data in slave"
BUG#19243 "wrong LAST_INSERT_ID() after ON DUPLICATE KEY UPDATE"
(now if a row is updated, LAST_INSERT_ID() will return its id)
and re-fixes:
BUG#6880 "LAST_INSERT_ID() value changes during multi-row INSERT"
(already fixed differently by Ramil in 4.1)
Test of documented behaviour of mysql_insert_id() (there was no test).
The behaviour changes introduced are:
- LAST_INSERT_ID() now returns "the first autogenerated auto_increment value
successfully inserted", instead of "the first autogenerated auto_increment
value if any row was successfully inserted", see auto_increment.test.
Same for mysql_insert_id(), see mysql_client_test.c.
- LAST_INSERT_ID() returns the id of the updated row if ON DUPLICATE KEY
UPDATE, see auto_increment.test. Same for mysql_insert_id(), see
mysql_client_test.c.
- LAST_INSERT_ID() does not change if no autogenerated value was successfully 
inserted (it used to then be 0), see auto_increment.test.
- if in INSERT SELECT no autogenerated value was successfully inserted,
mysql_insert_id() now returns the id of the last inserted row (it already
did this for INSERT VALUES), see mysql_client_test.c.
- if INSERT SELECT uses LAST_INSERT_ID(X), mysql_insert_id() now returns X
(it already did this for INSERT VALUES), see mysql_client_test.c.
- NDB now behaves like other engines wrt SET INSERT_ID: with INSERT IGNORE,
the id passed in SET INSERT_ID is re-used until a row succeeds; SET INSERT_ID
influences not only the first row now.

Additionally, when unlocking a table we check that the thread is not keeping
a next_insert_id (as the table is unlocked that id is potentially out-of-date);
forgetting about this next_insert_id is done in a new
handler::ha_release_auto_increment().

Finally we prepare for engines capable of reserving finite-length intervals
of auto_increment values: we store such intervals in THD. The next step
(to be done by the replication team in 5.1) is to read those intervals from
THD and actually store them in the statement-based binary log. NDB
will be a good engine to test that.
2006-07-09 17:52:19 +02:00
tomas@poseidon.ndb.mysql.com
4f7df01b4f Bug #20843 tests fails randomly with assertion in completeClusterFailed
Bug #20902 Alter table invalid schema version with statement-based binlogging
(latter caused by the above)
2006-07-08 03:26:13 +02:00
kostja@bodhi.local
7bf73ac3e5 Merge bodhi.local:/opt/local/work/mysql-5.0-root
into  bodhi.local:/opt/local/work/mysql-5.0-runtime
2006-07-07 22:09:43 +04:00
dlenev@jabberwock.site
77f640b1a3 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  jabberwock.site:/home/dlenev/mysql-5.1-bg18437
2006-07-07 14:11:35 +04:00
dlenev@mysql.com
b429748fab Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  mysql.com:/home/dlenev/mysql-5.0-bg18437-3
2006-07-06 14:31:32 +04:00
tomas@poseidon.ndb.mysql.com
0a75f5fe0a Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.1
into  poseidon.ndb.mysql.com:/home/tomas/mysql-5.1-ndb
2006-07-05 01:56:38 +02:00
tomas@poseidon.ndb.mysql.com
35938c56f3 Bug #20077 Cluster to only support partition by key, needs to error on others 2006-07-05 01:52:38 +02:00
tomas@poseidon.ndb.mysql.com
d3b52bd475 Bug #20077 Cluster to only support partition by key, needs to error on others 2006-07-04 18:29:21 +02:00
tomas@poseidon.ndb.mysql.com
0b2024ac88 Merge poseidon.ndb.mysql.com:/home/tomas/mysql-5.0
into  poseidon.ndb.mysql.com:/home/tomas/mysql-5.0-main
2006-07-04 12:47:07 +02:00
tomas@poseidon.ndb.mysql.com
98874725e0 Bug #20784 Uninitialized memory in update on table with PK not on first column
- partial backport of code from 5.1, do cot compare_record for engines that do not read all columns during update
2006-07-04 11:43:06 +02:00
mskold@mysql.com
59d69f6d38 Fix for Bug #18413 Data usage for varsize columns are not correctly reported to mysqld 2006-07-03 17:09:32 +02:00
dlenev@mysql.com
eb3ae6eb79 Merge mysql.com:/home/dlenev/mysql-5.0-bg18437-3
into  mysql.com:/home/dlenev/mysql-5.1-bg18437
2006-07-02 02:12:53 +04:00
dlenev@mysql.com
d4450e6696 Fix for bug#18437 "Wrong values inserted with a before update trigger on
NDB table".

SQL-layer was not marking fields which were used in triggers as such. As
result these fields were not always properly retrieved/stored by handler
layer. So one might got wrong values or lost changes in triggers for NDB,
Federated and possibly InnoDB tables.
This fix solves the problem by marking fields used in triggers
appropriately.

Also this patch contains the following cleanup of ha_ndbcluster code:

We no longer rely on reading LEX::sql_command value in handler in order
to determine if we can enable optimization which allows us to handle REPLACE
statement in more efficient way by doing replaces directly in write_row()
method without reporting error to SQL-layer.
Instead we rely on SQL-layer informing us whether this optimization
applicable by calling handler::extra() method with
HA_EXTRA_WRITE_CAN_REPLACE flag.
As result we no longer apply this optimzation in cases when it should not
be used (e.g. if we have on delete triggers on table) and use in some
additional cases when it is applicable (e.g. for LOAD DATA REPLACE).

Finally this patch includes fix for bug#20728 "REPLACE does not work
correctly for NDB table with PK and unique index".
  
This was yet another problem which was caused by improper field mark-up.
During row replacement fields which weren't explicity used in REPLACE
statement were not marked as fields to be saved (updated) so they have
retained values from old row version. The fix is to mark all table
fields as set for REPLACE statement. Note that in 5.1 we already solve
this problem by notifying handler that it should save values from all
fields only in case when real replacement happens.
2006-07-02 01:51:10 +04:00
monty@mysql.com
f62829636b After merge fixes 2006-06-30 20:07:33 +03:00
monty@mysql.com
2f86009c9e Merge mysql.com:/home/my/mysql-4.1
into  mysql.com:/home/my/mysql-5.0
2006-06-30 19:15:18 +03:00
tomas@poseidon.ndb.mysql.com
e61bfafaa9 Merge poseidon.ndb.mysql.com:/home/tomas/mysql-4.1
into  poseidon.ndb.mysql.com:/home/tomas/mysql-4.1-main
2006-06-30 16:26:33 +02:00
tomas@poseidon.ndb.mysql.com
9f542ef0f4 adopted ndb handler code for tables without primary key and with unique index
- added missing retrieval of hidden primary key
2006-06-30 16:25:07 +02:00
monty@mysql.com
a267b8f33c Don't read ~/.my.cnf in mysqldump.test 2006-06-30 04:10:27 +03:00
tomas@poseidon.ndb.mysql.com
5f5c3f9ceb Merge poseidon.ndb.mysql.com:/home/tomas/mysql-5.0-main
into  poseidon.ndb.mysql.com:/home/tomas/5.0-merge
2006-06-30 00:02:17 +02:00
tomas@poseidon.ndb.mysql.com
97a19c1b9b Merge poseidon.ndb.mysql.com:/home/tomas/mysql-5.0
into  poseidon.ndb.mysql.com:/home/tomas/mysql-5.0-main
2006-06-29 22:54:49 +02:00
monty@hasky.mysql.fi
0b00ae6bc5 Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  mysql.com:/home/my/mysql-5.1
2006-06-29 23:41:33 +03:00
monty@mysql.com
8eb9c06d70 Replaced assert with argument checking, as rpl_ndb_UUID caused slave to fail on x86 64 bit
(It failed even if test was marked as skipped)
2006-06-29 23:22:55 +03:00