Commit graph

1427 commits

Author SHA1 Message Date
unknown
52ee9687a2 Merge ltantony.rdg.cyberkinetica.homeunix.net:/usr/home/staff/repositories/mysql-4.0
into ltantony.rdg.cyberkinetica.homeunix.net:/usr/home/antony/work/bug4118


sql/sql_parse.cc:
  Auto merged
2004-10-03 00:25:09 +01:00
unknown
a49f5cae9a Bug#4118: multi-table UPDATE takes WRITE lock on read table
Ensures that WRITE lock is not obtained on all tables referenced.


mysql-test/r/lock_multi.result:
  Bug#4118
    New test for multi-update locking
mysql-test/r/multi_update.result:
  Bug#4118
    Fix test
mysql-test/t/lock_multi.test:
  Bug#4118
    New test for multi-update locking
mysql-test/t/multi_update.test:
  Bug#4118
    Fix test
sql/sql_parse.cc:
  Bug#4118
    Split multi-update to its own case statement in sql_parse.cc
sql/sql_update.cc:
  Bug#4118
    Overview of locking checking:    
      1. Open and acquire READ lock
      2. Check to see which tables need WRITE lock
      3. Unlock tables and relock
sql/sql_yacc.yy:
  Bug#4118
    Split multi-update to its own case statement in sql_parse.cc
2004-10-03 00:20:47 +01:00
unknown
fb1407d563 Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/dlenev/src/mysql-4.0-bg4131-3


sql/sql_parse.cc:
  Auto merged
2004-09-27 00:50:29 +04:00
unknown
e6f924efe5 Fix for bug #4131 "TIMESTAMP columns missing minutes and seconds when
using GROUP BY"
Now we are setting Field_timestamp::field_length to 19 in open_table()
if we are in new mode (and we are restoring it back when we are coming
back to normal mode). This also should solve potential problems with
some of LOAD DATA INFILE and SELECT * INTO in this mode.


mysql-test/r/type_timestamp.result:
  Added test for bug #4131 'TIMESTAMP columns missing minutes and seconds
  when using GROUP BY' and other --new mode related behavior.
mysql-test/t/type_timestamp.test:
  Added test for bug #4131 'TIMESTAMP columns missing minutes and seconds
  when using GROUP BY' and other --new mode related behavior.
sql/field.cc:
  Added Field_timestamp::orig_field_length member for saving original
  field_length value, because this member can be modified if new_mode is
  in effect.
  Lot of Field_timestamp code simplified and Field_timestamp::make_field()
  is no longer needed because we are setting field_length to 19 if we are
  in --new mode now.
sql/field.h:
  Added Field_timestamp::orig_field_length member for saving original
  field_length value, because this member can be modified if new_mode
  is in effect. 
  Field_timestamp::make_field() is no longer needed because we are setting
  field_length to 19 if we are in --new mode now.
sql/sql_base.cc:
  If --new mode is in effect all TIMESTAMP fields should pretend that they
  have length of 19. We are achieving this by setting 
  Field_timestamp::field_length to 19 (or original value) in open_table().
  We are using TABLE::timestamp_mode variable for avoiding of unnecessary
  looping over all fields of the table and setting field_length if table
  was used with same new_mode value before.
  
  Note: We do not introduce general framework for setting up Field objects
  for usage with current THD here because this fix is only needed in 4.0
  and Monty said that we will also remove looping over all fields when
  updating table_name member at some point. This more general framework
  will also complicate nice optimization with avoiding of unneeded looping.
sql/sql_parse.cc:
  Now when we are creating TIMESTAMP(19) fields by default in --new mode,
  otherwise we will have unaligned behavior between ALTER and CREATE.
sql/table.h:
  Added TABLE::timestamp_mode field for saving information whenever we set 
  field_length members of table's TIMESTAMP fields to 19 (to honor 
  new_mode) or they have original values.
2004-09-27 00:50:00 +04:00
unknown
d7281b331a Fix for bug #5595: NULLIF() IS NULL returns false if NULLIF() returns NULL 2004-09-18 13:06:44 +04:00
unknown
e84eb55a07 Bug#5553 - Multi table UPDATE IGNORE fails on dup key
We don't want the update to abort when IGNORE is specified


mysql-test/r/update.result:
  Bug#5553 - UPDATE IGNORE fails on dup key
    New test
