1
0
mirror of https://github.com/MariaDB/server.git synced 2025-10-19 21:09:40 +03:00
Commit Graph

3079 Commits

Author SHA1 Message Date
Marc Alff
e96932f49e Bug#31767 DROP FUNCTION name resolution
Backport to 5.5.99
2010-02-23 11:43:26 -07:00
Alexander Nozdrin
e7e1a36755 Manual merge from mysql-trunk. 2010-02-23 17:06:06 +03:00
Alexey Kopytov
f0d2fe34f2 Manual merge of mysql-5.1-bugteam to mysql-trunk-merge.
Conflicts:

Text conflict in client/mysqltest.cc
Text conflict in configure.in
Text conflict in mysql-test/include/mtr_warnings.sql
2010-02-23 16:26:45 +03:00
Magne Mahre
6f78ef71d4 Clean-up in the sys_vars test suite after
WL#5154 and WL5182

Two result files in the sys_vars suite wasn't 
properly updated after the change in
deprecation text
2010-02-23 12:33:20 +01:00
Bjorn Munch
ac0d9be196 merge from 5.1-mtr 2010-02-22 14:52:11 +01:00
Alexander Nozdrin
0ceeeafe85 Manual merge from mysql-next-mr.
Conflicts:
  - mysql-test/r/mysqld--help-notwin.result
  - mysql-test/r/mysqld--help-win.result
2010-02-22 16:22:31 +03:00
Alfranio Correia
3fad4e8df1 BUG#49019 Mixing self-logging eng. and regular eng. does not switch to row in mixed mode
Reading from a self-logging engine and updating a transactional engine such as Innodb
generates changes that are written to the binary log in the statement format and may
make slaves diverge. In the mixed mode, such changes should be written to the binary
log in the row format.

Note that the issue does not happen if we mix a self-logging engine and MyIsam
as this case is caught by checking the mixture of non-transactional and transactional
engines.

So, we classify a mixed statement where one reads from NDB and writes into another 
engine as unsafe:

if (multi_engine && flags_some_set & HA_HAS_OWN_BINLOGGING)
  lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE);

mysql-test/suite/rpl_ndb/r/rpl_ndb_mixed_engines_transactions.result:
  Augmented test case to check mixed statements
mysql-test/suite/rpl_ndb/t/rpl_ndb_mixed_engines_transactions.test:
  Augmented test case to check mixed statements
sql/share/errmsg-utf8.txt:
  Added ER_BINLOG_UNSAFE_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE
sql/sql_class.cc:
  Redefined flags' name in order to have two sets of flags: (i) flags that are checked when there
  is a write operation; (ii) flags that are checked regardless of the type of the operation.
  
  Classified a mixed statement where one reads from NDB and writes into another engine as unsafe:
  
    if (multi_engine && flags_some_set & HA_HAS_OWN_BINLOGGING)
      lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE);
sql/sql_lex.cc:
  Added error ER_BINLOG_UNSAFE_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE
sql/sql_lex.h:
  Added BINLOG_STMT_UNSAFE_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE
2010-02-22 03:25:33 +00:00
Alexey Kopytov
0afa209018 Manual merge of mysql-5.1-bugteam to mysql-trunk-merge. 2010-02-22 00:33:11 +03:00
Alexander Nozdrin
eb79ef1535 Auto-merge from mysql-next-mr. 2010-02-21 22:36:05 +03:00
Alexander Nozdrin
310c949e3d Auto-merge from mysql-next-mr. 2010-02-21 21:34:09 +03:00
Vladislav Vaintroub
3dffd5398c Do not run shared memory sys_vars tests in embedded 2010-02-21 15:10:52 +01:00
Vladislav Vaintroub
0fd18913d9 merge 2010-02-20 11:23:12 +01:00
Alexander Nozdrin
d1ad316a59 Patch for WL#3736: Extended Table, Column and Index Comments.
The task is to 
  (a) add a comment on indexes and 
  (b) increase the maximum length of column, table and the new index comments.

