Commit graph

9930 commits

Author SHA1 Message Date
igor@rurik.mysql.com
6051e0f959 Fixed bug #17873: confusing error message when IGNORE/USE/FORCE INDEX
refers to a column name.
2006-05-30 00:08:58 -07:00
gluh@eagle.intranet.mysql.r18.ru
ae72df07f2 Bug#17204 "second CALL to procedure crashes Server"
Bug#18282 "INFORMATION_SCHEMA.TABLES provides inconsistent info about invalid views"
This bug caused crashes or resulted in wrong data being returned
when one tried to obtain information from I_S tables about views
using stored functions.

It was caused by the fact that we were using LEX representing
statement which were doing select from I_S tables as active LEX
when contents of I_S table were built. So state of this LEX both
affected and was affected by open_tables() calls which happened
during this process. This resulted in wrong behavior and in
violations of some of invariants which caused crashes.

This fix tries to solve this problem by properly saving/resetting
and restoring part of LEX which affects and is affected by the
process of opening tables and views in get_all_tables() routine.
To simplify things we separated this part of LEX in a new class
and made LEX its descendant.
2006-05-30 10:45:23 +05:00
mikael@c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se
d3ea79ff52 BUG#19801: Valgrind error in check_list_constants
Needed some special handling of the case when no_list_values == 0
2006-05-30 00:08:48 -04:00
ngrishakin@mysql.com
89afd0225b Merge ngrishakin@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  mysql.com:/home/ndbdev/ngrishakin/mysql-5.1-new
2006-05-30 01:37:20 +02:00
ngrishakin@mysql.com
0763f5e7b4 removed partitions from ndb_dd_backuprestore test 2006-05-30 01:36:35 +02:00
evgen@moonbone.local
641f852de8 Fixed bug#18360: Incorrect type coercion in IN() results in false comparison
The IN() function uses agg_cmp_type() to aggregate all types of its arguments
to find out some common type for comparisons. In this particular case the 
char() and the int was aggregated to double because char() can contain values
like '1.5'. But all strings which do not start from a digit are converted to
0. thus 'a' and 'z' become equal. 
This behaviour is reasonable when all function arguments are constants. But 
when there is a field or an expression this can lead to false comparisons. In
this case it makes more sense to coerce constants to the type of the field
argument.

The agg_cmp_type() function now aggregates types of constant and non-constant
items separately. If some non-constant items will be found then their
aggregated type will be returned. Thus after the aggregation constants will be
coerced to the aggregated type.
2006-05-30 00:36:48 +04:00
mikael@c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se
7dae459d70 BUG#17310: Archive error for drop database 2006-05-29 14:51:46 -04:00
andrey@lmy004.
35b6416fcf Merge lmy004.:/work/mysql-5.1-new-vanilla
into lmy004.:/work/mysql-5.1-runtime
2006-05-29 20:23:44 +02:00
evgen@moonbone.local
41f968e1b4 Manually merged 2006-05-29 19:07:35 +04:00
msvensson@shellback.(none)
b30cbbe131 Merge shellback.(none):/home/msvensson/mysql/mysql-5.0-maint_from_5.1
into  shellback.(none):/home/msvensson/mysql/mysql-5.0
2006-05-29 16:33:32 +02:00
msvensson@shellback.(none)
4693d06a49 Add missing drop table 2006-05-29 16:27:45 +02:00
msvensson@neptunus.(none)
10719727ff Merge neptunus.(none):/home/msvensson/mysql/tmp/tmp_merge
into  neptunus.(none):/home/msvensson/mysql/mysql-5.1
2006-05-29 15:43:00 +02:00
ingo@mysql.com
ed2e475548 Merge mysql.com:/home/mydev/mysql-5.0-bug19815
into  mysql.com:/home/mydev/mysql-5.1-bug19815
2006-05-29 15:30:13 +02:00
ingo@mysql.com
d00441e328 Bug#19815 - CREATE/RENAME/DROP DATABASE can deadlock on a global read lock
The order of acquiring LOCK_mysql_create_db
and wait_if_global_read_lock() was wrong. It could happen
that a thread held LOCK_mysql_create_db while waiting for
the global read lock to be released. The thread with the
global read lock could try to administrate a database too.
It would first try to lock LOCK_mysql_create_db and hang...

The check if the current thread has the global read lock
is done in wait_if_global_read_lock(), which could not be
reached because of the hang in LOCK_mysql_create_db.

