Commit graph

39173 commits

Author SHA1 Message Date
unknown
4ec65151dc Fix for Bug#35469: server crash with LOAD DATA INFILE to a VIEW.
The problem was that LOAD DATA code (sql_load.cc) didn't take into
account that there may be items, representing references to other
columns. This is a usual case in views. The crash happened because
Item_direct_view_ref was casted to Item_user_var_as_out_param,
which is not a base class.

The fix is to
  1) Handle references properly;
  2) Ensure that an item is treated as a user variable only when
     it is a user variable indeed;
  3) Report an error if LOAD DATA is used to load data into
     non-updatable column.


mysql-test/r/loaddata.result:
  Update result file.
mysql-test/t/loaddata.test:
  Add a test case form Bug#35469: server crash with
  LOAD DATA INFILE to a VIEW.
sql/share/errmsg.txt:
  Introduce a new error.
sql/sql_load.cc:
  Handle reference-items properly.
mysql-test/std_data/bug35649.data:
  Add a data file for the test case.
2008-03-28 18:59:13 +03:00
unknown
0e4dd57a13 Merge witty.:/Users/mattiasj/clones/bug21413-50-engines
into  witty.:/Users/mattiasj/clones/bug21413-50-bugteam
2008-03-28 15:17:36 +01:00
unknown
32d232ffb1 Merge witty.:/Users/mattiasj/Public/shared-vms/bug21413-41-engines
into  witty.:/Users/mattiasj/clones/bug21413-50-engines


sql/sql_insert.cc:
  Manual merge
2008-03-28 14:34:06 +01:00
unknown
fe22ff56f4 Bug#21413 - Engine table handler used by multiple threads
in REPLACE DELAYED
    
post push patch, removing the optimization for
copying delayed_insert variables.


sql/sql_insert.cc:
  Bug#21413 - Engine table handler used by multiple threads
              in REPLACE DELAYED
  
  post push patch, removing the optimization for
  copying delayed_insert variables.
  (restored some parts which caused errors)
2008-03-28 14:27:22 +01:00
unknown
7c156537cc Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-bugteam
into  moonbone.local:/work/27219-5.0-opt-mysql


sql/item.cc:
  Auto merged
sql/item_subselect.cc:
  Auto merged
sql/item_sum.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sql_select.cc:
  Auto merged
2008-03-28 14:31:52 +03:00
unknown
ab82016ae8 Merge bk-internal:/home/bk/mysql-5.0
into  magare.gmz:/home/kgeorge/mysql/work/merge-5.0-bugteam


sql/sql_acl.cc:
  Auto merged
2008-03-28 11:26:40 +02:00
unknown
b6b4202b48 Merge bk-internal:/home/bk/mysql-5.0
into  magare.gmz:/home/kgeorge/mysql/work/merge-5.0-bugteam
2008-03-28 10:08:24 +02:00
unknown
ed1d366a23 Merge mysql.com:/misc/mysql/mysql-5.0
into  mysql.com:/misc/mysql/mysql-5.0-opt


CMakeLists.txt:
  Auto merged
configure.in:
  Auto merged
include/config-win.h:
  Auto merged
include/my_global.h:
  Auto merged
2008-03-27 23:35:56 +01:00
unknown
9d661efd7f Bug#27219: Aggregate functions in ORDER BY.
Mixing aggregate functions and non-grouping columns is not allowed in the
ONLY_FULL_GROUP_BY mode. However in some cases the error wasn't thrown because
of insufficient check.

In order to check more thoroughly the new algorithm employs a list of outer
fields used in a sum function and a SELECT_LEX::full_group_by_flag.
Each non-outer field checked to find out whether it's aggregated or not and
the current select is marked accordingly.
All outer fields that are used under an aggregate function are added to the
Item_sum::outer_fields list and later checked by the Item_sum::check_sum_func
function.


mysql-test/t/group_by.test:
  Added a test case for the bug#27219: Aggregate functions in ORDER BY.
mysql-test/r/group_by.result:
  Added a test case for the bug#27219: Aggregate functions in ORDER BY.
sql/sql_select.cc:
  Bug#27219: Aggregate functions in ORDER BY.
  Implementation of new check for mixing non aggregated fields and aggregation
  function in the ONLY_FULL_GROUP_BY mode.
sql/sql_lex.cc:
  Bug#27219: Aggregate functions in ORDER BY.
  Initialization of the full_group_by_flag bitmap.
  SELECT_LEX::test_limit function doesn't reset ORDER BY
  clause anymore.
