1
0
mirror of https://github.com/MariaDB/server.git synced 2025-11-10 23:02:54 +03:00
Commit Graph

13364 Commits

Author SHA1 Message Date
evgen@moonbone.local
d1d58b5f1d Bug#27563: Stored functions and triggers wasn't throwing an error when killed.
If a stored function or a trigger was killed it had aborted but no error
was thrown. This allows the caller statement to continue without a notice.
This may lead to a wrong data being inserted/updated to/deleted as in such
cases the correct result of a stored function isn't guaranteed. In the case
of triggers it allows the caller statement to ignore kill signal and to
waste time because of re-evaluation of triggers that always will fail
because thd->killed flag is still on.

Now the Item_func_sp::execute() and the sp_head::execute_trigger() functions
check whether a function or a trigger were killed during execution and
throws an appropriate error if so.
Now the fill_record() function stops filling record if an error was reported
through thd->net.report_error.
2007-05-23 23:24:16 +04:00
mhansson@dl145s.mysql.com
85111f0a95 Bug #28250: Run-Time Check Failure #3 - The variable 'value' is
being used without being def

Inside method Item_func_unsigned::val_int, the variable value 
can be returned without being initialized when the CAST argument
is of type DECIMAL and has a NULL value. This gives a run-time 
error when building debug binaries using Visual C++ 2005.

Solution: Initialize value to 0
2007-05-23 14:43:06 +02:00
bar@mysql.com/bar.myoffice.izhnet.ru
636490e9e1 Bug#27636 mysqlbinlog-cp932 and ctype_cp932 tests fails if LC_* variables set to *_*.UTF-8
As MySQL character set tests can print results in many character sets
(latin1, utf8-8, sjis, cp932 and others) - its output can be incompatible
with the current locale settings, which makes PERL confuse.

Fix: reset LC_ALL and LC_CTYPE to "C", which is compatible with
any character set.
2007-05-23 17:32:40 +05:00
ramil/ram@ramil.myoffice.izhnet.ru
6224867b16 Merge mysql.com:/home/ram/work/mysql-5.0-maint
into  mysql.com:/home/ram/work/b28509/b28509.5.0
2007-05-23 16:31:22 +05:00
dlenev@mockturtle.local
c07b3670d7 5.0 version of fix for:
Bug #23667 "CREATE TABLE LIKE is not isolated from alteration
             by other connections"
 Bug #18950 "CREATE TABLE LIKE does not obtain LOCK_open"
As well as:
 Bug #25578 "CREATE TABLE LIKE does not require any privileges
             on source table".

The first and the second bugs resulted in various errors and wrong
binary log order when one tried to execute concurrently CREATE TABLE LIKE
statement and DDL statements on source table or DML/DDL statements on its
target table.

The problem was caused by incomplete protection/table-locking against
concurrent statements implemented in mysql_create_like_table() routine.
We solve it by simply implementing such protection in proper way (see
comment for sql_table.cc for details).

The third bug allowed user who didn't have any privileges on table create
its copy and therefore circumvent privilege check for SHOW CREATE TABLE.

This patch solves this problem by adding privilege check, which was missing.

Finally it also removes some duplicated code from mysql_create_like_table().

Note that, altough tests covering concurrency-related aspects of CREATE TABLE
LIKE behaviour will only be introduced in 5.1, they were run manually for
this patch as well.
2007-05-23 15:22:13 +04:00
msvensson@shellback.(none)
61ed6da11f Merge shellback.(none):/home/msvensson/mysql/mysql-4.1-maint
into  shellback.(none):/home/msvensson/mysql/mysql-5.0-maint
2007-05-23 12:20:11 +02:00
msvensson@shellback.(none)
b34660a877 Merge bk-internal:/home/bk/mysql-4.1-maint
into  shellback.(none):/home/msvensson/mysql/mysql-4.1-maint
2007-05-23 12:15:25 +02:00
msvensson@shellback.(none)
933afe6cb4 Bug#27396 Wrong check for root priveledge
- Check that filemode was set to 0000
2007-05-23 12:13:49 +02:00
ramil/ram@ramil.myoffice.izhnet.ru
1f9b403b45 Merge mysql.com:/home/ram/work/mysql-5.0-maint
into  mysql.com:/home/ram/work/b28509/b28509.5.0
2007-05-23 13:48:31 +05:00
svoj@mysql.com/june.mysql.com
122167bb4b Merge mysql.com:/home/svoj/devel/bk/mysql-5.0
into  mysql.com:/home/svoj/devel/mysql/merge/mysql-5.0-engines
2007-05-23 12:39:33 +05:00
tomas@whalegate.ndb.mysql.com
481b314e9a Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
2007-05-22 23:20:40 +02:00
mhansson@dl145s.mysql.com
debb054d4a Merge mhansson@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  dl145s.mysql.com:/users/mhansson/mysql/autopush/mysql-5.0o-pushee
2007-05-22 18:30:23 +02:00
gkodinov/kgeorge@magare.gmz
6d1fab661b Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B28476-5.0-opt
2007-05-22 17:05:33 +03:00
gkodinov/kgeorge@magare.gmz
604ef46327 Bug #28476: force index on a disabled myisam index gives error 124
When processing the USE/FORCE index hints
the optimizer was not checking if the indexes 
specified are enabled (see ALTER TABLE).
Fixed by:
 Backporting the fix for bug 20604 to 5.0
