Commit graph

1289 commits

Author SHA1 Message Date
istruewing@synthia.local
f0c883f3fb Merge synthia.local:/home/mydev/mysql-5.0-amain
into  synthia.local:/home/mydev/mysql-5.0-axmrg
2007-08-13 20:45:36 +02:00
kent@mysql.com/kent-amd64.(none)
a6d082f36d CMakeLists.txt, README, configure.js
Several adjustments to make client libraries pass the link test
  on both win32 and winx64, Visual Studio 2003 and 2005 (bug#30118)
2007-08-03 21:51:37 +02:00
jperkin@production.mysql.com
0a7599a71e Merge production.mysql.com:/usersnfs/jperkin/bk/trees/build/mysql-4.1
into  production.mysql.com:/usersnfs/jperkin/bk/trees/build/mysql-5.0
2007-08-02 18:57:50 +02:00
jperkin@production.mysql.com
b088c6a3dc myisamchk.c:
Fix typo in usage.
2007-08-02 18:51:11 +02:00
istruewing@chilla.local
209ea105d1 Merge chilla.local:/home/mydev/mysql-4.1-bug29838
into  chilla.local:/home/mydev/mysql-5.0-bug29838
2007-08-01 12:02:18 +02:00
istruewing@chilla.local
e117a36c33 Bug#29838 - myisam corruption using concurrent select ... and update
When using concurrent insert with parallel index reads, it could
happen that reading sessions found keys that pointed to records
yet to be written to the data file. The result was a report of
a corrupted table. But it was false alert.

When inserting a record in a table with indexes, the keys are
inserted into the indexes before the record is written to the data
file. When the insert happens concurrently to selects, an
index read can find a key that references the record that is not
yet written to the data file. To avoid any access to such record,
the select saves the current end of file position when it starts.
Since concurrent inserts are always appended at end of the data
file, the select can easily ignore any concurrently inserted record.

The problem was that the ignore was only done for non-exact key
searches (partial key or using >, >=, < or <=).

The fix is to ignore concurrently inserted records also for
exact key searches.

No test case. Concurrent inserts cannot be tested with the test
suite. Test cases are attached to the bug report.
2007-08-01 11:54:24 +02:00
istruewing@chilla.local
edc859ffe1 Merge chilla.local:/home/mydev/mysql-5.0-ateam
into  chilla.local:/home/mydev/mysql-5.0-axmrg
2007-07-28 11:45:31 +02:00
istruewing@chilla.local
a5981b9556 Backported mi_test_all.sh from 5.1. 2007-07-28 10:25:50 +02:00
svoj@june.mysql.com
81905ee14f Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.0-engines
into  mysql.com:/home/svoj/devel/mysql/BUG29957/mysql-5.0-engines
2007-07-27 14:36:43 +05:00
svoj@mysql.com/june.mysql.com
9d1bfec265 BUG#29957 - alter_table.test fails
INSERT/DELETE/UPDATE followed by ALTER TABLE within LOCK TABLES
may cause table corruption on Windows.

That happens because ALTER TABLE writes outdated shared state
info into index file.

Fixed by removing obsolete workaround.

Affects MyISAM tables on Windows only.
2007-07-27 14:30:25 +05:00
gkodinov/kgeorge@magare.gmz
1e4d690476 fixed uninitialized variable introduced by the fix for bug 29325 2007-07-11 12:37:47 +03:00
gkodinov/kgeorge@magare.gmz
1f7a28bda1 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B29325-5.0-opt
2007-07-11 11:59:46 +03:00
gkodinov/kgeorge@magare.gmz
015e1290a1 Bug #29325:
By default MyISAM overwrites .MYD and .MYI files no 
DATA DIRECTORY option is used. This can lead to two tables
using the same .MYD and .MYI files (that can't be dropped).

To prevent CREATE TABLE from overwriting a file a new option
is introduced : keep_files_on_create
When this is on the CREATE TABLE throws an error if either
the .MYD or .MYI exists for a MyISAM table.
The option is off by default (resulting in compatible behavior).
2007-07-11 10:49:54 +03:00
gkodinov/kgeorge@magare.gmz
ea9825d67b Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B29070-5.0-opt
2007-07-10 10:40:49 +03:00
gkodinov/kgeorge@magare.gmz
3e9679e1fa Bug #29070: Error in spatial index
1. Threat MBR for a key as double[] and convert it only
when about to store it on disk.
2. Remove the redundant function get_double().
2007-07-09 17:41:24 +03:00
antony@ppcg5.local
2b52524ea5 Merge anubis.xiphis.org:/usr/home/antony/work/mysql-5.0-engines
into  anubis.xiphis.org:/usr/home/antony/work/mysql-5.0-engines.merge
2007-07-06 09:00:40 -07:00
svoj@june.mysql.com
0539080296 Merge mysql.com:/home/svoj/devel/bk/mysql-5.0-engines
into  mysql.com:/home/svoj/devel/mysql/BUG29299/mysql-5.0-engines
2007-07-02 12:31:34 +05:00
svoj@mysql.com/june.mysql.com
ff9aeb560c BUG#29299 - repeatable myisam fulltext index corruption
Fulltext index may get corrupt by certain gbk characters.

The problem was that when skipping leading non-true-word-characters,
we assumed that these characters are always 1 byte long. This is not
the case with gbk character set, since non-true-word-characters may
be 2 bytes long.

Affects 5.0 only.
2007-06-27 18:10:19 +05:00
gkodinov/kgeorge@magare.gmz
0b421fad4a Bug #26642: create index corrupts table definition in .frm
Thanks to Martin Friebe for finding and submitting a fix for this bug!
  
  A table with maximum number of key segments and maximum length key name
  would have a corrupted .frm file, due to an incorrect calculation of the
  complete key length.  Now the key length is computed correctly (I hope) :-)
  
  MyISAM would reject a table with the maximum number of keys and the maximum
  number of key segments in all keys.  It would allow one less than this total
  maximum.  Now MyISAM accepts a table defined with the maximum.  (This is a
  very minor issue.)
2007-06-27 14:35:49 +03:00
igor@olga.mysql.com
6a4b2343db Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug29087
2007-06-26 16:37:02 -07:00
igor@olga.mysql.com
6f98ec66b6 Fixed bug #29087. This bug manifested itself for queries that performed
a lookup into a BINARY index by a key ended with spaces. It caused
an assertion abort for a debug version and wrong results for non-debug
versions.

The problem occurred because the function _mi_pack_key stripped off 
the trailing spaces from binary search keys while the function _mi_make_key
did not do it when keys were inserted into the index.

Now the function _mi_pack_key does not remove the trailing spaces from
search keys if they are of the binary type.
2007-06-25 22:44:22 -07:00
iggy@amd64.(none)
1378e94aa0 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  amd64.(none):/src/bug27029/my50-bug27029
2007-06-21 12:52:20 -04:00
iggy@amd64.(none)
39416f50a5 Bug#27029 alter table ... enable keys crashes mysqld on large table
- When creating an index for the sort, the number of rows plus 1 is used 
to allocate a buffer.  In this test case, the number of rows 4294967295 
is the max value of an unsigned integer, so when 1 was added to it, a 
buffer of size 0 was allocated causing the crash.
- Create new test suite for this bug's test suite as per QA.
2007-06-21 12:45:56 -04:00
svoj@mysql.com/june.mysql.com
122167bb4b Merge mysql.com:/home/svoj/devel/bk/mysql-5.0
into  mysql.com:/home/svoj/devel/mysql/merge/mysql-5.0-engines
2007-05-23 12:39:33 +05:00
svoj@mysql.com/june.mysql.com
a4ddc22621 Merge mysql.com:/home/svoj/devel/bk/mysql-4.1
into  mysql.com:/home/svoj/devel/mysql/merge/mysql-4.1-engines
2007-05-23 12:38:34 +05:00
dkatz@damien-katzs-computer.local
41dac22271 Bug #27119 server crash with integer division by zero during filesort on huge result
Added checks to detect integer overflow and fixed other bugs on the error path.
2007-05-16 16:14:13 -04:00
svoj@mysql.com/april.(none)
bf473b1069 Merge mysql.com:/home/svoj/devel/mysql/BUG25712/mysql-4.1-engines
into  mysql.com:/home/svoj/devel/mysql/BUG25712/mysql-5.0-engines
2007-05-17 00:40:26 +05:00
svoj@mysql.com/april.(none)
3ea2ee357b BUG#25712 - insert delayed and check table run together report crashed
tables

In case system doesn't have native pread/pwrite calls (e.g. Windows)
and there is CHECK TABLE runs concurrently with another statement that
reads from a table, the table may be reported as crashed.

This is fixed by locking file descriptor when my_seek is executed on
MyISAM index file and emulated pread/pwrite may be executed concurrently.

Affects MyISAM tables on platforms that do not have native
pread/pwrite calls (e.g. Windows).

No deterministic test case for this bug.
2007-05-16 23:42:32 +05:00
cmiller@zippy.cornsilk.net
5f895fef79 Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug27976/my41-bug27976
into  zippy.cornsilk.net:/home/cmiller/work/mysql/bug27976/my50-bug27976
2007-05-04 19:04:09 -04:00
cmiller@zippy.cornsilk.net
b6502ddb19 Bug #27976: Misleading error message, 'Sort buffer to small'
The message is gramatically wrong, and factually wrong.

Change it to refer to the myisam_sort_buffer_size variable and change
"to" to "too".
2007-05-04 17:38:29 -04:00
svoj@mysql.com/april.(none)
ce55046fbd Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.0-build
into  mysql.com:/home/svoj/devel/mysql/merge/mysql-5.0-engines
2007-04-27 00:56:50 +05:00
iggy@recycle.(none)
7a358c4b5c Bug#24732 Executables do not include Vista manifests
- Added script to generate application specific manifest.
- Added new CMake MACRO to add customer build events which will first
generate a manifest and then embeds that manifest into an executable.
2007-04-23 15:41:24 -04:00
svoj@mysql.com/june.mysql.com
4653cc495b Merge mysql.com:/home/svoj/devel/mysql/warn/mysql-4.1-engines
into  mysql.com:/home/svoj/devel/mysql/warn/mysql-5.0-engines
2007-04-19 11:56:06 +05:00
svoj@mysql.com/june.mysql.com
d55cddad93 Fixed a warning on win64. 2007-04-19 11:53:25 +05:00
svoj@mysql.com/june.mysql.com
2d64de7d7e Merge mysql.com:/home/svoj/devel/mysql/BUG24342/mysql-4.1-engines
into  mysql.com:/home/svoj/devel/mysql/BUG24342/mysql-5.0-engines
2007-04-18 16:22:23 +05:00
svoj@mysql.com/june.mysql.com
ed81a81a9e BUG#27516 - divide by zero crash during optimize table
When a table status is requested by statement like SHOW TABLE
STATUS and there is another statement (e.g. DELETE) sets
number of records to 0 concurrently, we may get division by
zero error, which crashes a server.

This is fixed by using thread local variable x->records instead
of shared info->state->records when we check if it is zero and
divide by it.
2007-04-13 12:38:27 +05:00
svoj@mysql.com/april.(none)
bcbcacb8da BUG#24342 - Incorrect results with query over MERGE table
MERGE engine may return incorrect values when several representations
of equal keys are present in the index. For example "groß" and "gross"
or "gross" and "gross " (trailing space), which are considered equal,
but have different lengths.

The problem was that key length was not recalculated after key lookup.

Only MERGE engine is affected.
2007-04-11 01:40:35 +05:00
istruewing@chilla.local
a2d7a05f88 Merge chilla.local:/home/mydev/mysql-4.1-axmrg
into  chilla.local:/home/mydev/mysql-5.0-axmrg
2007-03-28 10:25:51 +02:00
istruewing@chilla.local
2ce22c3f6f Merge chilla.local:/home/mydev/mysql-4.1-bug26231
into  chilla.local:/home/mydev/mysql-4.1-axmrg
2007-03-28 08:57:46 +02:00
istruewing@chilla.local
c33486ff1b Bug#26231 - select count(*) on myisam table returns wrong value
when index is used

When the table contained TEXT columns with empty contents
('', zero length, but not NULL) _and_ strings starting with
control characters like tabulator or newline, the empty values
were not found in a "records in range" estimate. Hence count(*)
missed these records.

The reason was a different set of search flags used for key
insert and key range estimation.

I decided to fix the set of flags used in range estimation.
Otherwise millions of databases around the world would require
a repair after an upgrade.

The consequence is that the manual must be fixed, which claims
that TEXT columns are compared with "end space padding". This
is true for CHAR/VARCHAR but wrong for TEXT. See also bug 21335.
2007-03-16 10:28:48 +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)
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
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
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
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