1
0
mirror of https://github.com/MariaDB/server.git synced 2025-05-10 02:01:19 +03:00

1540 Commits

Author SHA1 Message Date
unknown
725b49716b Fixed bug #29442.
The SELECT INTO OUTFILE FIELDS ENCLOSED BY digit or minus sign,
followed by the same LOAD DATA INFILE statement, used wrond encoding
of non-string fields contained the enclosed character in their text
representation.

Example:
  SELECT 15, 9 INTO OUTFILE 'text' FIELDS ENCLOSED BY '5';

Old encoded result in the text file:
  5155 595
         ^ was decoded as the 1st enclosing character of the 2nd field;
        ^ was skipped as garbage;
  ^    ^ was decoded as a pair of englosing characters of the 1st field;
      ^   was decoded as traling space of the first field;
    ^^ was decoded as a doubled enclosed character.

New encoded result in the text file:
  51\55 595
  ^   ^ pair of enclosing characters of the 1st field;
    ^^ escaped enclosed character.



sql/sql_class.h:
  Fixed bug #29442.
  The NUMERIC_CHARS macro constant has been defined to enumerate
  all possible characters of a numeric value text representation.
  The select_export::is_unsafe_field_sep boolean flag has been added
  to apply the encoding algorithm to non-string values when it is
  necessary.
sql/sql_class.cc:
  Fixed bug #29442.
  The select_export::send_data method has been modified to encode text
  representation of fields of all data types like string fields.
mysql-test/t/loaddata.test:
  Updated test case for bug #29442.
mysql-test/r/loaddata.result:
  Updated test case for bug #29442.
2007-07-06 03:43:23 +05:00
unknown
bd8b9746bf WL#3914: Additonal accessors required to compile InnoDB as a plugin storage engine
Add more accessors to MySQL internals in mysql/plugin.h, for storage
engine plugins.

Add some accessors specific to the InnoDB storage engine, to allow
InnoDB to be compiled as a plugin (without MYSQL_SERVER).  InnoDB
has additional requirements, due to its foreign key support, etc.


include/m_string.h:
  Add structure tag to LEX_STRING definition, so that it can be referred
  to by forward declarations.  Allow struct st_mysql_lex_string to be
  defined here, or in mysql/plugin.h.
include/my_global.h:
  Define INNODB_COMPATIBILITY_HOOKS unconditionally; it brackets
  some definitions needed for the InnoDB storage engine plugin
  which do not belong in our general plugin interface.
include/mysql/plugin.h:
  Additional accessors for MySQL internals:
   
  - Full definition of MYSQL_LEX_STRING (identical to LEX_STRING from
    m_string.h)
  - Full definition of MYSQL_XID (binary compatible with XID from
    handler.h)
  - mysql_tmpfile(), creates a temporary file in mysqld's tmpdir
  - thd_killed(), to check killed state of connection
  - thd_alloc() and similar allocation functions
  - thd_get_xid(), to get XID of connection's transaction
  - mysql_query_cache_invalidate4, to invalidate a table's query cache entries
sql/handler.h:
  Use MYSQL_XIDDATASIZE definition from mysql/plugin.h, to avoid redundant
  definitions
sql/log.cc:
  Add definitions for two InnoDB compatibility hooks:
  - mysql_bin_log_file(), to get log filename
  - mysql_bin_log_file_pos, to get position in file
    
  These are defined only if INNODB_COMPATIBILITY_HOOKS is defined;
  they are needed by the InnoDB plugin, but aren't part of the general
  plugin interface.  They are declared in ha_innodb.h for InnoDB's
  use.
sql/mysql_priv.h:
  Expose some server internals when INNODB_COMPATIBILITY_HOOKS is
  defined, so that InnoDB can be built as a plugin when MYSQL_SERVER
  is not defined.
    
  Move make_lex_string inside THD class.
sql/sql_cache.cc:
  Add definiton of mysql_query_cache_invalidate4(), a part of the
  plugin API (mysql/plugin.h).
sql/sql_class.cc:
  Add definitions for several accessor functions which form part
  of the plugin API (mysql/plugin.h):
  - mysql_tmpfile()
  - thd_alloc() and friends
  - thd_make_lex_string()
  - thd_get_xid()
   
  Add definitons for accessor functions which InnoDB requires,
  but which are not part of the plugin interface:
  - thd_charset()
  - thd_query()
  - thd_slave_thread()
  - thd_non_transactional_update()
  - thd_binlog_format()
   
  Move definition of make_lex_string() from sql_show.cc into THD class
sql/sql_class.h:
  Remove LEX_STRING_make(), and move make_lex_string() from sql_show.cc inside THD
  class.
sql/sql_parse.cc:
  Use thd->make_lex_string() instead of thd->LEX_STRING_make()
sql/sql_show.cc:
  Move make_lex_string() inside THD class
storage/innobase/handler/ha_innodb.cc:
  Call thd_make_lex_string() instead of make_lex_string().
2007-07-05 01:05:47 +02:00
unknown
95c5287664 Merge gleb.loc:/home/uchum/work/bk/5.1
into  gleb.loc:/home/uchum/work/bk/5.1-opt


sql/item.h:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_partition.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2007-07-05 03:37:41 +05:00
unknown
e0f93ca8c1 Merge gleb.loc:/home/uchum/work/bk/5.0
into  gleb.loc:/home/uchum/work/bk/5.0-opt


sql/sql_class.h:
  Auto merged
2007-07-05 03:34:56 +05:00
unknown
9e14ae9472 Merge maint1.mysql.com:/data/localhome/tsmith/bk/51
into  maint1.mysql.com:/data/localhome/tsmith/bk/maint/51


client/mysqldump.c:
  Auto merged
mysql-test/lib/mtr_cases.pl:
  Auto merged
mysql-test/lib/mtr_report.pl:
  Auto merged
mysql-test/r/mysqldump.result:
  Auto merged
mysql-test/suite/binlog/r/binlog_multi_engine.result:
  Auto merged
mysql-test/suite/binlog/t/binlog_multi_engine.test:
  Auto merged
mysql-test/suite/ndb/r/ndb_read_multi_range.result:
  Auto merged
mysql-test/suite/ndb/r/ndb_sp.result:
  Auto merged
mysql-test/suite/ndb/r/ndb_trigger.result:
  Auto merged
mysql-test/suite/ndb/r/ps_7ndb.result:
  Auto merged
