Commit graph

54955 commits

Author SHA1 Message Date
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
Magnus Svensson
447fa91d83 Bug#31315 mysql_install_db fails if a default table type of NDB is set in my.cnf
- Use myisam as default storage engine when running mysqld in --bootstrap mode
2008-09-02 10:53:30 +02:00
Vladislav Vaintroub
59edfa9261 null merge from bugteam-5.1 2008-09-01 17:51:54 -04:00
Vladislav Vaintroub
b2a49edd4e Bug#37226 Explicit call of my_thread_init() on Windows for every new thread.
Bug#33031 app linked to libmysql.lib crash if run as service in vista under 
localsystem
  

There are some problems using DllMain hook functions on Windows that 
automatically do global and per-thread initialization for libmysqld.dll

1)per-thread initialization(DLL_THREAD_ATTACH)
MySQL internally counts number of active threads that and causes a delay in in 
my_end() if not all threads are exited. But,there are threads that can be 
started either by Windows internally (often in TCP/IP scenarios) or by user 
himself - those threads are not necessarily using libmysql.dll functionality, 
but nonetheless the contribute to the count of open threads.

2)process-initialization (DLL_PROCESS_ATTACH)
my_init() calls WSAStartup that itself loads DLLs and can lead to a deadlock in 
Windows loader.

Fix is to remove dll initialization code from libmysql.dll in general case. I
still leave an environment variable LIBMYSQL_DLLINIT, which if set to any value 
will cause the old behavior (DLL init hooks will be called). This env.variable 
exists only to prevent breakage of existing Windows-only applications that 
don't do mysql_thread_init() and work ok today. Use of LIBMYSQL_DLLINIT is 
discouraged and it will be removed in 6.0
2008-09-01 17:46:37 -04:00
Vladislav Vaintroub
36266fc085 Fix "make dist" error - remove Visual Studio project files from
distribution
2008-09-01 17:27:14 -04:00
Davi Arnaut
7e8c13745e Restore tree name after merge from main. 2008-09-01 17:11:42 -03:00
Vladislav Vaintroub
6445c2deae Bug#37226 Explicit call of my_thread_init() on Windows for every new thread.
Bug#33031 app linked to libmysql.lib crash if run as service in vista under 
localsystem
  

There are some problems using DllMain hook functions on Windows that 
automatically do global and per-thread initialization for libmysqld.dll

1)per-thread initialization(DLL_THREAD_ATTACH)
MySQL internally counts number of active threads that and causes a delay in in 
my_end() if not all threads are exited. But,there are threads that can be 
started either by Windows internally (often in TCP/IP scenarios) or by user 
himself - those threads are not necessarily using libmysql.dll functionality, 
but nonetheless the contribute to the count of open threads.

2)process-initialization (DLL_PROCESS_ATTACH)
my_init() calls WSAStartup that itself loads DLLs and can lead to a deadlock in 
Windows loader.

Fix is to remove dll initialization code from libmysql.dll in general case. I
still leave an environment variable LIBMYSQL_DLLINIT, which if set to any value 
will cause the old behavior (DLL init hooks will be called). This env.variable 
exists only to prevent breakage of existing Windows-only applications that 
don't do mysql_thread_init() and work ok today. Use of LIBMYSQL_DLLINIT is 
discouraged and it will be removed in 6.0
2008-09-01 20:04:17 +02:00
Vladislav Vaintroub
828f3cb038 2008-09-01 19:10:04 +02:00
Vladislav Vaintroub
5334e5aead merge 2008-09-01 13:27:38 +02:00
Mattias Jonsson
d1da4cca8e Bug#38120: main.partition fails sporadically
sporadic failures due to full disk.

Fix by truncating general_log before altering it.
(if running the full main-test, it can be big).
2008-09-01 13:25:19 +02:00
Vladislav Vaintroub
c8d1e315f0 merge 2008-09-01 12:04:28 +02:00
Vladislav Vaintroub
4e97988b2c merge 2008-09-01 11:48:21 +02:00
Mats Kindahl
76cf340947 Post-merge fixes to update result files. 2008-09-01 11:27:41 +02:00
Mats Kindahl
bcec321d68 Merging 5.0-bugteam into 5.1-bugteam 2008-09-01 11:00:52 +02:00
Mats Kindahl
5214169192 Merging in 5.0-rpl into 5.0-bugteam 2008-09-01 10:19:17 +02:00
Kent Boortz
f0eff8c0af Merge from mysql-5.0-build 2008-08-29 17:43:36 +02:00
Kent Boortz
3653536ae8 Removed option to control if federated is enabled, and enabled it. 2008-08-29 17:31:31 +02:00
Kent Boortz
6fac985e1c Handle that version "level" might contain "sp1", "a"..... 2008-08-29 17:30:41 +02:00
Andrei Elkin
44b82b3eca Bug #38798 Assertion mysql_bin_log.is_open() failed in binlog_trans_log_savepos()
The assert is about binlogging must have been activated, but it was
not actually according to the reported how-to-repeat instuctions.
Analysis revealed that binlog_start_trans_and_stmt() was called
without prior testing if binlogging is ON.

