Commit graph

52803 commits

Author SHA1 Message Date
unknown
e829d36367 Merge kaamos.(none):/data/src/opt/bug34512/my50
into  kaamos.(none):/data/src/opt/bug34512/my51


mysql-test/r/func_group.result:
  Auto merged
mysql-test/t/func_group.test:
  Auto merged
sql/item_sum.cc:
  Auto merged
2008-03-19 14:25:36 +03:00
unknown
8270d9875f Fix for bug #34512: CAST( AVG( double ) AS DECIMAL )
returns wrong results

Casting AVG() to DECIMAL led to incorrect results when the arguments
had a non-DECIMAL type, because in this case
Item_sum_avg::val_decimal() performed the division by the number of
arguments twice.

Fixed by changing Item_sum_avg::val_decimal() to not rely on
Item_sum_sum::val_decimal(), i.e. calculate sum and divide using
DECIMAL arithmetics for DECIMAL arguments, and utilize val_real() with
subsequent conversion to DECIMAL otherwise.


mysql-test/r/func_group.result:
  Added a test case for bug #34512.
mysql-test/t/func_group.test:
  Added a test case for bug #34512.
sql/item_sum.cc:
  Do not use Item_sum_sum::val_decimal() in Item_sum_avg::val_decimal()
  because the first one, depending on the arguments type, may return
  either the sum of the arguments, or the average calculated by the
  virtual val_real() method of Item_sum_avg. Instead, do our own
  calculation based on the arguments type.
2008-03-06 18:19:47 +03:00
unknown
c690b6673a Merge kaamos.(none):/data/src/opt/mysql-5.0-opt
into  kaamos.(none):/data/src/opt/mysql-5.1-opt
2008-03-03 19:50:05 +03:00
unknown
ce0ab7094e Merge kaamos.(none):/data/src/opt/bug31781/my51
into  kaamos.(none):/data/src/opt/mysql-5.1-opt
2008-03-03 19:49:10 +03:00
unknown
64bdb0bdf2 Merge kaamos.(none):/data/src/opt/bug31781/my50
into  kaamos.(none):/data/src/opt/mysql-5.0-opt
2008-03-03 19:48:00 +03:00
unknown
ca753c3a75 Merge kaamos.(none):/data/src/opt/bug31781/my50
into  kaamos.(none):/data/src/opt/bug31781/my51


mysys/my_create.c:
  Auto merged
2008-03-03 17:34:43 +03:00
unknown
162eadbe68 Fix for bug #31781: multi-table UPDATE with temp-pool enabled fails
with errno 17

my_create() did not perform any checks for the case when a file is
successfully created by a call to open(), but the call to
my_register_filename() later fails because the number of open files
has exceeded the my_open_files limit. This can happen on platforms 
which do not have getrlimit(), and hence we do not know the real limit
for open files. In such a case an error was returned to a caller
although the file has actually been created. Since callers assume
my_create() to return an error only when it failed to create a file,
they did not perform any cleanups, leaving an 'orphaned' file on the
file system.

Fixed by adding a check for the above case to my_create() and ensuring
the newly created file is deleted before returning an error.

Creating a deterministic test case in the test suite is impossible,
because the exact steps required to reproduce the above situation
depend on the platform and/or environment (OS per-user limits, queries
executed by previous tests, startup parameters). The patch was
manually tested on Windows using examples posted in the bug report.


mysys/my_create.c:
  Ensure that, if the call to my_register_filename() in my_create()
  failed, but the previous open() called succeeded, the newly created
  file is deleted before returning an error.
2008-03-03 17:34:06 +03:00
unknown
8a176c559b test case fix
mysql-test/r/partition.result:
  the test is moved to 'partition_not_windows' test
mysql-test/r/partition_not_windows.result:
  the test is moved from 'partition' test
mysql-test/t/partition.test:
  the test is moved to 'partition_not_windows' test
mysql-test/t/partition_not_windows.test:
  the test is moved from 'partition' test
2008-03-03 15:38:18 +04:00
unknown
a17667cf84 Merge mysql.com:/home/gluh/MySQL/mysql-5.0-opt
into  mysql.com:/home/gluh/MySQL/mysql-5.1-opt


mysql-test/r/symlink.result:
  use local
mysql-test/t/symlink.test:
  use local