sql/sql_lex.h:
  Bug#27219: Aggregate functions in ORDER BY.
  The full_group_by_flag is added to the SELECT_LEX class.
sql/item_sum.h:
  Bug#27219: Aggregate functions in ORDER BY.
  The outer_fields list is added to the Item_sum class.
sql/mysql_priv.h:
  Bug#27219: Aggregate functions in ORDER BY.
  Defined a set of constants used in the new check for mixing non aggregated
  fields and sum functions in the ONLY_FULL_GROUP_BY_MODE.
sql/item_subselect.cc:
  Bug#27219: Aggregate functions in ORDER BY.
  The Item_in_subselect::select_in_like_transformer function now drops
  ORDER BY clause in all selects in a subquery.
sql/item_sum.cc:
  Bug#27219: Aggregate functions in ORDER BY.
  Now the Item_sum::check_sum_func function now checks whether fields in the
  outer_fields list are aggregated or not and marks selects accordingly.
sql/item.cc:
  Bug#27219: Aggregate functions in ORDER BY.
  Now the Item_field::fix_fields function checks whether the field is aggregated
  or not and marks its select_lex accordingly.
2008-03-27 19:49:32 +03:00
unknown
8e473edd48 Merge host.loc:/home/uchum/work/mysql-5.0
into  host.loc:/home/uchum/work/5.0-opt


configure.in:
  Auto merged
sql/item.cc:
  Auto merged
2008-03-27 20:05:51 +04:00
unknown
da9db4ed35 Merge witty.:/Users/mattiasj/Public/shared-vms/bug21413-41-engines
into  witty.:/Users/mattiasj/clones/bug21413-50-engines


sql/sql_insert.cc:
  Manual merge
2008-03-27 16:24:11 +01:00
unknown
f8653a79e9 Patch clean up.
Fixed interference between tests: Users were added but not properly removed.
This caused later tests to fail.


mysql-test/r/grant.result:
  Fixed interference between tests: Users were added but not properly removed.
  This caused later tests to fail.
mysql-test/t/grant.test:
  Fixed interference between tests: Users were added but not properly removed.
  This caused later tests to fail.
2008-03-27 09:37:20 -03:00
unknown
0db1f520c6 Merge jbruehe@bk-internal.mysql.com:/home/bk/mysql-5.0-build
into  trift2.:/MySQL/M50/push-5.0
2008-03-27 13:21:34 +01:00
unknown
861434c3b0 Merge mysql.com:/Users/davi/mysql/mysql-5.1-bug33201
into  mysql.com:/Users/davi/mysql/mysql-5.0-bugteam


sql/sql_acl.cc:
  Auto merged
2008-03-27 09:13:51 -03:00
unknown
5a6b357e6f BUG#25340 2008-03-27 13:02:59 +01:00
unknown
1207c86644 Merge host.loc:/home/uchum/work/4.1-opt
into  host.loc:/home/uchum/work/5.0-opt


configure.in:
  Merge with 4.1-opt.
2008-03-27 16:00:26 +04:00
unknown
11cfd2ed67 Merge host.loc:/home/uchum/work/mysql-5.0
into  host.loc:/home/uchum/work/5.0-opt


sql/sql_delete.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
2008-03-27 15:52:55 +04:00
unknown
9878e861a2 Merge trift2.:/MySQL/M50/mysql-5.0
into  trift2.:/MySQL/M50/push-5.0


configure.in:
  Auto merged
2008-03-27 12:38:21 +01:00
unknown
42a06b4614 Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-5.0
into  rhel5-ia64-a.mysql.com:/data0/tsmith/build/50
2008-03-27 08:50:54 +01:00
unknown
4020e6a2d7 post fix after push of BUG#33029
mysql-test/r/binlog_killed_simulate.result:
  Update test result after push of bug#33029
mysql-test/r/mix_innodb_myisam_binlog.result:
  Update test result after push of bug#33029
mysql-test/r/multi_update.result:
  Update test result after push of bug#33029
mysql-test/r/rpl_auto_increment_bug33029.result:
  disable warning messages
mysql-test/r/rpl_user.result:
  Update test result after push of bug#33029
mysql-test/t/rpl_auto_increment_bug33029.test:
  disable warning messages
2008-03-27 13:42:34 +08:00
unknown
ed6b0a2f50 Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0-bugteam
into  mysql.com:/misc/mysql/34731/50-34731
2008-03-27 03:19:21 +01:00
unknown
fd1616311d Merge mysql.com:/misc/mysql/34731_/50-34731
into  mysql.com:/misc/mysql/34731/50-34731


