Commit graph

10023 commits

Author SHA1 Message Date
unknown
c16b9dfcaa Merge rurik.mysql.com:/home/igor/mysql-5.0
into  rurik.mysql.com:/home/igor/dev/mysql-5.0-0
2006-04-12 16:14:20 -07:00
unknown
c5ed5c4b1c Post-merge fixes. Add a new error message for max_prepared_stmt_count
limit.


mysql-test/r/ps.result:
  Post-merge fixes.
mysql-test/t/ps.test:
  Post-merge fixes.
sql/share/errmsg.txt:
  Add a new error message for max_prepared_stmt_count limit,
  we can do it in 5.0
sql/sql_class.cc:
  Post-merge fixes.
sql/sql_class.h:
  Post-merge fixes.
sql/sql_prepare.cc:
  Post-merge fixes.
2006-04-13 01:46:44 +04:00
unknown
aadfa648b3 Merge mysql.com:/home/tomash/src/mysql_ab/mysql-5.0
into  mysql.com:/home/tomash/src/mysql_ab/mysql-5.0-bug15933
2006-04-13 00:04:22 +04:00
unknown
a2066982f1 Fixed bug#14169: type of group_concat() result changed to blob if tmp_table was
used

In a simple queries a result of the GROUP_CONCAT() function was always of 
varchar type.
But if length of GROUP_CONCAT() result is greater than 512 chars and temporary
table is used during select then the result is converted to blob, due to
policy to not to store fields longer than 512 chars in tmp table as varchar
fields.

In order to provide consistent behaviour, result of GROUP_CONCAT() now
will always be converted to blob if it is longer than 512 chars.
Item_func_group_concat::field_type() is modified accordingly.


mysql-test/t/func_gconcat.test:
  Added test case for bug#14169: type of group_concat() result changed to blob if tmp_table was used
mysql-test/r/func_gconcat.result:
  Added test case for bug#14169: type of group_concat() result changed to blob if tmp_table was used
sql/unireg.h:
  Added the CONVERT_IF_BIGGER_TO_BLOB constant
sql/sql_select.cc:
  Fixed bug#14169: type of group_concat() result changed to blob if tmp_table was used
  The unnamed constant 255 in the create_tmp_field() and create_tmp_field_from_item() functions now defined as the CONVERT_IF_BIGGER_TO_BLOB constant.
  The create_tmp_field() function now converts the Item_sum string result to a blob field based on its char length.
sql/item_sum.h:
  Fixed bug#14169: type of group_concat() result changed to blob if tmp_table was used
  To the Item_func_group_concat calls added the member function field_type() which returns the BLOB or VAR_STRING type based on the items length.
sql/item_func.cc:
  Fixed bug#14169: type of group_concat() result changed to blob if tmp_table was used
  In the Item_func::tmp_table_field() function the unnamed constant 255 is changed to the CONVERT_IF_BIGGER_TO_BLOB constant.
  The Item_func::tmp_table_field() function now measures the result length in chars rather than bytes when converting string result to a blob.
2006-04-12 23:05:38 +04:00
unknown
886a35bd82 Bug#16461: connection_id() does not work properly inside trigger
CONNECTION_ID() was implemented as a constant Item, i.e. an instance of
Item_static_int_func class holding value computed at creation time.
Since Items are created on parsing, and trigger statements are parsed
on table open, the first connection to open a particular table would
effectively set its own CONNECTION_ID() inside trigger statements for
that table.

Re-implement CONNECTION_ID() as a class derived from Item_int_func, and
compute connection_id on every call to fix_fields().


mysql-test/r/trigger.result:
  Add result for bug#16461.
mysql-test/t/trigger.test:
  Add test case for bug#16461.
sql/item.cc:
  Remove now unused class Item_static_int_func.
sql/item.h:
  Remove now unused class Item_static_int_func.
sql/item_create.cc:
  Use new implementation of CONNECTION_ID().
sql/item_func.cc:
  Re-implement CONNECTION_ID() as Item_func_connection_id
  (was Item_static_int_func).  Set max_length to 10, as it was before.
  Compute connection_id dynamically on every call to fix_fields().