2008-03-03 15:03:51 +04:00
unknown
2cb35cd680 test case fix 2008-03-03 15:02:34 +04:00
unknown
72f6ffe3b0 Merge host.loc:/home/uchum/work/5.0-opt-34830
into  host.loc:/home/uchum/work/5.0-opt
2008-03-01 12:24:55 +04:00
unknown
b225bf1c0e Merge host.loc:/home/uchum/work/5.0-opt-34830
into  host.loc:/home/uchum/work/5.1-opt


sql/sql_select.cc:
  Auto merged
2008-03-01 12:24:00 +04:00
unknown
c664e4570f Merge mysql.com:/home/gluh/MySQL/Merge/5.0-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.1-opt


sql/sql_parse.cc:
  SCCS merged
2008-02-29 17:59:24 +04:00
unknown
f39817ce47 fixed problem with embedded server
mysql-test/r/symlink.result:
  test result fix
2008-02-29 17:58:35 +04:00
unknown
4e7c4ab929 wrong merge fix 2008-02-29 17:50:01 +04:00
unknown
21f386527c Merge mysql.com:/home/gluh/MySQL/Merge/5.0-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.1-opt


mysql-test/r/symlink.result:
  use local
mysql-test/t/symlink.test:
  use local
2008-02-29 16:59:25 +04:00
unknown
4460f5a5b1 Merge mysql.com:/home/gluh/MySQL/Merge/4.1-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.0-opt


mysql-test/t/symlink.test:
  Auto merged
mysql-test/r/symlink.result:
  after merge fix
2008-02-29 16:58:20 +04:00
unknown
be59a0ea7f test fix
mysql-test/r/symlink.result:
  result fix
2008-02-29 16:56:41 +04:00
unknown
d276cd9059 Fixed bug #34830: mixed table and field names in Item_ref
and Item_direct_ref constructor calls.

Order of ref->field_name and ref->table_name arguments
is of Item_ref and Item_direct_ref in the fix_inner_refs
function is inverted.


sql/sql_select.cc:
  Fixed bug #34830: mixed table and field names in Item_ref
                    and Item_direct_ref constructor calls.
  
  Order of ref->field_name and ref->table_name arguments
  is of Item_ref and Item_direct_ref in the fix_inner_refs
  function is inverted. See definitions:
  
    Item_ref(Name_resolution_context *context_arg, Item **item,
             const char *table_name_arg, const char *field_name_arg,
             bool alias_name_used_arg= FALSE)
    and
  
    Item_direct_ref(Name_resolution_context *context_arg, Item **item,
                    const char *table_name_arg,
                    const char *field_name_arg,
                    bool alias_name_used_arg= FALSE)
2008-02-29 15:11:11 +04:00
unknown
87758efbbd Merge mysql.com:/home/gluh/MySQL/Merge/5.0-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.1-opt


mysql-test/r/symlink.result:
  use local.
mysql-test/t/symlink.test:
  use local
sql/mysql_priv.h:
  use local
sql/mysqld.cc:
  use local
sql/sql_parse.cc:
  use local
2008-02-29 15:06:02 +04:00
unknown
fa9e35b48d after merge fix 2008-02-29 15:04:00 +04:00
unknown
8bdb243fd7 Merge mysql.com:/home/gluh/MySQL/Merge/4.1-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.0-opt


sql/mysql_priv.h:
  Auto merged
mysql-test/r/symlink.result:
  manual merge
mysql-test/t/symlink.test:
  manual merge
sql/mysqld.cc:
  manual merge
sql/sql_parse.cc:
  manual merge
2008-02-29 14:05:38 +04:00
unknown
ab60425901 Bug#32167 another privilege bypass with DATA/INDEX DIRECORY(ver 4.1,5.0)
added new function test_if_data_home_dir() which checks that
path does not contain mysql data home directory.
Using of mysql data home directory in
DATA DIRECTORY & INDEX DIRECTORY is disallowed.


mysql-test/r/symlink.result:
  test result
mysql-test/t/symlink.test:
  test case
sql/mysql_priv.h:
  new variable mysql_unpacked_real_data_home
sql/mysqld.cc:
  new variable mysql_unpacked_real_data_home
sql/sql_parse.cc:
  added new function test_if_data_home_dir() which checks that
  path does not contain mysql data home directory.
  Using of mysql data home directory in
  DATA DIRECTORY & INDEX DIRECTORY is disallowed.
2008-02-29 13:55:00 +04:00
unknown
fa3fb2f6ca Merge sgluhov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.1-opt
2008-02-29 13:00:45 +04:00
unknown
88cb8bba27 additional test fix for Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY 2008-02-29 12:52:50 +04:00
unknown
ee51eeb6de Merge host.loc:/home/uchum/work/PP/5.0-opt-34620
into  host.loc:/home/uchum/work/5.1-opt


