Commit graph

11263 commits

Author SHA1 Message Date
unknown
1535da6592 Merge bk-internal:/home/bk/mysql-5.0-runtime
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint


BitKeeper/etc/collapsed:
  auto-union
mysql-test/lib/mtr_process.pl:
  Auto merged
mysql-test/mysql-test-run.pl:
  Auto merged
mysql-test/r/ps.result:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
2006-10-03 14:26:11 +02:00
unknown
7d74876585 Merge bk-internal:/home/bk/mysql-5.0-rpl
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint


client/mysql.cc:
  Auto merged
include/m_ctype.h:
  Auto merged
mysql-test/r/ctype_utf8.result:
  Auto merged
mysql-test/r/strict.result:
  Auto merged
mysql-test/r/warnings.result:
  Auto merged
mysql-test/t/ctype_utf8.test:
  Auto merged
sql/field.cc:
  Auto merged
sql/item_func.cc:
  Auto merged
2006-10-03 14:24:43 +02:00
unknown
2f0405283f Merge bk-internal:/home/bk/mysql-5.0-maint
into  shellback.(none):/home/msvensson/mysql/mysql-5.0-maint
2006-10-03 09:03:28 +02:00
unknown
f0cd4a8311 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  mysql.com:/usr/home/ram/work/bug22271/my50-bug22271


sql/field.cc:
  Auto merged
2006-10-03 09:00:03 +05:00
unknown
5d5ef8469a Merge shellback.(none):/home/msvensson/mysql/mysql-5.0
into  shellback.(none):/home/msvensson/mysql/mysql-5.0-maint


BitKeeper/etc/ignore:
  auto-union
sql/item_func.h:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
2006-10-03 01:01:06 +02:00
unknown
2e2198633e Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mockturtle.local:/home/dlenev/src/mysql-5.0-rt-merge


mysql-test/r/ps.result:
  Auto merged
mysql-test/t/ps.test:
  Auto merged
sql/item.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
2006-10-02 22:53:10 +04:00
unknown
72bff0c960 Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0
into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0-bug21081
2006-10-02 18:01:04 +04:00
unknown
990763fe89 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0-real-bug21726


sql/sql_insert.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
2006-10-02 17:00:39 +04:00
unknown
0ca2e21b5e Merge mysql.com:/users/lthalmann/bkroot/mysql-5.0-rpl
into  mysql.com:/users/lthalmann/bk/MERGE/mysql-5.0-merge


mysql-test/r/ctype_utf8.result:
  Auto merged
mysql-test/r/view.result:
  Auto merged
mysql-test/t/ctype_utf8.test:
  Auto merged
2006-10-02 14:19:51 +02:00
unknown
be929087ec BUG#21726: Incorrect result with multiple invocations of LAST_INSERT_ID
Non-upper-level INSERTs (the ones in the body of stored procedure,
stored function, or trigger) into a table that have AUTO_INCREMENT
column didn't affected the result of LAST_INSERT_ID() on this level.

The problem was introduced with the fix of bug 6880, which in turn was
introduced with the fix of bug 3117, where current insert_id value was
remembered on the first call to LAST_INSERT_ID() (bug 3117) and was
returned from that function until it was reset before the next
_upper-level_ statement (bug 6880).

The fix for bug#21726 brings back the behaviour of version 4.0, and
implements the following: remember insert_id value at the beginning
of the statement or expression (which at that point equals to
the first insert_id value generated by the previous statement), and
return that remembered value from LAST_INSERT_ID() or @@LAST_INSERT_ID.

Thus, the value returned by LAST_INSERT_ID() is not affected by values
generated by current statement, nor by LAST_INSERT_ID(expr) calls in
this statement.

Version 5.1 does not have this bug (it was fixed by WL 3146).


mysql-test/r/rpl_insert_id.result:
  Add results for bug#21726: Incorrect result with multiple invocations
  of LAST_INSERT_ID, and bug#20339: stored procedure using LAST_INSERT_ID()
  does not replicate statement-based.
mysql-test/t/rpl_insert_id.test:
  Add test cases for bug#21726: Incorrect result with multiple invocations
  of LAST_INSERT_ID, and bug#20339: stored procedure using LAST_INSERT_ID()
  does not replicate statement-based.
sql/item_func.cc:
  Add implementation of Item_func_last_insert_id::fix_fields(), where we
  remember in THD::current_insert_id the first value generated during
  execution of the previous statement, which is returned then from
  Item_func_last_insert_id::val_int().
sql/item_func.h:
  Add declaration of Item_func_last_insert_id::fix_fields().