Now I exchanged the order of acquiring LOCK_mysql_create_db
and wait_if_global_read_lock(). This makes 
wait_if_global_read_lock() fail with an error message for
the thread with the global read lock. No deadlock happens.
2006-05-29 15:26:23 +02:00
andrey@lmy004.
ea20259aac Merge lmy004.:/work/mysql-5.1-new-vanilla
into lmy004.:/work/mysql-5.1-runtime
2006-05-29 15:16:07 +02:00
msvensson@neptunus.(none)
076ddbf840 Merge neptunus.(none):/home/msvensson/mysql/mysql-5.0
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
2006-05-29 15:06:37 +02:00
msvensson@neptunus.(none)
3e2c08cc99 Update after merge to 5.0 2006-05-29 15:05:31 +02:00
svoj@may.pils.ru
53279f1dc4 BUG#19580 - FULLTEXT search produces wrong results on UTF-8 columns
The problem was that MySQL hadn't true ctype implementation. As a
result many multibyte punctuation/whitespace characters were
treated as word characters.

This fix uses recently added CTYPE table for unicode character sets
(WL1386) to detect unicode punctuation/whitespace characters
correctly.

Note: this is incompatible change since it changes parser behavior.
One will have to use REPAIR TABLE statement to rebuild fulltext
indexes.
2006-05-29 16:46:46 +05:00
andrey@lmy004.
2a6ffba67d add missing events_grant test 2006-05-29 13:16:29 +02:00
msvensson@neptunus.(none)
20e0714176 Merge neptunus.(none):/home/msvensson/mysql/bug16297/my50-bug16297
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
2006-05-29 13:16:17 +02:00
kroki@mysql.com
e87bc6e48c Avoid race between master and slave. 2006-05-29 14:45:20 +04:00
andrey@lmy004.
b4752351f2 Fix for bug #17394 - Events namespace is wrong 2006-05-29 10:39:45 +02:00
msvensson@neptunus.(none)
91e4fd9ac9 Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0
2006-05-29 09:06:06 +02:00
ramil@mysql.com
6b2ab800c9 manual merge 2006-05-29 11:17:38 +05:00
igor@rurik.mysql.com
cb4c6a0ded Merge rurik.mysql.com:/home/igor/mysql-4.1
into  rurik.mysql.com:/home/igor/dev/mysql-4.1-0
2006-05-28 14:23:28 -07:00
evgen@moonbone.local
1f30bf5a33 Fixed bug#19225: unchecked error results in server crash
In multi-table delete a table for delete can't be used for selecting in
subselects. Appropriate error was raised but wasn't checked which leads to a
crash at the execution phase.

The mysql_execute_command() now checks for errors before executing select
for multi-delete.
2006-05-29 00:32:59 +04:00
evgen@moonbone.local
766b4a8c7f Fixed bug#15351: Wrong collation used for comparison of md5() and sha()
argument can lead to a wrong result.

md5() and sha() functions treat their arguments as case sensitive strings.
But when they are compared their arguments were compared as a case
insensitive strings which leads to two functions with different arguments
and thus different results to being identical. This can lead to a wrong
decision made in the range optimizer and thus lead to a wrong result set.

Item_func_md5::fix_length_and_dec() and Item_func_sha::fix_length_and_dec()
functions now set binary collation on their arguments.
2006-05-28 22:01:38 +04:00
aelkin@mysql.com
6119b7136e BUG#14157: utf8 encoding in binlog without set character_set_client
refining the test case to exclude problems with koi8r on some platforms.
2006-05-28 19:47:01 +03:00
serg@sergbook.mysql.com
71657322fd Merge bk-internal.mysql.com:/home/bk/mysql-5.1-new
into sergbook.mysql.com:/usr/home/serg/Abk/mysql-5.1
2006-05-28 14:54:28 +02:00
serg@sergbook.mysql.com
fe97dbb587 handlerton cleanup:
duplicate fields removed, st_mysql_storage_engine added to support
run-time handlerton initialization (no compiler warnings), handler API
is now tied to MySQL version, handlerton->plugin mapping added
(slot-based), dummy default_hton removed, plugin-type-specific
initialization generalized, built-in plugins are now initialized too,
--default-storage-engine no longer needs a list of storage engines
in handle_options().

