- 25 Mar, 2010 1 commit
-
-
Sergey Vojtovich authored
When MyISAM writes newly created index page it may be initialized partially. In other words some bytes of sensible data and uninitialized tail of the page may go into index file. Under certain rare circumstances these hunks of memory may contain data that would be otherwise inaccessible to user, like passwords or data from other tables. Fixed by initializing memory for temporary MyISAM key buffer to '\0'. No test case for this fix as it is heavily covered by existing tests. storage/myisam/mi_open.c: When creating new MI_INFO object, initialize MI_INFO::buff. This is done to ensure that we never write uninitialized memory hunks to index file. storage/myisam/mi_page.c: No need to silence memory error detector anymore, page buffer is always initialized. storage/myisam/mi_write.c: Fixed invalid memory read of 2 bytes. new_right_length is length of data on a page, including first 2 bytes that store this length itself. pos + k_length is pure data excluding these 2 bytes containing length. storage/myisam/rt_index.c: To avoid uninitialized data write, create new page on info->buff, instead of locally allocated buffer. Note: second key block on info->buff is used here, because first block is used by called functions. storage/myisam/rt_split.c: To avoid uninitialized data write, create new page on info->buff, instead of locally allocated buffer.
-
- 16 Mar, 2010 1 commit
-
-
Martin Hansson authored
Base Tables The type inferrence of a view column caused the result to be interpreted as the wrong type: DATE colums were interpreted as TIME and TIME as DATETIME. This happened because view columns are represented by Item_ref objects as opposed to Item_field's. Item_ref had no method for retrieving a TIME value and thus was forced to depend on the default implementation for any expression, which caused the expression to be evaluated as a string and then parsed into a TIME/DATETIME value. Fixed by letting Item_ref classes forward the request for a TIME value to the referred Item - which is a field in this case - this reads the TIME value directly without conversion.
-
- 15 Mar, 2010 1 commit
-
-
Davi Arnaut authored
Fix up function return value, it must return a double.
-
- 14 Mar, 2010 2 commits
-
-
Staale Smedseng authored
SunStudio SunStudio compilers of late warn about methods that might hide methods in base classes due to the use of overloading combined with overriding. SunStudio also warns about variables defined in local socpe or method arguments that have the same name as a member attribute of the class. This patch renames methods that might hide base class methods, to make it easier both for humans and compilers to see what is actually called. It also renames variables in local scope. sql/field.cc: Local scope variable or method argument same as class attribute. sql/item_cmpfunc.cc: Local scope variable or method argument same as class attribute. sql/item_create.cc: Renaming base class create() to create_func(). sql/item_create.h: Renaming base class create() to create_func(). sql/protocol.cc: Local scope variable or method argument same as class attribute. sql/sql_profile.cc: Local scope variable or method argument same as class attribute. sql/sql_select.cc: Local scope variable or method argument same as class attribute. sql/sql_yacc.yy: Renaming base class create() to create_func(). storage/federated/ha_federated.cc: Local scope variable or method argument same as class attribute. storage/myisammrg/ha_myisammrg.cc: Local scope variable or method argument same as class attribute.
-
Davi Arnaut authored
-
- 13 Mar, 2010 1 commit
-
-
Davi Arnaut authored
-
- 09 Mar, 2010 1 commit
-
-
Davi Arnaut authored
The problem was that UNINSTALL PLUGIN wasn't performing privilege checks before removing a plugin. Any user (including users without any kind of privileges) could uninstall any plugin. The solution is to verify if the user has the DELETE privilege for the mysql.plugin table before uninstalling a plugin. mysql-test/r/plugin_not_embedded.result: Add test case result for Bug#51770. mysql-test/t/plugin_not_embedded-master.opt: Add example plugin path. mysql-test/t/plugin_not_embedded.test: Add test case for Bug#51770. Skip embedded as test relies on privileges checks.
-
- 12 Mar, 2010 1 commit
-
-
Sergey Glukhov authored
The problem is that Item_direct_view_ref which is inherited from Item_ident updates orig_table_name and table_name with the same values. The fix is introduction of new constructor into Item_ident and up which updates orig_table_name and table_name separately. mysql-test/r/metadata.result: test case mysql-test/t/metadata.test: test case sql/item.cc: new constructor which updates orig_table_name and table_name separately. sql/item.h: new constructor which updates orig_table_name and table_name separately. sql/table.cc: used new constructor
-
- 11 Mar, 2010 3 commits
-
-
Georgi Kodinov authored
Applied a path from Jim Winstead : Added a GPL notice. Added the missing '(c)' and 'v2'.
-
Sergey Vojtovich authored
-
Sergey Vojtovich authored
-
- 10 Mar, 2010 10 commits
-
-
Martin Hansson authored
join view in sql_safe_updates mode. This bug was unexpectedly fixed along with bug number 49534. This patch contains only the test case.
-
Sergey Vojtovich authored
-
Sergey Vojtovich authored
BUG#51342 - more xid crashing Restore autocommit variable by supplying explicit value. mysql-test/r/xa.result: Restore autocommit variable by supplying explicit value. mysql-test/t/xa.test: Restore autocommit variable by supplying explicit value.
-
Sergey Vojtovich authored
-
Sergey Vojtovich authored
-
Sergey Vojtovich authored
-
Sergey Vojtovich authored
SET autocommit=1 while XA transaction is active may cause various side effects, including memory corruption and server crash. The problem is that SET autocommit=1 and further queries attempt to commit local transaction, whereas XA transaction is still active. As local and XA transactions are mutually exclusive, this patch forbids enabling autocommit mode while XA transaction is active. mysql-test/r/xa.result: A test case for BUG#51342. mysql-test/t/xa.test: A test case for BUG#51342. sql/set_var.cc: Forbid enabling autocommit mode while XA transaction is active.
-
Georgi Kodinov authored
-
Georgi Kodinov authored
-
Georgi Kodinov authored
-
- 09 Mar, 2010 1 commit
-
-
Georgi Kodinov authored
MySQL uses two source layouts when building : the bzr layout and the source package layout. The previous fix for bug 35250 contained 1 change that is valid for both modes and a number of changes that are valid only for the bzr source layout. The important thing was to fix the source package layout. And for this the change in configure.in was sufficient. It's not trivial (and not requested by this bug) to support VPATH builds from the bzr trees. This is why the other changes are reverted and the change to fix the VPATH build for source distributions is left intact.
-
- 10 Mar, 2010 1 commit
-
-
Luis Soares authored
-
- 09 Mar, 2010 5 commits
-
-
Luis Soares authored
The test case added in previous patch missed a RESET MASTER on test start up. Without it, showing binary log contents can sometimes show spurious entries from previously executed tests, ultimately causing test failure - result mismatch. The test file was added in: revid:luis.soares@sun.com-20100224190153-k0bpdx9abe88uoo2 This patch also moves the test case into binlog_innodb_row.test file. This way we avoid having yet another test file, binlog_row_innodb_truncate.test, whose only purpose is to host one test case. This had been actually suggested during original patch review, but somehow the binlog_innodb_row was missed when searching for a file to host the test case.
-
Georgi Kodinov authored
mysql_upgrade was passing an non-initialized non-null tmpdir to create_temp_file() if no --tmpdir was specified. This prevents create_temp_file() from taking the system temporary file path and as a result mysql_upgrade was trying to open a file in a directory that it may not have write access to. Fixed by making sure mysql_upgrade will pass a zero length temp dir string to create_temp_file() if no --tmpdir is specified.
-
Georgi Kodinov authored
output from HANDLER ... READ .. NEXT ...
-
Luis Soares authored
-
Luis Soares authored
-
- 08 Mar, 2010 3 commits
-
-
Luis Soares authored
-
Luis Soares authored
-
Davi Arnaut authored
The problem was that mysqltest could attempt to execute a SHOW WARNINGS statement through a connection that was not properly reaped, thus violating its own rules. The solution is to skip SHOW WARNINGS if a connection has not been properly repeaed. client/mysqltest.cc: Skip SHOW WARNINGS if connection hasn't been reaped.
-
- 09 Mar, 2010 3 commits
-
-
Davi Arnaut authored
The problem is that not all column names retrieved from a SELECT statement can be used as view column names due to length and format restrictions. The server failed to properly check the conformity of those automatically generated column names before storing the final view definition on disk. Since columns retrieved from a SELECT statement can be anything ranging from functions to constants values of any format and length, the solution is to rewrite to a pre-defined format any names that are not acceptable as a view column name. The name is rewritten to "Name_exp_%u" where %u translates to the position of the column. To avoid this conversion scheme, define explict names for the view columns via the column_list clause. Also, aliases are now only generated for top level statements. mysql-test/include/view_alias.inc: Add test case for Bug#40277 mysql-test/r/compare.result: Bug#40277: SHOW CREATE VIEW returns invalid SQL mysql-test/r/group_by.result: Bug#40277: SHOW CREATE VIEW returns invalid SQL mysql-test/r/ps.result: Bug#40277: SHOW CREATE VIEW returns invalid SQL mysql-test/r/subselect.result: Bug#40277: SHOW CREATE VIEW returns invalid SQL mysql-test/r/subselect3.result: Bug#40277: SHOW CREATE VIEW returns invalid SQL mysql-test/r/type_datetime.result: Bug#40277: SHOW CREATE VIEW returns invalid SQL mysql-test/r/union.result: Bug#40277: SHOW CREATE VIEW returns invalid SQL mysql-test/r/view.result: Add test case result for Bug#40277 mysql-test/r/view_alias.result: Add test case result for Bug#40277 mysql-test/t/view_alias.test: Add test case for Bug#40277 sql/sql_view.cc: Check if auto generated column names are conforming. Also, the make_unique_view_field_name function is not used as it uses the original name to construct a new one, which does not work if the name is invalid.
-
Davi Arnaut authored
The problem was that bits of the destructive equality propagation optimization weren't being undone after the execution of a stored program. Modifications to the parse tree that are based on transient properties must be undone to enable the re-execution of stored programs. The solution is to cleanup any references to predicates generated by the equality propagation during the execution of a stored program. mysql-test/r/trigger.result: Add test case result for Bug#51650. mysql-test/t/trigger.test: Add test case for Bug#51650. sql/item.cc: Remove reference to a equality predicate.
-
Georgi Kodinov authored
-
- 08 Mar, 2010 2 commits
-
-
Georgi Kodinov authored
-
Georgi Kodinov authored
Spatial indexes were not checking for out-of-record condition in the handler next command when the previous command didn't found rows. Fixed by making the rtree index to check for end of rows condition before re-using the key from the previous search. Fixed another crash if the tree has changed since the last search. Added a test case for the other error.
-
- 04 Mar, 2010 1 commit
-
-
Georgi Kodinov authored
Spatial indexes were not checking for out-of-record condition in the handler next command when the previous command didn't found rows. Fixed by making the rtree index to check for end of rows condition before re-using the key from the previous search. Fixed another crash if the tree has changed since the last search. Added a test case for the other error.
-
- 05 Mar, 2010 3 commits
-
-
Gleb Shchepa authored
consider clustered primary keys Choosing a shortest index for the covering index scan, the optimizer ignored the fact, that the clustered primary key read involves whole table data. The find_shortest_key function has been modified to take into account that fact that a clustered PK has a longest key of possible covering indices. mysql-test/r/innodb_mysql.result: Test case for bug #39653. mysql-test/t/innodb_mysql.test: Test case for bug #39653. sql/sql_select.cc: Bug #39653: find_shortest_key in sql_select.cc does not consider clustered primary keys The find_shortest_key function has been modified to take into account that fact that a clustered PK has a longest key of possible covering indices.
-
Tatiana A. Nurnberg authored
-
Tatiana A. Nurnberg authored
-