1
0
mirror of https://github.com/MariaDB/server.git synced 2025-10-22 19:52:58 +03:00
Commit Graph

27784 Commits

Author SHA1 Message Date
Bjorn Munch
6eaa3c0750 merge from 5.1-mtr 2010-11-09 11:20:50 +01:00
Alexander Barkov
f91c6de211 Postfix for Bug#26474 Add Sinhala script (Sri Lanka) collation to MySQL 2010-11-09 11:08:02 +03:00
Anitha Gopi
b28e64ca86 Bug#58041 : Created separate per push and daily collections for 5.5-bugteam. Moved rpl_binlog_row to daily. Run just main suite for ps_row and
embedded per push. Other suites run daily
2010-11-09 12:16:43 +05:30
Marc Alff
4ee5c36845 Merge mysql-5.5-bugteam --> local bugfixing branch 2010-11-08 18:14:30 +01:00
Marc Alff
62e43d42ca Adjusted test result to lowercase table names 2010-11-08 17:55:38 +01:00
Horst.Hunger
8e0f8d438b due to merge. 2010-11-08 16:35:46 +01:00
Horst.Hunger
bf10c4a583 Fix for bug#52501 consisting of changes of some sys_vars tests including review results. 2010-11-08 16:30:26 +01:00
Vasil Dimov
cf3433d7f3 Merge mysql-5.1-bugteam -> mysql-5.1-innodb 2010-11-08 16:46:26 +02:00
Vasil Dimov
97b501badc Merge mysql-5.5-bugteam -> mysql-5.5-innodb 2010-11-08 16:44:59 +02:00
Jon Olav Hauglid
ea3bb00d6a Merge from mysql-5.5-bugteam to mysql-5.5-runtime
No conflicts
2010-11-08 15:37:04 +01:00
Anitha Gopi
d7202ef7f8 Bug#58041 : Moved rpl_binlog_row to daily. Run just main suite for ps_row and embedded per push. Other suites run daily 2010-11-08 14:57:05 +05:30
Dmitry Shulga
7cd6bb2645 Auto-merge from mysql-5.1-bugteam for bug#47924. 2010-11-08 00:06:22 +06:00
Dmitry Shulga
8f237f5874 A fix and a test case for Bug#47924 -main.log_tables times out
sporadically.

The cause of the sporadic time out was a leaking protection
against the global read lock, taken by the RENAME statement,
and not released in case of an error occurred during RENAME.
The leaking protection counter would lead to the value of
protect_against_global_read never dropping to 0.
Consequently FLUSH TABLES in all connections, including the
one that leaked the protection, could not proceed.
 
The fix is to ensure that all branchesin RENAME code properly
release GRL protection.

mysql-test/r/log_tables.result:
  Added results for test for bug#47924.
mysql-test/t/log_tables.test:
  Added test for bug#47924.
sql/sql_rename.cc:
  mysql_rename_tables() modified: replaced return from function
  to goto to clean up code block in case of error.
2010-11-07 23:42:54 +06:00
He Zhenxing
5b8dbe96a5 Remove rpl_killed_ddl.test from experimental after fixed BUG#47638 2010-11-07 12:41:03 +08:00
Bjorn Munch
e0678e2ca6 some test fixes after merging 57840 2010-11-06 19:21:12 +01:00
Mats Kindahl
96fba44d72 Merging patch for BUG#57108 with mysql-5.5-bugteam 2010-11-05 15:50:11 +01:00
Bjorn Munch
c4c198092c upmerge 57840 2010-11-05 15:36:00 +01:00
Bjorn Munch
866cec611a Bug #57840 MTR: parallel execution breaks with smart ordering of test cases
There were actually more problems in this area:
  Slaves (if any) were unconditionally restarted, this appears unnecessary.
  Sort criteria were suboptimal, included the test name.
Added logic to "reserve" a sequence of tests with same config for one thread
Got rid of sort_criteria hash, put it into the test case itself
Adds little sanity check that expected worker picks up test
Fixed some tests that may fail if starting on running server
Some of these fail only if *same* test is repeated.
Finally, special sorting of tests that do --force-restart
2010-11-05 15:26:38 +01:00
Jon Olav Hauglid
0de0d997f0 Merge from mysql-5.5-bugteam to mysql-5.5-runtime
No conflicts
2010-11-05 15:24:16 +01:00
Guilhem Bichot
03b9e73878 Fix for BUG#57316 "It is not clear how to disable autocommit"
add boolean command-line option --autocommit.

