Commit graph

24528 commits

Author SHA1 Message Date
Jon Olav Hauglid
16537b0336 Bug #35877 Update .. WHERE with function, constraint violation, crash
Unable to reproduce crash with current version of the 5.5.0 codebase.
Test case for MyISAM/InnoDB based on the bug rapport added to 
sp_trans.test.

Backport of revno: 2617.65.9.
2009-10-12 13:41:02 +02:00
Jon Olav Hauglid
1186f5ec18 Bug #34453 Can't change size of file (Errcode: 1224)
Unable to reproduce error on current version of the 5.5.0
codebase. Test case based on the bug report added to trigger.test.

Backport of revno: 2617.52.11.
2009-10-12 12:59:55 +02:00
Alexander Nozdrin
450d8e0aa6 Post-backporting (Bug#28299) fix for fixing results of ndb_views.test. 2009-10-11 01:37:24 +04:00
Alexander Nozdrin
fc8c0b1e4a Post-backporting (Bug#21099) patch for results of fixing events_bugs.test. 2009-10-11 01:36:19 +04:00
Alexander Nozdrin
addf93a23d Post-backporting patch for WL#4300: fixing funcs_1 test results. 2009-10-11 01:35:01 +04:00
Alexander Nozdrin
f45aea29e5 Backporting another patch for WL#4300 (Define privileges for tablespaces).
Original revision in 6.0:
------------------------------------------------------------
revno: 2630.13.14
committer: Alexander Nozdrin <alik@mysql.com>
branch nick: 6.0-rt-fix
timestamp: Fri 2008-07-25 22:44:20 +0400
message:
  Fix test & result files (WL 4300).
------------------------------------------------------------
2009-10-10 00:01:51 +04:00
Alexander Nozdrin
13f09243e3 A backporting patch for WL#4300 (Define privileges for tablespaces).
Original revision in 6.0:
------------------------------------------------------------
revno: 2630.13.11
committer: Alexander Nozdrin <alik@mysql.com>
branch nick: 6.0-rt-wl4300
timestamp: Thu 2008-07-24 11:44:21 +0400
message:
  A patch for WL#4300: Define privileges for tablespaces.
------------------------------------------------------------

per-file messages:
  mysql-test/r/grant.result
    Update result file: new columm 'Create_tablespace_priv' has been added to mysql.user.
  mysql-test/r/ps.result
    Update result file: new columm 'Create_tablespace_priv' has been added to mysql.user.
  mysql-test/r/system_mysql_db.result
    Update result file: new columm 'Create_tablespace_priv' has been added to mysql.user.
  mysql-test/suite/falcon/r/falcon_tablespace_priv.result
    Test case for WL#4300.
  mysql-test/suite/falcon/t/falcon_tablespace_priv.test
    Test case for WL#4300.
  mysql-test/suite/ndb/r/ndb_dd_ddl.result
    Test case for WL#4300.
  mysql-test/suite/ndb/t/ndb_dd_ddl.test
    Test case for WL#4300.
  scripts/mysql_system_tables.sql
    New columm 'Create_tablespace_priv' has been added to mysql.user.
  scripts/mysql_system_tables_data.sql
    'CREATE TABLESPACE' is granted by default to the root user.
  scripts/mysql_system_tables_fix.sql
    Grant 'CREATE TABLESPACE' privilege during system table upgrade
    if a user had SUPER privilege.
  sql/sql_acl.cc
    Added CREATE TABLESPACE privilege.
  sql/sql_acl.h
    Added CREATE TABLESPACE privilege.
  sql/sql_parse.cc
    Check global 'CREATE TABLESPACE' privilege for the following SQL statements:
      - CREATE | ALTER | DROP TABLESPACE
      - CREATE | ALTER | DROP LOGFILE GROUP
  sql/sql_show.cc
    Added CREATE TABLESPACE privilege.
  sql/sql_yacc.yy
    Added CREATE TABLESPACE privilege.
2009-10-10 00:01:10 +04:00
Alexander Nozdrin
153f56787a Merge from mysql-next-bugfixing. 2009-10-09 23:38:00 +04:00
Jon Olav Hauglid
2464586b75 Bug #34197 CREATE PROCEDURE fails when COMMENT truncated in non
strict SQL mode

The problem was that a COMMENT longer than 64 characters
caused CREATE PROCEDURE to fail.

This patch fixed the problem by changing the COMMENT field in 
mysql.proc from char(64) to text. The corresponding ROUTINE_COMMENT
field in INFORMATION_SCHEMA.ROUTINES is also changed from
varchar(64) to longtext.

mysql_system_tables.sql and mysql_system_tables_fix.sql updated.
Test case added to sp.test and affected result-files updated.
2009-10-09 17:35:07 +02:00
Dmitry Lenev
b8ffd1fb0e Fix for bug #39932 "create table fails if column for FK is in different
case than in corr index".

Server was unable to find existing or explicitly created supporting
index for foreign key if corresponding statement clause used field
names in case different than one used in key specification and created
yet another supporting index.
In cases when name of constraint (and thus name of generated index)
was the same as name of existing/explicitly created index this led
to duplicate key name error.

The problem was that unlike all other code Key_part_spec::operator==()
compared field names in case sensitive fashion. As result routines
responsible for getting rid of redundant generated supporting indexes
for foreign key were not working properly for versions of field names
using different cases.

mysql-test/r/innodb_mysql.result:
  Added test case for bug #39932 "create table fails if column for FK
  is in different case than in corr index".
mysql-test/t/innodb_mysql.test:
  Added test case for bug #39932 "create table fails if column for FK
  is in different case than in corr index".
sql/sql_class.cc:
  Make field name comparison case-insensitive like it is
  in the rest of server.
2009-10-09 19:18:52 +04:00
Alexander Nozdrin
be8e397496 Backporting of Bug#40128 from 6.0 to next-mr.
Original revision in 6.0:
------------------------------------------------------------
revno: 2599.108.1
committer: Alexander Nozdrin <alik@sun.com>
branch nick: 6.0-rpl-bug40128
timestamp: Wed 2009-01-21 15:33:42 +0300
message:
  Fix for Bug#40128: drop-no_root fails under windows in 6.0-rpl.
  
  The problem was that directories with no permission (000) files
  are deleted differently on UNIX and on Windows.
  
  On UNIX, 000-permission file is deleted perfectly, but other files
  are left in the directory.
  
  On Windows, 000-permission file is not deleted, but other files
  are deleted.
  
  Also, the fix needed a change in mysqltest.c: 'chmod' directive
  should return a positive error code (in order to be handled).
  It's decided to return a constant '1' for all error codes
  just to be OS-independent.
------------------------------------------------------------
2009-10-09 18:52:49 +04:00
Jon Olav Hauglid
05f88483fb Bug #21099 MySQL 5.0.22 silently creates MyISAM tables even though
InnoDB specified.
            
NO_ENGINE_SUBSTITUTION added to TRADITIONAL sql mode to prevent
silent conversions from InnoDB to MyISAM in that sql mode.

A number of test case results files updated to reflect this change.
Test added to sql_mode.test that checks that TRADITIONAL really 
includes NO_ENGINE_SUBSTITUION.


mysql-test/t/ctype_utf8.test:
  This test lacked "--source include/have_innodb.inc" which meant that 
  a number of DDL statements with engine=innodb in reality were using 
  myisam. "--disable_warnings" around all such statements, meant that 
  these engine substitutions were not visible. Test case has been 
  updated to include have_innodb.inc and "--disable_warnings" have been 
  removed for the relevant DDL statements.
2009-10-09 16:52:02 +02:00
Alexander Nozdrin
f38006b532 Fix events_bugs test after backporting a patch for Bug#35297. 2009-10-09 18:22:35 +04:00
Jon Olav Hauglid
0da357645c Bug #44651 "have_community_features" variable should be renamed
"have_profiling"

1) Renamed have_community_features server system variable to
have_profiling.
2) Removed eable-community-features configure option and
ENABLE_COMMUNITY_FEATURES macro.
3) Removed COMMUNITY_SERVER macro and replaced its usage by 
ENABLED_PROFILING.

