Commit graph

54781 commits

Author SHA1 Message Date
Davi Arnaut
35ffaf10e3 Bug#34306: Can't make copy of log tables when server binary log is enabled
The problem is that when statement-based replication was enabled,
statements such as INSERT INTO .. SELECT FROM .. and CREATE TABLE
.. SELECT FROM need to grab a read lock on the source table that
does not permit concurrent inserts, which would in turn be denied
if the source table is a log table because log tables can't be
locked exclusively.

The solution is to not take such a lock when the source table is
a log table as it is unsafe to replicate log tables under statement
based replication. Furthermore, the read lock that does not permits
concurrent inserts is now only taken if statement-based replication
is enabled and if the source table is not a log table.
2008-09-29 10:53:40 -03:00
Mattias Jonsson
7388a9f54a merge (update of local branch before push) 2008-09-20 09:53:23 +03:00
Georgi Kodinov
d815cbb8df fixed a problem with the push of bug #31434 2008-09-19 16:24:32 +03:00
Georgi Kodinov
9ef7803382 merge of bug 39353 5.0-5.1.29-rc -> 5.1-5.1.29-rc 2008-09-19 15:34:37 +03:00
Georgi Kodinov
ac4de74d00 merged 5.0-5.1.29-rc into B39353 tree 2008-09-19 14:31:51 +03:00
Mattias Jonsson
0494d58527 Bug#30573: Ordered range scan over partitioned tables returns some rows twice
and
Bug#33555: Group By Query does not correctly aggregate partitions

Backport of bug-33257 which is the same bug.

read_range_*() calls was not passed to the partition handlers,
but was translated to index_read/next family calls.
Resulting in duplicates rows and wrong aggregations.
2008-09-18 22:49:34 +03:00
Georgi Kodinov
0a61c6d7c9 Bug #39353: Multiple conditions on timestamp column crashes server
The fix for bug 31887 was incomplete : it assumes that all the 
field types returned by the IS_NUM macro are descendants of 
Item_num and tries to zero-fill the values before doing constant
substitution with such fields when they are compared to constant string
values.
The only exception to this is Field_timestamp : it's in the IS_NUM
macro, but is not a descendant of Field_num.
Fixed by excluding timestamp fields (Field_timestamp) when zero-filling
when converting the constant to compare with to a string.
Note that this will not exclude the timestamp columns from const 
propagation.
2008-09-18 15:55:36 +03:00
Gleb Shchepa
cb8a39e78c Post-push fix for bug #26020: User-Defined Variables are not consistence with columns data types.
--ps-protocol problem has been fixed.
2008-09-18 17:24:09 +05:00
Gleb Shchepa
db1d38c910 Bug#26020: User-Defined Variables are not consistent with
columns data types

The "SELECT @lastId, @lastId := Id FROM t" query returns
different result sets depending on the type of the Id column
(INT or BIGINT).

Note: this fix doesn't cover the case when a select query
references an user variable and stored function that
updates a value of that variable, in this case a result
is indeterminate.


The server uses incorrect assumption about a constantness of
an user variable value as a select list item: 

The server caches a last query number where that variable
was changed and compares this number with a current query
number. If these numbers are different, the server guesses,
that the variable is not updating in the current query, so
a respective select list item is a constant. However, in some
common cases the server updates cached query number too late.