Fixed with avoing entering binlog_start_trans_and_stmt() if binlog is
not activated.
2008-08-29 17:20:08 +03:00
Georgi Kodinov
a627a47282 merge 2008-08-28 18:24:06 +03:00
Georgi Kodinov
cac06c5ea7 On behalf of Jasonh: fix for a failing test case of bug 37051 2008-08-28 18:15:54 +03:00
Mattias Jonsson
2319c5cf0c Bug#32167 another privilege bypass with DATA/INDEX DIRECTORY.
post push patch
when building with valgrind, it does not compile in realpath,
so this test fails when using a valgrind build
NOTE: building with valgrind is not the same as useing the
--valgrind option with mysql-test-run
2008-08-28 16:59:22 +02:00
kent@mysql.com
8eae64aab8 Raise version number after cloning 5.1.28-rc 2008-08-28 16:51:00 +02:00
Matthias Leich
05185ddc6e Upmerge 5.0-bugteam - 5.1-bugteam
No conflicts/changes because 5.1-bugteam
contains already everything.
2008-08-28 14:35:38 +02:00
Matthias Leich
1aac55a67e Merge actual 5.0-bugteam into local tree 2008-08-28 14:18:40 +02:00
Matthias Leich
353cc4d048 Merge into local tree 2008-08-28 13:39:53 +02:00
Georgi Kodinov
4c318bf6e8 merge 5.0-bugteam -> 5.1-bugteam 2008-08-28 12:54:50 +03:00
Georgi Kodinov
0e3bc47fb4 merge 5.0-main -> 5.0-bugteam 2008-08-28 12:18:35 +03:00
Georgi Kodinov
da2d3e3fce merged 5.1-rpl-merge -> 5.1-bugteam 2008-08-28 11:26:06 +03:00
Gleb Shchepa
2c53f10969 Bug #37799: SELECT with a BIT column in WHERE clause
returns unexpected result

If:
  1. a table has a not nullable BIT column c1 with a length
     shorter than 8 bits and some additional not nullable
     columns c2 etc, and
  2. the WHERE clause is like: (c1 = constant) AND c2 ...,
the SELECT query returns unexpected result set.


The server stores BIT columns in a tricky way to save disk
space: if column's bit length is not divisible by 8, the
server places reminder bits among the null bits at the start
of a record. The rest bytes are stored in the record itself,
and Field::ptr points to these rest bytes.

However if a bit length of the whole column is less than 8,
there are no remaining bytes, and there is nothing to store in
the record at its regular place. In this case Field::ptr points
to bytes actually occupied by the next column in a record.
If both columns (BIT and the next column) are NOT NULL,
the Field::eq function incorrectly deduces that this is the
same column, so query transformation/equal item elimination
code (see build_equal_items_for_cond) may mix these columns
and damage conditions containing references to them.
2008-08-28 02:10:37 +05:00
Mats Kindahl
42339e0fc9 Merging 5.1 into 5.1-rpl-merge 2008-08-27 20:52:44 +02:00
Georgi Kodinov
a320e8676e merged 5.1-bugteam into B37548 tree 2008-08-27 18:39:09 +03:00
Georgi Kodinov
3468f4b4b3 Bug#37548: result value erronously reported being NULL in certain subqueries
When switching to indexed ORDER BY we must be sure to reset the index read
flag if we are switching from a covering index to non-covering.
2008-08-27 18:19:22 +03:00
Joerg Bruehe
4cff4db39b Merge the bug fix development (37098: "unpackaged files")
into the 5.0 team tree.
2008-08-27 16:25:24 +02:00
Mats Kindahl
4c30c09105 Automerge 2008-08-27 16:21:10 +02:00
Joerg Bruehe
eb3681ef5b Merge bug fix development tree (37098: "unpackaged files")
into current team tree (version 5.1).
2008-08-27 16:20:29 +02:00
Mats Kindahl
dd34cceb4c Result file change. 2008-08-27 16:17:55 +02:00
Joerg Bruehe
811337dd72 Bug#37098 Get rid of "Installed (but unpackaged)" files in the RPM build
Merge it up from 5.0 to 5.1,
adapt to some version differences.
2008-08-27 16:03:39 +02:00
Evgeny Potemkin
1f28ee8875 Bug#38195: Incorrect handling of aggregate functions when loose index scan is
used causes server crash.
      
When the loose index scan access method is used values of aggregated functions
are precomputed by it. Aggregation of such functions shouldn't be performed
in this case and functions should be treated as normal ones.
The create_tmp_table function wasn't taking this into account and this led to
a crash if a query has MIN/MAX aggregate functions and employs temporary table
and loose index scan.
Now the JOIN::exec and the create_tmp_table functions treat MIN/MAX aggregate
functions as normal ones when the loose index scan is used.
2008-08-27 17:03:17 +04:00
Mats Kindahl
3b6195a78c Automerge 2008-08-27 11:05:04 +02:00
Mats Kindahl
f1b8441e02 Merge b38773-5.1-rpl-merge into 5.1-rpl-merge 2008-08-27 11:02:37 +02:00
Mats Kindahl
6461089817 Bug #38773: DROP DATABASE cause switch to stmt-mode when there are temporary
tables open

When executing a DROP DATABASE statement in ROW mode and having temporary
tables open at the same time, the existance of temporary tables prevent
the server from switching back to row mode after temporarily switching to
statement mode to handle the logging of the statement.

Fixed the problem by removing the code to switch to statement mode and added
code to temporarily disable the binary log while dropping the objects in the
database.
2008-08-27 10:40:11 +02:00