The patch committed on behalf of Yoshinori Matsunobu (Yoshinori.Matsunobu@Sun.COM).
2010-02-20 13:07:32 +03:00
Alexander Nozdrin
fca241584f Auto-merge from mysql-next-mr. 2010-02-20 12:40:21 +03:00
Alexander Nozdrin
ca1b669e99 Auto-merge from mysql-trunk. 2010-02-20 12:40:04 +03:00
Magne Mahre
427479791b Cleanup after push of
WL#5154 - Remove deprecated 4.1 features

The fix is the removal of the sql_log_update_basic
test, as this option is deprecated and removed,
and a minor change to the result file of
lc_time_names_basic as the error message has
changed.
2010-02-18 18:10:39 +01:00
Magne Mahre
7178879c80 WL#5154 Remove deprecated 4.1 features
A set of program options and variables was deprecated in
MySQL 5.1, and is hereby removed.



client/mysql.cc:
  --no-auto-rehash (-A)  is no longer deprecated
  --no-named-commands (-g) is now removed
  --skip-line-numbers (-L) is no longer deprecated
  --set-variable (-O) is now removed
  --no-pager is now removed
client/mysqlbinlog.cc:
  --position is now removed (use --start-position)
  -j is now equivalent with --start-position
client/mysqldump.c:
  --first-slave is now removed
  --no-set-names (-N) is now removed
  --set-variable (-O) is now removed
mysql-test/include/default_mysqld.cnf:
  default-character-set is removed as an option
  character-set-server is equivalent.
mysql-test/t/bug47671-master.opt:
  default-character-set option is removed
  character-set-server is equivalent
mysql-test/t/ctype_latin1_de-master.opt:
  default-character-set option is removed
  character-set-server is equivalent
mysql-test/t/ctype_ucs2_def-master.opt:
  default-collation is removed
  collation-server is equicalent
scripts/mysqld_multi.sh:
  --config-file has been superseded by
  --defaults-extra-file
sql/mysql_priv.h:
  Removed the version number in the deprecation
  warning text, as decided by ServerPT.
sql/mysqld.cc:
  --default-character-set (-C) is removed
  --default-collation is removed
  --log-long-format (-0) is removed
  --safe-show-database is removed
  --set-variable (-O) is removed
sql/sql_yacc.yy:
  The FRAC_SECOND keyword is removed
sql/sys_vars.cc:
  The sql_log_update system variable is removed