mysql-test/t/update.test:
  Bug#5553 - UPDATE IGNORE fails on dup key
    New test
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2004-09-17 12:07:59 +01:00
unknown
cc98eea53b A fix (bug #5498 TRIM fails with LEADING or TRAILING if remstr = str). 2004-09-13 14:25:43 +05:00
unknown
c36356b6a4 Bug #5447 Select does not find records
Note, there is no need to propagate this change into 4.1.


mysql-test/r/ctype_latin1_de.result:
  Bug #5447 Select does not find records
mysql-test/t/ctype_latin1_de.test:
  Bug #5447 Select does not find records
strings/ctype-latin1_de.c:
  Bug #5447 Select does not find records
2004-09-09 12:23:10 +05:00
unknown
419ca7152f Merge rurik.mysql.com:/home/igor/mysql-4.0
into rurik.mysql.com:/home/igor/dev/mysql-4.0-0
2004-09-07 10:08:17 -07:00
unknown
95036003c6 select.test:
Added newline at the end of file.


mysql-test/t/select.test:
  Added newline at the end of file.
2004-09-07 10:03:46 -07:00
unknown
3a476a6e91 clean up at end of test (thanks serg)
mysql-test/r/rpl_set_charset.result:
  result update
mysql-test/t/rpl_set_charset.test:
  clean up on slave too.
2004-09-07 14:20:48 +02:00
unknown
e205392de7 cleanup 2004-09-07 13:36:27 +02:00
unknown
00080aa7c3 A new test for the fix for BUG#4500 ("SET CHARACTER SET replicates incorrectly").
As I cannot be 100% sure that there won't be issues with some of our exotic platforms
(who knows if the charset of <obscure old OS> will play fair?), I'll send an email to the build guys.
Well, this holds if bk does not crash on binary chars of this cset.
2004-09-07 11:15:23 +02:00
unknown
982a78829a bug#5389 merge.test fails on qnx - uninitalized variable in myrg_open()
myisammrg/myrg_open.c:
  backport from 4.1
mysql-test/r/union.result:
  after merge fix
mysql-test/t/union.test:
  after merge fix
sql/log.cc:
  backward compatibility: inhibit severity labels in error log
2004-09-06 22:20:40 +02:00
unknown
50bde49309 Merge bk-internal:/home/bk/mysql-4.0/
into serg.mylan:/usr/home/serg/Abk/mysql-4.0


mysql-test/r/union.result:
  Auto merged
mysql-test/t/union.test:
  Auto merged
2004-09-06 20:18:41 +02:00
unknown
e9a4045252 union.test: drop table added
BitKeeper/etc/ignore:
  Added support-files/my-innodb-heavy-4G.cnf to the ignore list
mysql-test/r/union.result:
  drop table added
mysql-test/t/union.test:
  drop table added
2004-09-05 11:27:31 +02:00
unknown
8838c971fa A fix (Bug #4980: union statement with () union () order by produces wrong explain). 2004-09-03 19:59:29 +05:00
unknown
182688f01f Merge rurik.mysql.com:/home/igor/mysql-4.0
into rurik.mysql.com:/home/igor/dev/mysql-4.0-0


sql/sql_select.cc:
  Auto merged
2004-09-02 22:07:07 -07:00
unknown
afac3c3127 select.result, select.test:
Added a test case for bug #5333.
null_key.result, key_primary.result:
  Made covering index usable for const tables.
sql_select.cc:
  Made covering index usable for const tables:
  downported the corresponding code from 4.1.
  Simultaneously fixed bug #5333 reported for 4.1.
  The bug was due to the fact that field index in join
  structures was always set to 0 for const tables.


sql/sql_select.cc:
  Made covering index usable for const tables:
  downported the corresponding code from 4.1.
  Simultaneously fixed bug #5333 reported for 4.1.
  The bug was due to the fact that field index in join
  structures was always set to 0 for const tables.
mysql-test/t/select.test:
  Added a test case for bug #5333.
mysql-test/r/key_primary.result:
  Made covering index usable for const tables.
mysql-test/r/null_key.result:
  Made covering index usable for const tables.
mysql-test/r/select.result:
  Added a test case for bug #5333.
2004-09-02 22:06:30 -07:00
unknown
e230217f4d Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.0
into gw.mysql.r18.ru:/usr/home/ram/work/4.0.b5232
2004-09-02 16:25:32 +05:00
unknown
0c549e366c - removed mysql-test/t/flush_block_commit-master.opt as it collided
with the sleep value we use for the test suite run during the
   release builds


BitKeeper/deleted/.del-flush_block_commit-master.opt~3bcd295d5bf68796:
  Delete: mysql-test/t/flush_block_commit-master.opt
2004-08-30 09:20:52 +02:00
unknown
db15b91915 Code style fixes.
Initialize LOG_error_log before get_options to not use an uninitalized mutex in case of an error from handle_options()


mysql-test/r/lowercase_table.result:
  Changed foo database -> mysqltest
  More test cases
mysql-test/t/lowercase_table.test:
  Changed foo database -> mysqltest
  More test cases
mysys/my_getopt.c:
  Fix new code to use MySQL indentation style
sql/log.cc:
  Change to use MySQL indentation style and naming conventions
  Remove usage of strlen() and strcat()
sql/mysqld.cc:
  Initialize LOG_error_log before get_options to not use an uninitalized mutex in case of an error from handle_options()
sql/sql_base.cc:
  Added comment
sql/table.cc:
  Added #if MYSQL_VERSION_ID < 40100 to ensure code is merged correctly
2004-08-28 00:49:54 +03:00
unknown
bf26880291 A fix (Bug #5232: CREATE TABLE ... SELECT can deadlock itself). 2004-08-27 16:43:01 +05:00
unknown
3b55c6f394 Test case for Bug #4792 lower_case_table_names does not resolve db.tbl.column in SELECT list
lowercase_table.result:
  New results for modified lowercase_table test
lowercase_table.test:
  Added test case for all uppercase database when running under lower_case_table_names.  This really only failed under Windows.  Bug# 4792


mysql-test/t/lowercase_table.test:
  Added test case for all uppercase database when running under lower_case_table_names.  This really only failed under Windows.  Bug# 4792
mysql-test/r/lowercase_table.result:
  New results for modified lowercase_table test
2004-08-25 17:25:38 +02:00
unknown
b758a6d142 Fix for bug #4340: find_in_set is case insensitive even on binary operators(2nd version)
mysql-test/r/func_set.result:
  Fix for bug #4340: find_in_set is case insensitive even on binary operators
mysql-test/t/func_set.test:
  Fix for bug #4340: find_in_set is case insensitive even on binary operators
sql/item_func.cc:
  Fix for bug #4340: find_in_set is case insensitive even on binary operators
2004-08-24 17:29:08 +04:00
unknown
696a303547 Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/mysql_src/mysql-4.0
2004-08-23 17:16:22 +02:00
unknown
1e86cd1ed1 Merge sgluhov@bk-internal.mysql.com:/home/bk/mysql-4.0
into gluh.mysql.r18.ru:/home/gluh/MySQL-BUGS/mysql-4.0
2004-08-23 19:16:21 +04:00
unknown
6d9046c6e7 Fix for bug #5134: WHERE x = 'bar' AND x LIKE BINARY 'bar' returns
wrong results
2004-08-23 19:13:47 +04:00
unknown
e9c25d9336 Fix for BUG#5033 "When using temporary tables truncate does NOT reset the auto_increment counter"
(ok'd by CTO to fix it in 4.0).
Fix to make mysql-test-run work with all Valgrind versions.


mysql-test/mysql-test-run.sh:
  fixing mysql-test-run.sh so that it works indifferently with Valgrind 1.x, 2.x
  (versions <= 2.0.0 refuse --tool option; versions >=2.1.2 require it; 2.1.0 accepts it).
  I hope the shell code is portable enough; anyway Valgrind only runs on Linux...
  I tested it with 2.0.0, 2.1.0, 2.1.2.
mysql-test/r/truncate.result:
  result update
mysql-test/t/truncate.test:
  testing if TRUNCATE resets autoinc counter for temp tables (BUG#5033); testing difference with DELETE FROM.
sql/sql_delete.cc:
  in mysql_truncate(), always reset the autoinc counter, as manual says (even if it's a temp table, which was BUG#5033).
2004-08-23 16:15:57 +02:00
unknown
b7e4463dac Fixed: BUG#5135: cannot turn on log_warnings with SET in 4.1 (and 4.0)
mysql-test/r/variables.result:
  Test case for BUG#5135, check that setting log_warnings actually works.
mysql-test/t/variables.test:
  Test case for BUG#5135, check that setting log_warnings actually works.
sql/mysqld.cc:
  Set a max value for log_warnings, so se can set it to something other than 0.
2004-08-23 15:29:55 +02:00
unknown
c1fd20bb5e null.test, null.result:
Added test case for bug #4256.
join_outer.result:
  Fixed bug #4256.
item_cmpfunc.h:
  Fixed inconsistency of values of used_tables_cache and
  const_item_cache for Item_func_isnull objects.
  This inconsistency caused bug #4256.


sql/item_cmpfunc.h:
  Fixed inconsistency of values of used_tables_cache and
  const_item_cache for Item_func_isnull objects.
  This inconsistency caused bug #4256.
mysql-test/r/join_outer.result:
  Fixed bug #4256.
mysql-test/r/null.result:
  Added test case for bug #4256.
mysql-test/t/null.test:
  Added test case for bug #4256.
2004-08-20 23:48:30 -07:00
unknown
4f0e2da316 Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/mysql_src/mysql-4.0
2004-08-20 17:16:03 +02:00
unknown
cd8054d431 Making FLUSH TABLES WITH READ LOCK block COMMITs of existing transactions,
in a deadlock-free manner. This splits locking the global read lock in two steps.
This fixes a consequence of this bug, known as:
BUG#4953 'mysqldump --master-data may report incorrect binlog position if using InnoDB'
And a test.


sql/handler.cc:
  making COMMIT wait if FLUSH TABLES WITH READ LOCK happened.
sql/lock.cc:
  an additional stage so that FLUSH TABLES WITH READ LOCK blocks COMMIT:
  make_global_read_lock_block_commit():
  taking the global read lock is TWO steps (2nd step is optional; without
  it, COMMIT of existing transactions will be allowed):
  lock_global_read_lock() THEN make_global_read_lock_block_commit().
sql/mysql_priv.h:
  new argument to wait_if_global_read_lock()
sql/sql_class.h:
  THD::global_read_lock now an uint to reflect the 2 steps of global read lock (does not block COMMIT / does)
sql/sql_db.cc:
  update for new prototype
sql/sql_parse.cc:
  implementing the two steps of global read lock so that FLUSH TABLES WITH READ LOCK can block COMMIT without deadlocking with COMMITs.
2004-08-20 16:35:23 +02:00
unknown
432a0f3683 less strict assert to take into account weird cases 2004-08-19 23:10:33 +02:00
unknown
ac866d9e94 Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/mysql_src/mysql-4.0
2004-08-19 00:43:48 +02:00
unknown
95334ac6c7 Fix for BUG#4971 "CREATE TABLE ... TYPE=HEAP SELECT ... stops slave (wrong DELETE in binlog)":
replacing the no_log argument of mysql_create_table() by some safer method
(temporarily setting OPTION_BIN_LOG to 0) which guarantees that even the automatic
DELETE FROM heap_table does not get into the binlog when a not-yet-existing HEAP table
is opened by mysql_create_table().


mysql-test/r/rpl_heap.result:
  result update
mysql-test/t/rpl_heap.test:
  testing a bug
sql/log.cc:
  new class Disable_binlog used to temporarily disable binlogging for one thread.
sql/mysql_priv.h:
  removing argument no_log from mysql_create_table(); no_log was perfect as some
  binlogging could still be done by open_unireg_entry() for a HEAP table.
sql/sql_class.h:
  new class Disable_binlog used to temporarily disable binlogging for one thread.
sql/sql_parse.cc:
  removing no_log
sql/sql_table.cc:
  removing no_log from mysql_create_table(); instead using new class Disable_binlog.
  Disabling binlogging in some cases, where the binlogging is done later by some other code
  (case of CREATE SELECT and ALTER).
2004-08-19 00:29:11 +02:00
unknown
0c6b96658e Bug 4937: different date -> string conversion when using
SELECT ... UNION and INSERT ... SELECT ... UNION
2004-08-18 14:46:31 +02:00
unknown
4dfe16c287 Merge vvagin@bk-internal.mysql.com:/home/bk/mysql-4.0
into eagle.mysql.r18.ru:/home/vva/work/BUG_4358/mysql-4.0
2004-08-13 02:27:21 +05:00
unknown
a88902033a Merge eagle.mysql.r18.ru:/home/vva/work/mysql.orig/clear/mysql-4.0
into eagle.mysql.r18.ru:/home/vva/work/BUG_4358/mysql-4.0


sql/sql_select.cc:
  Auto merged
2004-08-13 02:25:50 +05:00
unknown
7e5247aade fixed Bug #4358 Problem with HAVING clause that uses alias
from the select list and TEXT field 

make setup_copy_fields to insert Item_copy_string for blobs in 
the beginning of the copy_funcs (push_back instead of push_front)

the thing is that Item_copy_string::copy for function can call 
Item_copy_string::val_int for blob via Item_ref.
But if Item_copy_string::copy for blob isn't called before, 
it's value will be wrong.

So all the Item_copy_string::copy for blobs should be called before 
Item_copy_string::copy for functions.


mysql-test/r/having.result:
  added test case for
  Bug #4358 Problem with HAVING clause that uses
              alias from the select list and TEXT field
mysql-test/t/having.test:
  added test case for
  Bug #4358 Problem with HAVING clause that uses
              alias from the select list and TEXT field
sql/sql_select.cc:
  make setup_copy_fields to insert Item_copy_string for blobs in 
  the beginning of the copy_funcs (push_back instead of push_front)
  
  the thing is that Item_copy_string::copy for function can call 
  Item_copy_string::val_int for blob via Item_ref.
  But if Item_copy_string::copy for blob isn't called before, 
  it's value will be wrong.
  
  So all the Item_copy_string::copy for blobs should be called before 
  Item_copy_string::copy for functions.
  
  fixed 
  Bug #4358 Problem with HAVING clause that
             uses alias from the select list and TEXT field
2004-08-12 20:37:31 +05:00
unknown
ab9b33597e Added initial sorting in order to make test case repeatable. 2004-08-12 16:02:12 +05:00
unknown
1b666071d1 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.0
into gw.mysql.r18.ru:/usr/home/ram/work/4.0.b4898
2004-08-12 14:59:33 +05:00
unknown
6bd68efaf6 A test case (bug #4898: User privileges depending on ORDER BY Settings of table db) 2004-08-12 14:49:16 +05:00
unknown
acf5df3a6d Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into pcgem.rdg.cyberkinetica.com:/usr/home/acurtis/work/bug4411


BitKeeper/etc/logging_ok:
  auto-union
2004-08-11 23:26:44 +01:00
unknown
4f08c4b726 Bug#4411
Fix for server hang bug


mysql-test/r/heap.result:
  Bug#4411
    Test for server hang bug
mysql-test/t/heap.test:
  Bug#4411
    Test for server hang bug
sql/opt_sum.cc:
  Bug#4411
    Allow code to exit the loop.
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2004-08-11 23:24:36 +01:00
unknown
4c6f6c60d5 Merge bk-internal:/home/bk/mysql-4.0/
into serg.mylan:/usr/home/serg/Abk/mysql-4.0
2004-08-11 23:44:08 +02:00
unknown
ab64eb64af Bug #4797 - 32 bit and 64 bit builds behave differently on int32 overflow
include/my_global.h:
  uint_max constants moved from sql_analyse.cc
sql/sql_analyse.cc:
  cleanup
2004-08-11 23:43:41 +02:00
unknown
5ee446d9d0 - fixed non-predictable floating point results in func_math by adding
format() around them (as suggested by serg)
2004-08-11 13:11:59 +02:00
unknown
3a00469e4a Fix for bug #4491 "timestamp(19) doesn't work".
We should allow 19 as length of newly created TIMESTAMP fields.


mysql-test/r/type_timestamp.result:
  Added test of TIMESTAMP(19) support.
mysql-test/t/type_timestamp.test:
  Added test of TIMESTAMP(19) support.
sql/sql_parse.cc:
  add_field_to_list(): TIMESTAMP columns should also support 19 as length since it is
  length of 4.1 compatible representation.
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2004-08-06 12:15:40 +04:00
unknown
d14a27fdad bug#4816. index search for NULL in blob 2004-08-01 13:26:01 +02:00