Commit graph

942 commits

Author SHA1 Message Date
unknown
82a72ee17e Merge bk-internal:/home/bk/mysql-4.0
into  chilla.local:/home/mydev/mysql-4.1-bug14400-monty


BitKeeper/etc/ignore:
  auto-union
include/my_global.h:
  Auto merged
myisam/mi_rkey.c:
  Manual null merge as a better fix is already present.
mysql-test/r/myisam.result:
  Manual null merge as a better fix is already present.
mysql-test/t/myisam.test:
  Manual null merge as a better fix is already present.
sql/sql_select.cc:
  Manual merge of purify improvements.
2006-09-19 10:17:25 +02:00
unknown
ab7d1d70a4 Merge bk-internal.mysql.com:/home/bk/mysql-4.1-engines
into  chilla.local:/home/mydev/mysql-4.1-bug14400


myisam/mi_rkey.c:
  Auto merged
2006-09-15 14:02:43 +02:00
unknown
addff97f31 Bug#14400 - Query joins wrong rows from table which is subject of
"concurrent insert"
After merge fix.
2006-09-14 16:55:57 +02:00
unknown
562763f160 Merge bk-internal.mysql.com:/home/bk/mysql-4.1-engines
into  chilla.local:/home/mydev/mysql-4.1-bug14400


mysql-test/r/myisam.result:
  Auto merged
mysql-test/t/myisam.test:
  Auto merged
myisam/mi_rkey.c:
  Bug#14400 - Query joins wrong rows from table which is subject of
              "concurrent insert"
  Manual merge
2006-09-12 11:40:24 +02:00
unknown
203d099962 Merge chilla.local:/home/mydev/mysql-4.0-bug14400
into  chilla.local:/home/mydev/mysql-4.1-bug14400


myisam/mi_rkey.c:
  Bug#14400 - Query joins wrong rows from table which is subject of
              "concurrent insert"
  Manual merge from 4.0
mysql-test/r/myisam.result:
  Bug#14400 - Query joins wrong rows from table which is subject of
              "concurrent insert"
  Manual merge from 4.0
mysql-test/t/myisam.test:
  Bug#14400 - Query joins wrong rows from table which is subject of
              "concurrent insert"
  Manual merge from 4.0
2006-09-07 16:46:20 +02:00
unknown
71314617ae Bug#14400 - Query joins wrong rows from table which is subject of
"concurrent insert"
Additional fix for full keys and test case.


myisam/mi_rkey.c:
  Bug#14400 - Query joins wrong rows from table which is subject of
              "concurrent insert"
  Additional fix for full keys.
mysql-test/r/myisam.result:
  Bug#14400 - Query joins wrong rows from table which is subject of
              "concurrent insert"
  Additional results.
mysql-test/t/myisam.test:
  Bug#14400 - Query joins wrong rows from table which is subject of
              "concurrent insert"
  Additional test case.
2006-09-07 15:39:31 +02:00
unknown
a32f6b8941 Merge chilla.local:/home/mydev/mysql-4.0-bug14400
into  chilla.local:/home/mydev/mysql-4.1-bug14400


myisam/mi_rkey.c:
  Bug#14400 - Query joins wrong rows from table which is
              subject of "concurrent insert"
  Manual merge from 4.0.
mysql-test/r/myisam.result:
  Bug#14400 - Query joins wrong rows from table which is
              subject of "concurrent insert"
  Manual merge from 4.0.
mysql-test/t/myisam.test:
  Bug#14400 - Query joins wrong rows from table which is
              subject of "concurrent insert"
  Manual merge from 4.0.
2006-08-29 21:08:40 +02:00
unknown
7d600f7131 Bug#14400 - Query joins wrong rows from table which is
subject of "concurrent insert"
Better fix by Monty: "The previous bug fix didn't work
when using partial keys."


mysql-test/r/myisam.result:
  Bug#14400 - Query joins wrong rows from table which is
              subject of "concurrent insert"
  Added test result
mysql-test/t/myisam.test:
  Bug#14400 - Query joins wrong rows from table which is
              subject of "concurrent insert"
  Added test case
2006-08-29 20:45:04 +02:00
unknown
662890878b Merge april.(none):/home/svoj/devel/bk/mysql-4.1-engines
into  april.(none):/home/svoj/devel/mysql/BUG19702/mysql-4.1
2006-08-22 13:13:28 +05:00
unknown
c17fc16cc4 BUG#19702 - Using myisampack/myisamchk on a FULLTEXT indexed
table results in table corrupt