2007-05-22 15:58:30 +03:00
mhansson@dl145s.mysql.com
d6cf093408 Merge dl145s.mysql.com:/users/mhansson/mysql/push/bug23856/my50-bug23856
into  dl145s.mysql.com:/users/mhansson/mysql/push/bug23856/mysql-5.0o-pushee
2007-05-22 14:48:49 +02:00
evgen@moonbone.local
90aa02715d Bug#27507: Wrong DATETIME value was allowed by ALTER TABLE in the NO_ZERO_DATE
mode.

When a new DATE/DATETIME field without default value is being added by the
ALTER TABLE the '0000-00-00' value is used as the default one. But it wasn't
checked whether such value was allowed by the set sql mode. Due to this
'0000-00-00' values was allowed for DATE/DATETIME fields even in the
NO_ZERO_DATE mode.

Now the mysql_alter_table() function checks whether the '0000-00-00' value
is allowed for DATE/DATETIME fields by the set sql mode.
The new error_if_not_empty flag is used in the mysql_alter_table() function
to indicate that it should abort if the table being altered isn't empty.
The new new_datetime_field field is used in the mysql_alter_table() function
for error throwing purposes. 
The new error_if_not_empty parameter is added to the copy_data_between_tables()
function to indicate the it should return error if the source table isn't empty.
2007-05-22 00:22:53 +04:00
tsmith@quadxeon.mysql.com
99488b31b9 Merge quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/50
into  quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/50
2007-05-21 20:50:08 +02:00
tsmith@quadxeon.mysql.com
2c3bebc570 Merge quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/41
into  quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/41
2007-05-21 20:49:24 +02:00
holyfoot/hf@mysql.com/hfmain.(none)
bb708f49db Merge abotchkov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  mysql.com:/home/hf/work/27984/my50-27984
2007-05-21 22:29:39 +05:00
holyfoot/hf@mysql.com/hfmain.(none)
57d5ffe123 Merge bk@192.168.21.1:mysql-5.0-opt
into  mysql.com:/home/hf/work/27984/my50-27984
2007-05-21 22:28:50 +05:00
holyfoot/hf@mysql.com/hfmain.(none)
84a572aabf Bug #27984 Long Decimal Maths produces truncated results.
decimal_round failed to perform a correct rounding 
of a decimal number if its first nine digits were '9'.
It just sets those digits to 0.
2007-05-21 22:22:47 +05:00
holyfoot/hf@mysql.com/hfmain.(none)
9539b66237 Merge abotchkov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  mysql.com:/home/hf/work/28361/my50-28361
2007-05-21 17:55:06 +05:00
holyfoot/hf@mysql.com/hfmain.(none)
7bb143aa04 test result fixed 2007-05-21 17:53:55 +05:00
holyfoot/hf@mysql.com/hfmain.(none)
7750ac0706 Merge abotchkov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  mysql.com:/home/hf/work/27894/my50-27894
2007-05-21 14:54:21 +05:00
msvensson@pilot.blaudden
3ad9c30039 Bug#27438 rpl_rotate_logs fails on Windows
- Fix test case to work also when filesystem time differs
   from mysqld' time. I.e when running with data files on a
   network share.
2007-05-21 11:33:58 +02:00
mhansson@dl145s.mysql.com
6530f6806a bug#23856 2007-05-21 10:27:33 +02:00
holyfoot/hf@mysql.com/hfmain.(none)
b96e1df90c Bug #28361 Buffer overflow in DECIMAL code on Windows
result max length changed for the 'decimal' fields
so test results have to be fixed
2007-05-21 13:02:03 +05:00
gkodinov/kgeorge@magare.gmz
6c8e7952a1 Merge macbook:mysql/work/B22855-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/work/B22855-5.0-opt
2007-05-21 10:21:55 +03:00
tomas@whalegate.ndb.mysql.com
11feedf073 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
2007-05-21 08:49:49 +02:00
holyfoot/hf@mysql.com/hfmain.(none)
1b8ba5e424 bug #28361 Buffer overflow in DECIMAL code on Windows
my_decimal in some cases can contain more decimal digits than
is officially supported (DECIMAL_MAX_PRECISION), so we need to
prepare bigger buffer for the resulting string.
2007-05-20 21:22:57 +05:00
msvensson@pilot.blaudden
a3bd588435 Merge pilot.blaudden:/home/msvensson/mysql/bug28401/my50-bug28401
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
2007-05-19 18:22:08 +02:00
msvensson@pilot.blaudden
bc69d072f3 Bug #28401 mysql_upgrade Failed with STRICT_ALL_TABLES, ANSI_QUOTES and NO_ZERO_DATE
- The SQL commands used by mysql_upgrade are written to be run
    with sql_mode set to '' - thus the scripts should change sql_mode
    for the session to make sure the SQL is legal.
