Commit graph

35333 commits

Author SHA1 Message Date
istruewing@chilla.local
01be61e307 Bug#24985 - UTF8 ENUM primary key on MEMORY using BTREE
causes incorrect duplicate entries
After merge fix
2007-03-27 12:39:31 +02:00
istruewing@chilla.local
ef1dec00c4 Merge chilla.local:/home/mydev/mysql-4.1-bug24985
into  chilla.local:/home/mydev/mysql-5.0-bug24985
2007-03-27 10:54:37 +02:00
istruewing@chilla.local
8934e4f3cc Bug#24985 - UTF8 ENUM primary key on MEMORY using BTREE
causes incorrect duplicate entries

Keys for BTREE indexes on ENUM and SET columns of MEMORY tables
with character set UTF8 were computed incorrectly. Many
different column values got the same key value.

Apart of possible performance problems, it made unique indexes
of this type unusable because it rejected many different
values as duplicates.

The problem was that multibyte character detection was tried
on the internal numeric column value. Many values were not
identified as characters. Their key value became blank filled.

Thanks to Alexander Barkov and Ramil Kalimullin for the patch,
which sets the character set of ENUM and SET key segments to
the pseudo binary character set.
2007-03-27 10:49:48 +02:00
istruewing@chilla.local
4e62cae016 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-engines
into  chilla.local:/home/mydev/mysql-5.0--team
2007-03-25 14:44:16 +02:00
istruewing@chilla.local
81c086a6e5 Merge chilla.local:/home/mydev/mysql-4.1-bug25289
into  chilla.local:/home/mydev/mysql-5.0-bug25289
2007-03-15 13:02:18 +01:00
dlenev@mockturtle.local
e4f88d5215 Merge mockturtle.local:/home/dlenev/src/mysql-4.1-bg25966
into  mockturtle.local:/home/dlenev/src/mysql-5.0-bg25966-2
2007-03-15 11:53:04 +03:00
dlenev@mockturtle.local
01bd08b5d7 Fix for bug #25966 "2MB per second endless memory consumption after LOCK
TABLE ... WRITE".

Memory and CPU hogging occured when connection which had to wait for table
lock was serviced by thread which previously serviced connection that was
killed (note that connections can reuse threads if thread cache is enabled).
One possible scenario which exposed this problem was when thread which
provided binlog dump to replication slave was implicitly/automatically
killed when the same slave reconnected and started pulling data through
different thread/connection.
The problem also occured when one killed particular query in connection
(using KILL QUERY) and later this connection had to wait for some table
lock.

This problem was caused by the fact that thread-specific mysys_var::abort
variable, which indicates that waiting operations on mysys layer should
be aborted (this includes waiting for table locks), was set by kill
operation but was never reset back. So this value was "inherited" by the
following statements or even other connections (which reused the same
physical thread). Such discrepancy between this variable and THD::killed
flag broke logic on SQL-layer and caused CPU and memory hogging.

This patch tries to fix this problem by properly resetting this member.

There is no test-case associated with this patch since it is hard to test
for memory/CPU hogging conditions in our test-suite.
2007-03-15 11:51:35 +03:00
dlenev@mockturtle.local
f2cb664174 Fix for bug #25966 "2MB per second endless memory consumption after LOCK
TABLE ... WRITE".

CPU hogging occured when connection which had to wait for table lock was
serviced by thread which previously serviced connection that was killed
(note that connections can reuse threads if thread cache is enabled).
One possible scenario which exposed this problem was when thread which
provided binlog dump to replication slave was implicitly/automatically
killed when the same slave reconnected and started pulling data through
different thread/connection.
In 5.* versions memory hogging was added to CPU hogging. Moreover in
those versions the problem also occured when one killed particular query
in connection (using KILL QUERY) and later this connection had to wait for
some table lock.