sql/item_func.h:
  Re-implement CONNECTION_ID() as Item_func_connection_id
  (was Item_static_int_func).
2006-04-12 19:31:00 +04:00
unknown
e46a193be8 Merge mysql.com:/opt/local/work/mysql-4.1-16365
into  mysql.com:/opt/local/work/mysql-5.0-merge


sql/set_var.cc:
  Auto merged
mysql-test/r/ps.result:
  Manual merge.
mysql-test/t/ps.test:
  Manual merge.
sql/item_row.cc:
  Manual merge.
sql/item_row.h:
  Manual merge.
sql/mysql_priv.h:
  Manual merge.
sql/mysqld.cc:
  Manual merge.
sql/set_var.h:
  Manual merge.
sql/sql_class.cc:
  Manual merge.
sql/sql_class.h:
  Manual merge.
sql/sql_prepare.cc:
  Manual merge.
2006-04-12 18:30:54 +04:00
unknown
51a3d3668f In test for bug#15933 we have to wait for all disconnects to finish to avoid
a race between updating and checking Max_used_connections.  This is done in
a loop until either disconnect finished or timeout expired.  In a latter case
the test will fail.


mysql-test/r/status.result:
  Update result to match changes in test case.
mysql-test/t/status.test:
  Close extra conections in previous test.
  In test for bug#15933 we have to wait for all disconnects to finish to avoid
  a race between updating and checking Max_used_connections.  This is done in
  a loop until either disconnect finished or timeout expired.  In a latter case
  the test will fail.
  Use con1, con2, con3 instead of con3, con4, con5.
2006-04-12 17:37:57 +04:00
unknown
0a8d876d14 Bug#18564 Test failure due to test not checking preconditions
- Add variable "have_dynamic_loading" and use it to check if the udf test should be run.


mysql-test/include/have_udf.inc:
  Use variable "have_dynamic_loading" to to determine if there is support for udf's
mysql-test/r/have_udf.require:
  Use variable "have_dynamic_loading" to to determine if there is support for udf's
mysql-test/t/disabled.def:
  Remove udf from disabled
sql/mysql_priv.h:
  Add have_dlopen variable
sql/mysqld.cc:
  Add have_dlopen variable
sql/set_var.cc:
  Add have_dlopen variable and name it "have_dynamic_loading" in "SHOW VARIABLES"
2006-04-12 15:13:16 +02:00
unknown
ab72618b71 Fix broken --valgrind-options option. 2006-04-12 14:32:34 +02:00
unknown
0e19aa9e4e #BUG18715 create view with replicate*ignore-table
Fixed in parser. rpl_view gained no changes but rpl_view-slave.opt.


sql/sql_yacc.yy:
  UPDATING option for create/alter view is added for tables_ok to finds the view's
  TABLE_LIST.updating as true. FIXME: Regarding to UPDATING option `create view' should not have
  any difference from `create table'.