Only --enable-profiling is now needed to enable profiling.
It was the only existing "community feature", so there was
no need for both configure options.

Using --enable-community-features will give a warning message
since it no longer exists.
2009-10-09 15:59:25 +02:00
Staale Smedseng
220d9b8c4a This is a backport of the two patches for Bug #28299:
To-number conversion warnings work differenly with CHAR 
and VARCHAR sp variables.

The original revision-IDs are:
  staale.smedseng@sun.com-20081124095339-2qdvzkp0rn1ljs30
  staale.smedseng@sun.com-20081125104611-rtxic5d12e83ag2o
                                                
The patch provides ER_TRUNCATED_WRONG_VALUE warning messages
for conversion of VARCHAR to numberic values, in line with
messages provided for CHAR conversions. Conversions are
checked for success, and the message is emitted in case
failure.
                                                
The tests are amended to accept the added warning messages,
and explicit conversion of ON/OFF values is added for
statements checking system variables. In test
rpl.rpl_switch_stm_row_mixed checking for warnings is
temporarily disabled for one statement, as this generates
warning messages for strings that vary between executions.


sql/field.cc:
  The pushing of the truncation warning is now done in a
  separate static function, and used in various places.
2009-10-09 15:34:07 +02:00
Magne Mahre
5ca59914ce Bug #31031 ALTER TABLE regression in 5.0
An ALTER TABLE statement which added a column and added
a non-partial index on it failed with:
            