2010-02-17 10:18:17 +01:00
Vladislav Vaintroub
6230c2e296 Fix test that did not work in out-of-source build .
There are 2 different share directories, one if builddir/share (with compiled errmsg.sys) 
and another one is $sourcedir/share and contains some /charsets/*.xml files.
second one should be refered to  as MYSQL_CHARSETSDIR and  MYSQL_SHAREDIR  $builddir/share
2010-02-17 04:14:09 +01:00
Vladislav Vaintroub
5b77604cc2 merge 2010-02-16 23:19:47 +01:00
Serge Kozlov
6270e3be3c Bug#48308
Merge mysql-trunk-bugfixing -> mysql-next-mr-bugfixing
2010-02-16 22:38:48 +03:00
Serge Kozlov
7e88846323 Bug#48308.
1. Now test use fake_relay_log primitive
2. Added RESET SLAVE to include/setup_fake_relay_log.inc for removing relay log info file
3. Added RESET SLAVE to include/cleanup_fake_relay_log.inc
4. Test moved to rpl suite as rpl_binlog_auto_inc_bug33029.test
5. Updated result file
2010-02-16 22:34:34 +03:00
Bjorn Munch
5f3e490174 new merge from next-mr 2010-02-16 18:23:21 +01:00
Alexander Nozdrin
ab293e26c3 Prohibit running semi-sync rpl tests in the embedded mode. 2010-02-16 13:12:08 +03:00
Alexander Nozdrin
c15886a111 Auto-merge from mysql-next-4284. 2010-02-15 17:08:38 +03:00
Jon Olav Hauglid
37fd0bcf63 Followup to Bug#45225 Locking: hang if drop table with no timeout
This patch removes the unused server variable
"table_lock_wait_timeout".


mysql-test/r/variables.result:
  Updated the test for Bug#28580 to reflect that 
  "table_lock_wait_timeout" no longer exists.
mysql-test/t/variables.test:
  Updated the test for Bug#28580 to reflect that 
  "table_lock_wait_timeout" no longer exists.
2010-02-15 13:11:20 +01:00
Alexander Nozdrin
a8ef1bafb1 Manual merge from mysql-next-mr.
Conflicts:
  - sql/log_event.cc
  - sql/sql_class.h
2010-02-15 14:16:49 +03:00
Bjorn Munch
97df3bed3d merge from next-mr 2010-02-14 12:26:36 +01:00
Bjorn Munch
862b77b966 merge from trunk 2010-02-14 12:24:16 +01:00
Vladislav Vaintroub
e3a4741d05 merge 2010-02-13 17:01:32 +01:00
Guilhem Bichot
822f669023 merge with latest next-mr-bugfixing 2010-02-12 13:08:45 +01:00
unknown
97afccae53 Bug #43913 rpl_cross_version can't pass on conflicts complainig clash with
--slave-load-tm
      
The MDL_SHARED lock was introduced for an object in 5.4, but the 'TABLE_LIST' 
object was not initialized with the MDL_SHARED lock when applying event with 
LOAD DATA INFILE into table. So the failure is caused when checking the 
MDL_SHARED lock for the object.
To fix the problem, the 'TABLE_LIST' object was initialized with the MDL_SHARED 
lock when applying event with LOAD DATA INFILE into table.


mysql-test/suite/rpl/t/disabled.def:
  Got rid of the line for enabling 'rpl_cross_version' test.
2010-02-12 12:04:57 +08:00
Konstantin Osipov
c48c21eb05 Fix a sporadic failure of rpl_sp.test in next-4284 tree: when doing
SELECT * FROM t1 on slave, first make sure that the slave has received
the CREATE TABLE from the master.
2010-02-11 19:02:21 +03:00
Konstantin Osipov
6cf17332bb next-4284 tree: fix the failures of processlist_val_* tests,
update the condition to wait for in wait_condition
to reflect type-of-operation aware metadata locks.
2010-02-11 18:19:04 +03:00
Luis Soares
c4f1de9f11 Automerge from mysql-next-mr-bugfixing. 2010-02-11 13:50:18 +00:00
Jon Olav Hauglid
c9e4b1bb0c Followup to Bug#34604 handler::ha_rnd_end(): Assertion `inited==RND' failed.
The test case for this bug relies on getting a ER_LOCK_WAIT_TIMEOUT
error. However with the introduction of MDL, the test would hang
forever since the metadata locks would not timeout.

MDL timeouts are now introduced in the scope of Bug#45225. This
patch changes the testcase for Bug#34604 to set the new server
variable "lock_wait_timeout" to one second which makes the test
generate the necessary timeout again.
2010-02-11 12:59:12 +01:00
Jon Olav Hauglid
3d6a89e792 Bug #45225 Locking: hang if drop table with no timeout
This patch introduces timeouts for metadata locks. 

The timeout is specified in seconds using the new dynamic system 
variable  "lock_wait_timeout" which has both GLOBAL and SESSION
scopes. Allowed values range from 1 to 31536000 seconds (= 1 year). 
The default value is 1 year.

The new server parameter "lock-wait-timeout" can be used to set
the default value parameter upon server startup.

"lock_wait_timeout" applies to all statements that use metadata locks.
These include DML and DDL operations on tables, views, stored procedures
and stored functions. They also include LOCK TABLES, FLUSH TABLES WITH
READ LOCK and HANDLER statements.

The patch also changes thr_lock.c code (table data locks used by MyISAM
and other simplistic engines) to use the same system variable.
InnoDB row locks are unaffected.

One exception to the handling of the "lock_wait_timeout" variable
is delayed inserts. All delayed inserts are executed with a timeout
of 1 year regardless of the setting for the global variable. As the
connection issuing the delayed insert gets no notification of 
delayed insert timeouts, we want to avoid unnecessary timeouts.

It's important to note that the timeout value is used for each lock
acquired and that one statement can take more than one lock.
A statement can therefore block for longer than the lock_wait_timeout 
value before reporting a timeout error. When lock timeout occurs, 
ER_LOCK_WAIT_TIMEOUT is reported.

Test case added to lock_multi.test.


include/my_pthread.h:
  Added macros for comparing two timespec structs.
include/thr_lock.h:
  Introduced timeouts for thr_lock.c locks.
mysql-test/r/mysqld--help-notwin.result:
  Updated result file with the new server variable.
mysql-test/r/mysqld--help-win.result:
  Updated result file with the new server variable.
mysql-test/suite/sys_vars/r/lock_wait_timeout_basic.result:
  Added basic test for the new server variable.
mysql-test/suite/sys_vars/t/lock_wait_timeout_basic.test:
  Added basic test for the new server variable.
mysys/thr_lock.c:
  Introduced timeouts for thr_lock.c locks.
sql/mdl.cc:
  Introduced timeouts for metadata locks.
sql/mdl.h:
  Introduced timeouts for metadata locks.
sql/sql_base.cc:
  Introduced timeouts in tdc_wait_for_old_versions().
sql/sql_class.h:
  Added new server variable lock_wait_timeout.
sql/sys_vars.cc:
  Added new server variable lock_wait_timeout.
2010-02-11 11:23:39 +01:00
Alexander Barkov
702166bcde WL#2649 Number-to-string conversions
added:
  include/ctype_numconv.inc
  mysql-test/include/ctype_numconv.inc
  mysql-test/r/ctype_binary.result
  mysql-test/t/ctype_binary.test
  Adding tests

modified:

  mysql-test/r/bigint.result
  mysql-test/r/case.result
  mysql-test/r/create.result
  mysql-test/r/ctype_cp1251.result
  mysql-test/r/ctype_latin1.result
  mysql-test/r/ctype_ucs.result
  mysql-test/r/func_gconcat.result
  mysql-test/r/func_str.result
  mysql-test/r/metadata.result
  mysql-test/r/ps_1general.result
  mysql-test/r/ps_2myisam.result
  mysql-test/r/ps_3innodb.result
  mysql-test/r/ps_4heap.result
  mysql-test/r/ps_5merge.result
  mysql-test/r/show_check.result
  mysql-test/r/type_datetime.result
  mysql-test/r/type_ranges.result
  mysql-test/r/union.result
  mysql-test/suite/ndb/r/ps_7ndb.result
  mysql-test/t/ctype_cp1251.test
  mysql-test/t/ctype_latin1.test
  mysql-test/t/ctype_ucs.test
  mysql-test/t/func_str.test
    Fixing tests


  @ sql/field.cc
     - Return str result using my_charset_numeric.
     - Using real multi-byte aware str_to_XXX functions
       to handle tricky charset values propely (e.g. UCS2)
  @ sql/field.h
     - Changing derivation of non-string field types to DERIVATION_NUMERIC.
     - Changing binary() for numeric/datetime fields to always
     return TRUE even if charset is not my_charset_bin. We need
     this to keep ha_base_keytype() return HA_KEYTYPE_BINARY.
     - Adding BINARY_FLAG into some fields, because it's not
     being set automatically anymore with
     "my_charset_bin to my_charset_numeric" change.
    - Changing derivation for numeric/datetime datatypes to a weaker
      value, to make "SELECT concat('string', field)" use character
      set of the string literal for the result of the function.
  @ sql/item.cc
     - Implementing generic val_str_ascii().
     - Using max_char_length() instead of direct read of max_length
       to make "tricky" charsets like UCS2 work.
       NOTE: in the future we'll possibly remove all direct reads of max_length
     - Fixing Item_num::safe_charset_converter().
       Previously it alligned binary string to
       character string (for example by adding leading 0x00
       when doing binary->UCS2 conversion). Now it just
       converts from my_charset_numbner to "tocs".
     - Using val_str_ascii() in Item::get_time() to make UCS2 arguments work.
     - Other misc changes
  @ sql/item.h
     - Changing MY_COLL_CMP_CONV and MY_COLL_ALLOW_CONV to
       bit operations instead of hard-coded bit masks.
     - Addding new method DTCollation.set_numeric().
     - Adding new methods to Item.
     - Adding helper functions to make code look nicer:
       agg_item_charsets_for_string_result()
       agg_item_charsets_for_comparison()
     - Changing charset for Item_num-derived items
       from my_charset_bin to my_charset_numeric
       (which is an alias for latin1).
  @ sql/item_cmpfunc.cc
     - Using new helper functions
     - Other misc changes
  @ sql/item_cmpfunc.h
     - Fixing strcmp() to return max_length=2.
       Previously it returned 1, which was wrong,
       because it did not fit '-1'.
  @ sql/item_func.cc
     - Using new helper functions
     - Other minor changes
  @ sql/item_func.h
     - Removing unused functions
     - Adding helper functions
       agg_arg_charsets_for_string_result()
       agg_arg_charsets_for_comparison()
     - Adding set_numeric() into constructors of numeric items.
     - Using fix_length_and_charset() and fix_char_length()
       instead of direct write to max_length.
  @ sql/item_geofunc.cc
     - Changing class for Item_func_geometry_type and
       Item_func_as_wkt from Item_str_func to
       Item_str_ascii_func, to make them return UCS2 result
       properly (when character_set_connection=ucs2).
  @ sql/item_geofunc.h
     - Changing class for Item_func_geometry_type and
       Item_func_as_wkt from Item_str_func to
       Item_str_ascii_func, to make them return UCS2 result
       properly (when @@character_set_connection=ucs2).
  @ sql/item_strfunc.cc
     - Implementing Item_str_func::val_str().
     - Renaming val_str to val_str_ascii for some items,
       to make them work with UCS2 properly.
     - Using new helper functions
     - All single-argument functions that expect string
       result now call this method:
       agg_arg_charsets_for_string_result(collation, args, 1);
       This enables character set conversion to @@character_set_connection
       in case of pure numeric input.
  @ sql/item_strfunc.h
     - Introducing Item_str_ascii_func - for functions
       which return pure ASCII data, for performance purposes,
       as well as for the cases when the old implementation
       of val_str() was heavily 8-bit oriented and implementing
       a UCS2-aware version is tricky.
  @ sql/item_sum.cc
     - Using new helper functions.
  @ sql/item_timefunc.cc
     - Using my_charset_numeric instead of my_charset_bin.
     - Using fix_char_length(), fix_length_and_charset()
       and fix_length_and_charset_datetime()
       instead of direct write to max_length.
     - Using tricky-charset aware function str_to_time_with_warn()
  @ sql/item_timefunc.h
     - Using new helper functions for charset and length initialization.
     - Changing base class for Item_func_get_format() to make
       it return UCS2 properly (when character_set_connection=ucs2).
  @ sql/item_xmlfunc.cc
     - Using new helper function
  @ sql/my_decimal.cc
     - Adding a new DECIMAL to CHAR converter
       with real multibyte support (e.g. UCS2)

  @ sql/mysql_priv.h
     - Introducing a new derivation level for numeric/datetime data types.
     - Adding macros for my_charset_numeric and MY_REPERTOIRE_NUMERIC.
     - Adding prototypes for str_set_decimal()
     - Adding prototypes for character-set aware str_to_xxx() functions.
  @ sql/protocol.cc
     - Changing charsetnr to "binary" client-side metadata for
       numeric/datetime data types.
  @ sql/time.cc
     - Adding to_ascii() helper function, to convert a string
       in any character set to ascii representation. In the
       future can be extended to understand digits written
       in various non-Latin word scripts.
     - Adding real multy-byte character set aware versions for str_to_XXXX,
       to make these these type of queries work correct:
         INSERT INTO t1 SET datetime_column=ucs2_expression;
   @  strings/ctype-ucs2.c
     - endptr was not calculated correctly. INSERTing of UCS2
       values into numeric columns returned warnings about
       truncated wrong data.
2010-02-11 08:17:25 +04:00
Luis Soares
7ae4c06da7 Manual merge from mysql-next-mr bug branch.
Conflicts
=========
  Text conflict in sql/sql_base.cc
2010-02-10 22:27:23 +00:00
Alexander Nozdrin
d7f203c79f Update result file. 2010-02-10 19:31:34 +03:00
Luis Soares
4eda0bf0b0 Automerge from mysql-trunk-bugfixing. 2010-02-10 12:16:49 +00:00
Luis Soares
5df69267c2 BUG#50984: check_testcase fails for rpl_tmp_table_and_DDL
We found that there are some tests that are not cleaning
up properly:
      
  1. rpl_tmp_table_and_DDL
  2. rpl_do_grant
  3. rpl_sync
      
For #1 and #2 we found that the slave would not, for some
cases, replicate all the instructions the master processed 
in the cleanup section. We fix these by deploying some 
synchronization commands in the test cases so that slave 
processes all clean up instructions.
      
As for #3, this is tracked as part of another bug 
(BUG@50442).
2010-02-10 12:12:55 +00:00
Mattias Jonsson
6cd0eebed8 merge 2010-02-10 11:08:39 +01:00
Mattias Jonsson
dca6700620 Bug#50201: Server crashes in explain_filename on an InnoDB partitioned table
Problem was that in mysql-trunk the ER() macro is now dependent on current_thd
and the innodb monitor thread has no binding to that thd object. This cause 
the crash because of bad derefencing.

Solution was to add a new macro which take the thd as an argument (which the innodb
thread uses for the call).

(Updated according to reviewers comments, i.e. added ER_THD_OR_DEFAULT and
moved test to suite parts.)

mysql-test/suite/parts/r/partition_innodb_status_file.result:
  Bug#50201: Server crashes in explain_filename on an InnoDB partitioned table
  
  New test result file
mysql-test/suite/parts/t/partition_innodb_status_file-master.opt:
  Bug#50201: Server crashes in explain_filename on an InnoDB partitioned table
  
  New test opt file
mysql-test/suite/parts/t/partition_innodb_status_file.test:
  Bug#50201: Server crashes in explain_filename on an InnoDB partitioned table
  
  New test.
  Note that the innodb monitor thread only runs every 15 seconds, so this
  test will take at least 15 seconds, so I have moved it to the parts suite.
sql/sql_table.cc:
  Bug#50201: Server crashes in explain_filename on an InnoDB partitioned table
  
  Using thd safe ER macro.
sql/unireg.h:
  Bug#50201: Server crashes in explain_filename on an InnoDB partitioned table
  
  Added ER macros for use with specified thd pointer.
2010-02-10 10:47:14 +01:00
Luis Soares
d142fca3bd Post-push fix: float/double to string conversions and vice versa
changed in mysql-next-mr (see: WL@2934). Thence, we need to 
update the result file for rpl_stm_user_variables test case.
2010-02-10 00:05:45 +00:00
Alexander Nozdrin
4b85061e09 Auto-merge from mysql-trunk. 2010-02-09 20:25:17 +03:00
Luis Soares
06df9b073d BUG#51021: current_stmt_binlog_row_based not removed in next-mr
As part of BUG@39934 fix, the public:
 - THD::current_stmt_binlog_row_based 
variable had been removed and replaced by a private variable:
 - THD::current_stmt_binlog_format. 

THD was refactored and some modifiers and accessors were
implemented for the new variable.

However, due to a bad merge, the
THD::current_stmt_binlog_row_based variable is back as a public
member of THD. This in itself is already potentially
harmful. What's even worse is that while merging some more
patches and resolving conflicts, the variable started being used
again, which is obviously wrong.

To fix this we:
  1. remove the extraneous variable from sql_class.h
  2. revert a bad merge for BUG#49132
  3. merge BUG#49132 properly again (actually, making use of the
     cset used to merge the original patch to mysql-pe).
2010-02-09 17:22:31 +00:00
Guilhem Bichot
7e75239694 merge with latest next-mr-bugfixing 2010-02-09 15:06:04 +01:00
Luis Soares
b581081697 Automerge from mysql-next-mr. 2010-02-09 12:30:05 +00:00
Luis Soares
349513d1e8 auto merge from mysql-5.1-rep+3. 2010-02-09 12:10:47 +00:00
Alexander Nozdrin
043f39e060 Auto-merge from mysql-next-mr. 2010-02-09 15:01:20 +03:00