Commit graph

39623 commits

Author SHA1 Message Date
Georgi Kodinov
4d2f047e95 Bug #41610: key_infix_len can be overwritten causing some group by queries to
return no rows

The algorithm of determining the best key for loose index scan is doing a loop
over the available indexes and selects the one that has the best cost.
It retrieves the parameters of the current index into a set of variables.
If the cost of using the current index is lower than the best cost so far it 
copies these variables into another set of variables that contain the 
information for the best index so far.
After having checked all the indexes it uses these variables (outside of the 
index loop) to create the table read plan object instance.
The was a single omission : the key_infix/key_infix_len variables were used 
outside of the loop without being preserved in the loop for the best index 
so far.
This causes these variables to get overwritten by the next index(es) checked.
Fixed by adding variables to hold the data for the current index, passing 
the new variables to the function that assigns values to them and copying 
the new variables into the existing ones when selecting a new current best 
index.
To avoid further such problems moved the declarations of the variables used 
to keep information about the current index inside the loop's compound 
statement.
2009-02-27 15:25:06 +02:00
Patrick Crews
fb78405625 Bug#41893: Removal of trailing space noise causing Pushbuild failure. 2009-02-27 15:00:49 +02:00
Patrick Crews
88b906ac21 merge. 2009-02-27 10:45:19 +02:00
Georgi Kodinov
494a764174 addendum to the fix for bug #41354: fixed the error returned by SELECT * 2009-02-27 09:41:39 +02:00
Georgi Kodinov
b337ac28d0 Bug #41354: Access control is bypassed when all columns
of a view are selected by * wildcard

Backported a part of the fix for 36086 to 5.0
2009-02-26 19:00:44 +02:00
Patrick Crews
bc4df2f65d Bug#41893 - main.variables mysql-test fails if new variable like '%alloc%' is added.
Fixed a typo in the bug fix patch.
2009-02-26 18:00:47 +02:00
Ramil Kalimullin
ce78a8bd50 Auto-merge 2009-02-26 14:11:46 +04:00
Patrick Crews
1062119af5 Bug#41893: main.variables mysql-test fails if new variable like '%alloc%' is added.
Started fix in 5.0 as the same issue is here.
Revising queries used given what appears to be the scope of this test to only select the manipulated variables.
Added tests for values that are / are not multiples of 1024 to test rounding / constraints.
This behavior is not currently documented (docs bug has been opened)
2009-02-26 10:57:33 +02:00
Ramil Kalimullin
c8e908ffcc Fix for bug#19829:make test Failed in mysql_client_test
*with --with-charset=utf8*

Problem: wrong LONG TEXT field length is sent to a client 
when multibyte server character set used.

Fix: always limit field length sent to a client to 2^32,
as we store it in 4 byte slot.

Note: mysql_client_test changed accordingly.
2009-02-26 12:34:15 +04:00
Vladislav Vaintroub
27e0654246 merge from 5.0-bugteam 2009-02-25 17:27:32 +01:00
Vladislav Vaintroub
af4988a36f Bug#43082: mysqld 32 bit cannot use big buffers due to 2GB
usermode address space limit.

Fix: use /LARGEADDRESSAWARE link option when linking 32 bit
executables
2009-02-25 16:57:49 +01:00
Bernt M. Johnsen
f38e402d79 Merged from gca-branch (bug 43111) 2009-02-25 14:52:33 +01:00
Sergey Glukhov
8587e4f989 Bug#40345 MySQLDump prefixes view name with database name when view references other db
print compact view name if the view belongs to the current database
2009-02-25 15:44:50 +04:00
Bernt M. Johnsen
99585ae5e8 Prepare for push of BUG#43111 2009-02-25 11:37:30 +01:00
Sergey Glukhov
412f1d3791 Bug#30305 Create routine in wrong context in SHOW PRIVILEGES
Changed context of Create routine to Databases.
2009-02-25 14:20:20 +04:00
Alexey Kopytov
5cf0d591eb Automerge. 2009-02-25 10:48:05 +02:00
Alexey Kopytov
d8130a35fb Fixed a build failure on Ubuntu 8.10 introduced by the patch
for bug #15936.

On some platforms fenv.h may #undef the min/max macros
defined in my_global.h.