mysql-test/mysql-test-run.pl:
  do in --gdb like in --ddd: to let the developer debug the startup
  phase (like command-line options parsing), don't "run".
  It's the third time I do this change, it was previously lost
  by merges, port of 6.0 to next-mr...
mysql-test/r/mysqld--help-notwin.result:
  new command-line option
mysql-test/r/mysqld--help-win.result:
  a Linux user's best guess at what the Windows result should be
mysql-test/suite/sys_vars/inc/autocommit_func2.inc:
  new test
mysql-test/suite/sys_vars/t/autocommit_func2-master.opt:
  test new option
mysql-test/suite/sys_vars/t/autocommit_func3-master.opt:
  test new option
sql/mysqld.cc:
  new --autocommit
sql/mysqld.h:
  new --autocommit
sql/sql_partition.cc:
  What matters to this partitioning quote is to have
  the OPTION_QUOTE_SHOW_CREATE flag down, it's all
  that append_identifier() uses. So we make it explicit.
2010-11-05 14:16:27 +01:00
Bjorn Munch
cf1b01e28f Bug #57749 vs-config option of mysql-test-run does not work
Option was incorrectly coded without an argument
Added the missing =s
2010-11-05 12:28:17 +01:00
Mattias Jonsson
c04318ed24 Bug#57778: failed primary key add to partitioned innodb table inconsistent and crashes
It was possible to issue an ALTER TABLE ADD PRIMARY KEY on
an partitioned InnoDB table that failed and crashed the server.

The problem was that it succeeded to create the PK on at least
one partition, and then failed on a subsequent partition, due to
duplicate key violation. Since the partitions that already had added
the PK was not reverted all partitions was not consistent with the
table definition, which caused the crash.

The solution was to add a revert step to ha_partition::add_index()
that dropped the index for the already succeeded partitions, on failure.

mysql-test/r/partition.result:
  updated result
mysql-test/t/partition.test:
  Added test
sql/ha_partition.cc:
  Only allow ADD/DROP flags in pairs, so that they can be reverted on failures.
  If add_index() fails for a partition, revert (drop the index) for the previous
  partitions.
sql/handler.h:
  Added some extra info in a comment.
2010-11-05 12:01:10 +01:00
Luis Soares
7b0db1e9f2 BUG 57899: merged bzr bundle #2 from bug report into latest
mysql-5.5-bugteam.
2010-11-05 08:30:49 +00:00
Luis Soares
2fb040e0fa BUG 57899: merged bzr bundle #1 from bug report into latest
mysql-5.5-bugteam.
2010-11-05 08:30:10 +00:00
Luis Soares
aafb35d099 BUG#57899: Certain reserved words should not be reserved
Small fix for the test case. The column named "slow" was
used twice in the SELECTs. As a consequence, the column
named "ignore_server_ids" was not used.

To fix this we simply replace the second column selected 
named "slow" with a column named "ignore_server_ids".
2010-11-05 08:23:39 +00:00
unknown
adc189aece Bug57960 - In ha_innodb.cc, get_foreign_key_info() make sure the
referenced_table name uses the actual length of the table name.
2010-11-04 10:18:05 -05:00
Jorgen Loland
f0ce67873c Bug#57882 - Item_func_conv_charset::val_str(String*):
Assertion `fixed == 1' failed

Followup patch. Test case relied on system variable that is
only available if replication is compiled in. Replaced with
variable available in all builds.

mysql-test/r/errors.result:
  Test case relied on system variable that is only available if
  replication is compiled in. Replaced with variable available in
  all builds.
mysql-test/t/errors.test:
  Test case relied on system variable that is only available if
  replication is compiled in. Replaced with variable available in
  all builds.
2010-11-04 13:36:36 +01:00
Mats Kindahl
f8d2154c30 BUG#57108: mysqld crashes when I attempt to install plugin
If a relative path is supplied to option --defaults-file or
--defaults-extra-file, the server will crash when executing
an INSTALL PLUGIN command. The reason is that the defaults
file is initially read relative the current working directory
when the server is started, but when INSTALL PLUGIN is executed,
the server has changed working directory to the data directory.
Since there is no check that the call to my_load_defaults()
inside mysql_install_plugin(), the subsequence call to
free_defaults() will crash the server.

This patch fixes the problem by:

- Prepending the current working directory to the file name when
  a relative path is given to the --defaults-file or --defaults-
  extra-file option the first time my_load_defaults() is called,
  which is just after the server has started in main().

- Adding a check of the return value of my_load_defaults() inside
  mysql_install_plugin() and aborting command (with an error) if
  an error is returned.

- It also adds a check of the return value for load_defaults in
  lib_sql.cc for the embedded server since that was missing.

To test that the relative files for the options --defaults-file and
--defaults-extra-file is handled properly, mysql-test-run.pl is also
changed to not add a --defaults-file option if one is provided in the
tests *.opt file.
2010-11-04 11:00:59 +01:00
Jorgen Loland
64bee6fdc5 Bug#57882 - Item_func_conv_charset::val_str(String*):
Assertion `fixed == 1' failed