mysql-test/suite/ndb/t/loaddata_autocom_ndb.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_alter_table.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_alter_table2.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_alter_table3.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_autodiscover.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_autodiscover2.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_autodiscover3.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_basic.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_binlog_ddl_multi.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_binlog_log_bin.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_binlog_multi.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_bitfield.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_blob.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_blob_partition.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_cache.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_cache2.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_cache_multi.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_cache_multi2.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_charset.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_condition_pushdown.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_config.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_config2.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_cursor.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_database.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_dd_alter.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_dd_backuprestore.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_dd_basic.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_dd_ddl.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_dd_disk2memory.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_dd_dump.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_dd_sql_features.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_gis.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_index.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_index_ordered.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_index_unique.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_insert.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_limit.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_loaddatalocal.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_lock.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_minmax.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_multi.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_partition_error.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_partition_key.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_partition_list.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_partition_range.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_read_multi_range.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_rename.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_replace.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_restore.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_restore_partition.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_restore_print.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_row_format.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_single_user.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_sp.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_subquery.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_temporary.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_transaction.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_trigger.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_truncate.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_types.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_update.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_view.test:
  Auto merged
mysql-test/suite/ndb/t/ndbapi.test:
  Auto merged
mysql-test/suite/ndb/t/ps_7ndb.test:
  Auto merged
mysql-test/suite/ndb/t/strict_autoinc_5ndb.test:
  Auto merged
mysql-test/suite/rpl/r/rpl_events.result:
  Auto merged
mysql-test/suite/rpl/r/rpl_replicate_do.result:
  Auto merged
mysql-test/suite/rpl/r/rpl_row_UUID.result:
  Auto merged
mysql-test/suite/rpl/r/rpl_sp.result:
  Auto merged
mysql-test/suite/rpl/r/rpl_switch_stm_row_mixed.result:
  Auto merged
mysql-test/suite/rpl/r/rpl_trigger.result:
  Auto merged
mysql-test/suite/rpl/r/rpl_view.result:
  Auto merged
mysql-test/suite/rpl_ndb/r/rpl_ndb_UUID.result:
  Auto merged
mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_advance.result:
  Auto merged
mysql-test/suite/rpl_ndb/r/rpl_ndb_stm_innodb.result:
  Auto merged
mysql-test/suite/rpl_ndb/t/rpl_ndb_commit_afterflush.test:
  Auto merged
mysql-test/suite/rpl_ndb/t/rpl_ndb_dd_advance.test:
  Auto merged
mysql-test/suite/rpl_ndb/t/rpl_ndb_innodb_trans.test:
  Auto merged
mysql-test/suite/rpl_ndb/t/rpl_ndb_stm_innodb-master.opt:
  Auto merged
mysql-test/suite/rpl_ndb/t/rpl_ndb_stm_innodb.test:
  Auto merged
mysql-test/t/sp.test:
  Auto merged
sql/Makefile.am:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sql_class.h:
  Auto merged
mysql-test/t/disabled.def:
  manual merge
  (Will need to follow up with moving a few test cases around post-merge)
2007-07-04 22:38:53 +02:00
unknown
589762cff7 Merge magare.gmz:/home/kgeorge/mysql/work/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/work/merge-5.1-opt


mysql-test/r/loaddata.result:
  Auto merged
mysql-test/t/loaddata.test:
  Auto merged
sql/filesort.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_load.cc:
  Auto merged
sql/uniques.cc:
  Auto merged
mysql-test/include/mix1.inc:
  manual merge 5.0-opt -> 5.1-opt
mysql-test/r/innodb_mysql.result:
  manual merge 5.0-opt -> 5.1-opt
sql/log.cc:
  manual merge 5.0-opt -> 5.1-opt
2007-07-04 11:46:45 +03:00
unknown
c700a77623 Merge gleb.loc:/home/uchum/work/bk/4.1-opt
into  gleb.loc:/home/uchum/work/bk/5.0-opt


sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_load.cc:
  Auto merged
mysql-test/r/loaddata.result:
  Merge with 4.1-opt.
mysql-test/t/loaddata.test:
  Merge with 4.1-opt.
2007-07-04 02:09:56 +05:00
unknown
166d3c9186 Fixed bug #29294.
The `SELECT 'r' INTO OUTFILE ... FIELDS ENCLOSED BY 'r' ' statement
encoded the 'r' string to a 4 byte string of value x'725c7272'
(sequence of 4 characters: r\rr).
The LOAD DATA statement decoded this string to a 1 byte string of
value x'0d' (ASCII Carriage Return character) instead of the original
'r' character.
The same error also happened with the FIELDS ENCLOSED BY clause
followed by special characters: 'n', 't', 'r', 'b', '0', 'Z' and 'N'.

NOTE 1: This is a result of the undocumented feature: the LOAD DATA INFILE
recognises 2-byte input sequences like \n, \t, \r and \Z in addition
to documented 2-byte sequences: \0 and \N. This feature should be
documented (here backspace character is a default ESCAPED BY character,
in the real-life example it may be any ESCAPED BY character).

NOTE 2, changed behaviour:
Now the `SELECT INTO OUTFILE' statement with the `FIELDS ENCLOSED BY'
clause followed by one of: 'n', 't', 'r', 'b', '0', 'Z' or 'N' characters
encodes this special character itself by doubling it ('r' --> 'rr'),
not by prepending it with an escape character.


sql/sql_class.h:
  Fixed bug #29294.
  The ESCAPE_CHARS macro constant is defined to enumerate
  symbolic names of espace-sequences like  '\n', '\t' etc.
  The select_export::is_ambiguous_field_sep field has been added
  to distinguish special values of the field_sep field from
  another values (see ESCAPE_CHARS).
sql/sql_class.cc:
  Fixed bug #29294.
  The select_export::send_data method has been modified to
  encode special values of the field_sep field by
  doubling of those values instead of prepending them with a
  value of the escape_char field.
  Example: The SELECT 'r' INTO OUTFILE FIELDS ENCLOSED BY 'r'
  now produces the 'rr' output string instead of x'5c72'
  (i.e. instead of sequence of 2 bytes: \ and r).
sql/sql_load.cc:
  Fixed bug #29294.
  Added commentary for the READ_INFO::unescape method.
mysql-test/t/loaddata.test:
  Updated test case for bug #29294.
mysql-test/r/loaddata.result:
  Updated test case for bug #29294.
2007-07-03 19:37:46 +05:00
unknown
b16b2683e5 Complementary fix for bug #29353: inserting a negative value to a csv table
leads to the table corruption