Fulltext key has always two keysegs, thus we need to update
FT_SEGS (last) element from seg array in case of compressed table.
Also we must update ft2_keyinfo.


myisam/mi_packrec.c:
  Fulltext key has always two keysegs, thus we need to update
  FT_SEGS (last) element from seg array in case of compressed table.
  Also we must update ft2_keyinfo.
2006-08-17 21:23:00 +05:00
unknown
ebf58763e2 Merge april.(none):/home/svoj/devel/bk/mysql-4.1
into  april.(none):/home/svoj/devel/mysql/BUG18874/mysql-4.1
2006-08-14 18:13:50 +05:00
unknown
f6d7985a5b BUG#18874 - Setting myisam_repair_threads > 1, index cardinality always 1
Fixed by moving update_key_parts() down to be after write_index().


myisam/sort.c:
  write_index() collects index statistic which is further used in
  update_key_parts(). Thus update_key_parts() must be called after
  write_index().
mysql-test/r/repair.result:
  Test case for bug#18874.
mysql-test/t/repair.test:
  Test case for bug#18874.
2006-08-14 17:05:02 +05:00
unknown
dcb6659001 Better bug fix for #14400 "Query joins wrong rows from table which is subject of "concurrent insert""
The previous bug fix didn't work when using partial keys.
Don't use GNUC min/max operations are they are depricated.
Fixed valgrind warning