(also fixes duplicate bug 57515)

agg_item_set_converter() (item.cc) handles conversion of 
character sets by creating a new Item. fix_fields() is then 
called on this newly created item. Prior to this patch, it was
not checked whether fix_fields() was successful or not. Thus, 
agg_item_set_converter() would return success even when an 
error occured. This patch makes it return error (TRUE) if 
fix_fields() fails.

mysql-test/r/errors.result:
  Add test for BUG#57882
mysql-test/t/errors.test:
  Add test for BUG#57882
sql/item.cc:
  Make agg_item_set_converter() return with error if fix_fields() 
  on the newly created converted item fails.
2010-11-04 09:36:04 +01:00
Marc Alff
4e1678daca Bug#57609 performance_schema does not work with lower_case_table_names
Before this fix, the performance schema tables were defined in UPPERCASE.

This was incompatible with the lowercase_table_names option, and caused
issues with the install / upgrade process, when changing the lower case
table names setting *after* the install or upgrade.

With this fix, all performance schema tables are exposed with lowercase names.
As a result, the name of the performance schema table is always lowercase,
no matter how / if / when the lowercase_table_names setting if changed.
2010-11-03 16:42:33 +01:00
Luis Soares
1602ffb8ab BUG#57899: Certain reserved words should not be reserved
In MySQL 5.5 the new reserved words include:
SLOW                    as in FLUSH SLOW LOGS
GENERAL                 as in FLUSH GENERAL LOGS
IGNORE_SERVER_IDS       as in CHANGE MASTER ... IGNORE_SERVER_IDS
MASTER_HEARTBEAT_PERIOD as in CHANGE MASTER ... MASTER_HEARTBEAT_PERIOD

These are not reserved words in standard SQL, or in Oracle 11g,
and as such, may affect existing applications.

We fix this by adding the new words to the list of 
keywords that are allowed for labels in SPs.

mysql-test/t/keywords.test:
  Test case that checks that the target words can be used
  for naming fields in a table or as local routine variable
  names.
2010-11-03 14:51:52 +00:00
Georgi Kodinov
7b2e07232a merge 2010-11-03 16:09:17 +02:00
Georgi Kodinov
74328892e0 Addendum to bug #57916 : fixed the test suite to be less environment
dependent.
2010-11-03 13:47:22 +02:00
Vasil Dimov
99cd1a616f Merge mysql-5.1-innodb -> mysql-5.5-innodb 2010-11-03 12:07:16 +02:00
unknown
64e476e070 In this patch, existing tests innodb_bug54679.test and innodb_bug56632.test are
removed and replaced by the comprehensive innodb-create-options.test.
It uses the rules listed in the comments at the top of that test.
  
This patch introduces these differences from previous behavior;
1)  KEY_BLOCK_SIZE=0 is allowed by Innodb in both strict and non-strict mode
with no errors or warnings. It was previously used by the server to set 
KEY_BLOCK_SIZE to undefined.  (Bug#56628)
2)  An explicit valid non-DEFAULT ROW_FORMAT always takes priority over a
valid KEY_BLOCK_SIZE. (bug#56632)
3)  Automatic use of COMPRESSED row format is only done if the ROW_FORMAT
is DEFAULT or unspecified.
4)  ROW_FORMAT=FIXED is prevented in strict mode.

This patch also includes various formatting changes for consistency with
InnoDB coding standards.

Related Bugs
Bug#54679: ALTER TABLE causes compressed row_format to revert to compact
Bug#56628: ALTER TABLE .. KEY_BLOCK_SIZE=0 produces untrue warning or unnecessary error
Bug#56632: ALTER TABLE implicitly changes ROW_FORMAT to COMPRESSED
2010-11-02 17:28:34 -05:00
unknown
6794155a1d In this patch, existing tests innodb_bug54679.test and innodb_bug56632.test are
removed and replaced by the comprehensive innodb-create-options.test.
It uses the rules listed in the comments at the top of that test.
  