Fixed by moving the #include directive for fenv.h from
mysqld.cc to my_global.h before definitions for min/max.
2009-02-25 10:36:11 +02:00
Andrei Elkin
da7aa6bc9f merging from 5.0-bt rep to a local branch 2009-02-24 16:35:45 +02:00
Andrei Elkin
162eca37dd fixing compilation warning and adding flush logs to test of bug#37313 2009-02-24 16:17:34 +02:00
Georgi Kodinov
13ec76b0ad Bug #31060: MySQL CLI parser bug 2
There was a problem when a DELIMITER COMMAND is not the first 
command on the line. I this case an extra line feed was added
to the glob buffer and this was causing subsequent attempts 
to enter this delimiter to fail.
Fixed by not adding a new line to the glob buffer if the 
command being added is a DELIMITER
2009-02-24 15:06:28 +02:00
Alexey Botchkov
c71004dcbb merging. 2009-02-24 15:22:37 +04:00
Chad MILLER
8d5286d273 Merge bug 39370 fix from bug tree. 2009-02-24 12:31:42 +02:00
Chad MILLER
db076da82a Bug#39370: wrong output for error code 153
Add all HA error numbers and descriptions to perror.

Add reminder to header.

This is already fixed in smarter ways in future codebases, and this 
codebase is unlikely to change, since new development is forbidden
here.
2009-02-24 12:05:37 +02:00
Davi Arnaut
322a5a39ad Bug#41110: crash with handler command when used concurrently with alter table
Bug#41112: crash in mysql_ha_close_table/get_lock_data with alter table

The problem is that the server wasn't handling robustly failures
to re-open a table during a HANDLER .. READ statement. If the
table needed to be re-opened due to it's storage engine being
altered to one that doesn't support HANDLER, a reference (dangling
pointer) to a closed table could be left in place and accessed in
later attempts to fetch from the table using the handler. Also,
if the server failed to set a error message if the re-open
failed. These problems could lead to server crashes or hangs.

The solution is to remove any references to a closed table and
to set a error if reopening a table during a HANDLER .. READ
statement fails.

There is no test case in this change set as the test depends on
a testing feature only available on 5.1 and later.
2009-02-24 10:15:21 +01:00
Tatiana A. Nurnberg
1fbfd317d6 automerge 2009-02-24 09:31:42 +01:00
Tatiana A. Nurnberg
fde4ef6e0a automerge 2009-02-24 09:06:02 +01:00
Tatiana A. Nurnberg
c1e0d67002 automerge 2009-02-24 08:05:30 +01:00
Alexey Kopytov
1ba7c35e5c Automerge. 2009-02-23 14:53:51 +02:00
Alexey Kopytov
cebaf077d2 Fix for bug #15936: "round" differs on Windows to Unix
Both of our own implementations of rint(3) were inconsistent with the
most common behavior of rint() on those platforms that have it: round
to nearest, break ties by rounding to nearest even.

Fixed by leaving just one implementation of rint() in our source tree,
and changing its behavior to match the most common native
implementations on other platforms.
2009-02-23 14:28:26 +02:00
Tatiana A. Nurnberg
e30fa864a4 auto-merge 2009-02-23 13:14:17 +01:00
Tatiana A. Nurnberg
36d83ee251 auto-merge 2009-02-23 12:53:04 +01:00
Patrick Crews
eecf716a83 automerge 2009-02-20 08:40:28 -05:00
Andrei Elkin
c02752a005 Bug #37313 BINLOG Contains Incorrect server id
Signed integer format specifier forced to print the binlog header with server_id
negative if the unsigned value sets the sign-bit ON.
  
Fixed with correcting the specifier to correspond to typeof(server_id) == ulong.
2009-02-20 13:55:43 +02:00
Georgi Kodinov
da7d7fcd1e fixed a warning 2009-02-20 11:42:35 +02:00
Georgi Kodinov
39dc3623b3 Bug #42419: test suite fix
Moved the test case for the bug into a separate file (and restored the 
original innodb_mysql test setup).
Used the new wait_show_condition test macro to avoid the usage of sleep
2009-02-20 11:12:06 +02:00
Patrick Crews
ac46e34435 Bug#38831: 11 test cases fail on Windows due to missing commands
Re-enabling mysqlbinlog.test on Windows - removed the use of grep/sed
2009-02-19 16:35:29 -05:00
Patrick Crews
cc628c61fb Bug#38831: 11 test cases fail on Windows due to missing commands
Replaced Unix calls with mysql-test-run's built-in functions / SQL manipulation where possible.
Replaced error codes with error names as well.
Disabled two tests on Windows due to more complex Unix command usage
See Bug#41307, Bug#41308
2009-02-19 15:37:40 -05:00
Tatiana A. Nurnberg
f218f9f278 Bug#33550: mysqldump 4.0 compatibility broken
mysqldump included character_set_client magic
that is unknown before 4.1 even when asked for
an appropriate compatibility mode.