mysql-test/t/rpl_view-slave.opt:
  The option is needed to force slave executes tables_ok which must return OK in conditions of this tests (no table foo is used.
2006-04-12 12:50:12 +03:00
unknown
53e47e3bd0 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  zippy.(none):/home/cmiller/work/mysql/mysql-5.0__ready
2006-04-11 16:39:09 -04:00
unknown
b54cb499a7 Merge rurik.mysql.com:/home/igor/mysql-5.0
into  rurik.mysql.com:/home/igor/dev/mysql-5.0-0
2006-04-11 11:46:28 -07:00
unknown
c97aa492e5 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/usr/home/ram/work/5.0.b14360
2006-04-11 23:46:27 +05:00
unknown
8907bf0af7 Merge aivanov@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/alexi/bugs/mysql-5.0-merge


sql/sql_insert.cc:
  Auto merged
2006-04-11 22:46:26 +04:00
unknown
981bbaef87 Fixed bug #18618.
If the second or the third argument of a BETWEEN predicate was
a constant expression, like '2005.09.01' - INTERVAL 6 MONTH,
while the other two arguments were fields then the predicate 
was evaluated incorrectly and the query returned a wrong
result set.
The bug was introduced in 5.0.17 when in the fix for 12612.


mysql-test/r/func_time.result:
  Added a test case for bug #18618.
mysql-test/t/func_time.test:
  Added a test case for bug #18618.
2006-04-11 10:03:37 -07:00
unknown
d8a46094be Merge mysql.com:/home/mydev/mysql-4.1
into  mysql.com:/home/mydev/mysql-4.1-bug5390
2006-04-11 15:18:16 +02:00
unknown
961725aa51 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/usr/home/ram/work/5.0.b14360
2006-04-11 18:14:34 +05:00
unknown
1ef739636a Fix for bug #14360: Date Between Interval Broken.
mysql-test/r/innodb.result:
  Fix for bug #14360: Date Between Interval Broken.                               
    - test case.
mysql-test/t/innodb.test:
  Fix for bug #14360: Date Between Interval Broken.                               
    - test case.
sql/item_timefunc.cc:
  Fix for bug #14360: Date Between Interval Broken.                               
    - Item_date_add_interval::eq() introduced.
sql/item_timefunc.h:
  Fix for bug #14360: Date Between Interval Broken.                               
    - Item_date_add_interval::eq() introduced.
2006-04-11 16:13:57 +05:00
unknown
3d860b131a Merge mysql.com:/home/mydev/mysql-5.0
into  mysql.com:/home/mydev/mysql-5.0-bug5390
2006-04-11 12:41:26 +02:00
unknown
d7caa2a02a after merge fix. 2006-04-11 15:26:18 +05:00
unknown
9381c8a089 Fixed BUG#18787: Server crashed when calling a stored procedure containing
a misnamed function
  ... in the presence of a continue handler. The problem was that with a
  handler, it continued to execute as if function existed and had set a
  useful return value (which it hadn't).
  The fix is to set a null return value and do an error return when a function
  wasn't found.


mysql-test/r/sp.result:
  Updated results for a new test case (BUG#18787).
mysql-test/t/sp.test:
  New testcase for BUG#18787.
sql/item_func.cc:
  Don't set "out of resources" error in Item_func_sp::execute() if no
  result field is returned, it's simply wrong, it can be sometthing else,
  like a function not found. Instead set null_value and return error.
  Also, set "out of resources" when field creation fails in
  Item_func_sp::sp_result_field() and Item_func_sp::tmp_table_field().
2006-04-11 12:17:57 +02:00
unknown
974752bc1e Merge mysql.com:/usr/home/ram/work/mysql-4.0
into  mysql.com:/usr/home/ram/work/mysql-4.1


mysql-test/r/func_op.result:
  Auto merged
sql/item_func.cc:
  Auto merged
mysql-test/t/func_op.test:
  SCCS merged
2006-04-11 13:53:44 +05:00
unknown
3c3928089f Merge bk-internal:/home/bk/mysql-5.0
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0


mysql-test/mysql-test-run.pl:
  Auto merged
sql/ha_ndbcluster.cc:
  Auto merged
2006-04-11 09:09:21 +02:00
unknown
4c46f306db Merge mysql.com:/home/mydev/mysql-5.0
into  mysql.com:/home/mydev/mysql-5.0-bug5390
2006-04-11 08:46:48 +02:00
unknown
d943c58761 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.0
into  mysql.com:/usr/home/ram/work/mysql-4.0
2006-04-11 10:46:21 +05:00
unknown
e70d0971df Merge bk-internal:/home/bk/mysql-5.0
into  mysql.com:/home/jimw/my/mysql-5.0-clean
2006-04-10 16:17:46 -07:00
unknown
15bec6c5e5 Merge bk-internal:/home/bk/mysql-5.0
into  mysql.com:/home/jimw/my/mysql-5.0-clean


sql/field.cc:
  Auto merged
sql/field.h:
  Auto merged
sql/ha_ndbcluster.cc:
  Auto merged
2006-04-10 14:30:00 -07:00
unknown
6978949b49 Made the test case for bug #15917 independent on platforms. 2006-04-10 14:14:20 -07:00
unknown
7d384e4633 Merge rurik.mysql.com:/home/igor/mysql-5.0
into  rurik.mysql.com:/home/igor/dev/mysql-5.0-0
2006-04-10 13:04:25 -07:00
unknown
e55b495d8b Merge mysql.com:/home/mydev/mysql-5.0
into  mysql.com:/home/mydev/mysql-5.0-bug5390
2006-04-10 20:48:10 +02:00
unknown
fc1a194ef2 Merge bk-internal:/home/bk/mysql-5.0
into  mysql.com:/usr/local/mysql/mysql-5.0-tmp
2006-04-10 20:48:09 +02:00
unknown
7897a3613a Fixed test case result (after BUG#15868 fix). 2006-04-10 22:44:01 +04:00
unknown
2ccae984d1 Merge mysql.com:/home/jimw/my/mysql-5.0-13601
into  mysql.com:/home/jimw/my/mysql-5.0-clean
2006-04-10 11:23:30 -07:00
unknown
3931b4f3f2 Merge mysql.com:/usr/local/mysql/mysql-5.0-fixcast
into  mysql.com:/usr/local/mysql/mysql-5.0-tmp
2006-04-10 17:58:22 +02:00
unknown
35d9a7b874 Merge mysql.com:/home/mydev/mysql-5.0
into  mysql.com:/home/mydev/mysql-5.0-bug5390
2006-04-10 17:58:21 +02:00
unknown
69cf432673 Merge mysql.com:/usr/local/mysql/mysql-4.1-vgfix
into  mysql.com:/usr/local/mysql/mysql-5.0-tmp


mysql-test/mysql-test-run.pl:
  Manual merge
2006-04-10 17:58:21 +02:00
unknown
c48ded66d3 Fix test case 'cast' on Windows, different floating point output format. 2006-04-10 09:31:46 +02:00
unknown
9f7215d61b BUG#18906 Test case rpl_temporary fails when using --vardir option
env variable name is fixed.




mysql-test/include/get_binlog_dump_thread_id.inc:
  Fixing to right env $var name.
mysql-test/r/rpl_temporary.result:
  results
2006-04-09 13:27:53 +03:00
unknown
fc9dccaf3f Merge mysql.com:/usr/local/mysql/mysql-4.1-vgfix
into  mysql.com:/usr/local/mysql/mysql-4.1
2006-04-09 00:22:05 +02:00
unknown
5a19f3bc71 $MYSQL_TEST was broken with --valgrind. 2006-04-08 22:27:43 +02:00
unknown
e536c8eca7 Fixed bug #16069.
The function agg_cmp_type in item_cmpfunc.cc neglected the fact that 
the first argument in a BETWEEN/IN predicate could be a field of a view.
As a result in the case when the retrieved table was hidden by a view 
over it and the arguments in the BETWEEN/IN predicates are of 
the date/time type the function did not perform conversion of 
the constant arguments to the same format as the first field argument.
If formats of the arguments differed it caused wrong a evaluation of
the predicates.


mysql-test/r/view.result:
  Added a test case for bug #16069.
mysql-test/t/view.test:
  Added a test case for bug #16069.
2006-04-08 11:42:09 -07:00
unknown
e44359014a #18906: bushbuild reports rpl_temporary fails on solaris, AIX, QNX
Removing the problematic line from include test file.


mysql-test/include/get_binlog_dump_thread_id.inc:
  replacing replace_result by disable_query_log
mysql-test/r/rpl_temporary.result:
  results
2006-04-08 16:29:11 +03:00
unknown
67cbda06b9 Merge aelkin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  dl145j.mysql.com:/tmp/5.0.21-bug17284-temp_table
2006-04-07 22:42:55 +02:00
unknown
ff5df65540 Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0
into  rurik.mysql.com:/home/igor/mysql-5.0
2006-04-07 13:07:40 -07:00
unknown
f37d610147 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/opt/local/work/mysql-4.1-16365


sql/mysql_priv.h:
  Auto merged
sql/sql_class.h:
  Auto merged
mysql-test/r/ps.result:
  Manual merge
mysql-test/t/ps.test:
  Manual merge
2006-04-07 23:50:45 +04:00
unknown
5b5530daa5 A fix and a test case for Bug#16365 "Prepared Statements: DoS with
too many open statements". The patch adds a new global variable
@@max_prepared_stmt_count. This variable limits the total number
of prepared statements in the server. The default value of
@@max_prepared_stmt_count is 16382. 16382 small statements
(a select against 3 tables with GROUP, ORDER and LIMIT) consume 
100MB of RAM. Once this limit has been reached, the server will 
refuse to prepare a new statement and return ER_UNKNOWN_ERROR 
(unfortunately, we can't add new errors to 4.1 without breaking 5.0). The limit is changeable after startup
and can accept any value from 0 to 1 million. In case
the new value of the limit is less than the current
statement count, no new statements can be added, while the old
still can be used. Additionally, the current count of prepared 
statements is now available through a global read-only variable 
@@prepared_stmt_count.


mysql-test/r/ps.result:
  Test results fixed (a test case for Bug#16365)
mysql-test/t/ps.test:
  A test case for Bug#16365 "Prepared Statements: DoS with too many 
  open statements". Also fix statement leaks in other tests.
sql/mysql_priv.h:
  Add declarations for new global variables.
sql/mysqld.cc:
  Add definitions of max_prepared_stmt_count, prepared_stmt_count.
sql/set_var.cc:
  Implement support for @@prepared_stmt_count and 
  @@max_prepared_stmt_count. Currently these variables are queried
  without acquiring LOCK_prepared_stmt_count due to limitations of
  the set_var/sys_var class design. Updates are, however, protected 
  with a lock.
sql/set_var.h:
  New declarations to add support for @@max_prepared_stmt_count.
  Implement a new class, where the lock to be used when updating
  a variable is a parameter.
sql/sql_class.cc:
  Add accounting of the total number of prepared statements in the
  server to the methods of Statement_map.
sql/sql_class.h:
  Add accounting of the total number of prepared statements in the
  server to the methods of Statement_map.
sql/sql_prepare.cc:
  Statement_map::insert will now send a message in case of an
  error.
2006-04-07 23:37:06 +04:00
unknown
e4e37ae5a1 Merge jbruehe@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/M41/mtr-4.1
2006-04-07 21:07:53 +02:00
unknown
9b6e83f4b8 A fix and a test case for Bug#16248 "WHERE (col1,col2) IN ((?,?))
gives wrong results". Implement previously missing 
Item_row::cleanup. The bug is not repeatable in 5.0, probably 
due to a coincidence: the problem is present in 5.0 as well.


mysql-test/r/ps.result:
  Update the result file (Bug#16248)
mysql-test/t/ps.test:
  Add a test case for Bug#16248 "WHERE (col1,col2) IN ((?,?)) gives 
  wrong results"
sql/item_row.cc:
  Implement Item_row::cleanup(): we should reset used_tables_cache
  before reexecution of a prepared statement. In case ROW
  arguments contain a placeholder, used_tables_cache has PARAM_TABLE
  bit set in statement prepare. As a result, when executing a statement,
  the condition push down algorithm (make_cond_for_table) would think
  that the WHERE clause belongs to the non-existent PARAM_TABLE and
  wouldn't attach the WHERE clause to any of the real tables, 
  effectively optimizing the clause away.
sql/item_row.h:
  Remove a never used member 'array_holder'. Add declaration for
  Item_row::cleanup.
2006-04-07 22:26:25 +04:00
unknown
6b5c0b117a Merge jbruehe@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/M50/mtr-5.0
2006-04-07 20:26:12 +02:00
unknown
34a72d8d93 Merge aelkin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/usr_rh9/home/elkin.rh9/MySQL/FIXES/5.0.21-bug17284-temp_table
2006-04-07 21:21:23 +03:00