Commit graph

5662 commits

Author SHA1 Message Date
unknown
b0829011b8 Fix Bug#14672 Bug in deletion
mysql-test/r/csv.result:
  correct result file
mysql-test/t/csv.test:
  Add test for a bug
sql/examples/ha_tina.cc:
  Add O_APPEND flag to my_open. We should always add rows to the end of file
2005-11-06 02:11:12 +03:00
unknown
1b65c70413 Fix Bug#13894 Server crashes on update of CSV table
mysql-test/r/csv.result:
  update result file
mysql-test/t/csv.test:
  Add test for a bug
sql/examples/ha_tina.cc:
  sort function should return reverted values for chains to be sorted in
  the right orded. don't do a strange memmove
2005-11-05 15:08:15 +03:00
unknown
b0701a5c3b Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/Users/kent/mysql/bk/mysql-4.1-distcheck


Makefile.am:
  Auto merged
configure.in:
  Auto merged
mysql-test/Makefile.am:
  Auto merged
2005-11-04 01:15:35 +01:00
unknown
7d183320b0 Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
Version for 4.0.
It fixes two problems:
1. The cause of the bug was that we did not check the table version for
   the HANDLER ... READ commands. We did not notice when a table was
   replaced by a new one. This can happen during ALTER TABLE, REPAIR
   TABLE, and OPTIMIZE TABLE (there might be more cases). I call the fix
   for this problem "the primary bug fix".
2. mysql_ha_flush() was not always called with a locked LOCK_open.
   Though the function comment clearly said it must.
   I changed the code so that the locking is done when required. I call
   the fix for this problem "the secondary fix".


mysql-test/r/handler.result:
  Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
  The test result.
mysql-test/t/handler.test:
  Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
  The test case.
sql/mysql_priv.h:
  Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
  Changed a definition for the secondary fix.
sql/sql_base.cc:
  Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
  Changed function calls for the secondary fix.
sql/sql_class.cc:
  Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
  Changed a function call for the secondary fix.
sql/sql_handler.cc:
  Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
  The first two diffs make the primary bug fix.
  The rest is for the secondary fix.
sql/sql_table.cc:
  Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
  Changed function calls for the secondary fix.
2005-11-03 18:24:12 +01:00
unknown
1484d54821 Merge ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-4.0
into  ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-4.1


Makefile.am:
  Merged from 4.0
mysql-test/mysql-test-run.sh:
  Merged from 4.0
2005-11-03 13:02:05 +02:00
unknown
1fb1802e71 Changed mysql-test-run to correspond to the one in 5.0 tree. 2005-11-03 11:05:52 +02:00
unknown
1f37efa0ad Merge bk@192.168.21.1:mysql-4.1
into mysql.com:/home/hf/work/mysql-4.1.14183
2005-11-03 12:50:28 +04:00
unknown
03ed0d1d24 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1
into moonbone.local:/work/14186-bug-4.1-mysql


sql/sql_select.cc:
  Auto merged
sql/sql_select.h:
  Auto merged
2005-11-01 17:34:19 +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
8439e6a482 Fix for bug #14183 (ctype_cp983.test fails with the embedded server)
mysql-test/r/ctype_cp932.result:
  result fixed
mysql-test/t/ctype_cp932.test:
  these lines don't work in embedded-server
2005-11-01 13:18:46 +04:00
unknown
a006453fad Merge bk@192.168.21.1:/usr/home/bk/mysql-4.1
into deer.(none):/home/hf/work/mysql-4.1.12839


sql/field.cc:
  Auto merged