The server has been modified to memorize user variable
assignments during the parse phase to take them into account
on the next (query preparation) phase independently of the
order of user variable references/assignments in a select
item list.
2008-09-18 13:38:44 +05:00
Tatiana A. Nurnberg
70f15e4d54 auto-merge 2008-09-16 06:38:52 +02:00
Tatiana A. Nurnberg
e7c2a13bca auto-merge 2008-09-16 05:59:36 +02:00
Tatiana A. Nurnberg
5de76e39e7 Bug#35981: ALTER EVENT causes the server to change the PRESERVE option.
If [NOT] PRESERVE was not given, parser always defaulted to NOT
PRESERVE, making it impossible for the "not given = no change"
rule to work in ALTER EVENT. Leaving out the PRESERVE-clause
defaults to NOT PRESERVE on CREATE now, and to "no change" in
ALTER.
2008-09-11 09:51:02 +02:00
Tatiana A. Nurnberg
4b0ab1e0dc Bug#31434 mysqldump dumps view as table
mysqldump creates stand-in tables before dumping the actual view.
Those tables were of the default type; if the view had more columns
than that (a pathological case, arguably), loading the dump would
fail. We now make the temporary stand-ins MyISAM tables to prevent
this.
2008-09-11 08:14:19 +02:00
Tatiana A. Nurnberg
743149bccf Bug#31434 mysqldump dumps view as table
mysqldump creates stand-in tables before dumping the actual view.
Those tables were of the default type; if the view had more columns
than that (a pathological case, arguably), loading the dump would
fail. We now make the temporary stand-ins MyISAM tables to prevent
this.
2008-09-11 07:46:43 +02:00
Georgi Kodinov
772cdf0000 merged 5.0-bugteam to 5.1-bugteam 2008-09-10 12:55:38 +03:00
Georgi Kodinov
7f1734eb22 merged 5.1.29-rc into 5.1-bugteam 2008-09-10 12:44:21 +03:00
Georgi Kodinov
674d57be85 merged 5.0-5.1.29-rc -> 5.0-bugteam 2008-09-10 12:40:58 +03:00
Evgeny Potemkin
969ea5ed32 Merge 2008-09-10 12:44:38 +04:00
Ramil Kalimullin
237b86818c Merge 2008-09-09 21:24:33 +05:00
Ramil Kalimullin
12b953578c Merge 2008-09-09 20:52:38 +05:00
Martin Hansson
06e4f25fdc Bug#35600: Auto merged. 2008-09-09 17:30:36 +02:00
Ramil Kalimullin
707e676c58 Fix for bug#37526: asymertic operator <=> in trigger
Problem: <=> operator may return wrong results 
comparing NULL and a DATE/DATETIME/TIME value.

Fix: properly check NULLs.
2008-09-09 20:05:27 +05:00
Mats Kindahl
1aee4d9e3b Merging with 5.1-5.1.29-rc 2008-09-09 14:46:18 +02:00
Martin Hansson
0abc0eade2 Bug#35600: Security breach via view, I_S table and prepared
statement/stored procedure

View privileges are properly checked after the fix for bug no 
36086, so the method TABLE_LIST::get_db_name() must be used 
instead of field TABLE_LIST::db, as this only works for tables.
Bug appears when accessing views in prepared statements.
2008-09-09 12:49:08 +02:00
Mats Kindahl
69a8281c41 Bug #39106:
SUPER is not required to change binlog format for session

A user without SUPER privileges can change the value of the
session variable BINLOG_FORMAT, causing problems for a DBA.

This changeset requires a user to have SUPER privileges to
change the value of the session variable BINLOG_FORMAT, and
not only the global variable BINLOG_FORMAT.
2008-09-09 12:19:31 +02:00
Georgi Kodinov
f81c25e8b1 merge 5.1-5.1.29-rc to B38701 working tree 2008-09-08 14:51:09 +03:00
Ramil Kalimullin
9b8aa4683b Merge 2008-09-08 15:57:06 +05:00
Martin Hansson
3b9948ed86 Bug#36086: Auto merge. 2008-09-08 12:04:42 +02:00
Ramil Kalimullin
3d31690aa5 Merge 2008-09-08 14:55:38 +05:00
Georgi Kodinov
e953a26df5 Bug #38701: Crash in String::append when inserting duplicate empty strings an uft8
SET col
                  
When reporting a duplicate key error the server was making incorrect assumptions 
on what the state of the value string to include in the error is.

Fixed by accessing the data in this string in a "safe" way (without relying on it
having a terminating 0).
      
Detected by code analysis and fixed a similar problem in reporting the foreign key
duplicate errors.
2008-09-05 18:21:59 +03:00
Narayanan V
5220e3f4ea updating server version number 2008-09-05 20:20:26 +05:30
Narayanan V
061f38f61b WL#4380: abi_check rule (using gcc -E) for storage engine API
Added a rule that uses gcc to generate preprocessor
output (gcc -E) that can be compared to an already
generated output using the diff utility.

icheck has been removed and replaced by gcc -E
because icheck does not support C++.
2008-09-05 20:14:30 +05:30
Georgi Kodinov
b37078e94a merged 5.1-main -> 5.1-bugteam 2008-09-05 16:24:54 +03:00
Evgeny Potemkin
aa74a314e4 Bug#37908: Skipped access right check caused server crash.
The check_table_access function initializes per-table grant info and performs
access rights check. It wasn't called for SHOW STATUS statement thus left
grants info uninitialized. In some cases this led to server crash. In other
cases it allowed a user to check for presence/absence of arbitrary values in
any tables.
      