mysql-test-run.pl bugfixes
2006-05-28 14:51:01 +02:00
igor@rurik.mysql.com
377b3e0306 Fixed bug #17873: confusing error message when IGNORE/USE/FORCE INDEX
refers to a column name.
Added a new error message ER_INDEX_DOES_NOT_EXIST.
2006-05-27 23:57:33 -07:00
mikael@c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se
1068ab153c BUG#19310: Add partition using InnoDB crashes MySQL Server
Added new test case
2006-05-27 20:30:53 -04:00
mikael@c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se
ee11e39fa1 BUG#19903: Add partition crashes
Added new test cases
2006-05-27 20:23:22 -04:00
mikael@c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se
f8bbea4b27 BUG#19830: ALTER TABLE REORGANIZE partition crashes
New test cases added
2006-05-27 20:16:17 -04:00
mikael@c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se
cdc9025e0e Merge c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/clean-mysql-5.1-new
into  c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/bug19122
2006-05-27 17:38:04 -04:00
mikael@c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se
bd349cff14 BUG#19695: Showed partition options when table options were not shown 2006-05-27 17:36:45 -04:00
mikael@c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se
10a7660f94 BUG#19305: COALESCE partition left partition files undropped 2006-05-27 16:34:13 -04:00
kent@mysql.com
51f3882243 Merge mysql.com:/data0/mysqldev/my/mysql-5.0.22-release
into  mysql.com:/data0/mysqldev/my/mysql-5.0
2006-05-26 18:38:34 +02:00
kent@mysql.com
f5a443d283 Merge mysql.com:/data0/mysqldev/my/mysql-4.1.20-release
into  mysql.com:/data0/mysqldev/my/mysql-4.1
2006-05-26 18:31:25 +02:00
rburnett@bk-internal.mysql.com
f4aa434fbe Merge bk-internal.mysql.com:/data0/bk/mysql-5.1-new
into  bk-internal.mysql.com:/data0/bk/mysql-5.1-kt
2006-05-26 15:08:24 +02:00
kent@mysql.com
7175805cd4 Merge mysql.com:/data0/mysqldev/my/mysql-5.1-release
into  mysql.com:/data0/mysqldev/my/mysql-5.1-new
2006-05-26 13:17:09 +02:00
gkodinov@mysql.com
393d1b69e0 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/kgeorge/mysql/5.0/clean
2006-05-26 12:13:48 +03:00
gkodinov@mysql.com
b6acee915a Merge mysql.com:/home/kgeorge/mysql/5.0/clean
into  mysql.com:/home/kgeorge/mysql/5.0/B18681
2006-05-26 11:57:56 +03:00
gkodinov@mysql.com
7552d8d9ba Merge mysql.com:/home/kgeorge/mysql/5.0/clean
into  mysql.com:/home/kgeorge/mysql/5.0/B18681
2006-05-26 11:51:30 +03:00
gkodinov@mysql.com
f0f9c740ed Merge mysql.com:/home/kgeorge/mysql/5.0/clean
into  mysql.com:/home/kgeorge/mysql/5.0/B14875
2006-05-26 11:51:11 +03:00
gkodinov@mysql.com
59837f7a5b Bug #14875: Bad view DEFINER makes SHOW CREATE VIEW fail
When reading a view definition from a .frm file it was
throwing a SQL error if the DEFINER user is not defined.
Changed it to a warning to match the (documented) case
when a view with undefined DEFINER user is created.
2006-05-26 11:49:39 +03:00
gkodinov@mysql.com
a21a2b5bcd BUG#18681: View privileges are broken
The check for view security was lacking several points :
1. Check with the right set of permissions : for each table ref that
participates in a view there were the right credentials to use in it's
security_ctx member, but these weren't used for checking the credentials.
This makes hard enforcing the SQL SECURITY DEFINER|INVOKER property
consistently.
2. Because of the above the security checking for views was just ruled out
in explicit ways in several places.
3. The security was checked only for the columns of the tables that are
brought into the query from a view. So if there is no column reference
outside of the view definition it was not detecting the lack of access to
the tables in the view in SQL SECURITY INVOKER mode.

The fix below tries to fix the above 3 points.
2006-05-26 11:47:53 +03:00
evgen@moonbone.local
40ea30253f Fixed bug#16716: subselect in concat() may lead to a wrong result.
The Item_func_concat::val_str() function tries to make as less re-allocations
as possible. This results in appending strings returned by 2nd and next
arguments to the string returned by 1st argument if the buffer for the first
argument has enough free space. A constant subselect is evaluated only once 
and its result is stored in an Item_cache_str. In the case when the first
argument of the concat() function is such a subselect Item_cache_str returns
the stored value and Item_func_concat::val_str() append values of other
arguments to it. But for the next row the value in the Item_cache_str isn't
restored because the subselect is a constant one and it isn't evaluated second
time. This results in appending string values of 2nd and next arguments to the 
result of the previous Item_func_concat::val_str() call.

The Item_func_concat::val_str() function now checks whether the first argument 
is a constant one and if so it doesn't append values of 2nd and next arguments
to the string value returned by it.
2006-05-26 01:24:14 +04:00
jmiller@mysql.com
0bf4f53187 Merge jmiller@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  mysql.com:/home/ndbdev/jmiller/clones/mysql-5.1-new
2006-05-25 22:37:06 +02:00
jmiller@mysql.com
115bcca2d1 Removing ./r/rpl_ndb_dd_partitions.result & ./t/rpl_ndb_dd_partitions.test since NDB only will support key partitions and moving them to the test-extra tree for safe keeping 2006-05-25 22:36:03 +02:00