Commit graph

16519 commits

Author SHA1 Message Date
elliot@mysql.com
1a7ad4e45d Merge emurphy@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  mysql.com:/home/emurphy/src/bk-clean/mysql-5.1-new
2006-05-30 07:57:12 -04:00
mskold@mysql.com
f838e8a499 Merge mskold@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/home/marty/MySQL/mysql-4.1
2006-05-30 13:20:38 +02:00
andrey@lmy004.
1edd2cf833 update show authors 2006-05-30 10:22:31 +02:00
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
petr@mysql.com
67d3675549 update show authors 2006-05-30 03:26:58 +04: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
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
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
msvensson@neptunus.(none)
e7375bd438 Merge bk-internal:/home/bk/mysql-5.1-new
into  neptunus.(none):/home/msvensson/mysql/mysql-5.1
2006-05-29 15:32:52 +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
elliot@mysql.com
fed637bfc0 Merge emurphy@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  mysql.com:/home/emurphy/src/bk-clean/mysql-5.1-new
2006-05-29 09:21:53 -04: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
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
andrey@lmy004.
c9309583ee local variable interval to interval_tmp because it hides
Event_timed::interval
2006-05-29 13:12:34 +02:00
msvensson@neptunus.(none)
18bda1aff2 Merge bk-internal:/home/bk/mysql-5.0-maint
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
2006-05-29 13:11:21 +02:00
andrey@lmy004.
b4752351f2 Fix for bug #17394 - Events namespace is wrong 2006-05-29 10:39:45 +02: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
serg@serg.mylan
60e3b61786 Incompatible ftparser plugin API change.
mysql_parse() and mysql_add_word() now take a MYSQL_FTPARSER_PARAM*,
not a mysql_ftparam.
2006-05-28 17:02:50 +02: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
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
vtkachenko@vadima.volia.com
2e6b51579b Merge vtkachenko@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  vadima.volia.com:/root/mysql-5.1-new1
2006-05-27 08:08:03 +03:00
vtkachenko@vadima.volia.com
ddc463494b sql_class.cc, mysql_priv.h:
Added accessor to handler data.
2006-05-27 08:05:39 +03:00
pekka@mysql.com
f9d9cc1575 Merge pnousiainen@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/space/pekka/ndb/version/my50
2006-05-27 05:03:47 +02:00
mikael@c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se
90c415ffcd BUG#19122: MySQL Server crashes when ALTER TABLE t1 REBUILD PARTITION on InnoDB table 2006-05-26 18:44:52 -04:00
elliot@mysql.com
6f686a9ba0 Merge mysql.com:/home/emurphy/src/bk-clean/mysql-5.1-release
into  mysql.com:/home/emurphy/src/bk-clean/mysql-5.1-new
2006-05-26 17:18:20 -04:00
elliot@mysql.com
9ab5929eba BUG#15868 InnoDB thread thrashing
Restoring default innodb_thread_concurrency to 8
This default now matches 5.0
2006-05-26 17:11:21 -04:00
elliot@mysql.com
47f7438333 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/emurphy/iggy/mysql-5.0
2006-05-26 15:00:09 -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
pekka@mysql.com
00cbeb84ec ndb - minor fix to unhandled error, already in 5.1 [ auto-incr ] 2006-05-25 21:27:56 +02:00
pekka@mysql.com
65f21e216b ndb - compile fix for Solaris 10 AMD64 -max GCC [ ulonglong != Uint64 ] v5.1 2006-05-25 20:00:36 +02:00