2005-10-31 12:24:43 +04:00
unknown
3a5a518de4 Merge bk-internal:/home/bk/mysql-4.1
into  mysql.com:/home/jimw/my/mysql-4.1-clean
2005-10-28 18:52:10 -07:00
unknown
cb90e54ec1 Merge pgalbraith@bk-internal.mysql.com:/home/bk/mysql-4.1
into  krsna.patg.net:/home/patg/mysql-build/mysql-4.1
2005-10-28 18:23:23 -07:00
unknown
693320149f Merge mysql.com:/home/jimw/my/mysql-4.1-13796
into  mysql.com:/home/jimw/my/mysql-4.1-clean
2005-10-28 18:19:19 -07:00
unknown
42155a35d1 Fix bug in handling of decimal fields in UNION statements that could
cause a crash or write to an incorrect memory location. (Bug #14216)


mysql-test/r/union.result:
  Update results
mysql-test/t/union.test:
  Add regression test
sql/item.cc:
  Set max_length for decimal fields correctly
2005-10-28 18:12:57 -07: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
d5bb660640 Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/psergey/mysql-4.1-bug14139
2005-10-28 21:42:01 +04:00
unknown
a7ed6ce441 Fix bug #14138 ROLLUP and PROCEDURE ANALYSE() hang server
Procedure analyse() redefines select's fields_list. setup_copy_fields() assumes
that fields_list is a part of all_fields_list. Because select have only 
3 columns and analyse() redefines it to have 10 columns, int overrun in
setup_copy_fields() occurs and server goes to almost infinite loop.

Because fields_list used not only to send data ad fields types, it's wrong 
to allow procedure redefine it. This patch separates select's fileds_list 
and procedure's one. Now if procedure is present, copy of fields_list is 
created in procedure_fields_list and it is used for sending data and fields.


mysql-test/t/analyse.test:
  Test case for bug #14138  ROLLUP and PROCEDURE ANALYSE() hang server
mysql-test/r/analyse.result:
  Test case for bug #14138  ROLLUP and PROCEDURE ANALYSE() hang server
sql/sql_select.h:
  Fix bug #14138  ROLLUP and PROCEDURE ANALYSE() hang server
  To JOIN  Added separate fields_list for procedure.
sql/sql_select.cc:
  Fix bug #14138  ROLLUP and PROCEDURE ANALYSE() hang server
  SELECT's fields_list and procedure's fields_list made split. If procedure is defined
  then procedure's fields_list is used to send fields and data.
2005-10-28 15:24:46 +04:00
unknown
6020281e95 Fix bug#14186 select datefield is null not updated
Date field was declared as not null, thus expression 'datefield is null'
was always false. For SELECT special handling of such cases is used. 
There 'datefield is null' converted to 'datefield eq "0000-00-00"'.

In mysql_update() before creation of select added remove_eq_conds() call.
It makes some optimization of conds and in particular performs conversion
from 'is null' to 'eq'. 
Also remove_eq_conds() makes some evaluation of conds and if it founds that
conds is always false then update statement is not processed further.
All this allows to perform some update statements process faster due to
optimized conds, and not wasting resources if conds known to be false. 


sql/sql_select.cc:
  Fix bug#14186  select datefield is null not updated
  Remove static from remove_eq_conds()
sql/sql_select.h:
   Fix bug#14186  select datefield is null not updated
  Added remove_eq_conds() prototype.
mysql-test/r/update.result:
  Test case for  bug#14186  select datefield is null not updated
mysql-test/t/update.test:
  Test case for  bug#14186  select datefield is null not updated
sql/sql_update.cc:
  Fix bug#14186  select datefield is null not updated
  To mysql_update() added call to remove_eq_conds() to optimize conds and convert 'datefield is null' to 'datefield eq 0000-00-00'
2005-10-28 01:24:11 +04:00
unknown
5e8515d9f2 Merge mysql.com:/home/jimw/my/mysql-4.1-14009
into  mysql.com:/home/jimw/my/mysql-4.1-clean


sql/item_func.cc:
  Auto merged
2005-10-27 10:20:38 -07:00
unknown
fb94ffdaf5 select.result:
After merge fix


mysql-test/r/select.result:
  After merge fix
2005-10-27 18:36:11 +04:00
unknown
111b40e156 Manually merged
include/config-netware.h:
  Auto merged
sql/sql_select.cc:
  Auto merged
mysql-test/r/select.result:
  Manually merged fix for bug#13855
mysql-test/t/select.test:
  Manuall merged fix for bug#13855
2005-10-27 17:44:28 +04:00
unknown
6ec1c061a8 Merge abarkov@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/usr/home/bar/mysql-4.1.b13347
2005-10-27 13:41:09 +05:00
unknown
fff4e673fa Merge pgalbraith@bk-internal.mysql.com:/home/bk/mysql-4.1
into  krsna.patg.net:/home/patg/mysql-build/mysql-4.1


mysql-test/mysql-test-run.pl:
  Auto merged
mysql-test/mysql-test-run.sh:
  Auto merged
2005-10-26 09:22:47 -07:00
unknown
dd1dc7def9 mysql-test-run.pl:
Added MTR_BUILD_THREAD to control the port range


mysql-test/mysql-test-run.pl:
  Added MTR_BUILD_THREAD to control the port range
2005-10-26 01:24:03 +02:00
unknown
8023bda59b Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/Users/kent/mysql/bk/mysql-4.1
2005-10-25 23:56:08 +02:00
unknown
cf59103d84 BUG# 12123
Made change to mysqlimport to set character_set_database to binary to 
make importing various charsets/columns work correctly.


client/mysqlimport.c:
  BUG# 12123
  
  Added 'set @@character_set_database=binary' to make loading of tables with
  mixed charset types and non-latin characters load.
mysql-test/mysql-test-run.pl:
  BUG #12123
  
  Added $MYSQL_IMPORT in order to test mysqlimport bug.
mysql-test/mysql-test-run.sh:
  BUG #12123
  
  Added $MYSQL_IMPORT in order to test mysqlimport bug.
mysql-test/r/mysqldump.result:
  BUG #12123
  
  Added dumping and reloading (using mysql, mysqldump, and mysqlimport) to
  show that this fix handles dumping and reloading of non-latin1 charsets
  in table with different charset columns (mixing of charsets, also can be a
  UTF table with latin1 tables). Note the select before and after dump and 
  restore - should be exact.
mysql-test/t/mysqldump.test:
  BUG #12123
  
  Added dumping and reloading (using mysql, mysqldump, and mysqlimport) to
  show that this fix handles dumping and reloading of non-latin1 charsets
  in table with different charset columns (mixing of charsets, also can be a
  UTF table with latin1 tables). Note the select before and after dump and 
  restore - should be exact. (results of this)
2005-10-25 14:50:08 -07:00
unknown
115bf43602 BUG#14139: When handling "CREATE TABLE(field_X type_spec,...) SELECT smth AS field_X, ...."
avoid multiplying length of field_X by charset->mbmaxlen twice when calculating space 
required for field_X in the new table.


mysql-test/r/create.result:
  Testcase for BUG#14139
mysql-test/t/create.test:
  Testcase for BUG#14139
sql/field.cc:
  BUG#14139: Make create_length_to_internal_length() save length-in-characters in 
  create_field::chars_length.
sql/field.h:
  BUG#14139: Add create_length::chars_length where we save length-in-characters, added comments.
sql/sql_table.cc:
  BUG#14139: When handling "CREATE TABLE(field_X type_spec,...) SELECT smth AS field_X, ...."
  we get two instances of create_field: (1) is occurence of field_X in create list, and (2) is
  in select list. If we figure they both refer to the same field, we "join" them according to
  some rule that is not explicitly specified anywhere.
  When we do this "join", create_field::length already contains length-in-bytes for both, so
  when we transfer field length (in characters) from (1) to (2), use length-in-characters that
  we have saved in create_length::chars_length.
2005-10-26 00:56:17 +04:00
unknown
5a9dc44dac Merge mysql.com:/home/jimw/my/mysql-4.1-12925
into  mysql.com:/home/jimw/my/mysql-4.1-clean


tests/mysql_client_test.c:
  Auto merged
2005-10-25 10:11:47 -07:00
unknown
b5dc243e3d Fix incorrect casts in my_getopt code that capped the maximum of longlong
options to the wrong value. (Bug #12925)


mysql-test/t/mysql_client_test.test:
  Add parameter for testing getopt bug
mysys/my_getopt.c:
  Remove incorrect and unnecessary casts
tests/mysql_client_test.c:
  Add test case for Bug #12925 (my_getopt bug)
2005-10-25 10:10:53 -07:00
unknown
947de78a36 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1
into moonbone.local:/work/14016-bug-4.1-mysql
2005-10-25 20:37:45 +04:00
unknown
b96dbef6fd Fix bug #14016 date_format() 2nd parameter was compared using case insensitive
collation

By default constant strings in second parameter of date_time() have case
insensitive collation. Because of this expressions date_format(f,'%m') and 
date_format(f,'%M') wrongly becomes equal, which results in choosing wrong 
column to sort by.

Now if second parameter of date_format() is constant then it's collation is 
changed to case sensitive.


sql/item_timefunc.cc:
  Fix bug #14016 date_format() 2nd parameter was compared using case insensitive collation.
  If second parameter of date_format() is constant then it's collation is changed to case sensitive.
mysql-test/r/date_formats.result:
  Test case for bug#14016 2nd parameter was compared using case insensitive collation
mysql-test/t/date_formats.test:
  Test case for bug#14016 2nd parameter was compared using case insensitive collation
2005-10-25 20:37:26 +04:00
unknown
45369edf57 Fix bug#13392 Wrong VALUES() behaviour in INSERT SELECT with ON DUPLICATE
VALUES() can only refer to table insert going to. 
But Item_insert_value::fix_fields() were passing to it's arg full table list,
This results in finding second column which shouldn't be found, and
failing with error about ambiguous field.

Item_insert_value::fix_fields() now passes only first table of full table
list.


sql/item.cc:
  Fix bug #14016 date_format() 2nd parameter was compared using case insensitive collation.
  If second parameter of date_format() is constant then it's collation is changed to case sensitive.
mysql-test/r/insert_select.result:
  Test case for bug#14016 2nd parameter was compared using case insensitive collation
mysql-test/t/insert_select.test:
  Test case for bug#14016 2nd parameter was compared using case insensitive collation
2005-10-25 20:04:12 +04:00
unknown
cabb72f27f Bug#13347: empty result from query with like and cp1250 charset
ctype-win1250ch.c:
  Like range prefix tables were wrong.
ctype_cp1250_ch.result, ctype_cp1250_ch.test:
  Adding test case.


strings/ctype-win1250ch.c:
  Bug#13347: empty result from query with like and cp1250 charset
  Like range prefix tables were wrong.
mysql-test/t/ctype_cp1250_ch.test:
  Adding test case.
mysql-test/r/ctype_cp1250_ch.result:
  Adding test case.
2005-10-25 14:49:04 +05:00
unknown
133ea93bc4 Merge mysql.com:/Users/kent/mysql/bk/mysql-4.0-build-thread
into mysql.com:/Users/kent/mysql/bk/mysql-4.1
2005-10-25 02:36:51 +02:00
unknown
2937201b88 Merge mysql.com:/Users/kent/mysql/bk/mysql-4.0-build-thread
into mysql.com:/Users/kent/mysql/bk/mysql-4.0
2005-10-25 02:29:08 +02:00
unknown
e17b176e9b Makefile.am:
Option to set environment variable MTR_BUILD_THREAD to a small
  number, from what mysql-test-run calculate port numbers that
  will not conflict with other runs with different thread num


Makefile.am:
  Option to set environment variable MTR_BUILD_THREAD to a small
  number, from what mysql-test-run calculate port numbers that
  will not conflict with other runs with different thread num
2005-10-25 02:27:55 +02: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
1c9783e854 Fix merge of test that left out a drop table.
mysql-test/r/loaddata.result:
  Update esults
mysql-test/t/loaddata.test:
  Add missing drop table
2005-10-21 19:54:34 -07:00
unknown
2750dc8766 Merge mysql.com:/home/jimw/my/mysql-4.1-11203
into  mysql.com:/home/jimw/my/mysql-4.1-clean


sql/sql_load.cc:
  Auto merged
mysql-test/r/loaddata.result:
  Resolve conflict
mysql-test/t/loaddata.test:
  Resolve conflict
2005-10-21 17:57:51 -07:00
unknown
c9978d8bcb Bug#13233
select distinct char(column) fails with utf8
ctype_utf8.result, ctype_utf8.test:
  Adding test case
sql_yacc.yy:
  Adding new syntax.
item_strfunc.h:
  Fixing wrong max_length calculation.
  Also, adding CHAR(x USING charset),
  for easier migrating from 4.1 to 5.0,
  according to Monty's suggestion.


sql/item_strfunc.h:
  Bug#13233
  select distinct char(column) fails with utf8
  Also, adding CHAR(x USING charset),
  for easier migrating from 4.1 to 5.0.
sql/sql_yacc.yy:
  Adding new syntax.
mysql-test/t/ctype_utf8.test:
  Adding test case
mysql-test/r/ctype_utf8.result:
  Adding test case
2005-10-21 14:41:56 +05: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
65ef7cc2f3 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  neptunus.(none):/home/msvensson/mysql/mysql-4.1
2005-10-20 10:28:52 +02:00
unknown
c3ac502ab1 Merge bk-internal:/home/bk/mysql-4.1
into  mysql.com:/home/jimw/my/mysql-4.1-clean
2005-10-18 10:49:28 -07:00
unknown
6c8c4fdace Merge mysql.com:/home/jimw/my/mysql-4.1-13334
into  mysql.com:/home/jimw/my/mysql-4.1-clean


sql/mysqld.cc:
  Auto merged
2005-10-18 09:45:12 -07:00
unknown
019b973212 Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-4.1
into  ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-4.1
2005-10-18 18:04:00 +03:00
unknown
c0eae8f0a1 Some fixes to avoid compiler warnings.
mysql-test/my_manage.c:
  Avoid warning: i not used in case of Windows.
mysql-test/mysql_test_run_new.c:
  Removed unused variable.
sql/item_func.cc:
  Removed unused variables.
strings/ctype-simple.c:
  Added cast.
strings/ctype-ucs2.c:
  Added cast.
2005-10-18 18:03:26 +03:00
unknown
7d81acb5e9 Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/psergey/mysql-4.1-bug12915-r2


sql/sql_update.cc:
  Auto merged
2005-10-18 14:08:50 +04:00
unknown
47b044f411 Fix Item_func_abs::fix_length_and_dec() to set maybe_null properly. (Bug #14009)
mysql-test/r/func_math.result:
  Add new results
mysql-test/t/func_math.test:
  Add new regression test
sql/item_func.cc:
  Set maybe_null in Item_func_abs::fix_length_and_dec().
2005-10-17 17:00:42 -07:00