BitKeeper/etc/ignore:
  Added */.libs/*
include/my_global.h:
  Don't use GNUC min/max operations are they are depricated
myisam/mi_rkey.c:
  Better bug fix for #14400 "Query joins wrong rows from table which is subject of "concurrent insert""
  The previous bug fix didn't work when using partial keys.
myisam/mi_test_all.res:
  Updated results to match mi_test_all.sh
myisam/mi_test_all.sh:
  Removed confusing warning
mysql-test/r/myisam.result:
  Added test case for #14400
mysql-test/t/myisam.test:
  Added test case for #14400
sql/sql_select.cc:
  Fixed valgrind warning (in field_string::val_int())
2006-08-10 22:41:19 +03:00
unknown
bfdbb780c2 Fix for bug #20709: Collation not used in group by on 4.1.
myisam/mi_uniue.c:mi_check_unique() should skip trailing spaces comparing 
TEXT and VARTTEXT key segments.


myisam/mi_unique.c:
  Fix for bug #20709: Collation not used in group by on 4.1.    
  
  myisam/mi_uniue.c:mi_check_unique() should skip trailing spaces comparing 
  TEXT and VARTTEXT key segments.
    
  Example: assume, we have a 'char(200) collate utf8_unicode_ci' field,
  there are two records with _utf8"0x65" and _utf8"0xC3A9" characters;
  these values are equal according
  to the utf8_unicode_ci collation, but two 600 byte length corresponding keys:  
  "0x65<0x20 repeats 599 times>" and "0xC3A9<0x20 repeats 598 times>" are not    
  equal if we count trailing spaces and it may cause inconsequent behavior.
  
  So, let's pass 1 as the skip_end_space parameter value to the mi_compare_text()
  function for proper TEXT and VARTTEXT key segments comparison.
mysql-test/r/ctype_utf8.result:
  Fix for bug #20709: Collation not used in group by on 4.1.    
    - test results.
mysql-test/t/ctype_utf8.test:
  Fix for bug #20709: Collation not used in group by on 4.1.    
    - test case.
2006-08-10 15:06:22 +05:00
unknown
a2a5f2b536 BUG#20060 - mysqld option "--flush " doesn't work for update statement
Problem described in this bug report affects MyISAM tables only.

Running mysqld --flush instructs mysqld to sync all changes to disk
after each SQL statement. It worked well for INSERT and DELETE
statements, but it did sync for UPDATE only in case if there was
index change (change of colum that has an index). If no updated column
has an index, data wasn't synced to disk.

This fix makes UPDATE statement to sync data to disk even if there is
no index change (that is only data change) and mysqld is run with
--flush option.


myisam/mi_update.c:
  Every myisam function that updates myisam table must end with
  call to _mi_writeinfo(). If operation (second param of
  _mi_writeinfo()) is not 0 it sets share->changed to 1, that is
  flags that data has changed. If operation is 0, this function
  equals to no-op in this case.
  
  mi_update() must always pass !0 value as operation, since even if
  there is no index change there could be data change.
2006-08-09 14:28:39 +05:00
unknown
0eaab5b74c Merge chilla.local:/home/mydev/mysql-4.1-bug19835
into  chilla.local:/home/mydev/mysql-4.1-amerge
2006-07-08 19:27:16 +02:00
unknown
6db432cd85 Merge chilla.local:/home/mydev/mysql-4.1-bug17877
into  chilla.local:/home/mydev/mysql-4.1-amerge
2006-07-08 19:26:18 +02:00
unknown
966481b912 Merge chilla.local:/home/mydev/mysql-4.1-bug14400
into  chilla.local:/home/mydev/mysql-4.1-amerge


sql/sql_class.cc:
  Auto merged
2006-07-08 19:25:01 +02:00
unknown
666fb945a6 Merge chilla.local:/home/mydev/mysql-4.1-bug11824
into  chilla.local:/home/mydev/mysql-4.1-amerge


myisam/mi_create.c:
  Auto merged
2006-07-08 19:23:55 +02:00
unknown
854d7c4d4f Bug#8706
"temporary table with data directory option fails"
  myisam should not use user-specified table name when creating
  temporary tables and use generated connection specific real name.
  Test included.


myisam/mi_create.c:
  Bug#8706
    When creating a temporary table with directory override, ensure that
    the real filename is using the hidden temporary name otherwise
    multiple clients cannot have same named temporary tables without
    conflict.
mysql-test/r/myisam.result:
  Bug#8706
    Test for bug
mysql-test/t/myisam.test:
  Bug#8706
    Test for bug
2006-07-05 17:18:59 -07:00
unknown
752b826e0d Merge mysql.com:/home/mydev/mysql-4.0-bug14400
into  mysql.com:/home/mydev/mysql-4.1-bug14400


myisam/mi_rkey.c:
  Bug#14400 - Query joins wrong rows from table which is subject of "concurrent insert"
  Manual merge
sql/sql_class.cc:
  Bug#14400 - Query joins wrong rows from table which is subject of "concurrent insert"
  Manual merge
2006-07-04 19:10:13 +02:00
unknown
7aa26e2645 Bug#14400 - Query joins wrong rows from table which is subject of "concurrent insert"
It was possible that fetching a record by an exact key value 
(including the record pointer) could return a record with a 
different key value. This happened only if a concurrent insert 
added a record with the searched key value after the fetching 
statement locked the table for read.

The search succeded on the key value, but the record was
rejected as it was past the file length that was remembered
at start of the fetching statement. With other words it was 
rejected as being a concurrently inserted record.

The action to recover from this problem was to fetch the 
record that is pointed at by the next key of the index. 
This was repeated until a record below the file length was 
found.

I do now avoid this loop if an exact match was searched. 
If this match is beyond the file length, it is now treated 
as "key not found". There cannot be another key with the 
same record pointer.


myisam/mi_rkey.c:
  Bug#14400 - Query joins wrong rows from table which is subject of "concurrent insert"
  Added a check for exact key match before searching for
  the next key that was not concurrently inserted. If an
  exact key match finds a concurrently inserted row, this
  must be treated as "key not found".
sql/sql_class.cc:
  Bug#14400 - Query joins wrong rows from table which is subject of "concurrent insert"
  Fixed some DBUG_ENTER strings.
2006-06-28 18:55:30 +02:00
unknown
9ad8a373f1 Bug#19835 - Binary copy of corrupted tables crash the server when issuing a query
A corrupt table with dynamic record format can crash the 
server when trying to select from it.
        
I fixed the crash that resulted from the particular type 
of corruption that has been reported for this bug.

No test case. To test it, one needs a table with a very special
corruption. The bug report contains a file with such a table.


myisam/mi_dynrec.c:
  Bug#19835 - Binary copy of corrupted tables crash the server when issuing a query
  Added a protection against corrupted records. A dynamic 
  record header with invalid 'next' pointer could trigger 
  the assert in _mi_get_block_info(). Now I avoid this by 
  reporting a corruption error.
2006-06-28 16:07:39 +02:00
unknown
0b235009e6 Bug#17877 - Corrupted spatial index
CHECK TABLE could complain about a fully intact spatial index.
A wrong comparison operator was used for table checking. 
The result was that it checked for non-matching spatial keys. 
This succeeded if at least two different keys were present, 
but failed if only the matching key was present.

I fixed the key comparison.


myisam/mi_check.c:
  Bug#17877 - Corrupted spatial index
  Fixed the comparison operator for checking a spatial index.
  Using MBR_EQUAL | MBR_DATA to compare for equality and
  include the data pointer in the comparison. The latter
  finds the index entry that points to the current record.
  This is necessary for non-unique indexes.
  
  The old operator, SEARCH_SAME, is unknown to the rtree
  search functions and handled like MBR_DISJOINT.
myisam/mi_key.c:
  Bug#17877 - Corrupted spatial index
  Added a missing DBUG_RETURN.
myisam/rt_index.c:
  Bug#17877 - Corrupted spatial index
  Included the data pointer in the copy of the search key.
  This is necessary for searching the index entry that points
  to a specific record if the search_flag contains MBR_DATA.
myisam/rt_mbr.c:
  Bug#17877 - Corrupted spatial index
  Extended the RT_CMP() macro with an assert for an 
  unexpected comparison operator.
mysql-test/r/gis-rtree.result:
  Bug#17877 - Corrupted spatial index
  The test result.
mysql-test/t/gis-rtree.test:
  Bug#17877 - Corrupted spatial index
  The test case.
2006-06-28 14:27:37 +02:00
unknown
16ce188ded Bug#11824 - internal /tmp/*.{MYD,MYI} files remain, causing subsequent queries to fail
Very complex select statements can create temporary tables
that are too big to be represented as a MyISAM table.

This was not checked at table creation time, but only at
open time. The result was an attempt to delete the 
"impossible" table.

But if the server is built --with-raid, MyISAM tries to 
open the table before deleting the files. It needs to find 
out if the table uses the raid support and how many raid 
chunks there are. This is done with an open "for repair",
which will almost always succeed.

But in this case we have an "impossible" table. The open
failed. Hence the files were not deleted. Also the error
message was a bit unspecific.

I turned an open error in this situation into the assumption 
of having no raid support on the table. Thus the normal data 
file is tried to be deleted. This may however leave existing 
raid chunks behind.

I also added a check in mi_create() to prevent the creation
of an "impossible" table. A more decriptive error message is
given in this case.

No test case. The required select statement is way too
large for the test suite. I added a test script to the
bug report.


myisam/mi_create.c:
  Bug#11824 - internal /tmp/*.{MYD,MYI} files remain, causing subsequent queries to fail
  Added a check to mi_create() that the table description
  header of the index file does not exceed 64KB. The header
  has only 16 bits to encode its length.
myisam/mi_delete_table.c:
  Bug#11824 - internal /tmp/*.{MYD,MYI} files remain, causing subsequent queries to fail
  Interpret error in table open as not having a raid
  configuration on the tbale. Thus try to delete the
  normal data file, but leave behind raid chunks if 
  they exist.
2006-06-27 11:26:41 +02:00
unknown
9c178058fd Merge mysql.com:/home/mydev/mysql-4.0-bug10405
into  mysql.com:/home/mydev/mysql-4.1-bug10405


myisam/mi_check.c:
  Auto merged
2006-04-29 19:38:41 +02:00
unknown
868c49e36c myisam_ftdump.c:
myisam_ftdump options: --help first, then rest in
  lexical order.


myisam/myisam_ftdump.c:
  myisam_ftdump options: --help first, then rest in
  lexical order.
2006-04-23 19:26:56 -05:00
unknown
d316b8b10b BUG#17917 - SELECT from compressed MyISAM table crashes MySQL server
Retrieving data from compressed MyISAM table which is bigger than 4G on 32-bit box
with mmap() support results in server crash.

mmap() accepts length of bytes to be mapped in second param, which is 32-bit
size_t. But we pass data_file_length, which is 64-bit my_off_t. As a result only
first data_file_length % 4G were mapped.

This fix adds additional condition for mmap() usage, that is use mmap() for
compressed table which size is no more than 4G on 32-bit platform.


myisam/mi_packrec.c:
  Use mmap() for compressed table which size is no more than 4G on 32-bit platform.
2006-04-13 14:37:03 +05:00
unknown
d2f8564057 Bug#10405 - myisamchk damages auto_increment columns when changing character set
Whenever 'myisamchk' needed to recreate a table,
the auto increment information was lost.

Now the forgotten element of the table creation
information is set correctly.


myisam/mi_check.c:
  Bug#10405 - myisamchk damages auto_increment columns when changing character set
  Added some DBUG statements.
  Enabled 'with_auto_increment' in 'create_info'
  when recreating a table.
2006-04-10 13:38:56 +02:00
unknown
2d6a51b4c8 Fix error in prefix compression of keys in MyISAM when key length changed from 254 -> 255
Bug #17705 "FT Index corruption occurs with UTF8 data..."
(Actually, the bug had nothing to do with FT index but with general key compression)



myisam/mi_search.c:
  Fix error in prefix compression of keys in MyISAM when key length changed from 254 -> 255
mysql-test/r/ctype_utf8.result:
  Test of fix for key compression bug
mysql-test/t/ctype_utf8.test:
  Test of fix for key compression bug
2006-03-30 01:50:52 +03:00
unknown
fbe17c2a36 Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX
For "count(*) while index_column = value" an index read
is done. It consists of an index scan and retrieval of
each key.

For efficiency reasons the index scan stores the key in
the special buffer 'lastkey2' once only. At the first 
iteration it notes this fact with the flag 
HA_STATE_RNEXT_SAME in 'info->update'.

For efficiency reasons, the key retrieval for blobs
does not allocate a new buffer, but uses 'lastkey2'...

Now I clear the HA_STATE_RNEXT_SAME flag whenever the 
buffer has been polluted. In this case, the index scan
copies the key value again (and sets the flag again).


include/my_base.h:
  Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX
  Changed the comment for HA_STATE_RNEXT_SAME as a warning
  for future uses.
myisam/mi_delete.c:
  Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX
  Removing the flag HA_STATE_RNEXT_SAME from info->update
  if info->lastkey2 was reused for another purpose than
  index scanning.
myisam/mi_key.c:
  Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX
  Removing the flag HA_STATE_RNEXT_SAME from info->update
  if info->lastkey2 was reused for another purpose than
  index scanning.
myisam/mi_rnext_same.c:
  Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX
  Removed trailing space and fixed a comment.
myisam/mi_unique.c:
  Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX
  Removing the flag HA_STATE_RNEXT_SAME from info->update
  if info->lastkey2 was reused for another purpose than
  index scanning.
myisam/mi_update.c:
  Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX
  Removing the flag HA_STATE_RNEXT_SAME from info->update
  if info->lastkey2 was reused for another purpose than
  index scanning.
myisam/mi_write.c:
  Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX
  Removing the flag HA_STATE_RNEXT_SAME from info->update
  if info->lastkey2 was reused for another purpose than
  index scanning.
mysql-test/r/myisam.result:
  Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX
  Added test result.
mysql-test/t/myisam.test:
  Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX
  Added test.
2006-03-10 15:03:04 +01:00
unknown
0ee28e1a4d BUG#16489 - utf8 + fulltext leads to corrupt index file.
Fixed that UPDATE statement crashes multi-byte charset fulltext index.


myisam/ft_update.c:
  Fixed that UPDATE statement crashes multi-byte charset fulltext index.
  While updating, always rewrite multi-byte charset fulltext index.
mysql-test/r/fulltext2.result:
  Added a testcase for BUG#16489.
mysql-test/t/fulltext2.test:
  Added a testcase for BUG#16489.
2006-01-23 17:15:33 +04:00
unknown
2dcedd9cbc Fixes during review of new pushed code:
Remove wrong fix for Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
Safety fix for bug #13855 "select distinct with group by caused server crash"


client/mysqlimport.c:
  Remove not used variable
myisam/myisam_ftdump.c:
  Fixed compiler warning
sql/item_cmpfunc.cc:
  Removed compiler warning
sql/sql_handler.cc:
  Remove wrong fix for Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash.
  It's better to let mysql_lock_tables reopen the TABLE object in case of OPTIMIZE TABLE and fix items AFTER mysql_lock_table() instead of before
sql/sql_select.cc:
  Safety fix for bug #13855 "select distinct with group by caused server crash"
  The previous patch only removed the symptomps, this fix removed the cause of the problem
  (Which was that not all hidden_fields was stored in the temporary table)
2006-01-06 21:42:17 +02:00
unknown
3cd1e9765c BUG#11336 - fulltext index corruption after repair_by_sort and mi_delete
for uca collation isalnum and strnncollsp don't agree on whether
0xC2A0 is a space (strnncollsp is right, isalnum is wrong).

they still don't, the bug was fixed by avoiding strnncollsp
2005-12-18 13:30:01 +01:00
unknown
69e0cc6d41 Merge a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-4.0
into  a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-4.1


client/mysql.cc:
  Auto merged
client/mysqladmin.cc:
  Auto merged
client/mysqlbinlog.cc:
  Auto merged
client/mysqlcheck.c:
  Auto merged
client/mysqldump.c:
  Auto merged
client/mysqlimport.c:
  Auto merged
client/mysqlshow.c:
  Auto merged
isam/isamchk.c:
  Auto merged
myisam/myisamchk.c:
  Auto merged
myisam/myisampack.c:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sql_parse.cc:
  Merged from 4.0.
2005-12-04 15:34:47 +02:00
unknown
60f2e7a9a4 A set of Netware related patches.
client/mysql.cc:
  Fixed option name.
client/mysqladmin.c:
  Fixed option name.
client/mysqlbinlog.cc:
  Fixed option name.
client/mysqlcheck.c:
  Fixed option name.
client/mysqldump.c:
  Fixed option name.
client/mysqlimport.c:
  Fixed option name.
client/mysqlshow.c:
  Fixed option name.
isam/isamchk.c:
  Fixed option name.
myisam/myisamchk.c:
  Fixed option name.
myisam/myisampack.c:
  Fixed option name.
sql/sql_parse.cc:
  Fix problem with kill connection on NetWare.
2005-12-04 15:02:06 +02:00
unknown
8778a5df5a followup for for the bug#5686 2005-11-26 19:36:11 +01:00
unknown
dc44851352 Fix for BUG#5686 - #1034 - Incorrect key file for table - only utf8
myisam/ft_parser.c:
  word->len calculation correction.
mysql-test/r/fulltext.result:
  Test case for bug#5686.
mysql-test/t/fulltext.test:
  Test case for bug#5686.
2005-11-12 11:25:14 +04:00
unknown
224e85536e Merge mysql.com:/home/psergey/mysql-4.1-bug13814
into mysql.com:/home/psergey/mysql-4.1-nov08-push
2005-11-08 05:36:25 +03:00
unknown
fffe741705 Review of new pushed code
Removed wrong fix for bug #14009 (use of abs() on null value causes problems with filesort)
Mark that add_time(), time_diff() and str_to_date() can return null values


myisam/mi_check.c:
  keyoffset is not a position (no %lx here)
mysql-test/r/func_sapdb.result:
  Fixed test after marking that timediff() can return NULL
sql/item_func.cc:
  Removed wrong fix for bug #14009 (use of abs() on null value causes problems with filesort)
sql/item_timefunc.cc:
  Mark that add_time and str_to_date() can return null values
sql/item_timefunc.h:
  Mark that time_diff can return 0
sql/spatial.cc:
  Simple cleanups during review of new code
2005-11-01 13:00:02 +02:00
unknown
81882f7127 Fix for BUG#13814: in mi_pack_key(), when processing NULL value for TINYBLOB key segment,
do advance the source pointer over 2 bytes that specify value length.


myisam/mi_key.c:
  Fix for BUG#13814: in mi_pack_key(), when processing NULL value for TINYBLOB key segment,
  do advance the source pointer over 2 bytes that specify value length (for NULL value the 
  format is: null_marker 0x01, value length 0x00 0x00, data: 0x00 keyseg->length times).
  We need to advance over 2 bytes separately as keyseg->length doesn't include them.
mysql-test/r/myisam.result:
  Testcase for BUG#13814
mysql-test/t/myisam.test:
  Testcase for BUG#13814
2005-10-28 23:31:32 +04:00
unknown
6e49a48a25 Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-4.1
into  ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-4.1


myisam/mi_check.c:
  Auto merged
2005-10-25 12:12:10 +03:00
unknown
b31dd53c85 Changed some dbug print options.
myisam/mi_check.c:
  Changed print style for keyoffset.
myisam/mi_delete.c:
  Changed print style for keypos.
2005-10-25 12:11:31 +03:00
unknown
8d6634c9e0 Added more tests for new UPDATE ... ORDER BY ... LIMIT optimization
heap/_check.c:
  Change arguments to ha_key_cmp
heap/hp_create.c:
  Change arguments to ha_key_cmp
include/my_base.h:
  Remove SEARCH_RETURN_B_POS and instead always send an array to ha_key_cmp() as last argument
myisam/mi_check.c:
  Change arguments to ha_key_cmp
myisam/mi_rnext_same.c:
  Change arguments to ha_key_cmp
myisam/mi_search.c:
  Change arguments to ha_key_cmp
myisam/mi_write.c:
  Change arguments to ha_key_cmp
myisammrg/myrg_queue.c:
  Change arguments to ha_key_cmp
mysys/my_handler.c:
  Remove SEARCH_RETURN_B_POS and instead always send an array to ha_key_cmp() as last argument
  (This removes an if in a loop at the expensive of an int on the stack)
sql/records.cc:
  Simplify new rr_index() code
  Create common error handling function for rr_() functions.
  Remove loop from rr_index() as handler::index_next() can never return HA_ERR_RECORD_DELETED
sql/sql_load.cc:
  Simplify
sql/sql_update.cc:
  Simplify code
  Fixed bug when one is updating an index column that could be used with ORDER BY
sql/structs.h:
  Removed not needed structure element
2005-10-25 02:27:40 +03:00
unknown
3c02a0534d Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/psergey/mysql-4.1-nulls-stats-r2


sql/mysqld.cc:
  Auto merged
2005-10-23 02:49:57 +04:00
unknown
02dc7bfb1a BUG#9622: post-review-fixes: better comments 2005-10-23 02:46:10 +04:00
unknown
71fdef4d10 BUG#9622, stage 2, work together with fix for BUG#12232:
added "nulls_ignored" index statistics collection method for MyISAM tables.
(notification trigger: this is about BUG#9622).


include/my_base.h:
  BUG#9622: Added MI_STATS_METHOD_IGNORE_NULLS statistics collection method:
  Added SEARCH_RETURN_B_POS flag for ha_key_cmp()
include/my_handler.h:
  BUG#9622: Added MI_STATS_METHOD_IGNORE_NULLS statistics collection method: added ha_find_null()
include/myisam.h:
  BUG#9622: Added MI_STATS_METHOD_IGNORE_NULLS statistics collection method.
myisam/mi_check.c:
  BUG#9622: Added MI_STATS_METHOD_IGNORE_NULLS statistics collection method, added 
   mi_collect_stats_*(), updated update_key_parts() to deal with all 3 methods.
myisam/myisamchk.c:
  BUG#9622: Added nulls_ignored index statistics collection method for MyISAM
myisam/myisamdef.h:
  BUG#9622: Added MI_STATS_METHOD_IGNORE_NULLS statistics collection method.
myisam/sort.c:
  BUG#9622: Added MI_STATS_METHOD_IGNORE_NULLS statistics collection method.
mysql-test/r/myisam.result:
  Testcase for BUG9622
mysql-test/t/myisam.test:
  Testcase for BUG9622
mysys/my_handler.c:
  BUG#9622: ha_key_cmp() now supports new SEARCH_RETURN_B_POS flag, added ha_find_null()
sql/ha_myisam.cc:
  BUG#9622: Added MI_STATS_METHOD_IGNORE_NULLS statistics collection method.
sql/mysqld.cc:
  BUG#9622: Added MI_STATS_METHOD_IGNORE_NULLS statistics collection method.
2005-10-21 06:29:17 +04:00
unknown
5de7ba46e8 Merge mysql.com:/usr/home/ram/work/mysql-4.0
into  mysql.com:/usr/home/ram/work/mysql-4.1


myisam/mi_search.c:
  Auto merged
include/m_string.h:
  SCCS merged
2005-10-13 12:48:30 +05:00
unknown
6c89848de9 memcpy_overlap() removed, as
1. it's wrong to use memcpy() for overlapped areas;
  2. we use it only once.
During merge to 4.1 will remove a memcpy_overlap() call 
from strings/ctype-tis620.c as well in order to fix 
bug #10836: ctype_tis620 test failure with ICC-compiled binaries on IA64.


myisam/mi_search.c:
  use memmove() instead, as memcpy_overlap() is removed.
2005-10-12 18:50:25 +05:00
unknown
0ecbc17ccc Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/home/my/mysql-4.1
2005-10-07 04:02:53 +03:00