Now the check_table_access function is called prior to the statement
processing.
2008-09-05 14:44:16 +04:00
Ramil Kalimullin
b7a276f7ff After-merge fix. 2008-09-05 14:06:24 +05:00
Ramil Kalimullin
00d7c50e48 Merge 2008-09-05 13:36:02 +05:00
Ramil Kalimullin
0994c961a7 Fix for bug #39021: SELECT REGEXP BINARY NULL never returns
Problem: SELECT ... REGEXP BINARY NULL may lead to server crash/hang.

Fix: properly handle NULL regular expressions.
2008-09-05 13:30:01 +05:00
Ramil Kalimullin
cdec56dc85 Merge 2008-09-05 12:48:56 +05:00
Narayanan V
9e8851b158 merging mysql-5.1->mysql-5.1-sea 2008-09-04 17:23:16 +05:30
Mats Kindahl
565c4d2bb2 BUG#32709: Assertion failed: trx_data->empty(), file log.cc
Incremental fixes: updating a comment and fixing a result file.
2008-09-03 22:52:54 +02:00
Mats Kindahl
9755f07279 Bug #32709: Assertion failed: trx_data->empty(), file log.cc
The assertion indicates that some data was left in the transaction
cache when the server was shut down, which means that a previous
statement did not commit or rollback correctly.

What happened was that a bug in the rollback of a transactional
table caused the transaction cache to be emptied, but not reset.
The error can be triggered by having a failing UPDATE or INSERT,
on a transactional table, causing an implicit rollback.

Fixed by always flushing the pending event to reset the state
properly.
2008-09-03 22:04:07 +02:00
Martin Hansson
a43242ea6d Bug#36086: SELECT * from views don't check column grants
This patch also fixes bugs 36963 and 35600.
                      
- In many places a view was confused with an anonymous derived
  table, i.e. access checking was skipped. Fixed by introducing a
  predicate to tell the difference between named and anonymous
  derived tables.
                      
- When inserting fields for "SELECT * ", there was no 
  distinction between base tables and views, where one should be
  made. View privileges are checked elsewhere.
2008-09-03 16:45:40 +02:00
Andrei Elkin
83ce448cfe merging with 5.1.29. 2008-09-03 14:43:26 +03:00
Mats Kindahl
620a5faaf2 Updating result files for rpl_ndb test suite. 2008-09-03 12:27:01 +02:00
Ramil Kalimullin
ef13c12c0a Fix for bug#38821: Assert table->auto_increment_field_not_null failed
in open_table()

Problem: repeating "CREATE... ( AUTOINCREMENT) ... SELECT" may lead to
an assertion failure.

Fix: reset table->auto_increment_field_not_null after each record 
writing.
2008-09-03 15:17:19 +05:00
Andrei Elkin
21a08eabad Bug#36099 replicate-do-db affects replaying RBR events with mysqlbinlog
The replication filtering rules were inappropiately applied when
executing BINLOG pseudo-query.  The rules are supposed to be active
only at times when the slave's sql thread executes an event.
            
Fixed with correcting a condition to call replication rules only if
the slave sql thread executes the event.
2008-09-03 13:01:18 +03:00
Gleb Shchepa
2b0a534bb8 merge 5.0 --> 5.1 2008-09-03 13:06:03 +05:00
Gleb Shchepa
cfb4a66a5a merge with local tree 2008-09-03 12:59:48 +05:00
Gleb Shchepa
6f94324fd8 Bug #39002: The server crashes on the query:
INSERT .. SELECT .. ON DUPLICATE KEY UPDATE col=DEFAULT

In order to get correct values from update fields that
belongs to the SELECT part in the INSERT .. SELECT .. ON
DUPLICATE KEY UPDATE statement, the server adds referenced
fields to the select list. Part of the code that does this
transformation is shared between implementations of
the DEFAULT(col) function and the DEFAULT keyword (in
the col=DEFAULT expression), and an implementation of
the DEFAULT keyword is incomplete.
2008-09-03 12:32:43 +05:00
Magnus Svensson
1ac6fb4b2e Merge bug#31315 2008-09-02 11:14:13 +02:00