This problem was caused by the fact that thread-specific mysys_var::abort
variable, which indicates that waiting operations on mysys layer should
be aborted (this includes waiting for table locks), was set by kill
operation but was never reset back. So this value was "inherited" by the
following statements or even other connections (which reused the same
physical thread). Such discrepancy between this variable and THD::killed
flag broke logic on SQL-layer and caused CPU and memory hogging.

This patch tries to fix this problem by properly resetting this member.

There is no test-case associated with this patch since it is hard to test
for memory/CPU hogging conditions in our test-suite.
2007-03-15 11:30:17 +03:00
istruewing@chilla.local
6b7fea5f2b Bug#25289 - repair table causes "my_seek.c:56:
my_seek: Assertion `fd != -1' failed"

In difficult optimize/repair situations the server could crash.
Under some circumstances the server retries an optimize/repair
with more elaborate options. But it did not check if the first
attempt failed so badly that a second one must not be tried.

This could happen when a new data file has been created
but it was not possible to open it. In this case the
repair leaves behind a table with closed data file.
This must not be used for another repair attempt.

We do now detect the closed data file and do not try
another repair attempt in this situation.

No test case. The required table corruption can not be
repeated easily. There is a test program attached to
bug 25433.
2007-03-14 16:27:37 +01:00
svoj@mysql.com/april.(none)
d7311aab77 Removed tabs. 2007-03-14 02:30:05 +04:00
svoj@mysql.com/april.(none)
de21b9b8ef Merge mysql.com:/home/svoj/devel/mysql/BUG26881/mysql-4.1-engines
into  mysql.com:/home/svoj/devel/mysql/BUG26881/mysql-5.0-engines
2007-03-13 18:11:47 +04:00
svoj@mysql.com/april.(none)
cb132bea8f BUG#26881 - Large MERGE tables report incorrect specification when no
differences in tables
Certain merge tables were wrongly reported as having incorrect definition:
- Some fields that are 1 byte long (e.g. TINYINT, CHAR(1)), might
  be internally casted (in certain cases) to a different type on a
  storage engine layer. (affects 4.1 and up)
- If tables in a merge (and a MERGE table itself) had short VARCHAR column (less
  than 4 bytes) and at least one (but not all) tables were ALTER'ed (even to an
  identical table: ALTER TABLE xxx ENGINE=yyy), table definitions went ouf of
  sync. (affects 4.1 only)

This is fixed by relaxing a check for underlying conformance and setting
field type to FIELD_TYPE_STRING in case varchar is shorter than 4
when a table is created.
2007-03-13 18:02:06 +04:00
svoj@mysql.com/april.(none)
14deaa3f61 Merge mysql.com:/home/svoj/devel/mysql/BUG26881/mysql-4.1-engines
into  mysql.com:/home/svoj/devel/mysql/BUG26881/mysql-5.0-engines
2007-03-13 17:00:48 +04:00
svoj@mysql.com/april.(none)
11384fece2 Merge mysql.com:/home/svoj/devel/bk/mysql-5.0
into  mysql.com:/home/svoj/devel/mysql/BUG26881/mysql-5.0-engines
2007-03-13 16:58:52 +04:00
svoj@mysql.com/april.(none)
576db4f44c Merge mysql.com:/home/svoj/devel/bk/mysql-4.1
into  mysql.com:/home/svoj/devel/mysql/BUG26881/mysql-4.1-engines
2007-03-13 16:57:16 +04:00
evgen@moonbone.local
f3e56b5adb Merge moonbone.local:/mnt/gentoo64/work/15757-bug-5.0-opt-mysql
into  moonbone.local:/mnt/gentoo64/work/25373-bug-5.0-opt-mysql
2007-03-10 19:57:18 +03:00
evgen@moonbone.local
6f6b9ae3ad Bug#15757: Wrong SUBSTRING() result when a tmp table was employed.
When the SUBSTRING() function was used over a LONGTEXT field the max_length of
the SUBSTRING() result was wrongly calculated and set to 0. As the max_length
parameter is used while tmp field creation it limits the length of the result
field and leads to printing an empty string instead of the correct result.

Now the Item_func_substr::fix_length_and_dec() function correctly calculates
the max_length parameter.
2007-03-10 19:55:34 +03:00
evgen@moonbone.local
e7a309197b Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/mnt/gentoo64/work/25373-bug-5.0-opt-mysql
2007-03-10 19:53:59 +03:00
istruewing@chilla.local
17dcc22a6e Merge bk-internal.mysql.com:/home/bk/mysql-4.1-engines
into  chilla.local:/home/mydev/mysql-4.1-bug25673
2007-03-10 17:01:52 +01:00
istruewing@blade08.mysql.com
8fb003f503 Merge istruewing@bk-internal.mysql.com:/home/bk/mysql-5.0-engines
into  blade08.mysql.com:/data0/istruewing/autopush/mysql-5.0-bug25673
2007-03-10 15:08:56 +01:00
igor@olga.mysql.com
ec4593f59a Fixed bug #26830: a crash for the query with a subselect containing ROLLUP.
Crash happened because the function get_best_group_min_max detected
joins with ROLLUP incorrectly.
2007-03-10 02:47:47 -08:00
evgen@moonbone.local
04f5c46d5d Bug#22331: Wrong WHERE in EXPLAIN EXTENDED when all expressions were optimized
away.

Additional fix for bug#22331. Now Item_field prints its value in the case of
the const field.
2007-03-10 00:29:02 +03:00
istruewing@chilla.local
0c77069ca6 Merge chilla.local:/home/mydev/mysql-4.1-bug25673
into  chilla.local:/home/mydev/mysql-5.0-bug25673
2007-03-09 16:40:30 +01:00
istruewing@chilla.local
af17853d5e Bug#25673 - spatial index corruption, error 126 incorrect key file for table
Fixed a compiler warning, deteced by pushbuild only.
2007-03-09 16:19:42 +01:00
gkodinov/kgeorge@magare.gmz
9625f2e902 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B26281-5.0-opt
2007-03-09 14:48:19 +02:00
gkodinov/kgeorge@magare.gmz
86cba48b8f Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B26281-5.0-opt
2007-03-09 13:05:41 +02:00
gkodinov/kgeorge@magare.gmz
740a5fd7fe Bug #26281:
Fixed boundry checks in the INSERT() function:
 were one off.
2007-03-09 12:47:12 +02:00
igor@olga.mysql.com
e10d74cff9 Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  olga.mysql.com:/home/igor/mysql-5.0-opt
2007-03-09 02:45:17 -08:00
igor@olga.mysql.com
6f4da47843 Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug26661
2007-03-09 01:50:17 -08:00
igor@olga.mysql.com
96cfd5ab91 Fixed bug #26661: crash when order by clause in a union
construct references invalid name.
Derived tables currently cannot use outer references.
Thus there is no outer context for them.
The 4.1 code takes this fact into account while the 
Item_field::fix_outer_field code of 5.0 lost the check that blocks
any attempts to resolve names in outer context for derived tables.
2007-03-09 01:45:32 -08:00
holyfoot/hf@mysql.com/hfmain.(none)
2b1179ad07 Merge abotchkov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  mysql.com:/home/hf/work/mrg/mysql-5.0-opt
2007-03-09 13:44:43 +04:00
holyfoot/hf@mysql.com/hfmain.(none)
60e0dceae8 Merge mysql.com:/home/hf/work/mrg/mysql-4.1-opt
into  mysql.com:/home/hf/work/mrg/mysql-5.0-opt
2007-03-09 13:39:03 +04:00
holyfoot/hf@mysql.com/hfmain.(none)
4752db40e8 aftermerge fix 2007-03-09 13:37:06 +04:00
istruewing@chilla.local
c029dbecf7 Merge chilla.local:/home/mydev/mysql-4.1-bug25673
into  chilla.local:/home/mydev/mysql-5.0-bug25673
2007-03-08 19:23:36 +01:00
istruewing@chilla.local
90f23116e2 Bug#25673 - spatial index corruption, error 126 incorrect key file for table
After backport fix.
Added forgotten DBUG_RETURNs, which was detected in 5.1 only.
2007-03-08 19:22:43 +01:00
holyfoot/hf@mysql.com/hfmain.(none)
11dd0fa326 Merge bk@192.168.21.1:mysql-5.0
into  mysql.com:/home/hf/work/mrg/mysql-5.0-opt
2007-03-08 21:42:41 +04:00
holyfoot/hf@mysql.com/hfmain.(none)
618ccf376f Merge bk@192.168.21.1:mysql-4.1
into  mysql.com:/home/hf/work/mrg/mysql-4.1-opt
2007-03-08 21:14:31 +04:00
evgen@moonbone.local
35e5925673 sql_select.cc:
Postfix for bug#22331.
2007-03-08 19:38:21 +03:00
msvensson@pilot.blaudden
193c3178bc Merge bk-internal:/home/bk/mysql-4.1-maint
into  pilot.blaudden:/home/msvensson/mysql/mysql-4.1-maint
2007-03-08 15:10:24 +01:00
msvensson@pilot.blaudden
433d3e6cf7 Merge pilot.blaudden:/home/msvensson/mysql/mysql-4.1-maint
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
2007-03-08 14:55:39 +01:00
msvensson@pilot.blaudden
49d862230e Merge bk-internal:/home/bk/mysql-5.0-maint
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
2007-03-08 13:30:04 +01:00
istruewing@chilla.local
f1bbbcce22 Bug#25673 - spatial index corruption, error 126 incorrect key file for table
After merge fix
2007-03-08 12:08:59 +01:00
istruewing@chilla.local
760714758e Merge chilla.local:/home/mydev/mysql-4.1-bug25673
into  chilla.local:/home/mydev/mysql-5.0-bug25673
2007-03-08 10:10:17 +01:00
istruewing@chilla.local
2d6ad76abd Bug#25673 - spatial index corruption, error 126
incorrect key file for table

In certain cases it could happen that deleting a row could
corrupt an RTREE index.

According to Guttman's algorithm, page underflow is handled
by storing the page in a list for later re-insertion. The
keys from the stored pages have to be inserted into the
remaining pages of the same level of the tree. Hence the
level number is stored in the re-insertion list together
with the page.

In the MySQL RTree implementation the level counts from zero
at the root page, increasing numbers for levels down the tree.

If during re-insertion of the keys the tree height grows, all
level numbers become invalid. The remaining keys will be
inserted at the wrong level.

The fix is to increment the level numbers stored in the
reinsert list after a split of the root block during reinsertion.
2007-03-08 09:54:37 +01:00
tsmith@quadxeon.mysql.com
fee7ab58c6 comp_err.c: return ha_checksum from checksum_format_specifier() - more correct, avoid a compiler warning 2007-03-08 08:15:30 +01:00
tulin/mysqldev@mysql.com/production.mysql.com
34c3cd810e Merge bk-internal:/home/bk/mysql-5.0-ndb
into  mysql.com:/data0/mysqldev/users/tomas/mysql-5.0-maint
2007-03-08 04:23:19 +01:00
tomas@poseidon.mysql.com
948ed82a2c Merge poseidon.mysql.com:/home/tomas/mysql-5.0
into  poseidon.mysql.com:/home/tomas/mysql-5.0-ndb
2007-03-08 08:33:38 +07:00
tsmith@quadxeon.mysql.com
faecfb44a4 Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/mar07/stage2/50
2007-03-08 02:22:50 +01:00
tsmith@quadxeon.mysql.com
d093ba4757 Merge quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/mar07/stage2/41
into  quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/mar07/stage2/50
2007-03-08 01:12:09 +01:00
tsmith@quadxeon.mysql.com
5959e8a60a Merge quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/mar07/stage2/40
into  quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/mar07/stage2/41
2007-03-08 01:06:04 +01:00