New Field::store() method implemented to explicitly set thd->count_cuted_fields
before value storing, instead of (incorrectly) setting it in the CSV storage engine.
Thread row counter now properly incremented during check and repair in the CSV engine.


include/mysql/plugin.h:
  Complementary fix for bug #29353: inserting a negative value to a csv table 
  leads to the table corruption
    - thd_inc_row_count() function prototype added, which allows a storage 
      engine to increment thread row counter.
mysql-test/r/csv.result:
  Complementary fix for bug #29353: inserting a negative value to a csv table 
  leads to the table corruption
    - result adjusted.
sql/field.cc:
  Complementary fix for bug #29353: inserting a negative value to a csv table 
  leads to the table corruption
    - Field::store(const char *to, uint length, CHARSET_INFO *cs,
                   enum_check_fields check_level)
      method introduced in order to explicitly set count_cuted_fields before 
      a ::store call, then reset it back after.
sql/field.h:
  Complementary fix for bug #29353: inserting a negative value to a csv table 
  leads to the table corruption
    - Field::store(const char *to, uint length, CHARSET_INFO *cs,
                   enum_check_fields check_level)
      method introduced in order to explicitly set count_cuted_fields before 
      a ::store call, then reset it back after.
sql/mysql_priv.h:
  Complementary fix for bug #29353: inserting a negative value to a csv table 
  leads to the table corruption
    - enum enum_check_fields moved from sql/sql_class.h to sql/mysql_priv.h
      as it's used now in the field.h
sql/sql_class.cc:
  Complementary fix for bug #29353: inserting a negative value to a csv table 
  leads to the table corruption
    - implementation of the new thd_inc_row_count() function which increments
      thread row counter.
sql/sql_class.h:
  Complementary fix for bug #29353: inserting a negative value to a csv table 
  leads to the table corruption
    - enum enum_check_fields moved from sql/sql_class.h to sql/mysql_priv.h
      as it's used now in the field.h
storage/csv/ha_tina.cc:
  Complementary fix for bug #29353: inserting a negative value to a csv table 
  leads to the table corruption
    - removed #define MYSQL_SERVER 1 - "a storage engine should not need 
      internals of the server"
    - removed thd->count_cuted_fields= CHECK_FIELD_WARN as we are not allowed to 
      access internals of THD.
    - used new Field::store() method to explicitly set thd->count_cuted_fields to
      CHECK_FIELD_WARN
    - thd_inc_row_count() calls added to ha_tina::repair() and ha_tina::check()
      to get proper row count values.
2007-07-03 17:17:58 +05:00
unknown
9c1671267a Merge mysqldev@production.mysql.com:my/mysql-5.0-release
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.0-community


BitKeeper/triggers/post-commit:
  Auto merged
client/CMakeLists.txt:
  Auto merged
extra/CMakeLists.txt:
  Auto merged
libmysql/CMakeLists.txt:
  Auto merged
libmysqld/Makefile.am:
  Auto merged
myisam/CMakeLists.txt:
  Auto merged
mysql-test/r/func_in.result:
  Auto merged
mysql-test/r/information_schema_db.result:
  Auto merged
mysql-test/t/func_in.test:
  Auto merged
mysql-test/t/information_schema.test:
  Auto merged
server-tools/instance-manager/CMakeLists.txt:
  Auto merged
sql/Makefile.am:
  Auto merged
sql/ha_archive.cc:
  Auto merged
sql/ha_myisam.cc:
  Auto merged
sql/ha_ndbcluster.cc:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/lock.cc:
  Auto merged
sql/log_event.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/slave.cc:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_cache.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_delete.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/sql_repl.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
sql/sql_view.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/structs.h:
  Auto merged
sql/table.h:
  Auto merged
support-files/mysql.spec.sh:
  Auto merged
win/Makefile.am:
  Auto merged
win/README:
  Auto merged
win/configure.js:
  Auto merged
CMakeLists.txt:
  manual merge.
configure.in:
  manual merge.
mysql-test/r/information_schema.result:
  manual merge.
sql/CMakeLists.txt:
  manual merge.
sql/set_var.cc:
  manual merge.
sql/sql_parse.cc:
  manual merge.
sql/sql_select.cc:
  manual merge.
2007-07-02 10:46:46 -04:00
unknown
c182dfa240 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  bodhi.(none):/opt/local/work/mysql-5.0-runtime


sql/sql_class.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
2007-07-02 02:01:05 +04:00
unknown
0852b3693f Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  bodhi.(none):/opt/local/work/mysql-5.1-runtime


mysql-test/r/create.result:
  Auto merged
mysql-test/r/events_bugs.result:
  Auto merged
sql/event_data_objects.cc:
  Auto merged
sql/sp.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/table.cc:
  Auto merged
2007-07-02 01:35:52 +04:00
unknown
1685f7480f Merge weblab.(none):/home/marcsql/TREE/mysql-5.1-base
into  weblab.(none):/home/marcsql/TREE/mysql-5.1-rt-merge


sql/sql_class.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_view.cc:
  Auto merged
2007-06-27 09:15:12 -06:00
unknown
00b3d3c245 Merge mhansson@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  dl145s.mysql.com:/dev/shm/mhansson/my50-bug28677


sql/sql_class.h:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
2007-06-27 14:02:32 +02:00
unknown
0f719e7407 Merge weblab.(none):/home/marcsql/TREE/mysql-5.1-base
into  weblab.(none):/home/marcsql/TREE/mysql-5.1-rt-merge


sql/Makefile.am:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_view.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2007-06-25 11:02:17 -06:00
unknown
25f0844386 Merge mhansson@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  dl145s.mysql.com:/dev/shm/mhansson/my51-bug28677


sql/sql_class.h:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
2007-06-25 12:50:12 +02:00
unknown
362852ba80 Merge gleb.loc:/home/uchum/work/bk/5.1
into  gleb.loc:/home/uchum/work/bk/5.1-opt


sql/item.h:
  Auto merged
sql/log_event.cc:
  Auto merged
sql/sp.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_delete.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_trigger.cc:
  Auto merged
sql/sql_view.cc:
  Auto merged
mysql-test/r/rpl_change_master.result:
  Merge with 5.1.
mysql-test/t/rpl_change_master.test:
  Merge with 5.1.
sql/sql_acl.cc:
  Merge with 5.1.
2007-06-25 03:40:30 +05:00
unknown
ab5e152132 Merge adventure.(none):/home/thek/Development/cpp/bug28846/my50-bug28846
into  adventure.(none):/home/thek/Development/cpp/mysql-5.0-runtime