In compatibility (3.23, 4.0) mode, we do not
output charset statements (not even in a
"comment conditional"), nor do we do magic on
the server, even if the server is sufficient
new (4.1+). Table-names will be output converted
to the charset requested by mysqldump; if such
a conversion is not possible (Ivrit -> Latin),
mysqldump will fail.
2009-02-19 17:33:28 +01:00
Georgi Kodinov
759edca6ac merged bug 42419 to 5.0-bugteam 2009-02-19 18:26:19 +02:00
Georgi Kodinov
b2c161c192 Bug #42419: Server crash with "Pure virtual method called" on two concurrent
connections
The problem is that tables can enter open table cache for a thread without 
being properly cleaned up. This can happen if make_join_statistics() fails 
to read a const table because of e.g. a deadlock. It does set a member of 
TABLE structure to a value it allocates, but doesn't clean-up this setting 
on error nor does it set the rest of the members in JOIN to allow for 
automatic cleanup.
As a result when such an error occurs and the next statement depends re-uses 
the table from the open tables cache it will get it with this 
TABLE::reginfo.join_tab pointing to a memory area that's freed.
Fixed by making sure make_join_statistics() cleans up TABLE::reginfo.join_tab 
on error.
2009-02-19 17:30:03 +02:00
Sergey Glukhov
6a9de01a95 Bug#37601 Cast Is Not Done On Row Comparison
In case of ROW item each compared pair does not
check if argumet collations can be aggregated and
thus appropiriate item conversion does not happen.
The fix is to add the check and convertion for ROW
pairs.
2009-02-19 17:20:44 +04:00
Alexey Kopytov
ae9ea0414c Automerge. 2009-02-19 12:02:11 +03:00
Alexey Kopytov
c4f0c2d38c Fix for bug #41078: With CURSOR_TYPE_READ_ONLY mysql_stmt_fetch()
returns short string value. 
 
Multibyte character sets were not taken into account when 
calculating max_length in Item_param::convert_str_value(). As a 
result, string parameters of a prepared statement could be 
truncated later when calculating string length in characters by 
dividing length in bytes by the charset's mbmaxlen value (e.g. in 
Field_varstring::store()). 
 
Fixed by taking charset's mbmaxlen into account when calculating 
max_length in Item_param::convert_str_value().
2009-02-19 11:49:35 +03:00
Tatiana A. Nurnberg
11ff14d5b1 Bug#37400: mysql: Bad help message for charset command
Typo existed in help-text for command "charset" in mysql
client, making the parameter-name different for long and
short forms of the command for no good reason.

Fixed.
2009-02-19 04:58:10 +01:00
Sergey Glukhov
49243dd212 automerge 2009-02-18 15:53:30 +04:00
Georgi Kodinov
2202d5b7f5 Bug #26724: mysql command line client, ignores input to internal cmd after space
Removed the misleading "NOTE:" from the \h command.
2009-02-18 12:18:38 +02:00
Sergey Glukhov
7acaece2ba Bug#25830 SHOW TABLE STATUS behaves differently depending on table name(for 5.0 only)
replace wild_case_compare with my_wildcmp which is multibyte safe function
2009-02-17 18:22:48 +04:00
Tatiana A. Nurnberg
a3ad5089cb Bug#42027: Incorrect parsing of debug and verbose options for mysqldumpslow
Options got normalised to long rather than short options
since we gave primary name and alias in wrong order.
Consequently querying for the option using the short
options (the correct primary name) didn't work, rendering
the options in question inaccessible.

We restore the right order of the universe, or at least
the alii for --debug and --verbose.
2009-02-16 15:38:18 +01:00
Georgi Kodinov
209cc33609 merged 5.1-main -> 5.1-bugteam 2009-02-16 12:54:03 +02:00
Alexey Kopytov
b615d8bcb4 Fixed PB failures on IA64 hosts introduced by the patch for bug #21205. 2009-02-15 12:26:08 +03:00