This patch introduces these differences from previous behavior;
1)  KEY_BLOCK_SIZE=0 is allowed by Innodb in both strict and non-strict mode
with no errors or warnings. It was previously used by the server to set 
KEY_BLOCK_SIZE to undefined.  (Bug#56628)
2)  An explicit valid non-DEFAULT ROW_FORMAT always takes priority over a
valid KEY_BLOCK_SIZE. (bug#56632)
3)  Automatic use of COMPRESSED row format is only done if the ROW_FORMAT
is DEFAULT or unspecified.
4)  ROW_FORMAT=FIXED is prevented in strict mode.

This patch also includes various formatting changes for consistency with
InnoDB coding standards.

Related Bugs
Bug#54679: ALTER TABLE causes compressed row_format to revert to compact
Bug#56628: ALTER TABLE .. KEY_BLOCK_SIZE=0 produces untrue warning or unnecessary error
Bug#56632: ALTER TABLE implicitly changes ROW_FORMAT to COMPRESSED
2010-11-02 16:54:23 -05:00
Vasil Dimov
49cbbf6ea4 Fix Bug#53046 dict_update_statistics_low can still be run concurrently on same table
Replace the array of mutexes that used to protect
dict_index_t::stat_n_diff_key_vals[] with an array of rw locks that protects
all the stats related members in dict_table_t and all of its indexes.

Approved by:	Jimmy (rb://503)
2010-11-02 18:57:20 +02:00
Georgi Kodinov
00f1e71d9a Bug #57916: Fix the naming of the proxy_priv table
1. Fixed the name of the table to proxies_priv
2. Fixed the column names to be of the form Capitalized_lowecarse instead of
Capitalized_Capitalized
3. Added Timestamp and Grantor columns
4. Added tests to plugin_auth to check the table structure
5. Updated the existing tests
2010-11-02 17:45:26 +02:00
unknown
a63c14e9a6 Bug#57904 - Only one INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS was displayed
per table from Innodb
2010-11-02 10:03:14 -05:00
Jon Olav Hauglid
b138f1d77d Merge from mysql-5.5-bugteam to mysql-5.5-runtime
No conflicts
2010-11-01 12:10:04 +01:00
unknown
cdd706981c Re-enabled rpl.rpl_innodb_bug30888. 2010-11-01 15:00:40 +08:00
Sergey Glukhov
930cf09ec7 test case fix 2010-11-01 09:47:57 +03:00
Gleb Shchepa
71082fd17d manual merge 5.1-bugteam --> 5.5-bugteam (bug 52160) 2010-11-01 02:23:37 +03:00
Gleb Shchepa
20d704978d Bug #52160: crash and inconsistent results when grouping
by a function and column

The bugreport reveals two different bugs about grouping
on a function:

1) grouping by the TIME_TO_SEC function result caused
   a server crash or wrong results and
2) grouping by the function returning a blob caused
   an unexpected "Duplicate entry" error and wrong
   result.

Details for the 1st bug:

TIME_TO_SEC() returns NULL if its argument is invalid (empty
string for example). Thus its nullability depends not only
on the nullability of its arguments but also on their values.
Fixed by (overoptimistically) setting TIME_TO_SEC() to be
nullable despite the nullability of its arguments.

Details for the 2nd bug:

The server is unable to create indices on blobs without
explicit blob key part length. However, this fact was
ignored for blob function result fields of GROUP BY
intermediate tables.
Fixed by disabling GROUP BY index creation for blob
function result fields like regular blob fields.


mysql-test/r/func_time.result:
  Test case for bug #52160.
mysql-test/r/type_blob.result:
  Test case for bug #52160.
mysql-test/t/func_time.test:
  Test case for bug #52160.
mysql-test/t/type_blob.test:
  Test case for bug #52160.
sql/item_timefunc.h:
  Bug #52160: crash and inconsistent results when grouping
              by a function and column
  
  TIME_TO_SEC() returns NULL if its argument is invalid (empty
  string for example). Thus its nullability depends not only
  Fixed by (overoptimistically) setting TIME_TO_SEC() to be
  nullable despite the nullability of its arguments.
sql/sql_select.cc:
  Bug #52160: crash and inconsistent results when grouping
              by a function and column
  
  The server is unable to create indices on blobs without
  explicit blob key part length. However, this fact was
  ignored for blob function result fields of GROUP BY
  intermediate tables.
  Fixed by disabling GROUP BY index creation for blob
  function result fields like regular blob fields.