sql/sql_class.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/sql_view.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2007-06-22 15:40:35 +02:00
unknown
40315b491f Merge adventure.(none):/home/thek/Development/cpp/bug28846/my51-bug28846
into  adventure.(none):/home/thek/Development/cpp/mysql-5.1-runtime


mysql-test/t/sp-error.test:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/sql_view.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2007-06-22 15:39:34 +02:00
unknown
a348b36973 Merge adventure.(none):/home/thek/Development/cpp/bug28846/my50-bug28846
into  adventure.(none):/home/thek/Development/cpp/bug28846/my51-bug28846


mysql-test/r/ps_1general.result:
  Auto merged
mysql-test/r/sp-dynamic.result:
  Auto merged
mysql-test/r/sp-error.result:
  Auto merged
mysql-test/t/ps_1general.test:
  Auto merged
mysql-test/t/sp-error.test:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/sql_view.cc:
  Auto merged
sql/sql_yacc.yy:
  Manual merge 5.0->5.1
2007-06-22 15:23:51 +02:00
unknown
099be80130 Bug#28846 Use of undocumented Prepared Statements crashes server
ALTER VIEW is currently not supported as a prepared statement
and should be disabled as such as they otherwise could cause server crashes.

ALTER VIEW is currently not supported when called from stored
procedures or functions for related reasons and should also be disabled.

This patch disables these DDL statements and adjusts the appropriate test
cases accordingly.

Additional tests has been added to reflect on the fact that we do support
CREATE/ALTER/DROP TABLE for Prepared Statements (PS), Stored Procedures (SP)
and PS within SP.


mysql-test/r/ps_1general.result:
  - Updated test to reflect on the new policy to disallow ALTER VIEW within SP.
mysql-test/r/sp-dynamic.result:
  - Added PS ALTER TABLE test from within SP-context to demonstrate that CREATE/ALTER/DROP
  TABLE statements is working.
  - Added PS CREATE/ALTER/DROP VIEW tests from within SP-context to show that
  ALTER VIEW is not supported, CREATE VIEW/DROP VIEW are supported.
mysql-test/r/sp-error.result:
  - Updated test to reflect on the new policy to disallow VIEW DDL within SP.
mysql-test/t/ps_1general.test:
  - Updated test to reflect on the new policy to disallow VIEW DDL within SP.
mysql-test/t/sp-dynamic.test:
  - Add PS ALTER TABLE test from within SP to demonstrate that CREATE/ALTER/DROP
  TABLE statements are supported.
mysql-test/t/sp-error.test:
  - Updated test to reflect on the new policy to disallow ALTER VIEW
  within SP-context.
  - Changed error code 1314 to the more abstract ER_SP_BADSTATEMENT.
sql/sql_class.h:
  - Added comment for clarity
sql/sql_parse.cc:
  - Added comment for clarity
sql/sql_prepare.cc:
  - Disallow ALTER VIEW as prepared statements until they are
    properly supported. Note that SQLCOM_CREATE_VIEW also handles ALTER VIEW
    statements.
sql/sql_view.cc:
  - converted to doxygen comments
  - Added comment for clarity
sql/sql_yacc.yy:
  - Disallow ALTER VIEW statements within a SP.
  If the parser is operating within the SP context, this is shown
  on the sp->sphead pointer. If this flag is set for view DDL operations
  we stop parsing with the error 'ER_SP_BAD_STATEMENT'.
2007-06-22 11:55:48 +02:00
unknown
63d7c4a8c8 Merge mysql.com:/nfsdisk1/lars/bk/mysql-5.1
into  mysql.com:/nfsdisk1/lars/bk/mysql-5.1-new-rpl


mysql-test/t/disabled.def:
  Auto merged
mysql-test/t/ndb_index_ordered.test:
  Auto merged
mysys/charset.c:
  Auto merged
sql/field.cc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sp_head.h:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_view.cc:
  Auto merged
2007-06-21 17:13:02 +02:00
unknown
fe593bf1ab Bug #26418: Slave out of sync after
CREATE/DROP TEMPORARY TABLE + ROLLBACK on master

The transaction ability of the storage engines of
the tables on the replication master and the replication
slave must generally be the same.
When the storage engine type of the slave is 
non-transactional then transactions on the master that 
mix update of transactional and non-transactional tables
should be avoided because they will cause inconsistency of
the data between the master's transactional table and the
slave's non-transactional table.

The effect described by this bug is actually expected.
A detailed test case is added (to be merged later to
the updated rpl_ddl.test), as there was no coverage 
by the existing tests. 
Some code cleanup is also added by this change.


mysql-test/r/rpl_innodb.result:
  Bug #26418: test case
mysql-test/t/rpl_innodb.test:
  Bug #26418: test case
sql/events.cc:
  Bug #26418: replace repeating code with a function call
sql/sp.cc:
  Bug #26418: replace repeating code with a function call
sql/sql_acl.cc:
  Bug #26418: replace repeating code with a function call
sql/sql_class.cc:
  Bug #26418: remove dead code
sql/sql_class.h:
  Bug #26418: remove dead code
sql/sql_delete.cc:
  Bug #26418: replace repeating code with a function call
sql/sql_parse.cc:
  Bug #26418: replace repeating code with a function call
sql/sql_rename.cc:
  Bug #26418: replace repeating code with a function call
sql/sql_tablespace.cc:
  Bug #26418: replace repeating code with a function call
sql/sql_trigger.cc:
  Bug #26418: replace repeating code with a function call
sql/sql_udf.cc:
  Bug #26418: replace repeating code with a function call
sql/sql_view.cc:
  Bug #26418: replace repeating code with a function call
2007-06-19 14:27:53 +03:00
unknown
0578f74575 Merge linux-st28.site:/home/martin/mysql/src/bug28677/my50-bug28677
into  linux-st28.site:/home/martin/mysql/src/bug28677/my51-bug28677


sql/sql_class.h:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_insert.cc:
  C
  c
2007-06-18 17:22:21 +03:00
unknown
3d31e3d641 Bug#28677: SELECT on missing column gives extra error
The method select_insert::send_error does two things, it rolls back a statement
being executed and outputs an error message. But when a 
nonexistent column is referenced, an error message has been published already and
there is no need to publish another.
Fixed by moving all functionality beyond publishing an error message into 
select_insert::abort() and calling only that function.


mysql-test/r/errors.result:
  Bug#28677: test result