sql/opt_range.cc:
  Auto merged
mysql-test/r/range.result:
  manual merge
mysql-test/t/range.test:
  manual merge
2008-03-27 03:16:35 +01:00
unknown
fb27979e65 Recommit of antonys previous commit.
Bug#21413
"Engine table handler used by multiple threads in REPLACE DELAYED"
When executing a REPLACE DELAYED statement, the storage engine
::extra() method was invoked by a different thread than the thread
which has acquired the handler instance.

This did not cause problems within the current server and with
the current storage engines.
But it has the potential to confuse future storage engines.

Added code to avoid surplus calls to extra() method in case of DELAYED
which avoids calling storage engine from a different thread than
expected.

No test case.
This change does not change behavior in conjunction with current
storage engines. So it cannot be tested by the regression test suite.


sql/sql_insert.cc:
  Bug#21413
  When performing DELAYED operations, we should not call
  the storage engine methods from the 'wrong' context.
  Ensure that the calls to the methods are appropiately guarded
  by either moving calls to sections where the lock_type is checked.
  No need to copy all elements of TABLE_LIST when opening table
  using open_ltable().
2008-03-27 01:13:39 +01:00
unknown
c3f2e30320 Merge host.loc:/home/uchum/work/5.0-opt-35193
into  host.loc:/home/uchum/work/5.0-opt
2008-03-27 00:44:13 +04:00
unknown
73e1c5ae10 Fix minor complaints of Marc Alff, for patch against B-g#15776.
mysql-test/t/type_blob.test:
  Drop table in case we start from a bad state.
sql/sql_yacc.yy:
  yacc/bison is left-recursive, so FIXME statement is wrong.
2008-03-26 14:52:10 -04:00
unknown
0b8342ba4e Fixed bug #35193.
View definition as SELECT ... FROM DUAL WHERE ... has
valid syntax, but use of such view in SELECT or
SHOW CREATE VIEW syntax causes unexpected syntax error.

Server omits FROM DUAL clause when storing view body
string in a .frm file for further evaluation.
However, syntax of SELECT-witout-FROM query is more
restrictive than SELECT FROM DUAL syntax, and doesn't
allow the WHERE clause.

NOTE: this syntax difference is not documented.


View registration procedure has been modified to
preserve original structure of view's body.



mysql-test/r/view.result:
  Added test case for bug #35193.
mysql-test/t/view.test:
  Added test case for bug #35193.
sql/sql_select.cc:
  Fixed bug #35193.
  The st_select_lex::print function always omits FROM DUAL clause,
  even if original SELECT query has the WHERE clause.
  
  The mysql_register_view function uses this function to reconstruct
  a body of view's AS clause for further evaluation and stores that
  reconstructed clause in a .frm file.
  
  SELECT without FROM syntax is more restrictive than 
  SELECT FROM DUAL syntax: second one allows
  the WHERE clause, but first one is not.
  
  Use of this view in SELECT or SHOW CREATE VIEW queries
  causes unexpected syntax errors.
  
  
  The st_select_lex::print function has been modified to
  reconstruct FROM DUAL clause in queries when needed.
  
  
  TODO: Syntax difference is not documented and should be
  eliminated, however improvement of
  the SELECT-without-FROM syntax is not trivial and leads to
  significant modification of grammar file because of additional
  shift/reduce conflicts.
2008-03-26 22:43:12 +04:00
unknown
c932049cbd Merge bk-internal.mysql.com:/home/bk/mysql-5.0-build
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.0-build
2008-03-26 14:30:26 -04:00
unknown
4eaa7303fc Merge stella.local:/home2/mydev/mysql-5.0-amain
into  stella.local:/home2/mydev/mysql-5.0-axmrg
2008-03-26 16:48:46 +01:00
unknown
a5ac54566c Merge mail.hezx.com:/media/sda3/work/mysql/bkroot/mysql-5.0-rpl
into  mail.hezx.com:/media/sda3/work/mysql/bkwork/b33029_5.0_to_5.1_fails_on_dup_key/5.0
2008-03-26 21:37:34 +08:00
unknown
7587a8710d Merge stella.local:/home2/mydev/mysql-5.0-ateam
into  stella.local:/home2/mydev/mysql-5.0-axmrg
2008-03-26 09:34:37 +01:00
unknown
0d6f9bad70 Merge stella.local:/home2/mydev/mysql-5.0-amain
into  stella.local:/home2/mydev/mysql-5.0-axmrg