sql/log_event.cc:
  Do not set THD::last_insert_id_used on LAST_INSERT_ID_EVENT.  Though we
  know the statement will call LAST_INSERT_ID(), it wasn't called yet.
sql/set_var.cc:
  In sys_var_last_insert_id::value_ptr() remember in
  THD::current_insert_id the first value generated during execution of the
  previous statement, and return this value for @@LAST_INSERT_ID.
sql/sql_class.cc:
  Reset THD::last_insert_id_used after each statement execution.
sql/sql_class.h:
  Rather then remember current insert_id value on first invocation of
  THD::insert_id(), remember it in Item_func_last_insert_id::fix_fields(),
  sys_var_last_insert_id::value_ptr(), or mysql_execute_command().
  Remove THD::insert_id(), as it lost its value now.
sql/sql_insert.cc:
  THD::insert_id() is removed, use THD::last_insert_id directly.
sql/sql_load.cc:
  THD::insert_id() is removed, using THD::last_insert_id directly is OK.
sql/sql_parse.cc:
  Remember in THD::current_insert_id first generated insert id value of
  the previous statement in mysql_execute_command().
  No need to reset THD::last_insert_id_used in
  mysql_reset_thd_for_next_command(), it will be reset after each
  statement.
sql/sql_select.cc:
  If "IS NULL" is replaced with "= <LAST_INSERT_ID>", use right value,
  which is THD::current_insert_id, and also set THD::last_insert_id_used
  to issue binary log LAST_INSERT_ID_EVENT.
sql/sql_update.cc:
  THD::insert_id() is removed, use THD::last_insert_id directly.
tests/mysql_client_test.c:
  Add test case for bug#21726: Incorrect result with multiple invocations
  of LAST_INSERT_ID.
2006-10-02 14:28:23 +04:00
unknown
ef5fe1f2b7 Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/svoj/devel/mysql/merge/mysql-5.0-engines


BitKeeper/etc/ignore:
  auto-union
mysql-test/r/myisam.result:
  Auto merged
mysql-test/t/myisam.test:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/share/errmsg.txt:
  Auto merged
sql/table.cc:
  Auto merged
2006-10-02 14:52:09 +05:00
unknown
2a6e8817a2 bug#6147 - fixing ndb test results (forgot to include into the main commit) 2006-10-02 14:17:41 +05:00
unknown
afc1f9f83a Merge bk-internal:/home/bk/mysql-5.0-maint
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
2006-10-02 10:11:18 +02:00
unknown
8f67eac4a3 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  mockturtle.local:/home/dlenev/src/mysql-5.0-bg20670-2


mysql-test/r/trigger.result:
  Auto merged
mysql-test/t/trigger.test:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/opt_range.h:
  Auto merged
sql/sql_update.cc:
  Auto merged
2006-09-30 11:35:34 +04:00
unknown
c681d06f9b Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.0-maint


sql/mysql_priv.h:
  Auto merged
2006-09-29 16:24:21 -04:00
unknown
a294a90ac0 Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0
into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0-bug21081


sql/item.cc:
  Auto merged
2006-09-29 22:30:48 +04:00
unknown
c5b13f99a9 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-engines
into  chilla.local:/home/mydev/mysql-5.0-bug20627


sql/sql_insert.cc:
  Auto merged
2006-09-29 17:59:56 +02:00
unknown
90a29133a5 Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug20778/my50-bug20778
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.0-maint
2006-09-29 11:18:26 -04:00
unknown
4357e22061 Merge mysql.com:/usr/home/bar/mysql-5.0.b6147v2
into  mysql.com:/usr/home/bar/mysql-5.0.b6147rpl


mysql-test/r/ps_2myisam.result:
  Auto merged
mysql-test/r/ps_3innodb.result:
  Auto merged
mysql-test/r/ps_4heap.result:
  Auto merged
mysql-test/r/ps_5merge.result:
  Auto merged
mysql-test/r/ps_6bdb.result:
  Auto merged
mysql-test/r/select.result:
  Auto merged
mysql-test/r/strict.result:
  Auto merged
mysql-test/r/view.result:
  Auto merged
mysql-test/r/warnings.result:
  Auto merged
mysql-test/t/strict.test:
  Auto merged
sql/field.cc:
  Auto merged
2006-09-29 16:40:18 +05:00
unknown
1b4d6a055a Bug#21263 mysql client XML output does not distinguish between NULL and string 'NULL'
Fix: "mysql --xml" now print NULL values the same way that "mysqldump --xml" does:
  
    <field name="name" xsi:nil="true" />
  
  to distinguish from empty strings:
  
    <field name="name"></field>
  
  and from string "NULL":
  
    <field name="name">NULL</field>