mysql-test/t/errors.test:
  Bug#28677: test case
sql/sql_class.h:
  Bug#28677: overriding abort()
sql/sql_insert.cc:
  Bug#28677: 
  - moved everything beyond producing an error message out of select_insert::send_error 
  and into new override select_insert::abort() 
  - made corresponding move of code from select_create::send_error to select_create::abort
sql/sql_select.cc:
  Bug#28677: No need to pusblish an error here
2007-06-18 16:35:01 +03:00
unknown
f9c8d1dd7f Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-5.1-new-rpl
into  mysql.com:/nfsdisk1/lars/MERGE/mysql-5.1-merge


mysql-test/t/innodb.test:
  Auto merged
mysql-test/t/ndb_basic.test:
  Auto merged
mysql-test/t/ndb_charset.test:
  Auto merged
mysql-test/t/ndb_index_unique.test:
  Auto merged
mysql-test/t/ndb_insert.test:
  Auto merged
mysql-test/t/ndb_replace.test:
  Auto merged
mysql-test/t/ndb_update.test:
  Auto merged
mysql-test/t/rpl_000015.test:
  Auto merged
mysql-test/t/rpl_rotate_logs.test:
  Auto merged
mysql-test/t/rpl_row_inexist_tbl.test:
  Auto merged
sql/Makefile.am:
  Auto merged
BitKeeper/deleted/.del-ndb_binlog_basic2.test:
  Auto merged
sql/field.cc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
storage/myisam/ha_myisam.cc:
  Auto merged
sql/item_create.cc:
  Manual merge
2007-06-18 09:42:22 +02:00
unknown
a43723673f Merge weblab.(none):/home/marcsql/TREE/mysql-5.1-base
into  weblab.(none):/home/marcsql/TREE/mysql-5.1-rt-merge


mysql-test/r/trigger.result:
  Auto merged
mysql-test/t/trigger.test:
  Auto merged
sql/field.cc:
  Auto merged
sql/field.h:
  Auto merged
sql/handler.cc:
  Auto merged
sql/item.h:
  Auto merged
sql/log.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_partition.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2007-06-15 11:36:31 -06:00
unknown
7eebcf2f99 BUG#23051 (READ COMMITTED breaks mixed and statement-based replication):
Post-merge fixes.


BitKeeper/deleted/.del-ndb_binlog_basic2.test:
  Delete: mysql-test/t/ndb_binlog_basic2.test
BitKeeper/deleted/.del-ndb_binlog_basic2.result:
  Delete: mysql-test/r/ndb_binlog_basic2.result
mysql-test/r/binlog_innodb.result:
  Result change
mysql-test/r/binlog_multi_engine.result:
  Result change
mysql-test/t/binlog_multi_engine.test:
  Changed error code
mysql-test/t/partition_hash.test:
  Changed error code
sql/sql_class.h:
  Fixes to select_create constructor argument list.
2007-06-13 12:28:35 +02:00
unknown
95d678f841 Merge kindahl-laptop.dnsalias.net:/home/bkroot/mysql-5.1-rpl
into  kindahl-laptop.dnsalias.net:/home/bk/b23051-mysql-5.1-rpl


sql/ha_ndbcluster.cc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/handler.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
storage/archive/ha_archive.h:
  Auto merged
storage/blackhole/ha_blackhole.h:
  Auto merged
storage/csv/ha_tina.h:
  Auto merged
storage/example/ha_example.h:
  Auto merged
storage/federated/ha_federated.h:
  Auto merged
storage/heap/ha_heap.h:
  Auto merged
storage/innobase/handler/ha_innodb.cc:
  Auto merged
storage/innobase/handler/ha_innodb.h:
  Auto merged
storage/myisam/ha_myisam.cc:
  Auto merged
storage/myisammrg/ha_myisammrg.h:
  Auto merged
sql/share/errmsg.txt:
  SCCS merged
2007-06-12 22:14:54 +02:00
unknown
492ebf924b Merge kindahl-laptop.dnsalias.net:/home/bkroot/mysql-5.1-rpl
into  kindahl-laptop.dnsalias.net:/home/bk/b23051-mysql-5.1-rpl


BitKeeper/deleted/.del-binlog_row_blackhole.result:
  Auto merged
sql/ha_ndbcluster.cc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/share/errmsg.txt:
  Auto merged
storage/blackhole/ha_blackhole.h:
  Auto merged
storage/innobase/handler/ha_innodb.cc:
  Auto merged
storage/innobase/handler/ha_innodb.h:
  Auto merged
storage/myisam/ha_myisam.cc:
  Auto merged
mysql-test/t/partition_hash.test:
  Manual merge
sql/handler.h:
  Manual merge
sql/set_var.cc:
  Manual merge
sql/sql_class.h:
  Manual merge
sql/sql_insert.cc:
  Manual merge
sql/sql_parse.cc:
  Manual merge
2007-06-12 22:02:46 +02:00
unknown
e53dfc6df4 Merge bk-internal:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/work/merge-5.1-opt


mysql-test/r/insert_update.result:
  Auto merged
mysql-test/r/trigger.result:
  Auto merged
mysql-test/t/insert_update.test:
  Auto merged
mysql-test/t/trigger.test:
  Auto merged
sql/item_strfunc.cc:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/item_func.cc:
  merge of 5.0-opt -> 5.1-opt
sql/sql_insert.cc:
  merge of 5.0-opt -> 5.1-opt
sql/structs.h:
  merge of 5.0-opt -> 5.1-opt
tests/mysql_client_test.c:
  merge of 5.0-opt -> 5.1-opt
2007-06-12 16:34:54 +03:00
unknown
9ab7ce8dcb Merge weblab.(none):/home/marcsql/TREE/mysql-5.1-base
into  weblab.(none):/home/marcsql/TREE/mysql-5.1-rt-merge


sql/field.cc:
  Auto merged
sql/field.h:
  Auto merged
sql/item.h:
  Auto merged
sql/item_sum.cc:
  Auto merged
sql/item_timefunc.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2007-06-11 15:57:59 -06:00
unknown
8becfb5fdb item_cmpfunc.cc, field.cc, sql_insert.cc, sql_class.h, sql_yacc.yy:
Post merge fix.


sql/sql_yacc.yy:
  Post merge fix.
sql/sql_insert.cc:
  Post merge fix.
sql/sql_class.h:
  Post merge fix.
sql/item_cmpfunc.cc:
  Post merge fix.
sql/field.cc:
  Post merge fix.