mysql-test/r/ctype_big5.result:
  Auto merged
mysql-test/r/ctype_cp932.result:
  Auto merged
mysql-test/r/ctype_euckr.result:
  Auto merged
mysql-test/r/ctype_gb2312.result:
  Auto merged
mysql-test/r/ctype_gbk.result:
  Auto merged
mysql-test/r/ctype_uca.result:
  Auto merged
mysql-test/r/ctype_ucs.result:
  Auto merged
mysql-test/t/ctype_ucs.test:
  Auto merged
sql/slave.cc:
  Auto merged
2008-03-26 09:33:55 +01:00
unknown
18801aa829 Bug#20906 (Multiple assignments in SET in stored routine produce incorrect
instructions)

This bug can not be reproduced in the current version,
adding the test case to the test suite for coverage, no code change.


mysql-test/r/sp-code.result:
  Bug#20906 (Multiple assignments in SET in stored routine produce incorrect
  instructions)
mysql-test/t/sp-code.test:
  Bug#20906 (Multiple assignments in SET in stored routine produce incorrect
  instructions)
2008-03-25 11:20:11 -06:00
unknown
d62c9e33ca information_schema.test, information_schema.result:
Minor test case cleanup after bug#34529.


mysql-test/r/information_schema.result:
  Minor test case cleanup after bug#34529.
mysql-test/t/information_schema.test:
  Minor test case cleanup after bug#34529.
2008-03-25 19:44:27 +04:00
unknown
d6fc09af43 Merge trift2.:/MySQL/M50/mysql-5.0
into  trift2.:/MySQL/M50/push-5.0
2008-03-25 14:09:16 +01:00
unknown
4816e7b7fb Merge quad.opbmk:/mnt/raid/alik/MySQL/devel/5.0
into  quad.opbmk:/mnt/raid/alik/MySQL/devel/5.0-rt-merged


sql/sql_delete.cc:
  Auto merged
2008-03-25 14:53:23 +03:00
unknown
5ad505dda2 BUG#35509 - Federated leaks memory when connecting to
localhost/default port

When creating federated table that points to unspecified host or
localhost on unspecified port or port is 0, small memory leak occurs.

This happens because we make a copy of unix socket path, which is
never freed.

With this fix we do not make a copy of unix socket path, instead
share->socket points to MYSQL_UNIX_ADDR constant directly.

This fix is covered by a test case for BUG34788.

Affects 5.0 only.


mysql-test/t/federated.test:
  A test case for BUG#35509.
sql/ha_federated.cc:
  When creating federated table we call parse_url() to check if connect
  string is correct. parse_url() may make a copy of unix socket path if
  port is not specified or 0 and host is not specified or 'localhost'.
  This copy is never freed.
  
  As there is no need to make a copy of unix socket path, let
  share->socket point to MYSQL_UNIX_ADDR directly.
2008-03-25 12:47:57 +04:00
unknown
00be935419 Merge mhansson@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  riffraff.(none):/data0/autopush/my50-bug34529
2008-03-24 16:19:50 +01:00
unknown
21bd55afec Merge bk@192.168.21.1:mysql-5.0-opt
into  mysql.com:/home/hf/work/33334/my50-33334


client/mysqltest.c:
  Auto merged
2008-03-23 21:53:36 +04:00
unknown
6fc61724c9 Merge mysql.com:/home/kent/bk/build/mysql-4.1-build
into  mysql.com:/home/kent/bk/build/mysql-5.0-build
2008-03-22 01:43:13 +01:00
unknown
b6791a4d37 Merge mysql.com:/home/kent/bk/mysql-4.1-release
into  mysql.com:/home/kent/bk/build/mysql-4.1-build


support-files/mysql.spec.sh:
  Auto merged
2008-03-22 01:29:27 +01:00
unknown
a3558b5f84 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B26461-5.0-opt
2008-03-21 17:26:18 +02:00
unknown
cebb6727b3 Bug #26461: Intrinsic data type bool (1 byte) redefined to BOOL (4 bytes)
The bool data type was redefined to BOOL (4 bytes on windows).
Removed the #define and fixed some of the warnings that were uncovered
by this.
Note that the fix also disables 2 warnings :
4800 : 'type' : forcing value to bool 'true' or 'false' (performance warning)
4805: 'operation' : unsafe mix of type 'type' and type 'type' in operation

These warnings will be handled in a separate bug, as they are performance related or bogus.

Fixed to int the return type of functions that return more than 
2 distinct values.


CMakeLists.txt:
  Bug #26461: disable the C4800 and C4805 warnings temporarily