2007-05-19 18:15:08 +02:00
serg@sergbook.mysql.com
c7a4547361 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  sergbook.mysql.com:/usr/home/serg/Abk/mysql-5.0
2007-05-18 18:22:38 +02:00
serg@sergbook.mysql.com
11e5fa8f71 added cleanup to some tests 2007-05-18 17:48:44 +02:00
holyfoot/hf@mysql.com/hfmain.(none)
38c8951d11 Merge bk@192.168.21.1:mysql-4.1
into  mysql.com:/d2/hf/mrg/mysql-4.1-opt
2007-05-18 20:01:49 +05:00
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
11a2fd422b Fox for bug #28509: strange behaviour: passing a decimal value to PS
Set parameter's type to Item::DECIMAL_ITEM assigning a decimal value.
2007-05-18 18:16:51 +05:00
msvensson@pilot.blaudden
01ae08078e Merge bk-internal:/home/bk/mysql-5.0-maint
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
2007-05-18 12:58:28 +02:00
msvensson@pilot.blaudden
7bc79da2c8 Merge bk-internal:/home/bk/mysql-4.1-maint
into  pilot.blaudden:/home/msvensson/mysql/mysql-4.1-maint
2007-05-18 12:58:11 +02:00
msvensson@pilot.blaudden
c3f407a07a Merge pilot.blaudden:/home/msvensson/mysql/mysql-4.1-maint
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
2007-05-18 12:56:52 +02:00
msvensson@pilot.blaudden
e05aa94353 WL#2247 mysqltest: add option for sorting results
- Final touchups
2007-05-18 12:50:23 +02:00
evgen@moonbone.local
835189cb85 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/mnt/gentoo64/work/28261-bug-5.0-opt-mysql
2007-05-18 13:39:34 +04:00
kostja@vajra.(none)
1016aa36ec Bug #27907 "Misleading error message when opening/locking tables"
Adjust the check that defines the error message to be returned.
2007-05-18 12:29:06 +04:00
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
63b2e8d9df Fix for bug #28464: a string argument to 'limit ?' PS - replication fails
Problem: we may get syntactically incorrect queries in the binary log 
if we use a string value user variable executing a PS which 
contains '... limit ?' clause, e.g.
prepare s from "select 1 limit ?"; 
set @a='qwe'; execute s using @a;
  
Fix: raise an error in such cases.
2007-05-18 12:08:07 +05:00
igor@olga.mysql.com
2189c571b2 Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug28337
2007-05-17 16:06:57 -07:00
tsmith@siva.hindu.god
30bc713c77 Merge siva.hindu.god:/home/tsmith/m/bk/50
into  siva.hindu.god:/home/tsmith/m/bk/maint/50
2007-05-17 14:17:50 -06:00
tsmith@siva.hindu.god
81adc6a5ff Merge siva.hindu.god:/home/tsmith/m/bk/41
into  siva.hindu.god:/home/tsmith/m/bk/maint/41
2007-05-17 14:16:33 -06:00
evgen@moonbone.local
0e3c4f6729 Bug#28261: Wrong DATETIME comparison result when the GET_USER_VAR function
is involved.

The Arg_comparator::compare_datetime() comparator caches its arguments if
they are constants i.e. const_item() returns true. The
Item_func_get_user_var::const_item() returns true or false based on
the current query_id and the query_id where the variable was created.
Thus even if a query can change its value its const_item() still will return
true. All this leads to a wrong comparison result when an object of the
Item_func_get_user_var class is involved.

Now the Arg_comparator::can_compare_as_dates() and the
get_datetime_value() functions never cache result of the GET_USER_VAR()
function (the Item_func_get_user_var class).
2007-05-17 23:09:45 +04:00
tsmith@siva.hindu.god
2703da69ff ps_6bdb.result:
Fix bad merge of test results
2007-05-17 12:55:59 -06:00
gkodinov/kgeorge@macbook.gmz
a9b348c71c Bug#22855:
Conversion errors when constructing the condition for an
IN predicates were treated as if the affected column contains
NULL. If such a IN predicate is inside NOT we get wrong 
results.
Corrected the handling of conversion errors in an IN predicate 
that is resolved by unique_subquery (through 
subselect_uniquesubquery_engine).
2007-05-17 19:38:34 +03:00
igor@olga.mysql.com
8c34ae268c Fixed bug #28337: wrong results for grouping queries with correlated
subqueries in WHERE conditions.
This bug was introduced by the patch for bug 27321.
2007-05-16 23:42:10 -07:00