2007-06-11 13:38:37 +04:00
unknown
97cf2694a1 Follow up after work on Bug 4968
Coding style: classes start with a capital letter.
Rename some classes related to parsing:
create_field -> Create_field
foreign_key -> Foreign_key
key_part_spec -> Key_part_spec


sql/field.cc:
  create_field -> Create_field
sql/field.h:
  create_field -> Create_field
sql/item.h:
  create_field -> Create_field
sql/item_sum.cc:
  create_field -> Create_field
sql/mysql_priv.h:
  create_field -> Create_field
sql/sp_head.cc:
  create_field -> Create_field
sql/sp_head.h:
  create_field -> Create_field
sql/sp_pcontext.cc:
  create_field -> Create_field
sql/sp_pcontext.h:
  create_field -> Create_field
sql/sp_rcontext.cc:
  create_field -> Create_field
sql/sql_class.cc:
  create_field -> Create_field
  key_part_spec -> Key_part_spec
  foreign_key -> Foreign_key
sql/sql_class.h:
  create_field -> Create_field
  key_part_spec -> Key_part_spec
  foreign_key -> Foreign_key
sql/sql_insert.cc:
  create_field -> Create_field
sql/sql_lex.cc:
  Coding style: classes start with a capital, create_field -> Create_field
sql/sql_lex.h:
  create_field -> Create_field
  key_part_spec -> Key_part_spec
sql/sql_parse.cc:
  create_field -> Create_field
  key_part_spec -> Key_part_spec
sql/sql_select.cc:
  create_field -> Create_field
sql/sql_table.cc:
  create_field -> Create_field
sql/sql_yacc.yy:
  create_field -> Create_field
  key_part_spec -> Key_part_spec
  foreign_key -> Foreign_key
sql/unireg.cc:
  create_field -> Create_field
2007-06-10 14:43:57 +04:00
unknown
71aa571d09 Bug#28149 overflow in some "SHOW STATUS"-variables
changed bytes_received, bytes_sent status variables to longlong


sql/mysqld.cc:
  changed bytes_received, bytes_sent status variables to longlong
sql/sql_class.h:
  changed bytes_received, bytes_sent status variables to longlong
sql/sql_show.cc:
  changed bytes_received, bytes_sent status variables to longlong
sql/structs.h:
  changed bytes_received, bytes_sent status variables to longlong
2007-06-09 17:46:09 +05:00
unknown
a53951c6a1 Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-5.1-new-rpl
into  mysql.com:/nfsdisk1/lars/MERGE/mysql-5.1-merge


mysql-test/t/func_misc.test:
  Auto merged
sql/field.cc:
  Auto merged
sql/item_create.cc:
  Auto merged
sql/log_event.cc:
  Auto merged
sql/log_event.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sp_head.h:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_update.cc:
  Auto merged
sql/sql_view.cc:
  Auto merged
strings/ctype-ujis.c:
  Auto merged
2007-06-05 01:15:07 +02:00
unknown
f4caa3025a Merge olga.mysql.com:/home/igor/mysql-5.1
into  olga.mysql.com:/home/igor/mysql-5.1-opt-merge


mysql-test/r/alter_table.result:
  Auto merged
mysql-test/r/create.result:
  Auto merged
mysql-test/r/innodb_mysql.result:
  Auto merged
mysql-test/r/sp.result:
  Auto merged
mysql-test/r/user_var.result:
  Auto merged
mysql-test/t/alter_table.test:
  Auto merged
mysql-test/t/sp.test:
  Auto merged
mysql-test/t/strict.test:
  Auto merged
mysql-test/t/subselect3.test:
  Auto merged
sql/field.h:
  Auto merged
sql/handler.h:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/item_func.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
mysql-test/r/ps_2myisam.result:
  Manual merge.
mysql-test/r/ps_3innodb.result:
  Manual merge.
mysql-test/r/ps_4heap.result:
  Manual merge.
mysql-test/r/ps_5merge.result:
  Manual merge.
mysql-test/r/ps_7ndb.result:
  Manual merge.
sql/sql_table.cc:
  Manual merge.
sql/sql_view.cc:
  Manual merge.
2007-06-03 22:52:02 -07:00
unknown
5697c0c10c Merge bk-internal.mysql.com:/data0/bk/mysql-5.0
into  bk-internal.mysql.com:/data0/bk/mysql-5.0-opt


mysql-test/r/sp.result:
  Auto merged
mysql-test/t/sp.test:
  Auto merged
mysql-test/t/strict.test:
  Auto merged
mysql-test/t/subselect3.test:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
sql/sql_view.cc:
  Manual merge
2007-06-02 00:57:25 +02:00
unknown
63791f4cc4 Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  bodhi.(none):/opt/local/work/mysql-5.1-runtime


client/mysqlbinlog.cc:
  Auto merged
include/config-win.h:
  Auto merged
include/my_global.h:
  Auto merged
include/my_pthread.h:
  Auto merged
mysql-test/lib/mtr_report.pl:
  Auto merged
mysql-test/t/disabled.def:
  Auto merged
sql/event_data_objects.cc:
  Auto merged
sql/event_queue.cc:
  Auto merged
sql/field.h:
  Auto merged
sql/filesort.cc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/handler.h:
  Auto merged
sql/item_func.h:
  Auto merged
sql/item_xmlfunc.cc:
  Auto merged
sql/log_event.cc:
  Auto merged
sql/log_event.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sp.h:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sp_head.h:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_db.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_list.h:
  Auto merged
sql/sql_load.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_partition.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/sql_test.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
sql/sql_view.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
storage/heap/hp_hash.c:
  Auto merged
tests/mysql_client_test.c:
  Auto merged
sql/item_func.cc:
  Manual merge.
sql/sp.cc:
  Manual merge.
sql/sql_cache.cc:
  Manual merge.
sql/sql_table.cc:
  Manual merge.
strings/my_vsnprintf.c:
  Manual merge.
2007-06-01 12:12:06 +04:00
unknown
81ffede7fc Merge bk-internal.mysql.com:/data0/bk/mysql-5.1
into  bk-internal.mysql.com:/data0/bk/mysql-5.1-opt


client/mysqldump.c:
  Auto merged
sql/field.cc:
  Auto merged
sql/field.h:
  Auto merged
sql/field_conv.cc:
  Auto merged
sql/handler.h:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/item_func.h:
  Auto merged
sql/item_subselect.cc:
  Auto merged
sql/item_sum.cc:
  Auto merged
sql/item_timefunc.cc:
  Auto merged