2010-10-31 19:04:38 +03:00
Sven Sandberg
c4a4119829 wL#5625: Deprecate mysqlbinlog options --base64-output=always and --base64-output
Adds deprecation warning for the mysqlbinlog options
--base64-output=always and --base64-output.
A warning is printed when the flags are used,
and also when running mysqlbinlog --help.


client/mysqlbinlog.cc:
  Give a warning for --base64-output=always and --base64-output,
  and print warning in mysqlbinlog --help.
mysql-test/r/mysqlbinlog.result:
  updated result file
mysql-test/t/mysqlbinlog.test:
  Test that mysqlbinlog --base64-output=always gives a warning.
2010-10-29 16:56:58 +02:00
Georgi Kodinov
fd46de026d merge to 5.1-security 2010-10-29 14:02:49 +03:00
Jon Olav Hauglid
4bfeaff7d0 Merge from mysql-5.5-bugteam to mysql-5.5-runtime
No conflicts
2010-10-29 11:46:18 +02:00
Sergey Glukhov
4a23ac20d9 Bug#57688 Assertion `!table || (!table->write_set || bitmap_is_set(table->write_set, field
Lines below which were added in the patch for Bug#56814 cause this crash:

+      if (table->table)
+        table->table->maybe_null= FALSE;

Consider following test case:
--
CREATE TABLE t1(f1 INT NOT NULL);
INSERT INTO t1 VALUES (16777214),(0);

SELECT COUNT(*) FROM t1 LEFT JOIN t1 t2
ON 1 WHERE t2.f1 > 1 GROUP BY t2.f1;

DROP TABLE t1;
--

We set TABLE::maybe_null to FALSE for t2 table
and in create_tmp_field() we create appropriate tmp table field
using create_tmp_field_from_item() function instead of
create_tmp_field_from_field. As a result we have
LONGLONG field. As we have GROUP BY clause we calculate
group buffer length, see calc_group_buffer().
Item from group list which is used for calculation
refer to the field from real tables and have LONG type.
So group buffer length become insufficient for storing of
LONGLONG value. It leads to overwriting of wrong memory
area in do_field_int() function which is called from
end_update().
After some investigation I found out that
create_tmp_field_from_item() is used only for OLAP
grouping and can not be used for common grouping
as it could be an incompatibility between tmp
table fields and group buffer length.
We can not remove create_tmp_field_from_item() call from
create_tmp_field as OLAP needs it and we can not use this
function for common grouping. So we should remove setting
TABLE::maybe_null to FALSE from simplify_joins().
In this case we'll get wrong behaviour of
list_contains_unique_index() back. To fix it we
could use Field::real_maybe_null() check instead of
Field::maybe_null() and add addition check of
TABLE_LIST::outer_join.


mysql-test/r/group_by.result:
  test case
mysql-test/r/join_outer.result:
  test case
mysql-test/t/group_by.test:
  test case
mysql-test/t/join_outer.test:
  test case
sql/sql_select.cc:
  --remove wrong code
  --use Field::real_maybe_null() check instead of
    Field::maybe_null() and add addition check of
    TABLE_LIST::outer_join
2010-10-29 12:23:06 +04:00
Sergey Glukhov
c04bf683fe Bug#57194 group_concat cause crash and/or invalid memory reads with type errors
The problem is caused by bug49487 fix and became visible
after after bug56679 fix.
Items are cleaned up and set to unfixed state after filling derived table.
So we can not rely on item::fixed state in Item_func_group_concat::print
and we can not use 'args' array as items there may be cleaned up.
The fix is always to use orig_args array of items as it
always should contain the correct data.


mysql-test/r/func_gconcat.result:
  test case
mysql-test/t/func_gconcat.test:
  test case
sql/item_sum.cc:
  The fix is always to use orig_args array of items.
2010-10-29 11:44:32 +04:00
Sergey Glukhov
c7371c9e75 Bug#57477 SIGFPE when dividing a huge number a negative number
The problem is dividing by const value when
the result is out of supported range.
The fix:
-return LONGLONG_MIN if the result is out of supported range for DIV operator.
-return 0 if divisor is -1 for MOD operator.


mysql-test/r/func_math.result:
  test case
mysql-test/t/func_math.test:
  test case
sql/item_func.cc:
  -return LONGLONG_MIN if the result is out of supported range for DIV operator.
  -return 0 if divisor is -1 for MOD operator.
2010-10-27 18:12:10 +04:00