"ERROR 1089 (HY000): Incorrect sub part key; the used
key part isn't a string, the used length is longer than
the key part, or the storage engine doesn't support unique
sub keys"
            
In a check introduced to fix an earlier bug (no. 26794),
to allow for indices on spatial type columns, the
test expression was flawed (a logical OR was used instead
of a logical AND), which led to this regression.
            
The code in question does a sanity check on the key, and
the flawed code mistakenly classified any index created
in the way specified above as a partial index.  Since
many data types does not allow partial indices, the
statement would fail.
2009-10-09 15:04:58 +02:00
Alexander Nozdrin
f0195faf88 Merge RT patches from mysql-next-mr-bugfixing. 2009-10-09 15:45:18 +04:00
Alexander Nozdrin
90f434cf20 Merge from mysql-next-mr. 2009-10-09 15:42:31 +04:00
Jon Olav Hauglid
4dae0e0307 Bug #25863 No database selected error, but documentation
says * for global allowed

The current behaviour of 'GRANT *' was changed as a part of the fix
for Bug#19022, Bug#17199 and Bug#18444. To avoid regression, we keep
the current behavior and update the documentation. 
Test case added to grant.test.
2009-10-09 11:57:55 +02:00
Alexander Nozdrin
192faa573d Pull from mysql-next-mr. 2009-10-09 13:50:49 +04:00
Dmitry Lenev
b20a4f01c3 Fix for bug #44738 "fill_schema_table_from_frm() opens tables without
lowercasing table name".

In lower_case_table_names > 0 mode some queries to I_S left entries
with incorrect key in table definition cache. This wasted memory and
caused some of the further queries to I_S to produce stale results
in cases when table definition was changed by a DDL statement.
Also in combination with similar problem in CREATE TABLE (which also
has peeked into table definition cache using non-normalized key) this
issue led to to spurious ER_TABLE_EXISTS_ERROR errors when one tried
to create a table with the same name as a previously existing but
dropped table (assuming that table name contained characters in upper
case).

This problem occured due to fact that fill_schema_table_from_frm()
was not properly normalizing (lowercasing) database and table names
which it used for lookups in table definition cache.

This fix adds proper normalization to this function. It also solves
similar problem in CREATE TABLE's code by ensuring that it uses
properly normalized version of table name when it peeks into table
definition cache instead of non-normalized one.

mysql-test/r/lowercase_table2.result:
  Added test for #44738 "fill_schema_table_from_frm() opens tables
  without lowercasing table name".
mysql-test/t/lowercase_table2.test:
  Added test for #44738 "fill_schema_table_from_frm() opens tables
  without lowercasing table name".
sql/sql_show.cc:
  Normalize database and table name before using them for looking
  up entry in table definition cache.
sql/sql_table.cc:
  Ensure that CREATE TABLE uses properly normalized version of table
  name when it peeks into table definition cache.
2009-10-09 13:00:18 +04:00
Alexander Nozdrin
a89855c537 Merge from mysql-trunk-bugfixing. 2009-10-09 12:30:34 +04:00
Alexander Nozdrin
1031d8e7f1 Mark main.log_tables experimental (Bug 47924). 2009-10-08 23:13:33 +04:00
Alexander Nozdrin
4efe5b948a Merge from mysql-trunk-bugfixing. 2009-10-08 13:29:48 +04:00
Alexander Nozdrin
6e5f97e150 Fix index_merge_innodb.result (Bug 45727). 2009-10-08 13:27:45 +04:00
Alexander Nozdrin
63e5078825 A backport of a patch for Bug#35297.
Original revision in mysql-6.0-codebase is:

revno: 2617.31.14
committer: Konstantin Osipov <kostja@sun.com>
branch nick: mysql-6.0-runtime
timestamp: Sat 2009-03-28 11:42:55 +0300
message:
  Bug#35297 SHOW CREATE EVENT does not show the DEFINER:
  update test result after a merge from now.
2009-10-08 00:57:03 +04:00
Alexander Nozdrin
5281fa364e A backport a patch of Bug#34828.
Original revision is from mysql-6.0-codebase:

revno: 2617.23.13
committer: Alexander Nozdrin <alik@sun.com>
branch nick: 6.0-rt-bug34828
timestamp: Tue 2009-02-24 14:25:46 +0300
message:
  A patch for Bug#34828: OF is taken as OFF and a value of 0
  is set for variable SQL_notes.
  
  The problem was that partial match was allowed for keywords.
  
  A fix is to disable partial match and require full match.
2009-10-07 20:49:26 +04:00
Alexander Nozdrin
9384835087 A backport of patch for Bug#26704.
Original revision is from mysql-6.0-codebase:

revno: 2630.3.1
committer: Alexander Nozdrin <alik@mysql.com>
branch nick: 6.0-rt-bug26704
timestamp: Thu 2008-05-29 21:04:06 +0400
message:
  A fix for Bug#26704: Failing DROP DATABASE brings
  mysql-client out of sync.

  The problem was that we changed current database w/o caring
  whether it was dropped successfully or not.

  The fix is not to change current database if we failed to drop it.
2009-10-07 20:39:57 +04:00
Alexander Nozdrin
1733a974b4 Merge from mysql-trunk-bugfixing. 2009-10-07 19:42:50 +04:00
Alexander Nozdrin
f6dddce2ff Disabled index_merge2.inc due to Bug 45727. 2009-10-07 19:37:36 +04:00
Guilhem Bichot
56312dc7cf Backport of the fix for BUG#33730 "Full table scan instead selected partitions for query more than 10 partitions"
from 6.0, made in sergefp@mysql.com-20090205190644-q8632sniogedhtsu
2009-10-05 22:59:19 +02:00
Guilhem Bichot
42e8077834 Port of fix for BUG#42893 "main.information_schema times out sporadically"
(from revision konstantin@mysql.com-20080627154042-923m6lzk7z77lrgj ). This moves the slow part
(10 seconds over 13) into a separate big test.
2009-10-05 16:22:48 +02:00
Alexander Nozdrin
d045cded3e Merge from mysql-trunk-bugfixing. 2009-10-02 16:50:18 +04:00
Alexander Nozdrin
2a7edfbe9c Made two test cases experimental. 2009-10-02 16:48:51 +04:00
Alexander Nozdrin
c7dd21688d Merge from mysql-trunk-bugfixing. 2009-10-01 15:32:45 +04:00
Alexander Nozdrin
35d2352cfb 1. Respect experimental tag in gcov mode;
2. Mark ndb, rpl_ndb test suites experimental.
2009-10-01 15:31:54 +04:00
Alexander Nozdrin
a485a837fa Merge from mysql-next-mr. 2009-10-01 15:22:37 +04:00
Ingo Struewing
1f49cf7409 auto-merge 2009-09-30 12:30:09 +02:00
Ingo Struewing
7dacca0ff0 Bug#37267 - connect() EINPROGRESS failures mishandled in client library
We cann connect() in a non-blocking mode to be able to specify a
non-standard timeout.

The problem was that we did not fetch the status from the
non-blocking connect(). We assumed that poll() would not return
a POLLIN flag if the connect failed. But on some platforms this
is not true.

After a successful poll() we do now retrieve the status value
from connect() with getsockopt(...SO_ERROR...). Now we do know
if (and how) the connect failed.

The test case for my investigation was rpl.rlp_ssl1 on an
Ubuntu 9.04 x86_64 machine. Both, IPV4 and IPV6 were active.
'localhost' resolved first for IPV6 and then for IPV4. The
connection over IPV6 was blocked. rpl.rlp_ssl1 timed out
as it did not notice the failed connect(). The first read()
failed, which was interpreted as a master crash and the
connection was tried to reestablish with the same result
until the retry limit was reached.

With the fix, the connect() problem is immediately recognized,
and the connect() is retried on the second resolution for
'localhost', which is successful.


libmysqld/libmysqld.c:
  Bug#37267 - connect() EINPROGRESS failures mishandled in client library
  Changed a DBUG print string to distinguish the two mysql_real_connect()
  implementations in DBUG traces.
mysql-test/include/wait_for_slave_param.inc:
  Bug#37267 - connect() EINPROGRESS failures mishandled in client library
  Made timeout value available in error message.
mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result:
  Bug#37267 - connect() EINPROGRESS failures mishandled in client library
  Fixed test result. Connect error is now detected as CR_CONN_HOST_ERROR
  (2003) instead of CR_SERVER_LOST (2013).
sql-common/client.c:
  Bug#37267 - connect() EINPROGRESS failures mishandled in client library
  Added retrieval of the error code from the non-blocking connect().
  Added DBUG.
  Added comment.