client/mysql.cc:
  Fixing to print NULLs differently from empty strings
mysql-test/r/client_xml.result:
  Fixing test result accordingly
2006-09-29 16:29:39 +05:00
unknown
880c9b2a8b Bug#21620 ALTER TABLE affects other columns
Problem: for character sets having mbmaxlen==2,
  any ALTER TABLE changed TEXT column type to MEDIUMTEXT,
  due to wrong "internal length to create length" formula.
  Fix: removing rounding code introduced in early 4.1 time,
  which is not correct anymore.


mysql-test/r/ctype_gbk.result:
  Adding test case
mysql-test/t/ctype_gbk.test:
  Adding test case
sql/field.cc:
  Fixing "internal length to create length" formula.
2006-09-29 16:24:11 +05:00
unknown
695bcb9e7b Bug#19960 Inconsistent results when joining InnoDB tables using partial UTF8 indexes
Adding a multibyte-aware VARCHAR copying function, to put correct column prefix,
  taking in account number of characters (instead just limiting on number of bytes).
  For example, for a KEY(col(3)) on a UTF8 column when copying the string 'foo bar foo',
  we should put only 3 leftmost characters: 'foo'.
  9 characters were incorrectly put before this fix.


mysql-test/r/ctype_utf8.result:
  Adding test case
mysql-test/t/ctype_utf8.test:
  Adding test case
sql/field_conv.cc:
  Adding multibyte aware copy function for VARCHAR
2006-09-29 16:15:57 +05:00
unknown
d4553e3558 Merge mockturtle.local:/home/dlenev/src/mysql-4.1-bg22338-2
into  mockturtle.local:/home/dlenev/src/mysql-5.0-rt-merge


mysql-test/r/temp_table.result:
  Auto merged
mysql-test/t/temp_table.test:
  Auto merged
sql/sql_select.cc:
  Manual merge.
sql/sql_table.cc:
  Manual merge.
2006-09-29 12:36:12 +04:00
unknown
be6911d2af Fixed test-case after merge (removed duplicate part). 2006-09-29 12:27:21 +04:00
unknown
10c66c6ac7 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mockturtle.local:/home/dlenev/src/mysql-5.0-rt-merge


BitKeeper/etc/collapsed:
  auto-union
mysql-test/mysql-test-run.pl:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sp.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
mysql-test/r/sp.result:
  Manual merge.
mysql-test/t/sp.test:
  Manual merge.
2006-09-29 10:55:03 +04:00
unknown
cb0a8b546c Fixed bad fix for a bad merge. 2006-09-28 21:40:43 -04:00
unknown
04bf9cc7c6 view.test:
After merge fix


mysql-test/t/view.test:
  After merge fix
2006-09-29 01:35:11 +04:00
unknown
0954261761 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/work/5505-bug-5.0-opt-mysql


sql/share/errmsg.txt:
  Auto merged
sql/sql_base.cc:
  Auto merged
mysql-test/r/view.result:
  Manual merge
mysql-test/t/view.test:
  Manual merge
2006-09-29 01:01:52 +04:00
unknown
d332c37c58 Fixed bug#5505: Wrong error message on INSERT into a view
On an INSERT into an updatable but non-insertable view an error message was
issued stating the view being not updatable. This can lead to a confusion of a
user.

A new error message is introduced. Is is showed when a user tries to insert
into a non-insertable view.


sql/sql_base.cc:
  Fixed bug#5505: Wrong error message on INSERT into a view
  The update_non_unique_table_error() function now issues proper
  error for an INSERT.
sql/sql_insert.cc:
  Fixed bug#5505: Wrong error message on INSERT into a view
  Issue the ER_NON_INSERTABLE_TABLE error instead of the 
  ER_NON_UPDATABLE_TABLE on insert into a view.
sql/sql_view.cc:
  Fixed bug#5505: Wrong error message on INSERT into a view
  Issue the ER_NON_INSERTABLE_TABLE error instead of the
  ER_NON_UPDATABLE_TABLE on insert into a view.
mysql-test/r/view.result:
  Added the test case for bug#5505: Wrong error message on INSERT into a view
  Corrected a few test cases after fixing bug#5505
mysql-test/t/view.test:
  Added the test case for bug#5505: Wrong error message on INSERT into a view
  Corrected a few test cases after fixing bug#5505
sql/share/errmsg.txt:
  Fixed bug#5505: Wrong error message on INSERT into a view
  Added the ER_NON_INSERTABLE_TABLE error definition.