sql/my_decimal.h:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_view.cc:
  Auto merged
sql/table.cc:
  Auto merged
sql/table.h:
  Auto merged
strings/decimal.c:
  Auto merged
sql/sql_update.cc:
  Manual merge
2007-06-01 06:33:37 +02:00
unknown
db0ce6ff6e Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.1-new-rpl
into  kindahl-laptop.dnsalias.net:/home/bk/b28618-mysql-5.1-rpl


sql/item_create.cc:
  Auto merged
sql/log_event.cc:
  Auto merged
sql/log_event.h:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sp_head.h:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/share/errmsg.txt:
  Auto merged
sql/sql_view.cc:
  Auto merged
sql/sql_lex.h:
  Manual merge.
2007-05-31 20:17:31 +02:00
unknown
9f670c86fa Merge gleb.loc:/home/uchum/work/bk/mysql-5.0-opt
into  gleb.loc:/home/uchum/work/bk/mysql-5.1-opt


sql/sql_class.h:
  Auto merged
mysql-test/r/view.result:
  Merge with 5.0-opt.
mysql-test/t/view.test:
  Merge with 5.0-opt.
sql/sql_update.cc:
  Merge with 5.0-opt.
2007-05-31 13:28:43 +05:00
unknown
f527c0c9dd Merge lthalmann@bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  mysql.com:/nfsdisk1/lars/bk/mysql-5.1-new-rpl


include/config-win.h:
  Auto merged
mysql-test/t/disabled.def:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
2007-05-31 10:23:37 +02:00
unknown
a5c232a0e0 Merge gleb.loc:/home/uchum/work/bk/mysql-5.0-opt
into  gleb.loc:/home/uchum/work/bk/mysql-5.0-opt-28716


sql/sql_class.h:
  Auto merged
mysql-test/r/view.result:
  SCCS merged
mysql-test/t/view.test:
  SCCS merged
2007-05-30 14:34:52 +05:00
unknown
94507ee756 Fixed bug #28716.
The result of the CHECK OPTION condition evaluation over an
updated record and records of merged tables was arbitrary and
dependant on the order of records in the merged tables during
the execution of SELECT statement.

The CHECK OPTION expression was evaluated over expired record
buffers (with arbitrary data in the fields).

Rowids of tables used in the CHECK OPTION expression were
added to temporary table rows. The multi_update::do_updates()
method was modified to restore necessary record buffers
before evaluation of the CHECK OPTION condition.


sql/sql_class.h:
  Fixed bug #29716.
  The multi_update::unupdatable_check_opt_tables variable
  has been added.
sql/sql_update.cc:
  Fixed bug #29716.
  Rowids of tables used in the CHECK OPTION expression were
  added to temporary table rows. The multi_update::do_updates()
  method was modified to restore necessary record buffers
  before evaluation of the CHECK OPTION condition.
mysql-test/t/view.test:
  Updated test case for bug #28716.
mysql-test/r/view.result:
  Updated test case for bug #28716.
2007-05-30 12:21:39 +05:00
unknown
5aec3d0f8d bug#22725
merge with 5.0


sql/sql_class.cc:
  THD::binlog_query receives killed status arg with default the same for Query_log_event
sql/sql_class.h:
  relocation public binlog_query down to the point where killed_state is declared
2007-05-29 22:17:09 +03:00
unknown
48a3194420 WL#3303 (RBR: Engine-controlled logging format):
Moving code to check storage engine capabilities to after tables
are locked.  Moving code to cache table flags so that table flags
are read from the storage engine at the beginning of the statement
in addition to when the storage engine is opened.

To handle CREATE-SELECT, the decision function is called after the
table is created and it is called with all tables that are in the select
part of the statement as well as the newly created table.


sql/handler.cc:
  Changing code to cache table flags on a per-statement basis. The table
  flags are now retrieved inside ha_external_lock().
sql/handler.h:
  Extending TABLEOP_HOOKS with postlock() member.
sql/mysql_priv.h:
  Adding prototype declaration of decide_logging_format() function.
sql/sql_base.cc:
  Factoring out code to check capabilities into decide_logging_format().
  Moving code to check engine capabilities to after the tables are locked.
  Correcting a bug causing row-based to not be set when the engines
  were not statement-logging capable.
sql/sql_class.h:
  Adding selected tables as select_create::select_tables member variable.
sql/sql_insert.cc:
  Introducing logic to handle post-locking hook.
  select_create::prepare now uses post-lock hook instead of pre-lock hook.
  Deciding on logging format especially for CREATE-SELECT by calling
  decide_logging_format() in the post-lock hook.
sql/sql_parse.cc:
  Adding selected tables as argument to select_create constructor.
2007-05-29 17:13:17 +02:00
unknown
4ecc903549 Merge dsl-hkibras1-ff5dc300-70.dhcp.inet.fi:/home/elkin/MySQL/TEAM/BARE/5.0
into  dsl-hkibras1-ff5dc300-70.dhcp.inet.fi:/tmp/merge_5.0


sql/log_event.cc:
  Auto merged
sql/log_event.h:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_insert.cc:
  merge with 5.0 bug#22725
sql/sql_update.cc:
  merge with 5.0 bug#22725
2007-05-28 23:34:04 +03:00
unknown
f27bf2b463 Bug#22725 Replication outages from ER_SERVER_SHUTDOWN (1053) set in replication events
The reason for the bug was that replaying of a query on slave could not be possible since its event
was recorded with the killed error. Due to the specific of handling INSERT, which per-row-while-loop is 
unbreakable to killing, the query on transactional table should have not appeared in binlog unless
there was  a call to a stored routine that got interrupted with killing (and then there must be an error
returned out of the loop).
   
The offered solution added the following rule for binlogging of INSERT that accounts the above
specifics:
For INSERT on transactional-table if the error was not set the only raised flag
is harmless and is ignored via masking out on time of creation of binlog event.
   
For both table types the combination of raised error and KILLED flag indicates that there
was potentially partial execution on master and consistency is under the question.
In that case the code continues to binlog an event with an appropriate killed error.
 
The fix relies on the specified behaviour of stored routine that must propagate the error 
to the top level query handling if the thd->killed flag was raised in the routine execution.
   
The patch adds an arg with the default killed-status-unset value to Query_log_event::Query_log_event.


sql/log_event.cc:
  killed_status as the value of thd->killed can be passed as an arg to the constructor.
  if the value is different from the default the arg is set to the current thd->killed value.
  A caller might need to masquerade thd->killed with THD::NOT_KILLED.
  So far only mysql_insert() uses such explicit way to tell the constructor about killing status.