mysql-test/r/row.result:
  Auto merged
sql/item.h:
  Auto merged
2008-02-28 23:01:22 +04:00
unknown
7f572871ad Merge host.loc:/home/uchum/work/PP/5.0-opt-34620
into  host.loc:/home/uchum/work/5.0-opt
2008-02-28 22:57:22 +04:00
unknown
d40ca16156 Fixed bug #34620: item_row.cc:50: Item_row::illegal_method_call(const char*):
Assertion `0' failed

If ROW item is a part of an expression that also has
aggregate function calls (COUNT/SUM/AVG...), a
"splitting" with an Item::split_sum_func2 function
is applied to that ROW item.
Current implementation of Item::split_sum_func2
replaces this Item_row with a newly created
Item_aggregate_ref reference to it.
Then the row cache tries to work with the
Item_aggregate_ref object as with the Item_row object:
row cache calls row-emulation methods such as cols and
element_index. Item_aggregate_ref (like it's parent
Item_ref) inherits dummy implementations of those
methods from the hierarchy root Item, and call to
them leads to failed assertions and wrong data
output.

Row-emulation virtual functions (cols, element_index, addr,
check_cols, null_inside and bring_value) of Item_ref have
been overloaded to forward calls to an underlying item
reference.




mysql-test/r/row.result:
  Added test case for bug #34620.
mysql-test/t/row.test:
  Added test case for bug #34620.
sql/item.h:
  Fixed bug #34620.
  Row-emulation virtual functions (cols, element_index, addr,
  check_cols, null_inside and bring_value) of Item_ref have
  been overloaded to forward calls to an underlying item
  reference.
2008-02-28 22:53:31 +04:00
unknown
f1e18173dc merge of bug 33266 to 5.1-opt 2008-02-28 16:29:14 +02:00
unknown
9a19de7a7f Merge magare.gmz:/home/kgeorge/mysql/work/B34747-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/work/B34747-5.1-opt


libmysql/libmysql.c:
  Auto merged
libmysqld/lib_sql.cc:
  Auto merged
mysql-test/r/func_gconcat.result:
  Auto merged
mysql-test/t/func_gconcat.test:
  Auto merged
sql/item_sum.cc:
  Auto merged
sql/log.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
mysql-test/r/subselect.result:
  merged bug 34747 and 33266 5.0-opt->5.1-opt
mysql-test/t/subselect.test:
  merged bug 34747 and 33266 5.0-opt->5.1-opt
2008-02-28 15:45:54 +02:00
unknown
56e6b531d2 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B34747-5.0-opt
2008-02-28 15:27:50 +02:00
unknown
1af4194364 Bug#32167 another privilege bypass with DATA/INDEX DIRECORY(3rd version for 5.1)
added new function test_if_data_home_dir() which checks that
path does not contain mysql data home directory.
Using of 'mysql data home'/'any db name' in
DATA DIRECTORY & INDEX DIRECTORY is disallowed


mysql-test/r/partition.result:
  test result
mysql-test/r/partition_not_windows.result:
  result fix
mysql-test/r/partition_symlink.result:
  result fix
mysql-test/r/symlink.result:
  test result update
mysql-test/t/partition.test:
  test case
mysql-test/t/partition_not_windows.test:
  test case update
mysql-test/t/partition_symlink.test:
  test case update
mysql-test/t/symlink.test:
  test case
sql/mysql_priv.h:
  new variable mysql_unpacked_real_data_home
sql/mysqld.cc:
  new variable mysql_unpacked_real_data_home
sql/partition_info.cc:
  new check_partition_dirs() which checks
  data directory and index directory for partition elements
sql/partition_info.h:
  new check_partition_dirs() which checks
  data directory and index directory for partition elements
sql/sql_parse.cc:
  added new function test_if_data_home_dir() which checks that
  path does not contain mysql data home directory.
  Using of 'mysql data home'/'any db name' in
  DATA DIRECTORY & INDEX DIRECTORY is disallowed
2008-02-28 16:46:52 +04:00
unknown
f28612eae2 Bug #34747: crash in debug assertion check after derived table
Was a double-free of the Unique member of Item_func_group_concat.
This was not causing a crash because the Unique is a descendent of
Sql_alloc.
Fixed to free the Unique only if it was allocated for the instance 
of Item_func_group_concat it was referenced from


mysql-test/r/func_gconcat.result:
  Bug #34747: test case
mysql-test/t/func_gconcat.test:
  Bug #34747: test case
sql/item_sum.cc:
  Bug #34747: free the Unique only if it was allocated
  for this instance of Item_func_group_concat
2008-02-28 13:31:19 +02:00
unknown
9c0ee58fc4 Merge kaamos.(none):/data/src/opt/bug33834/my51-bug33834
into  kaamos.(none):/data/src/opt/mysql-5.1-opt
2008-02-27 18:18:15 +03:00
unknown
7ca90d539f Merge kaamos.(none):/data/src/opt/bug33834/my50-bug33834
into  kaamos.(none):/data/src/opt/mysql-5.0-opt
2008-02-27 18:17:25 +03:00
unknown
ed6f54dabc Merge kaamos.(none):/data/src/opt/bug33834/my50-bug33834
into  kaamos.(none):/data/src/opt/bug33834/my51-bug33834


mysql-test/t/func_time.test:
  Auto merged
2008-02-27 18:13:12 +03:00
unknown
c8885dfb73 Fixed test suite failures with --ps-protocol introduced in PB by
the patch for bug #33834.
2008-02-27 18:12:08 +03:00
unknown
68b21ebb83 Merge bk@192.168.21.1:mysql-5.1-opt
into  mysql.com:/home/hf/work/25097/my51-25097


libmysql/libmysql.c:
  Auto merged
libmysqld/lib_sql.cc:
  Auto merged
sql-common/client.c:
  Auto merged
sql/log.cc:
  Auto merged
2008-02-27 13:54:34 +04:00
unknown
87007702fe Merge bk@192.168.21.1:mysql-5.0-opt
into  mysql.com:/home/hf/work/25097/my50-25097


libmysql/libmysql.c:
  Auto merged
libmysqld/lib_sql.cc:
  Auto merged
sql/log.cc:
  Auto merged
2008-02-27 13:43:41 +04:00
unknown
4a8c442f04 merging 2008-02-27 13:30:49 +04:00
unknown
33c4301922 Merge mysql.com:/home/hf/work/25097/my50-25097
into  mysql.com:/home/hf/work/25097/my51-25097


client/mysql.cc:
  Auto merged
include/sql_common.h:
  Auto merged
libmysql/libmysql.c:
  Auto merged
libmysqld/lib_sql.cc:
  Auto merged
sql-common/client.c:
  merging
sql/log.cc:
  merging
2008-02-27 13:00:59 +04:00
unknown
a4b0a2cf67 Bug #25097 mysql_server_init fails silently if no errmsg.sys is present.
There was no way to return an error from the client library
if no MYSQL connections was established.
So here i added variables to store that king of errors and
made functions like mysql_error(NULL) to return these.


client/mysql.cc:
  Bug #25097 mysql_server_init fails silently if no errmsg.sys is present.
  
  Show the error message on std_error
include/sql_common.h:
  Bug #25097 mysql_server_init fails silently if no errmsg.sys is present.
  
  cant_connect_sqlstate constant declared
libmysql/libmysql.c:
  Bug #25097 mysql_server_init fails silently if no errmsg.sys is present.
  
  mysql_sqlstate(NULL) returns 'unknown_sqlstate'
libmysqld/lib_sql.cc:
  Bug #25097 mysql_server_init fails silently if no errmsg.sys is present.
  
  EMBEDDED_SERVER version of the vprint_msg_to_log() implemented
sql-common/client.c:
  Bug #25097 mysql_server_init fails silently if no errmsg.sys is present.
  
  mysql_server_last_errno and mysql_server_last_error introduced
  to store errors not related to particular connections.
  
  mysql_error(NULL) and mysql_errno(NULL) now returns these
  mysql_server_last_error and errno respectively
sql/log.cc:
  Bug #25097 mysql_server_init fails silently if no errmsg.sys is present.
  
  EMBEDDED_LIBRARY implementation of the vprint_msg_to_log() moved
  to lib_sql.cc
2008-02-27 12:42:43 +04:00
unknown
da0a2e4397 Merge kaamos.(none):/data/src/opt/bug33834/my51-bug33834
into  kaamos.(none):/data/src/opt/mysql-5.1-opt


sql/sql_yacc.yy:
  Auto merged
2008-02-26 16:11:52 +03:00
unknown
25620347fc Merge kaamos.(none):/data/src/opt/bug33834/my50-bug33834
into  kaamos.(none):/data/src/opt/mysql-5.0-opt


sql/sql_yacc.yy:
  Auto merged
2008-02-26 16:10:31 +03:00
unknown
561827e238 Post-merge fixes for bug #33834. 2008-02-25 16:03:28 +03:00
unknown
c6d141a5c9 Merge kaamos.(none):/data/src/opt/bug33834/my50-bug33834
into  kaamos.(none):/data/src/opt/bug33834/my51-bug33834


mysql-test/r/func_time.result:
  Auto merged
mysql-test/t/func_time.test:
  Auto merged
sql/sql_yacc.yy:
  Manual merge.
2008-02-25 13:40:43 +03:00
unknown
4f3eab5804 Fix for bug #33834: FRAC_SECOND: Applicability not clear in
documentation

While the manual mentions FRAC_SECOND only for the TIMESTAMPADD()
function, it was also possible to use FRAC_SECOND with DATE_ADD(),
DATE_SUB() and +/- INTERVAL.

Fixed the parser to match the manual, i.e. using FRAC_SECOND for 
anything other than TIMESTAMPADD()/TIMESTAMPDIFF() now produces a 
syntax error.

Additionally, the patch allows MICROSECOND to be used in TIMESTAMPADD/
TIMESTAMPDIFF and marks FRAC_SECOND as deprecated.


mysql-test/r/func_time.result:
  Added a test case for bug #33834.
mysql-test/t/func_time.test:
  Added a test case for bug #33834.
sql/sql_yacc.yy:
  Reject FRAC_SECOND for anything other than TIMESTAMPADD() or
  TIMESTAMPDIFF().
  Allow MICROSECOND to be used with TIMESTAMPADD()/TIMESTAMPDIFF().
  Warn about FRAC_SECOND being a deprecated unit.
2008-02-25 13:25:57 +03:00
unknown
f13831f4d0 Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/misc/mysql/99999/51-99999


sql/set_var.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_plugin.cc:
  Auto merged
2008-02-24 14:23:28 +01:00
unknown
9bd3b8545a Bug#32757: hang with sql_mode set when setting some global variables
If setting a system-variable provided by a plug-in failed, no OK or
error was sent in some cases, hanging the client. We now send an error
in the case from the ticket (integer-argument out of range in STRICT
mode). We also provide a semi-generic fallback message for possible
future cases like this where an error is signalled, but no message is
sent to the client. The error/warning handling is unified so it's the
same again for variables provided by plugins and those in the server
proper.


mysql-test/r/plugin.result:
  show that on out-of-range values, plugin interface throws errors
  in STRICT mode and warnings otherwise.
mysql-test/t/plugin.test:
  show that on out-of-range values, plugin interface throws errors
  in STRICT mode and warnings otherwise.
sql/set_var.cc:
  - handle signedness of values used in warnings
  - in STRICT mode, throw errors rather than warnings
sql/sql_parse.cc:
  If sql_set_variables() returns with an error but no message
  was sent to the client, send a semi-generic one so the session
  won't hang and we won't fail silently.
sql/sql_plugin.cc:
  throw a warning if more than just block-size was corrected
  (or an error in STRICT mode). use functions from set_var
  for uniform behaviour of server- and plug-in variables.
storage/example/ha_example.cc:
  Add a ULONG system variable to example plugin so
  we can test integers in the plugin-interface without
  having to depend on the presence of innobase.
2008-02-24 14:12:17 +01:00
unknown
a22c3d2109 Bug#32753: PAD_CHAR_TO_FULL_LENGTH is not documented and interferes with grant tables
SQL-mode PAD_CHAR_TO_FULL_LENGTH affected mysqld's user-table too. If
enabled, user-name and host were space-padded and no longer matched
the login-data of incoming connexions.

Patch disregards pad-flag while loading privileges so ability to log
in does not depend on SQL-mode.


mysql-test/r/sql_mode.result:
  show that SQL-mode 'PAD_CHAR_TO_FULL_LENGTH' does not affect
  loading of privileges (and by extension, ability to log in).
mysql-test/t/sql_mode.test:
  show that SQL-mode 'PAD_CHAR_TO_FULL_LENGTH' does not affect
  loading of privileges (and by extension, ability to log in).
sql/sql_acl.cc:
  temporarily disable SQL-mode 'PAD_CHAR_TO_FULL_LENGTH' while
  reloading privileges
2008-02-24 13:58:07 +01:00