2006-09-29 01:00:18 +04:00
unknown
f27604dbe3 Merge rolltop.ignatz42.dyndns.org:/mnt/storeage/bug20305/my50-bug20305
into  rolltop.ignatz42.dyndns.org:/mnt/storeage/mysql-5.0-maint
2006-09-28 15:56:05 -04:00
unknown
0b199a5103 Fixed incorrect merge of gluh's reversion of B-g#21432.
mysql-test/r/ctype_utf8.result:
  Removed test that should have been reverted with gluh's reversion of 
  B-g#21432.
mysql-test/t/ctype_utf8.test:
  Removed test that should have been reverted with gluh's reversion of 
  B-g#21432.
2006-09-28 15:45:17 -04:00
unknown
59a7f1ab5f Merge mysql.com:/home/svoj/devel/mysql/BUG21617/mysql-4.1-engines
into  mysql.com:/home/svoj/devel/mysql/BUG21617/mysql-5.0-engines


myisammrg/myrg_open.c:
  Auto merged
myisammrg/myrg_queue.c:
  Auto merged
mysql-test/t/merge.test:
  Auto merged
mysql-test/r/merge.result:
  Manual merge.
2006-09-29 00:00:27 +05:00
unknown
e99cf7edb9 Merge rolltop.ignatz42.dyndns.org:/mnt/storeage/bug20305/my41-bug20305
into  rolltop.ignatz42.dyndns.org:/mnt/storeage/bug20305/my50-bug20305


mysql-test/r/analyse.result:
  Auto merged
sql/sql_analyse.cc:
  Auto merged
mysql-test/t/analyse.test:
  manual merge
2006-09-28 14:32:30 -04:00
unknown
314e10592c Bug#20305: PROCEDURE ANALYSE() returns wrong M for FLOAT(M, D) and DOUBLE(M, D)
mysql-test/r/analyse.result:
  Added Results
mysql-test/t/analyse.test:
  Added test cases to make sure field_str and field_real return correctly.
sql/sql_analyse.cc:
  According the manaul, when declaring a FLOAT(M, N), N equals the number of decimal places and M equals the total number of
  digits in the number.
2006-09-28 14:30:20 -04:00
unknown
d96989ca65 Merge mysql.com:/home/svoj/devel/bk/mysql-4.1-engines
into  mysql.com:/home/svoj/devel/mysql/BUG21617/mysql-4.1-engines


myisammrg/myrg_open.c:
  Auto merged
mysql-test/r/merge.result:
  Manual merge.
mysql-test/t/merge.test:
  Manual merge.
2006-09-28 22:14:31 +05:00
unknown
7d915f0193 BUG#21617 - crash when selecting from merge table with inconsistent indexes
Crash may happen when selecting from a merge table that has underlying
tables with less indexes than in a merge table itself.

If number of keys in merge table is not bigger than requested key number,
return error.


myisammrg/myrg_open.c:
  Store min(number of keys) in m_info instead of number of keys in last
  underlying table.
myisammrg/myrg_queue.c:
  Return error if inx passed to _myrg_init_queue function is not less
  than number of keys.
mysql-test/r/merge.result:
  A test case for bug#21617.
mysql-test/t/merge.test:
  A test case for bug#21617.
mysys/queues.c:
  Replaced annoying ifndef DBUG_OFF with DBUG_ASSERT, fixed coding style.
  The problem was that having queue overrun in debug build was hidden
  with this ifdef.
2006-09-28 22:10:06 +05:00
unknown
ec55538728 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.0-maint


include/mysql_com.h:
  Auto merged
mysql-test/r/func_time.result:
  Auto merged
mysql-test/t/func_time.test:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sql_class.h:
  Auto merged
mysql-test/r/ctype_utf8.result:
  Manual merge.
mysql-test/t/ctype_utf8.test:
  Manual merge.
2006-09-28 10:09:57 -04:00
unknown
2b3633c7bd Fix for bug #22271: data casting may affect data stored in the next column(s?)
Using wrong filling value may cause unneeded extra bit rewriting.

Fix: use proper value to fill uneven bits.


mysql-test/r/type_bit.result:
  Fix for bug #22271: data casting may affect data stored in the next column(s?)
    - test case.
mysql-test/t/type_bit.test:
  Fix for bug #22271: data casting may affect data stored in the next column(s?)
    - test result.
sql/field.cc:
  Fix for bug #22271: data casting may affect data stored in the next column(s?)
    - use ((1 << bit_len) - 1) instead of 0xff to fill uneven bits 
      in order not to change other's bits.