sql/log_event.h:
  default arg to the constructor with meaning of killed status of the query. 
  if the arg is not explicitly provided the status of thd->killed will be snapshot 
  inside of the constuctor, which is potentially incorrect (see bug#27571)
sql/sql_class.h:
  extending killed_state with no-state member.
sql/sql_insert.cc:
  ignore the KILLED flag incl KILL_BAD_DATA when the INSERT query event 
  is created without an `error';
sql/sql_update.cc:
  Suggestion how to fix bug#27571 as comments.
mysql-test/r/binlog_killed.result:
  new result file
mysql-test/t/binlog_killed.test:
  regression tests also apply for bug27563, BUG#27565
2007-05-28 22:20:22 +03:00
unknown
b11f1d0c97 5.1 version of a fix and test cases for bugs:
Bug#4968 ""Stored procedure crash if cursor opened on altered table"
Bug#6895 "Prepared Statements: ALTER TABLE DROP COLUMN does nothing"
Bug#19182 "CREATE TABLE bar (m INT) SELECT n FROM foo; doesn't work from 
stored procedure."
Bug#19733 "Repeated alter, or repeated create/drop, fails"
Bug#22060 "ALTER TABLE x AUTO_INCREMENT=y in SP crashes server"
Bug#24879 "Prepared Statements: CREATE TABLE (UTF8 KEY) produces a 
growing key length" (this bug is not fixed in 5.0)

Re-execution of CREATE DATABASE, CREATE TABLE and ALTER TABLE 
statements in stored routines or as prepared statements caused
incorrect results (and crashes in versions prior to 5.0.25).

In 5.1 the problem occured only for CREATE DATABASE, CREATE TABLE
SELECT and CREATE TABLE with INDEX/DATA DIRECTOY options).
  
The problem of bugs 4968, 19733, 19282 and 6895 was that functions
mysql_prepare_table, mysql_create_table and mysql_alter_table are not
re-execution friendly: during their operation they modify contents
of LEX (members create_info, alter_info, key_list, create_list),
thus making the LEX unusable for the next execution.
In particular, these functions removed processed columns and keys from
create_list, key_list and drop_list. Search the code in sql_table.cc 
for drop_it.remove() and similar patterns to find evidence.
  
The fix is to supply to these functions a usable copy of each of the
above structures at every re-execution of an SQL statement. 
  
To simplify memory management, LEX::key_list and LEX::create_list
were added to LEX::alter_info, a fresh copy of which is created for
every execution.
  
The problem of crashing bug 22060 stemmed from the fact that the above 
metnioned functions were not only modifying HA_CREATE_INFO structure 
in LEX, but also were changing it to point to areas in volatile memory
of the execution memory root.
   
The patch solves this problem by creating and using an on-stack
copy of HA_CREATE_INFO in mysql_execute_command.

Additionally, this patch splits the part of mysql_alter_table
that analizes and rewrites information from the parser into
a separate function - mysql_prepare_alter_table, in analogy with
mysql_prepare_table, which is renamed to mysql_prepare_create_table.


mysql-test/r/ps.result:
  Update test results (Bug#19182, Bug#22060, Bug#4968, Bug#6895)
mysql-test/r/sp.result:
  Update results (Bug#19733)
mysql-test/t/ps.test:
  Add test cases for Bug#19182, Bug#22060, Bug#4968, Bug#6895
mysql-test/t/sp.test:
  Add a test case for Bug#19733
sql/field.h:
  Implement a deep copy constructor for create_field
sql/mysql_priv.h:
  LEX::key_list and LEX::create_list were moved to LEX::alter_info.
  Update declarations to use LEX::alter_info instead of these two
  members.
  Remove declarations of mysql_add_index, mysql_drop_index.
sql/sql_class.cc:
  Implement deep copy constructors.
sql/sql_class.h:
  Implement (almost) deep copy constructors for key_part_spec, 
  Alter_drop, Alter_column, Key, foreign_key.
  Replace pair<columns, keys> with an instance of Alter_info in
  select_create constructor. We create a new copy of Alter_info
  each time we re-execute SELECT .. CREATE prepared statement.
sql/sql_insert.cc:
  Adjust to a new signature of create_table_from_items.
sql/sql_lex.cc:
  Implement Alter_info::Alter_info that would make a "deep" copy
  of all definition lists (keys, columns).
  Move is_partition_management() from sql_partition.cc (feature-based
  file division is evil).
sql/sql_lex.h:
  Move key_list and create_list to class Alter_info. Implement
  Alter_info::Alter_info that can be used with PS and SP.
  Get rid of Alter_info::clear() which was an attempt to save on
  matches and always use Alter_info::reset().
  Implement an auxiliary Alter_info::init_for_create_from_alter()
  which is used in mysql_alter_table.
sql/sql_list.cc:
    Implement a copy constructor of class List that makes a deep copy
    of all list nodes.
sql/sql_list.h:
  Implement a way to make a deep copy of all list nodes.
sql/sql_parse.cc:
  Adjust to new signatures of mysql_create_table, mysql_alter_table,
  select_create. Functions mysql_create_index and mysql_drop_index has
  become identical after initialization of alter_info was moved to the 
  parser, and were merged. Flag enable_slow_log was not updated for 
  SQLCOM_DROP_INDEX, which was a bug.
  Just like CREATE INDEX, DROP INDEX is currently done via complete 
  table rebuild and is rightfully a slow administrative statement.
sql/sql_partition.cc:
  Move is_partition_management() to sql_lex.cc
  Adjust code to the new Alter_info.
sql/sql_table.cc:
  Adjust mysql_alter_table, mysql_recreate_table, mysql_create_table,
  mysql_prepare_table to new signatures.
  Rename mysql_prepare_table to mysql_prepare_create_table. Make
  sure it follows the convention and returns FALSE for success and
  TRUE for error.
  Move parts of mysql_alter_table to mysql_prepare_alter_table.
  Move the first invokation of mysql_prepare_table from mysql_alter_table
  to compare_tables, as it was needed only for the purpose
  of correct comparison.
  Since now Alter_info itself is created in the runtime mem root,
  adjust mysql_prepare_table to always allocate memory in the
  runtime memory root.
  Remove dead code.
sql/sql_yacc.yy:
  LEX::key_list and LEX::create_list moved to class Alter_info
2007-05-28 15:30:01 +04:00