Commit graph

11528 commits

Author SHA1 Message Date
sergefp@mysql.com
009e2457d9 Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/psergey/mysql-4.1-bug10151
2005-06-23 19:06:34 +02:00
evgen@moonbone.local
be76efab84 sql_parse.cc:
Fix for fix for bug #9728
  Error caused server hang on prepared insert ... select
2005-06-23 21:06:33 +04:00
sergefp@mysql.com
f1085fb3be Merge 2005-06-23 19:05:36 +02:00
bell@sanja.is.com.ua
f3b6ec6e5f removed unneed line 2005-06-23 19:33:19 +03:00
konstantin@mysql.com
4c4079430d - implement inheritance of sp_instr: public Query_arena.
We need every instruction to have its own arena, because we want to
  track instruction's state (INITIALIZED_FOR_SP -> EXECUTED). Because of 
  `if' statements and other conditional instructions used in stored 
  procedures, not every instruction of a stored procedure gets executed 
  during the first (or even subsequent) execution of the procedure. 
  So it's better if we track the execution state of every instruction 
  independently.
  All instructions of a given procedure now also share sp_head's 
  mem_root, but keep their own free_list.
  This simplifies juggling with free Item lists in sp_head::execute.
- free_items() moved to be a member of Query_arena. 
- logic of 'backup_arena' debug member of Query_arena has been
  changed to support
  multi-backups. Until now, TRUE 'backup_arena' meant that there is
  exactly one active backup of the THD arena. Now it means simply that
  the arena is used for backup, so that we can't accidentally overwrite an 
  existing backup. This allows doing multiple backups, e.g. in
  sp_head::execute and Cursor::fetch, when THD arena is already backed up
  but we want to set yet another arena (usually the 'permanent' arena,
  to save permanent transformations/optimizations of a parsed tree).
2005-06-23 20:22:08 +04:00
bell@sanja.is.com.ua
50784392aa Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-5.0
into sanja.is.com.ua:/home/bell/mysql/bk/work-bug3-5.0
2005-06-23 18:30:59 +03:00
bell@sanja.is.com.ua
56b2fc10a8 fixed environment restoring in case of error during SP function execution (BUG#9503)
#define macro improvement
2005-06-23 18:29:10 +03:00
timour@mysql.com
67646ab141 Merge mysql.com:/home/timka/mysql/src/5.0-virgin
into mysql.com:/home/timka/mysql/src/5.0-dbg
2005-06-23 17:23:48 +03:00
igor@rurik.mysql.com
c73c2af614 func_str.result, func_str.test:
Added a test case for bug #10124.
sql_select.h, item_subselect.cc, sql_select.cc:
  Fixed bug #10124.
  The copy method of the store_key classes can return
  STORE_KEY_OK=0, STORE_KEY_FATAL=1, STORE_KEY_CONV=2 now.
field.cc:
  Fixed bug #10124.
  When ussuing a warning the store methods return 2 instead of 1 now.
2005-06-23 06:15:50 -07:00
igor@rurik.mysql.com
c63914c0b3 opt_range.cc:
Identation correction.
2005-06-23 04:10:43 -07:00
msvensson@neptunus.(none)
d36c75aad8 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into neptunus.(none):/home/msvensson/mysql/mysql-5.0
2005-06-23 13:10:42 +02:00
igor@rurik.mysql.com
4f93e84103 Merge rurik.mysql.com:/home/igor/mysql-5.0
into rurik.mysql.com:/home/igor/dev/mysql-5.0-0
2005-06-23 04:10:42 -07:00
sergefp@mysql.com
d66770b5e6 Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/psergey/mysql-5.0-back-vac-look
2005-06-23 11:10:41 +00:00
timour@mysql.com
b3acc7fe39 Fix for BUG#11185.
The source of the problem is in Field_longlong::cmp. If 'this' is
  an unsigned number, the method casts both the current value, and
  the constant that we compare with to an unsigned number. As a
  result if the constant we compare with is a negative number, it
  wraps to some unsigned number, and the comparison is incorrect.
  
  When the optimizer chooses the "range" access method, this problem
  causes handler::read_range_next to reject the current key when the
  upper bound key is a negative number because handler::compare_key
  incorrectly considers the positive and negative keys to be equal.
  
  The current patch does not correct the source of the problem in
  Field_longlong::cmp because it is not easy to propagate sign
  information about the constant at query execution time. Instead
  the patch changes the range optimizer so that it never compares
  unsiged fields with negative constants. As an added benefit,
  queries that do such comparisons will execute faster because
  the range optimizer replaces conditions like:
  (a) (unsigned_int [< | <=] negative_constant) == FALSE
  (b) (unsigned_int [> | >=] negative_constant) == TRUE
  with the corresponding constants.
  In some cases this may even result in constant time execution.
2005-06-23 12:08:56 +03:00
igor@rurik.mysql.com
893c6c9b46 opt_range.cc:
Fixed buf #11487.
  Added a call of  QUICK_RANGE_SELECT::init to the
  QUICK_RANGE_SELECT::reset method. Without it the second
  evaluation of a subquery employing the range access failed.
subselect.result, subselect.test:
  Added a test case for bug #11487.
2005-06-23 02:08:30 -07:00
timour@mysql.com
3589c51c3b Merge mysql.com:/home/timka/mysql/src/4.1-virgin
into mysql.com:/home/timka/mysql/src/4.1-bug-11185
2005-06-23 11:04:40 +03:00
timour@mysql.com
294498e203 Fix for BUG#11185.
The source of the problem is in Field_longlong::cmp. If 'this' is
an unsigned number, the method casts both the current value, and
the constant that we compare with to an unsigned number. As a
result if the constant we compare with is a negative number, it
wraps to some unsigned number, and the comparison is incorrect.

When the optimizer chooses the "range" access method, this problem
causes handler::read_range_next to reject the current key when the
upper bound key is a negative number because handler::compare_key
incorrectly considers the positive and negative keys to be equal.

The current patch does not correct the source of the problem in
Field_longlong::cmp because it is not easy to propagate sign
information about the constant at query execution time. Instead
the patch changes the range optimizer so that it never compares
unsiged fields with negative constants. As an added benefit,
queries that do such comparisons will execute faster because
the range optimizer replaces conditions like:
(a) (unsigned_int [< | <=] negative_constant) == FALSE
(b) (unsigned_int [> | >=] negative_constant) == TRUE
with the corresponding constants.
In some cases this may even result in constant time execution.
2005-06-23 10:56:44 +03:00
evgen@moonbone.local
4ddc13af42 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0
into moonbone.local:/work/mysql-5.0-merge
2005-06-23 03:51:47 +04:00
evgen@moonbone.local
dc65464688 insert_update.result, insert_update.test, sql_base.cc:
Fix for bugfix #9728 merge
2005-06-23 03:51:10 +04:00
evgen@moonbone.local
5c8e3341d3 Bug #9728 fix merge 2005-06-23 01:02:43 +04:00
patg@radha.local
7f5d7d47b3 Merge pgalbraith@bk-internal.mysql.com:/home/bk/mysql-5.0
into radha.local:/Volumes/disk2s1/mysql-5.0
2005-06-22 21:23:33 +02:00
konstantin@mysql.com
6a0adade83 Remove THD::stmt_backup 2005-06-22 23:12:25 +04:00
sergefp@mysql.com
3196513258 Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/psergey/mysql-4.1-bug10151
2005-06-22 20:59:32 +02:00
evgen@moonbone.local
6b9df50c5e item.h:
Fix for fix for bug#9728 decreased functionality in "on duplicate key update"
  Have to return false to set flag for whole expression.
2005-06-22 22:58:44 +04:00
msvensson@neptunus.(none)
732185c547 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into neptunus.(none):/home/msvensson/mysql/mysql-5.0
2005-06-22 20:50:52 +02:00
patg@radha.local
144045ffae Merge pgalbraith@bk-internal.mysql.com:/home/bk/mysql-5.0
into radha.local:/Volumes/disk2s1/mysql-5.0
2005-06-22 19:40:46 +02:00
patg@radha.local
172dab875b Bug# 9926, This is the same as changeset 1.1934, which was approved by Monty 2005-06-22 19:29:34 +02:00
evgen@moonbone.local
473d7d59a7 Fix for bug #10886 merge 2005-06-22 21:07:28 +04:00
msvensson@neptunus.(none)
85b9ffc4ca Merged from mysql-4.1 to mysql-5.0 2005-06-22 14:10:02 +02:00
msvensson@neptunus.(none)
61a3e16bfd Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1
into neptunus.(none):/home/msvensson/mysql/bug10589
2005-06-22 12:41:33 +02:00
konstantin@mysql.com
8b9bf75740 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/opt/local/work/mysql-5.0-10736-new
2005-06-22 14:40:30 +04:00
konstantin@mysql.com
dc7aa03ece Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/opt/local/work/mysql-5.0-10736-new
2005-06-22 14:00:22 +04:00
svoj@mysql.com
a8bcb25eda Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/svoj/devel/mysql/yassl-mysql-5.0
2005-06-22 14:11:23 +05:00
svoj@mysql.com
74373e7d54 WL#2286 - Compile MySQL w/YASSL support
Fix GCC 4.0 link failure.
Better CXX_VERSION guessing.
2005-06-22 14:08:28 +05:00
konstantin@mysql.com
a1bec5666f Adjust to the changed Query_arena constructor:
main_mem_root is moved out of class Query_arena.
2005-06-22 11:59:13 +04:00
bell@sanja.is.com.ua
a4a7735b33 merge 2005-06-22 08:42:03 +03:00
evgen@moonbone.local
2235ea9593 Fix bug #9728 decreased functionality in "on duplicate key update"
Remove changes made by bug fix #8147. They strips list of insert_table_list to
only insert table, which results in error reported in bug #9728.
Added flag to Item to resolve ambigous fields reported in bug #8147.
2005-06-22 07:18:42 +04:00
bell@sanja.is.com.ua
f8c237bd4a Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-5.0
into sanja.is.com.ua:/home/bell/mysql/bk/work-bug4-5.0
2005-06-22 03:48:26 +03:00
evgen@moonbone.local
30a0ad3a68 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  moonbone.local:/work/mysql-5.0-bug-11298
2005-06-22 04:48:25 +04:00
evgen@moonbone.local
5097c6825e Fix bug#11298 insert into select from VIEW produces incorrect result
when using ORDER BY

Insert were inserting data from last record fetched instead of inserting from 
temporary table.

Make Item_ref to save data from result_field if it's available rather then
from *ref on save_in_field() call.
2005-06-22 04:45:10 +04:00
bell@sanja.is.com.ua
a05e50e29e fixed items cleunup for SP (BUG#10136) 2005-06-22 00:17:08 +03:00
elliot@mysql.com
a24336cdcb BUG#10442 Minor changes from code review 2005-06-21 15:40:58 -04:00
elliot@mysql.com
2eb7301081 Merge mysql.com:/Users/emurphy/src/bk-clean/mysql-4.1
into  mysql.com:/Users/emurphy/src/work/mysql-4.1-bug10442
2005-06-21 14:28:55 -04:00
evgen@moonbone.local
b625e43485 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1
into  moonbone.local:/work/mysql-4.1-bug-10886
2005-06-21 22:25:49 +04:00
evgen@moonbone.local
dc381ea960 Fix bug #10886 - INSERT ... SELECT ... ON DUPLICATE KEY UPDATE produces bad results
Temporary field wasn't restored to default values after ON DUPLICATE KEY
 UPDATE event, which results in wrong data being inserted in new record.
2005-06-21 22:24:58 +04:00
bell@sanja.is.com.ua
93d0763b70 Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-5.0
into sanja.is.com.ua:/home/bell/mysql/bk/work-bug4-5.0
2005-06-21 20:44:18 +03:00
bell@sanja.is.com.ua
a7ca9cb38e fixed view fields names check and generation (changed after Trudy review: underlying field names treat as user set ones) (BUG#7448) 2005-06-21 20:30:48 +03:00
igor@rurik.mysql.com
a626ab4c96 Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0
into rurik.mysql.com:/home/igor/mysql-5.0
2005-06-21 10:15:22 -07:00
konstantin@mysql.com
9eb671459a A preparatory patch to help adding JOIN::transform() and move one-time
query transformations to the PREPARE stage (prepared statements).
2005-06-21 21:15:21 +04:00
evgen@moonbone.local
e7e5cb29cb Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  moonbone.local:/work/mysql-5.0-bug-7422
2005-06-21 21:15:20 +04:00