2006-09-28 17:00:29 +05:00
unknown
d165736b8d Merge zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-4.1-maint
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.0-maint


mysql-test/r/func_time.result:
  Auto merged
mysql-test/t/ctype_utf8.test:
  Auto merged
mysql-test/t/func_time.test:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
sql/item_cmpfunc.h:
  Auto merged
sql/item_func.h:
  Auto merged
sql/item_strfunc.cc:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_string.cc:
  Auto merged
strings/strtod.c:
  Auto merged
client/mysql.cc:
  Manual merge.
mysql-test/r/ctype_utf8.result:
  Manual merge.
2006-09-28 07:30:24 -04:00
unknown
70255e8509 Merge dl145s.mysql.com:/data/bk/team_tree_merge/mysql-5.0
into  dl145s.mysql.com:/data/bk/team_tree_merge/MERGE/mysql-5.0-opt


mysql-test/r/view.result:
  Auto merged
mysql-test/t/view.test:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2006-09-28 10:36:04 +02:00
unknown
b7fcc913b4 Merge neptunus.(none):/home/msvensson/mysql/work/my50-work
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint


mysql-test/mysql-test-run.pl:
  Auto merged
2006-09-28 09:32:49 +02:00
unknown
3f01b5df81 Increase test suite timeout to 3 hours 2006-09-28 09:30:24 +02:00
unknown
9825da7617 Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0
into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0-bug21081
2006-09-28 11:04:49 +04:00
unknown
4bbca0b6bf Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  mockturtle.local:/home/dlenev/src/mysql-4.1-runtime
2006-09-28 11:02:10 +04:00
unknown
792ad914f3 Merge bk-internal:/home/bk/mysql-5.0-maint
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
2006-09-28 08:55:44 +02:00
unknown
d6d786a07e Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug21476/my50-bug21476
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.0-maint
2006-09-27 20:08:44 -04:00
unknown
033db2d038 Bug #20778: strange characters in warning message 1366 when called in SP
The function receives an exactly-sized buffer (not a C NUL-terminated string)
and passes it into a printf function to be interpreted with "%s".

Instead, create an intermediate String object, and copy the data into it, 
and pass in a pointer to the String's NUL-terminated buffer.


mysql-test/r/warnings.result:
  Test that warnings do not read outside its intended memory space.
mysql-test/t/warnings.test:
  Test that warnings do not read outside its intended memory space.
sql/field.cc:
  Create a new String object and use a pointer to its data instead of the 
  exactly-sized buffer to be interpreted as a C string deep within the 
  errmsg.txt list via printf.
2006-09-27 19:26:25 -04:00
unknown
ca48feceee Merge ahristov@bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  example.com:/work/mysql-5.0-runtime


mysql-test/t/sp.test:
  Auto merged
sql/sp.cc:
  Auto merged
mysql-test/r/sp.result:
  manual merge
2006-09-27 22:25:23 +02:00
unknown
fcb8687ad9 Fix for bug#21311: Possible stack overrun if SP has non-latin1 name
There was possible stack overrun in an edge case which handles invalid body of
a SP in mysql.proc . That should be case when mysql.proc has been changed
manually. Though, due to bug 21513, it can be exploited without having access
to mysql.proc only being able to create a stored routine.


mysql-test/r/sp.result:
  update result
mysql-test/t/sp.test:
  add a test case for the bug
sql/sp.cc:
  Fix stack overrun. This happen mostly when mysql.proc is damaged, though
  it's possible due to another bug which creates invalid SP body in mysql.proc
  (leading quote from a label being cut) to create stack overrun even without
  having direct access to mysql.proc
2006-09-27 21:23:17 +02:00
unknown
7efdc62f9d BUG#21081: SELECT inside stored procedure returns wrong results
Re-execution of a parametrized prepared statement or a stored routine
with a SELECT that use LEFT JOIN with second table having only one row
could yield incorrect result.

The problem appeared only for left joins with second table having only
one row (aka const table) and equation conditions in ON or WHERE clauses
that depend on the argument passed.  Once the condition was false for
second const table, a NULL row was created for it, and any field involved
got NULL-value flag, which then was never reset.

The cause of the problem was that Item_field::null_value could be set
without being reset for re-execution.  The solution is to reset
Item_field::null_value in Item_field::cleanup().


mysql-test/r/ps.result:
  Add result for bug#21081: SELECT inside stored procedure returns wrong
  results.
mysql-test/t/ps.test:
  Add test case for bug#21081: SELECT inside stored procedure returns wrong
  results.
sql/item.cc:
  Reset Item_field::null_value flag for re-execution.
2006-09-27 23:11:45 +04:00