Commit graph

24120 commits

Author SHA1 Message Date
unknown
0f64a49506 "Fix" for bug #11394 "Recursion in SP crash server" and bug #11600
"Stored procedures: crash with function calling itself".

Disallow recursive stored routines until we either make Item's and LEX
reentrant safe or will use spearate sp_head instances (and thus separate
LEX objects and Item trees) for each routine invocation.


mysql-test/r/sp-error.result:
  Added tests for bug #11394 "Recursion in SP crash server" and
  bug #11600 "Stored procedures: crash with function calling itself".
  (We simply disallow recursion for stored routines).
mysql-test/r/sp.result:
  Disabled test cases containing recursive stored routines until we will
  support for them.
mysql-test/t/sp-error.test:
  Added tests for bug #11394 "Recursion in SP crash server" and
  bug #11600 "Stored procedures: crash with function calling itself".
  (We simply disallow recursion for stored routines).
mysql-test/t/sp.test:
  Disabled test cases containing recursive stored routines until we will
  support for them.
sql/share/errmsg.txt:
  Added error message saying that recursive stored routines are disallowed.
sql/sp_head.cc:
  sp_head::execute():
    Since many Item's and LEX members can't be used in reentrant fashion
    we have to disable recursion for stored routines. So let us track
    routine invocations using sp_head::m_is_invoked member and raise
    error when one attempts to call routine recursively.
sql/sp_head.h:
  sp_head:
    Added m_is_invoked member for tracking of routine invocations and
    preventing recursion.
2005-07-01 13:01:46 +04:00
unknown
17bd4e9f6a Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-5.0
into sanja.is.com.ua:/home/bell/mysql/bk/work-bug7-5.0
2005-06-29 11:52:41 +03:00
unknown
c35625416c fixed SP parameter execution
sql/sp_head.cc:
  execute parameters in statement mem_root
sql/sql_union.cc:
  additional assert