include/config-win.h:
  Bug #26461: 
   - no need for this define for Windows.
   - windows C++ compilers have a bool type
include/my_global.h:
  Bug #26461: removed bool_defined (no longer needed)
sql/handler.h:
  Bug #26461: bool functions must return boolean values
sql/mysql_priv.h:
  Bug #26461: fixed return type of functions that return more than
  2 distinct values.
sql/procedure.h:
  Bug #26461: fixed return type of functions that return more than
  2 distinct values.
sql/sql_acl.cc:
  Bug #26461: fixed return type of functions that return more than
  2 distinct values.
sql/sql_acl.h:
  Bug #26461: fixed return type of functions that return more than
  2 distinct values.
sql/sql_analyse.cc:
  Bug #26461: fixed return type of functions that return more than
  2 distinct values.
sql/sql_analyse.h:
  Bug #26461: fixed return type of functions that return more than
  2 distinct values.
sql/sql_base.cc:
  Bug #26461: fixed return type of functions that return more than
  2 distinct values.
sql/sql_db.cc:
  Bug #26461: fixed return type of functions that return more than
  2 distinct values.
sql/sql_delete.cc:
  Bug #26461: fixed return type of functions that return more than
  2 distinct values.
sql/sql_load.cc:
  Bug #26461: fixed return type of functions that return more than
  2 distinct values.
sql/sql_parse.cc:
  Bug #26461: fixed return type of functions that return more than
  2 distinct values.
sql/sql_prepare.cc:
  Bug #26461: fixed return type of functions that return more than
  2 distinct values.
sql/sql_update.cc:
  Bug #26461: fixed return type of functions that return more than
  2 distinct values.
2008-03-21 17:23:17 +02:00
unknown
1a841e074a Merge mysql1000.(none):/home/andrei/MySQL/FIXES/5.0/bug35178_bh_ai
into  mysql1000.(none):/home/andrei/MySQL/MERGE/5.0-bug18199_35178
2008-03-21 16:11:07 +02:00
unknown
4717ba4405 Merge mysql1000.(none):/home/andrei/MySQL/FIXES/5.0/bug18199-purge_no_warn
into  mysql1000.(none):/home/andrei/MySQL/MERGE/5.0-bug18199_35178


sql/log.cc:
  Auto merged
2008-03-21 16:10:15 +02:00
unknown
8030bdfc16 BUG#34788 - malformed federated connection url is not handled
correctly - crashes server !

Creating federated table with connect string containing empty
(zero-length) host name and port is evaluated as 0 (port is
incorrect, omitted or 0) crashes server.

This happens because federated calls strcmp() with NULL pointer.

Fixed by avoiding strcmp() call if hostname is set to NULL.


mysql-test/r/federated.result:
  A test case for BUG#34788.
mysql-test/t/federated.test:
  A test case for BUG#34788.
sql/ha_federated.cc:
  Fixed that parse_url() may call strcmp() with NULL pointer.
2008-03-20 19:07:17 +04:00
unknown
0cb21ac297 Merge stella.local:/home2/mydev/mysql-5.0-ateam
into  stella.local:/home2/mydev/mysql-5.0-axmrg
2008-03-20 10:57:24 +01:00
unknown
4a0210bc19 Merge stella.local:/home2/mydev/mysql-4.1-axmrg
into  stella.local:/home2/mydev/mysql-5.0-axmrg


configure.in:
  Manual merge
2008-03-20 10:56:53 +01:00
unknown
c10b1b3b7c Suggestion of Tim. Avoid unnecessary sleep. 2008-03-19 18:36:41 -04:00
unknown
8dad72ee4c Bug#30378: mysql.server needs to skip wait_for_pid() when mysqld \
isn't running

Pass the process id of the manager as a parameter to "wait_for_pid"
and if the manager isn't running, then do not continue to wait.

Also, capture the error message of our process-existence test, 
"kill -0", as we expect errors and shouldn't pass them to the user.  
Additionally, be a bit more descriptive of what the problem is.


support-files/mysql.server.sh:
  Test that the PID-file's manager is running while we're waiting for
  something to happen with the pid-file.
  
  Capture the error message of our process-existence test, "kill -0",
  as we expect errors and shouldn't pass them to the user.
  Additionally, be a bit more descriptive of what the problem is.
2008-03-19 18:13:56 -04:00
unknown
d251fa98d5 Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-5.0-build
into  ramayana.hindu.god:/home/tsmith/m/bk/build/50
2008-03-19 14:57:35 -06:00