Commit graph

14820 commits

Author SHA1 Message Date
ingo@chilla.local
518fcc8f80 Merge chilla.local:/home/mydev/mysql-5.0
into  chilla.local:/home/mydev/mysql-5.0-ateam
2006-07-06 15:59:03 +02:00
guilhem@gbichot3.local
3365337cef Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-5.0-rpl
into  gbichot3.local:/home/mysql_src/mysql-5.0
2006-07-06 14:46:52 +02:00
guilhem@gbichot3.local
dd84ef1b8a Merge gbichot3.local:/home/mysql_src/mysql-5.0-20524
into  gbichot3.local:/home/mysql_src/mysql-5.0
2006-07-06 14:42:47 +02:00
guilhem@mysql.com
140b488c96 Fix for BUG#20524 "auto_increment_* not observed when inserting
a too large value": the bug was that if MySQL generated a value for an
auto_increment column, based on auto_increment_* variables, and this value
was bigger than the column's max possible value, then that max possible
value was inserted (after issuing a warning). But this didn't honour
auto_increment_* variables (and so could cause conflicts in a master-master
replication where one master is supposed to generated only even numbers,
and the other only odd numbers), so now we "round down" this max possible
value to honour auto_increment_* variables, before inserting it.
2006-07-06 14:37:09 +02:00
dlenev@mysql.com
b429748fab Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  mysql.com:/home/dlenev/mysql-5.0-bg18437-3
2006-07-06 14:31:32 +04:00
acurtis@xiphis.org
4eee50de16 Merge xiphis.org:/home/antony/work2/mysql-5.0-engines
into  xiphis.org:/home/antony/work2/p2-bug8706.3-merge-5.0
2006-07-05 17:26:16 -07:00
guilhem@mysql.com
a43c4b0265 Fix for BUG#20188 "REPLACE or ON DUPLICATE KEY UPDATE in
auto_increment breaks binlog":
if slave's table had a higher auto_increment counter than master's (even
though all rows of the two tables were identical), then in some cases,
REPLACE and INSERT ON DUPLICATE KEY UPDATE failed to replicate
statement-based (it inserted different values on slave from on master).
write_record() contained a "thd->next_insert_id=0" to force an adjustment
of thd->next_insert_id after the update or replacement. But it is this
assigment introduced indeterminism of the statement on the slave, thus
the bug. For ON DUPLICATE, we replace that assignment by a call to
handler::adjust_next_insert_id_after_explicit_value() which is deterministic
(does not depend on slave table's autoinc counter). For REPLACE, this
assignment can simply be removed (as REPLACE can't insert a number larger
than thd->next_insert_id).
We also move a too early restore_auto_increment() down to when we really know
that we can restore the value.
2006-07-05 14:41:35 +02:00
ingo@mysql.com
a21071d912 Merge mysql.com:/home/mydev/mysql-4.1-bug14400
into  mysql.com:/home/mydev/mysql-5.0-ateam
2006-07-05 11:20:10 +02:00
ingo@mysql.com
20a152d5c3 Merge mysql.com:/home/mydev/mysql-4.1-bug11824
into  mysql.com:/home/mydev/mysql-5.0-ateam
2006-07-05 11:11:40 +02:00
kroki@mysql.com
acf47bdc37 Merge mysql.com:/home/tomash/src/mysql_ab/mysql-5.0
into  mysql.com:/home/tomash/src/mysql_ab/mysql-5.0-bug20570
2006-07-05 12:04:04 +04:00
kroki@mysql.com
821b540f2e Merge mysql.com:/home/tomash/src/mysql_ab/mysql-5.0
into  mysql.com:/home/tomash/src/mysql_ab/mysql-5.0-bug20570
2006-07-04 23:55:52 +04:00
konstantin@mysql.com
b99e11c8bd A fix and a test case for Bug#17843 "Certain stored procedures fail to
run at startup"

The server returned an error when trying to execute init-file with a 
stored procedure that could return multiple result sets to the client. 
A stored procedure can return multiple result sets if it contains 
PREPARE, SELECT, SHOW and similar statements.
   
The fix is to set client_capabilites|=CLIENT_MULTI_RESULTS in
sql_parse.cc:handle_bootstrap(). There is no "client" really, so 
nothing is ever sent. This makes init-file feature behave consistently: 
the prepared statements that can be called directly in the init-file 
can be used in a stored procedure too.

Re-committed the patch originally submitted by Per-Erik after review.
2006-07-04 23:46:15 +04:00
ingo@mysql.com
40c103478d Merge mysql.com:/home/mydev/mysql-4.0-bug14400
into  mysql.com:/home/mydev/mysql-4.1-bug14400
2006-07-04 19:10:13 +02:00
bar@mysql.com
3855520138 WL#2928 Date Translation NRE
(implemented by by Josh Chamas)
2006-07-04 17:40:40 +05:00
tomas@poseidon.ndb.mysql.com
0b2024ac88 Merge poseidon.ndb.mysql.com:/home/tomas/mysql-5.0
into  poseidon.ndb.mysql.com:/home/tomas/mysql-5.0-main
2006-07-04 12:47:07 +02:00
knielsen@rt.int.sifira.dk
7062993817 Merge mysqldev@production:my/mysql-5.0-release
into  rt.int.sifira.dk:/usr/local/mysql/tmp-5.0
2006-07-04 12:08:58 +02:00
tomas@poseidon.ndb.mysql.com
1e4ccec835 Merge poseidon.ndb.mysql.com:/home/tomas/mysql-5.0
into  poseidon.ndb.mysql.com:/home/tomas/mysql-5.0-release
2006-07-04 12:08:57 +02:00
tomas@poseidon.ndb.mysql.com
98874725e0 Bug #20784 Uninitialized memory in update on table with PK not on first column
- partial backport of code from 5.1, do cot compare_record for engines that do not read all columns during update
2006-07-04 11:43:06 +02:00
sergefp@mysql.com
d581287b34 Better comments for void Item::top_level_item() 2006-07-04 13:28:30 +04:00
gkodinov@mysql.com
ae0a3e0dbb Merge mysql.com:/home/kgeorge/mysql/5.0/teamclean
into  mysql.com:/home/kgeorge/mysql/5.0/B16110
2006-07-04 12:20:45 +03:00
gkodinov@mysql.com
b64089e655 Bug #16110: insert permitted into view col w/o default value
When compiling INSERT statements the check whether columns are provided values
depends on the flag whether a field is used in that query (Field::query_id).
However the check for updatability of VIEW columns (check_view_insertability())
was calling fix_fields() and thus setting the Field::query_id even for the 
view fields that are not referenced in the current INSERT statement.
So the correct check for columns without default values 
( check_that_all_fields_are_given_values() ) is assuming that all the VIEW
columns were mentioned in the INSERT field list and was issuing no 
warnings or errors.
Fixed check_view_insertability() to turn off the flag whether or not to set
Field::query_id (THREAD::set_query_id) before calling fix fields and restore
it when it's done.
2006-07-04 12:10:12 +03:00
konstantin@mysql.com
e87278f468 auxilliary -> auxiliary 2006-07-04 02:07:41 +04:00
konstantin@mysql.com
1781eee60f auxilliary -> auxiliary 2006-07-04 01:13:04 +04:00
tnurnberg@mysql.com
b3e368df19 Bug#20783: Valgrind uninitialised warning in test case ctype_uca
Two functions have different ideas of what a string should look like;
one of them reads memory it assumes the other one may have written.
And "if you assume ..."
  
We now use a more defensive variety of the assuming function, this fixes
a warning thrown by the valgrind tool.
2006-07-03 21:41:15 +02:00
lars@mysql.com
ded6f32ac8 Merge mysql.com:/users/lthalmann/bkroot/mysql-5.0-rpl
into  mysql.com:/users/lthalmann/bk/MERGE/mysql-5.0-merge
2006-07-03 13:07:51 +02:00
gluh@mysql.com
d2b378d57f Merge sgluhov@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/gluh/MySQL/Merge/5.0-kt
2006-07-03 13:19:18 +05:00
kroki@mysql.com
dbdecef495 Bug#20570: CURRENT_USER() in a VIEW with SQL SECURITY DEFINER returns
invoker name

The bug was fixed similar to how context switch is handled in
Item_func_sp::execute_impl(): we store pointer to current
Name_resolution_context in Item_func_current_user class, and use
its Security_context in Item_func_current_user::fix_fields().
2006-07-02 14:35:45 +04:00
dlenev@mysql.com
d4450e6696 Fix for bug#18437 "Wrong values inserted with a before update trigger on
NDB table".

SQL-layer was not marking fields which were used in triggers as such. As
result these fields were not always properly retrieved/stored by handler
layer. So one might got wrong values or lost changes in triggers for NDB,
Federated and possibly InnoDB tables.
This fix solves the problem by marking fields used in triggers
appropriately.

Also this patch contains the following cleanup of ha_ndbcluster code:

We no longer rely on reading LEX::sql_command value in handler in order
to determine if we can enable optimization which allows us to handle REPLACE
statement in more efficient way by doing replaces directly in write_row()
method without reporting error to SQL-layer.
Instead we rely on SQL-layer informing us whether this optimization
applicable by calling handler::extra() method with
HA_EXTRA_WRITE_CAN_REPLACE flag.
As result we no longer apply this optimzation in cases when it should not
be used (e.g. if we have on delete triggers on table) and use in some
additional cases when it is applicable (e.g. for LOAD DATA REPLACE).

Finally this patch includes fix for bug#20728 "REPLACE does not work
correctly for NDB table with PK and unique index".
  
This was yet another problem which was caused by improper field mark-up.
During row replacement fields which weren't explicity used in REPLACE
statement were not marked as fields to be saved (updated) so they have
retained values from old row version. The fix is to mark all table
fields as set for REPLACE statement. Note that in 5.1 we already solve
this problem by notifying handler that it should save values from all
fields only in case when real replacement happens.
2006-07-02 01:51:10 +04:00
cmiller@zippy.(none)
5039184e83 Bug#19006: 4.0 valgrind problems (in test func_str)
On exactly-sized Strings, the String::c_ptr() function peeked beyond the
end of the buffer, possibly into unititialized space to see whether the 
buffer was NUL-terminated.

In a place that did peek improperly, we now use a c_ptr_safe() function, 
which doesn't peek where it shouldn't.
2006-07-01 14:31:52 -04:00
konstantin@mysql.com
1c4dffc8ca Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/opt/local/work/mysql-5.0-runtime
2006-07-01 22:13:42 +04:00
sergefp@mysql.com
f863685241 Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/psergey/mysql-5.0-bug16168-merge
2006-07-01 07:04:27 +04:00
sergefp@mysql.com
61348cac0c Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/home/psergey/mysql-4.1-bug16168-push
2006-07-01 01:55:43 +04:00
sergefp@mysql.com
784b3118a5 Merge mysql.com:/home/psergey/mysql-4.1-bug16168-push
into  mysql.com:/home/psergey/mysql-5.0-bug16168-merge
2006-07-01 01:25:59 +04:00
konstantin@mysql.com
fbeb42a9e1 Remove an unused variable. 2006-07-01 00:33:47 +04:00
konstantin@mysql.com
41fea3d763 Remove a couple of unused/barely used names. 2006-07-01 00:14:28 +04:00
joerg@mysql.com
34d5c36c2b Manual transfer of the following changeset into the 5.0.23 release clone:
1.2525 06/06/30 18:29:27 monty@mysql.com +3 -0
   Reverted wrong bug fix (Bug#11228)
2006-06-30 19:37:11 +02:00
monty@mysql.com
f62829636b After merge fixes 2006-06-30 20:07:33 +03:00
monty@mysql.com
2f86009c9e Merge mysql.com:/home/my/mysql-4.1
into  mysql.com:/home/my/mysql-5.0
2006-06-30 19:15:18 +03:00
monty@mysql.com
445dfdc3a7 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/home/my/mysql-4.1
2006-06-30 19:15:17 +03:00
monty@mysql.com
2bec1b86bb Reverted wrong bug fix (Bug#11228) 2006-06-30 18:29:27 +03:00
tomas@poseidon.ndb.mysql.com
e61bfafaa9 Merge poseidon.ndb.mysql.com:/home/tomas/mysql-4.1
into  poseidon.ndb.mysql.com:/home/tomas/mysql-4.1-main
2006-06-30 16:26:33 +02:00
tomas@poseidon.ndb.mysql.com
9f542ef0f4 adopted ndb handler code for tables without primary key and with unique index
- added missing retrieval of hidden primary key
2006-06-30 16:25:07 +02:00
kroki@mysql.com
96bddcafe7 Bug#17226: Variable set in cursor on first iteration is assigned
second iterations value

During assignment to the BLOB variable in routine body the value
wasn't copied.
2006-06-30 18:14:22 +04:00
knielsen@mysql.com
a5f362cb94 Merge mysqldev@production:my/mysql-5.0-release
into  mysql.com:/usr/local/mysql/tmp-5.0
2006-06-30 11:11:49 +02:00
knielsen@mysql.com
af48a16ce3 Merge mysqldev@production.mysql.com:my/mysql-5.0-release
into  mysql.com:/usr/local/mysql/mysql-5.0-release
2006-06-30 09:28:06 +02:00
knielsen@mysql.com
1d56a9720c BUG#20769: Dangling pointer in ctype_recoding test case.
In some functions dealing with strings and character sets, the wrong
pointers were saved for restoration in THD::rollback_item_tree_changes().
This could potentially cause random corruption or crashes.

Fixed by passing the original Item ** locations, not local stack copies.

Also remove unnecessary use of default arguments.
2006-06-30 09:26:36 +02:00
sergefp@mysql.com
611e20d8e1 BUG#16168: Wrong results from range optimizer, "Use_count: Wrong count for key ..." warnings:
- Added comments.
 - Make SEL_ARG::clone() set SEL_ARG::elements in the created copy.
2006-06-30 09:05:12 +04:00
monty@mysql.com
f25b4e0464 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/home/my/mysql-4.1
2006-06-30 04:27:19 +03:00
monty@mysql.com
a267b8f33c Don't read ~/.my.cnf in mysqldump.test 2006-06-30 04:10:27 +03:00
evgen@moonbone.local
3cc6d95d18 Merge 2006-06-30 02:03:09 +04:00