2005-06-29 11:50:29 +03:00
unknown
8080eb7458 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/usr/home/ram/work/mysql-5.0
2005-06-29 12:20:33 +05:00
unknown
a3d07b1c3e a fix (bug #11215: BIGINT: can't set DEFAULT to minimum end-range)
sql/item.cc:
  a fix (bug #11215: BIGINT: can't set DEFAULT to minimum end-range)
  Pass unsig=1 to the constructor.
2005-06-29 12:03:38 +05:00
unknown
36f34c1c7e Added test for bug #5893 "Triggers with dropped functions cause crashes"
(The bug itself was fixed earlier by the patch that fixed bug #5860
 "Multi-table UPDATE does not activate update triggers" and several
 other bugs). 


mysql-test/r/trigger.result:
  Added test for bug #5893 "Triggers with dropped functions cause crashes"
mysql-test/t/trigger.test:
  Added test for bug #5893 "Triggers with dropped functions cause crashes"
2005-06-29 10:35:49 +04:00
unknown
10986dba1b Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0
into rurik.mysql.com:/home/igor/mysql-5.0


sql/opt_range.cc:
  Auto merged
2005-06-28 12:04:46 -07:00
unknown
19103bf364 opt_range.cc:
Fixed a compilation error.


sql/opt_range.cc:
  Fixed a compilation error.
2005-06-28 12:00:38 -07:00
unknown
d2f7623d45 Fixed comments.
sql/opt_range.cc:
  comment fixed.
sql/sp_head.cc:
  An obsolete comment removed.
2005-06-28 22:49:14 +04:00
unknown
95fd25f2db Merge rurik.mysql.com:/home/igor/mysql-5.0
into rurik.mysql.com:/home/igor/dev/mysql-5.0-0


sql/opt_range.cc:
  Auto merged
2005-06-28 10:40:29 -07:00
unknown
79c1be9e44 A fix and a test case for Bug#10736 "mysql_stmt_attr_set
CURSOR_TYPE_READ_ONLY select within select".
The bug was caused by the reset of thd->mem_root to thd->main_mem_root in 
Item_subselect::exec, which in turn triggered too early free_root() for
data which was needed on subsequent fetches from a cursor.
This reset also caused a memory leak in stored procedures, as 
subsequent executions of instructions containing a subselect
were allocating memory in thd->main_mem_root, which is not freed
until the end of the entire SP, instead of the per-call mem_root,
which is freed in the end of execution of the instruction.


sql/item_subselect.cc:
  Don't try to protect subqueries from the code that assumes that
  it can reset thd->mem_root and get away with it: it's responsibility
  of the caller to ensure that no assumption about the life span
  of the allocated memory made by the called code is broken.
  Besides, this didn't work well with cursors and stored procedures, 
  where the runtime memory root is not the same as &thd->main_mem_root.
sql/opt_range.cc:
  In get_mm_leaf restore the original mem_root of the thd which has
  been temporarily reset with the quick select mem_root earlier: if 
  thd->mem_root points to the QUICK...::mem_root, the memory allocated
  in JOIN::exec during evaluation of a subquery gets freed too early.
tests/mysql_client_test.c:
  A test case for Bug#10736 "mysql_stmt_attr_set CURSOR_TYPE_READ_ONLY
   select within select"
2005-06-28 20:52:15 +04:00
unknown
1031b871e7 range.result, range.test:
Added a test case for bug #10031.
opt_range.cc:
  Fixed bug #10031: range condition was not used with
  views. Range analyzer did not take into account that
  view columns were always referred through Item_ref.


sql/opt_range.cc:
  Fixed bug #10031: range condition was not used with
  views. Range analyzer did not take into account that
  view columns were always referred through Item_ref.
mysql-test/t/range.test:
  Added a test case for bug #10031.
mysql-test/r/range.result:
  Added a test case for bug #10031.
2005-06-28 07:27:00 -07:00
unknown
26a52bbe94 Merge hundin.mysql.fi:/home/marko/mysql-4.1
into hundin.mysql.fi:/home/marko/mysql-5.0-current


innobase/fil/fil0fil.c:
  SCCS merged
innobase/include/os0file.h:
  SCCS merged
innobase/os/os0file.c:
  SCCS merged
2005-06-28 10:51:01 +03:00
unknown
feffe571eb Fix typo in --default-store-engine help. (Bug #11534)
sql/mysqld.cc:
  Fix typo
2005-06-27 10:49:40 -07:00
unknown
49e38d31f7 Many files:
Remove compiler warnings on Windows - Bug #11580


innobase/btr/btr0btr.c:
  Remove compiler warnings on Windows - Bug #11580
innobase/btr/btr0cur.c:
  Remove compiler warnings on Windows - Bug #11580
innobase/fil/fil0fil.c:
  Remove compiler warnings on Windows - Bug #11580
innobase/ibuf/ibuf0ibuf.c:
  Remove compiler warnings on Windows - Bug #11580
innobase/log/log0recv.c:
  Remove compiler warnings on Windows - Bug #11580
innobase/os/os0file.c:
  Remove compiler warnings on Windows - Bug #11580
innobase/page/page0page.c:
  Remove compiler warnings on Windows - Bug #11580
innobase/row/row0upd.c:
  Remove compiler warnings on Windows - Bug #11580
2005-06-27 18:58:32 +03:00
unknown
b608f091db InnoDB: After review fixes
innobase/os/os0file.c:
  os_file_set_size(): After review fixes (prevent overflows)
2005-06-27 17:25:37 +03:00
unknown
1084e540ee InnoDB: Optimize the extension of files. This will greatly speed
up CREATE TABLE in innodb_file_per_table=1 mode.


innobase/fil/fil0fil.c:
  fil_extend_space_to_desired_size(): Do not allocate or initialize
  more memory than is necessary.  Write at most one megabyte at a time.
innobase/include/os0file.h:
  os_file_set_size(): Corrected the synopsis
innobase/os/os0file.c:
  os_file_set_size(): Corrected the synopsis and some comments.
  s/offset/current_size; s/low/desired_size/;
  Do not allocate or initialize more memory than is necessary.
  Write at most one megabyte at a time.
2005-06-27 17:04:57 +03:00
unknown
d94c774531 Merge heikki@bk-internal.mysql.com:/home/bk/mysql-5.0
into hundin.mysql.fi:/home/heikki/mysql-5.0
2005-06-27 16:14:24 +03:00
unknown
cbc105087c Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1
into neptunus.(none):/home/msvensson/mysql/mysql-5.0


client/mysqltest.c:
  Auto merged
2005-06-27 15:14:23 +02:00
unknown
e00981bb5f Include <sys/wait.h> to get WEXITSTATUS 2005-06-27 15:11:40 +02:00
unknown
fde3b9518c Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1
into neptunus.(none):/home/msvensson/mysql/mysql-5.0


client/mysqltest.c:
  Auto merged
sql/sql_base.cc:
  Auto merged
2005-06-27 15:02:39 +02:00
unknown
8478223a6d Add "#include <stdlib.h>" to define WEXITSTATUS 2005-06-27 15:01:49 +02:00
unknown
d8ee99b4c4 Simpler impl.
sql/sql_parse.cc:
  Just do a simple sprintf to format error message.
2005-06-27 14:26:07 +02:00
unknown
71f7df2766 Merge neptunus.(none):/home/msvensson/mysql/mysql-5.0
into neptunus.(none):/home/msvensson/mysql/bug10466


mysql-test/r/alias.result:
  Auto merged
mysql-test/r/func_str.result:
  Auto merged
mysql-test/r/func_time.result:
  Auto merged
mysql-test/r/group_by.result:
  Auto merged
mysql-test/r/innodb.result:
  Auto merged
mysql-test/r/ps.result:
  Auto merged
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/ps_7ndb.result:
  Auto merged
mysql-test/r/select.result:
  Auto merged
mysql-test/t/alias.test:
  Auto merged
mysql-test/t/func_str.test:
  Auto merged
mysql-test/t/func_time.test:
  Auto merged
mysql-test/t/group_by.test:
  Auto merged
mysql-test/t/innodb.test:
  Auto merged
mysql-test/t/ps.test:
  Auto merged
mysql-test/t/select.test:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/share/errmsg.txt:
  Auto merged
2005-06-27 13:12:10 +02:00
unknown
5ae1fd9d0d Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into neptunus.(none):/home/msvensson/mysql/mysql-5.0
2005-06-27 12:26:24 +02:00
unknown
74586e95fc Merge problem fixes
mysql-test/r/client_xml.result:
  Update testresult
mysql-test/r/ndb_autodiscover.result:
  Moving order opf test results to match test execution order
2005-06-27 12:25:15 +02:00
unknown
48cb6de7d9 Fix the broken test suite in -debug build.
sql/sql_select.cc:
  If we use subqueries, we can have double-free of tmp_table_param.copy_field
  in JOIN::destroy and in JOIN::join_free because.
2005-06-27 14:10:56 +04:00
unknown
7ce673073b Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into neptunus.(none):/home/msvensson/mysql/mysql-5.0


mysql-test/mysql-test-run.sh:
  Auto merged
2005-06-27 10:53:08 +02:00
unknown
aa32b76a46 Merge heikki@bk-internal.mysql.com:/home/bk/mysql-5.0
into hundin.mysql.fi:/home/heikki/mysql-5.0
2005-06-27 11:01:03 +03:00
unknown
f40f711e0c Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into neptunus.(none):/home/msvensson/mysql/mysql-4.1
2005-06-27 09:53:11 +02:00
unknown
3bdac0a06e Fix for Intel compiler 2005-06-27 09:36:43 +02:00
unknown
1d937708e8 Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/Users/kent/mysql/bk/mysql-5.0
2005-06-25 02:01:34 +02:00
unknown
f6edb3f5c2 Free unused JOINs early even if using subqueries.
sql/sql_select.cc:
  According to the conclusion made in the previous patch, we can widen
  the range of cases when JOINs are fully freed early, and include 
  subqueries to it.
2005-06-25 00:27:40 +04:00
unknown
024d232af5 Remove an unrelevant assert.
sql/sql_select.cc:
  This assert is not relevant because:
  - the correct assert is DBUG_ASSERT(! (full && sl->uncacheable)) 
    (prevents freeing of uncacheable JOINs), it breaks view.test
  - it seems we can free internal JOINs, even if they are uncacheable:
    if the top level join is evaluated, we're not going to need  the
    internal joins any more
2005-06-24 23:29:00 +04:00
unknown
9f62303dea Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/opt/local/work/mysql-5.0-join_free2push
2005-06-24 23:14:08 +04:00
unknown
e0fde7f52b Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/opt/local/work/mysql-5.0-join_free2push


sql/sql_select.cc:
  Auto merged
sql/sql_select.h:
  Auto merged
2005-06-24 22:48:46 +04:00
unknown
97e78d6017 - don't call JOIN::join_free(1) twice for every join in JOIN::cleanup().
The reason it happened was that both, JOIN::cleanup() and JOIN::join_free(),
went over all nested joins and called cleanup/join_free for them.
For that:
- split recursive and non-recursive parts of JOIN::cleanup() and
JOIN::join_free()
- rename JOIN::cleanup to JOIN::destroy, as it actually destroys its
  argument
- move the recursive part of JOIN::cleanup to st_select_lex::cleanup
- move the non-recursive part of JOIN::join_free to the introduced
  method JOIN::cleanup().


sql/sql_lex.h:
  Add st_select_lex::cleanup, a counterpart of st_select_lex_unit::cleanup()
sql/sql_select.cc:
  - remove two unused arguments from return_zero_rows
  - split JOIN::join_free and JOIN::cleanup to recursive and non-recursive
    parts.
  - note, the assert in JOIN::join_free _does_ fail in having.test.
    We have two options: a) propagate `full' flag to the nested joins.
    We did it before, and this patch didn't change it. If so, we 
    can end up cleaning up an uncacheable JOIN (that is, the join that
    we might need again).
    b) evaluate own 'full' flag on every level. In this case, we might
    end up with tables freed in mysql_unlock_read_tables, but not
    cleaned up properly, and this may be even worse. The test suite
    passes with both approaches, but not with the assert.
sql/sql_select.h:
  - declarations for JOIN::cleanup() and JOIN::join_free()
sql/sql_union.cc:
  Add st_select_lex::cleanup, a counterpart of st_select_lex_unit::cleanup():
  move the recursive part of JOIN::cleanup to it.
2005-06-24 22:48:12 +04:00
unknown
a6975b896a Merge mysql.com:/home/mydev/mysql-5.0
into mysql.com:/home/mydev/mysql-5.0-bug8321
2005-06-24 19:47:20 +02:00
unknown
1960fbcf3d Bug#10178 - failure to find a row in heap table by concurrent UPDATEs
After merge fixes of test result.
2005-06-24 19:47:19 +02:00
unknown
5491325c54 Merge mysql.com:/Users/kent/mysql/bk/mysql-5.0-release
into mysql.com:/Users/kent/mysql/bk/mysql-5.0
2005-06-24 19:47:18 +02:00
unknown
2e6d41d132 Bug#10178 - failure to find a row in heap table by concurrent UPDATEs
Bug#10568 - Function 'LAST_DAY(date)' does not return NULL for invalid argument.
Manual merge.


include/my_global.h:
  Auto merged
mysql-test/t/heap_hash.test:
  Auto merged
sql/ha_heap.h:
  Auto merged
sql/item_timefunc.cc:
  Auto merged
mysql-test/r/func_time.result:
  Manual merge.
  Used local for the backported fix for Bug#10568.
mysql-test/r/heap_hash.result:
  Bug#10178 - failure to find a row in heap table by concurrent UPDATEs
  Manual merge.
mysql-test/t/func_time.test:
  Manual merge.
  Used local for the backported fix for Bug#10568.
sql/ha_heap.cc:
  Bug#10178 - failure to find a row in heap table by concurrent UPDATEs
  Manual merge.
2005-06-24 19:47:18 +02:00
unknown
be3d709170 Merge
mysql-test/r/view.result:
  SCCS merged
mysql-test/t/view.test:
  SCCS merged
2005-06-24 21:47:17 +04:00
unknown
12a640e280 Bug#8321 - myisampack bug in compression algorithm
Added 64-bit extensions, comments, extended statistics 
and trace prints.


include/my_base.h:
  Bug#8321 - myisampack bug in compression algorithm
  Added a comment.
myisam/mi_packrec.c:
  Bug#8321 - myisampack bug in compression algorithm
  Fixed a function comment.
myisam/myisampack.c:
  Bug#8321 - myisampack bug in compression algorithm
  Enlarged the variables which hold Huffman codes to
  ulonglong and adjusted the functions accordingly.
  Added test code for long Huffman codes.
  Enlarged the distinct column values buffer (tree_buff)
  and added checks to stay in its range.
  Added statistics and trace prints.
  Added a lot of comments.
mysys/tree.c:
  Bug#8321 - myisampack bug in compression algorithm
  Added a check against overflow of the tree element count.
  The tree element count is only 31 bits, but sometimes
  used for big numbers. There is however no application yet,
  which relies on exact tree element counts.
2005-06-24 19:34:55 +02:00
unknown
a01d110680 mysql-test-run.pl:
Corrected master server id's


mysql-test/mysql-test-run.pl:
  Corrected master server id's
2005-06-24 18:23:59 +02:00
unknown
fd3ac3829b Fix bug#11325 Wrong date comparison in views
Wrong comparing method were choosen which results in false comparison.

Make Item_bool_func2::fix_length_and_dec() to get type and field from
real_item() to make REF_ITEM pass the check. 


sql/item_cmpfunc.cc:
  Fix bug#11325 Wrong date comparison in views
mysql-test/t/view.test:
  Test case for bug#11325 Wrong date comparison in views.
mysql-test/r/view.result:
  Test case for bug#11325 Wrong date comparison in views.
2005-06-24 20:16:52 +04:00
unknown
a7e66efc2c Bug#10178 - failure to find a row in heap table by concurrent UPDATEs
Moved the key statistics update to info().
The table is not locked in open(). This made wrong stats possible.

No test case for the test suite.
This happens only with heavy concurrency.
A test script is added to the bug report.


mysql-test/r/heap_hash.result:
  Bug#10178 - failure to find a row in heap table by concurrent UPDATEs
  Updated test results to reflect the new  statistics behaviour.
mysql-test/t/heap_hash.test:
  Bug#10178 - failure to find a row in heap table by concurrent UPDATEs
  Added a FLUSH TABLES to avoid statistics differences between normal 
  and ps-protocol tests.
sql/ha_heap.cc:
  Bug#10178 - failure to find a row in heap table by concurrent UPDATEs
  Moved the key statistics update to info().
  The table is not locked in open(). This made wrong stats possible.
sql/ha_heap.h:
  Bug#10178 - failure to find a row in heap table by concurrent UPDATEs
  Added an element to track the validity of the key statistics.
2005-06-24 17:47:09 +02:00
unknown
b743e2b4fa mysql-test-run.sh:
Corrected path to CA certificate


mysql-test/mysql-test-run.sh:
  Corrected path to CA certificate
2005-06-24 11:56:20 +02:00
unknown
5aa793f72b backport for #10568: Function 'LAST_DAY(date)' does not return NULL for invalid argument. 2005-06-24 14:04:48 +05:00
unknown
0c0a5097cb Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0
into rurik.mysql.com:/home/igor/mysql-5.0
2005-06-24 01:26:35 -07:00
unknown
a60233121f field.cc:
Correction after manula merge.


sql/field.cc:
  Correction after manula merge.
2005-06-24 01:21:18 -07:00