2009-09-30 12:28:15 +02:00
Guilhem Bichot
12e822039d Fix for BUG#42980 "Client doesn't set NUM_FLAG for DECIMAL and TIMESTAMP":
DECIMAL and TIMESTAMP used to have NUM_FLAG, but NEWDECIMAL was forgotten.
It's correct that TIMESTAMP does not have the flag nowadays (manual will be updated, connectors
developers will be notified).

client/mysqldump.c:
  IS_NUM_FIELD(f) removed and replaced by its definition (f>flags & NUM_FLAG).
include/mysql.h:
  - IS_NUM_FIELD() is removed because name is too close to IS_NUM() and it is not used a lot
  - INTERNAL_NUM_FIELD() is removed:
    * it forgets to test NEWDECIMAL (when IS_NUM() was updated for NEWDECIMAL we forgot
    to update INTERNAL_NUM_FIELD()), that's why client didn't mark NEWDECIMAL with NUM_FLAG (a bug).
    * it has an obsolete test for length of the TIMESTAMP field: test became accidentally wrong when length
    of TIMESTAMP was changed to always be 19 (when the format was changed from YYYYMMDDhhmmss to
    YYYY-MM-DD hh:mm:ss), never 8 or 14 anymore. That obsolete test caused TIMESTAMP to lose NUM_FLAG,
    which was an accidental but good change (see below).
    * IS_NUM() should be used instead
  - IS_NUM(f) is changed: TIMESTAMP used to be parsable as a number without quotes (when it was formatted as
  "YYYYMMDDhhmmss"); but it is not anymore (now that it is "YYYY-MM-DD hh:mm:ss"), so it should not have NUM_FLAG
  (mysqldump needs to quote TIMESTAMP values), so IS_NUM() should return false for it.
libmysqld/lib_sql.cc:
  use IS_NUM() instead of INTERNAL_NUM_FIELD()
mysql-test/r/bigint.result:
  result change: NEWDECIMAL fields now have NUM_FLAG (32768)
mysql-test/r/metadata.result:
  result change: NEWDECIMAL fields now have NUM_FLAG (32768)
mysql-test/r/mysqldump.result:
  DECIMAL columns are not quoted anymore by mysqldump. Which is ok, the parser does not need '' for them
mysql-test/r/ps_2myisam.result:
  result change: NEWDECIMAL fields now have NUM_FLAG (32768)
mysql-test/r/ps_3innodb.result:
  result change: NEWDECIMAL fields now have NUM_FLAG (32768)
mysql-test/r/ps_4heap.result:
  result change: NEWDECIMAL fields now have NUM_FLAG (32768)
mysql-test/r/ps_5merge.result:
  result change: NEWDECIMAL fields now have NUM_FLAG (32768)
mysql-test/suite/ndb/r/ps_7ndb.result:
  result change: NEWDECIMAL fields now have NUM_FLAG (32768)
mysql-test/t/metadata.test:
  test for BUG#42980
sql-common/client.c:
  use IS_NUM() instead of INTERNAL_NUM_FIELD()
2009-09-30 12:25:50 +02:00
Georgi Kodinov
e004e26624 merge mysql-trunk-wl4444_4571 to mysql-wl3220-next-mr 2009-09-29 10:34:37 +03:00
Mikael Ronstrom
ccae404afa Merge to mysql-next-mr 2009-09-28 09:39:50 +02:00
Georgi Kodinov
2118bd104c Ported WL#3220 to mysql-next-mr. 2009-09-28 10:21:25 +03:00
Alexander Nozdrin
bc11a8d044 Merge from mysql-next-mr. 2009-09-25 18:58:53 +04:00
Alexander Nozdrin
c991aa4e1a Merge from mysql-trunl-alik. 2009-09-25 13:40:53 +04:00
Alexander Nozdrin
3f0caab6e5 Mark rpl.rpl_innodb_bug30888 experimental. 2009-09-25 13:40:25 +04:00
Alexander Nozdrin
20430985f9 Merge from mysql-trunl-alik. 2009-09-25 13:23:30 +04:00
Alexander Nozdrin
350fad0e46 Mark rpl.rpl_trigger experimental. 2009-09-25 13:21:49 +04:00
Alexander Nozdrin
f4b49e55cd Merge from mysql-trunk-alik (stabilizing changes). 2009-09-24 16:40:09 +04:00
Alexander Nozdrin
63b2a5ac78 Merge from mysql-next-mr. 2009-09-24 16:38:47 +04:00