Commit eeee5fb1 authored by unknown's avatar unknown
Browse files

Merge with 4.1


Makefile.am:
  Auto merged
myisam/mi_create.c:
  Auto merged
myisam/mi_open.c:
  Auto merged
mysql-test/r/ctype_utf8.result:
  Auto merged
mysys/thr_alarm.c:
  Auto merged
VC++Files/sql/mysqld.dsp:
  Keep old
client/mysqldump.c:
  Manual merge
client/mysqltest.c:
  Automatic merge
configure.in:
  Manual merge
mysql-test/r/ctype_ucs.result:
  Auto merge
mysql-test/r/func_str.result:
  Auto merge
mysql-test/r/group_by.result:
  Auto merge
mysql-test/r/insert_select.result:
  Auto merge
mysql-test/r/insert_update.result:
  Auto merge
mysql-test/r/lowercase_table2.result:
  Auto merge
mysql-test/r/select.result:
  Manual merge
mysql-test/r/variables.result:
  Auto merge
mysql-test/t/ctype_ucs.test:
  Auto merge
mysql-test/t/func_str.test:
  Auto merge
mysql-test/t/group_by.test:
  Auto merge
mysql-test/t/insert_select.test:
  Auto merge
mysql-test/t/insert_update.test:
  Auto merge
mysql-test/t/ndb_alter_table.test:
  Auto merge
mysql-test/t/select.test:
  Auto merge
mysql-test/t/variables.test:
  Auto merge
mysys/my_access.c:
  Auto merge
scripts/make_win_src_distribution.sh:
  Auto merge
sql/field.cc:
  Manual merge
sql/ha_ndbcluster.cc:
  Auto merge
sql/handler.cc:
  Auto merge
sql/item.cc:
  Auto merge
sql/item.h:
  Manual merge
sql/item_cmpfunc.h:
  Auto merge
sql/item_strfunc.cc:
  Auto merge
sql/item_strfunc.h:
  Auto merge
sql/mysql_priv.h:
  manual merge
sql/mysqld.cc:
  manual merge
sql/opt_range.cc:
  manual merge
sql/set_var.cc:
  Auto merge
sql/sql_base.cc:
  manual merge
  Restore processing of ON DUPLICATE KEY UPDATE
sql/sql_insert.cc:
  manual merge
  Restore processing of ON DUPLICATE KEY UPDATE
  Simplify mysql_prepare_insert by using local variable for select_lex and save old values just before they are changed
sql/sql_parse.cc:
  Restore processing of ON DUPLICATE KEY UPDATE
sql/sql_prepare.cc:
  New ON DUPLICATE KEY UPDATE handling
sql/sql_select.cc:
  manual merge
sql/sql_table.cc:
  auto merge
sql/sql_yacc.yy:
  auto merge
strings/ctype-ucs2.c:
  auto merge
strings/ctype-utf8.c:
  auto merge
parents 6d9bc9c8 c7ab92c2
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -23,7 +23,7 @@ EXTRA_DIST = INSTALL-SOURCE README COPYING EXCEPTIONS-CLIENT
SUBDIRS =		. include @docs_dirs@ @zlib_dir@ @yassl_dir@ \
			@readline_topdir@ sql-common \
			@thread_dirs@ pstack \
			@sql_union_dirs@ scripts man tests \
			@sql_union_dirs@ scripts @man_dirs@ tests \
			netware @libmysqld_dirs@ \
			@bench_dirs@ support-files @tools_dirs@

+24 −13
Original line number Diff line number Diff line
@@ -539,6 +539,12 @@ static void write_footer(FILE *sql_file)
  }
} /* write_footer */

static void free_table_ent(char *key)

{
  my_free((gptr) key, MYF(0));
}


byte* get_table_key(const char *entry, uint *length,
				my_bool not_used __attribute__((unused)))
@@ -551,7 +557,8 @@ byte* get_table_key(const char *entry, uint *length,
void init_table_rule_hash(HASH* h)
{
  if (hash_init(h, charset_info, 16, 0, 0,
	       (hash_get_key) get_table_key, 0, 0))
                (hash_get_key) get_table_key,
                (hash_free_key) free_table_ent, 0))
    exit(EX_EOM);
}

@@ -806,7 +813,8 @@ static void DB_error(MYSQL *mysql, const char *when)
  SYNOPSIS
    mysql_query_with_error_report()
    mysql_con       connection to use
    res             if non zero, result will be put there with mysql_store_result
    res             if non zero, result will be put there with
		    mysql_store_result()
    query           query to send to server

  RETURN VALUES
@@ -958,13 +966,14 @@ static char *quote_name(const char *name, char *buff, my_bool force)
  return buff;
} /* quote_name */


/*
  Quote a table name so it can be used in "SHOW TABLES LIKE <tabname>"

  SYNOPSIS
    quote_for_like
    name     - name of the table
    buff     - quoted name of the table
    quote_for_like()
    name     name of the table
    buff     quoted name of the table

  DESCRIPTION
    Quote \, _, ' and % characters
@@ -980,7 +989,6 @@ static char *quote_name(const char *name, char *buff, my_bool force)
    Example: "t\1" => "t\\\\1"

*/

static char *quote_for_like(const char *name, char *buff)
{
  char *to= buff;
@@ -2446,7 +2454,6 @@ static int dump_selected_tables(char *db, char **table_names, int tables)
  DYNAMIC_STRING lock_tables_query;
  HASH dump_tables;
  char *table_name;

  DBUG_ENTER("dump_selected_tables");

  if (init_dumping(db))
@@ -2454,7 +2461,8 @@ static int dump_selected_tables(char *db, char **table_names, int tables)

  /* Init hash table for storing the actual name of tables to dump */
  if (hash_init(&dump_tables, charset_info, 16, 0, 0,
                (hash_get_key) get_table_key, 0, 0))
                 (hash_get_key) get_table_key, (hash_free_key) free_table_ent,
                0))
    exit(EX_EOM);

  init_dynamic_string(&lock_tables_query, "LOCK TABLES ", 256, 1024);
@@ -2926,6 +2934,7 @@ int main(int argc, char **argv)
{
  compatible_mode_normal_str[0]= 0;
  default_charset= (char *)mysql_universal_client_charset;
  bzero((char*) &ignore_table, sizeof(ignore_table));

  MY_INIT("mysqldump");
  if (get_options(&argc, &argv))
@@ -2984,6 +2993,8 @@ int main(int argc, char **argv)
  if (md_result_file != stdout)
    my_fclose(md_result_file, MYF(0));
  my_free(opt_password, MYF(MY_ALLOW_ZERO_PTR));
  if (hash_inited(&ignore_table))
    hash_free(&ignore_table);
  if (extended_insert)
    dynstr_free(&extended_row);
  if (insert_pat_inited)
+18 −17
Original line number Diff line number Diff line
@@ -994,18 +994,20 @@ static void do_exec(struct st_query* q)
  error= pclose(res_file);
  if (error != 0)
  {
    uint status= WEXITSTATUS(error);
    uint status= WEXITSTATUS(error), i;
    my_bool ok= 0;

    if (q->abort_on_error)
      die("At line %u: command \"%s\" failed", start_lineno, cmd);
    else
    {
      bool ok= 0;
      uint i;

    DBUG_PRINT("info",
               ("error: %d, status: %d", error, status));
    for (i=0 ; (uint) i < q->expected_errors ; i++)
    {
        DBUG_PRINT("info", ("expected error: %d", q->expected_errno[i].code.errnum));
      DBUG_PRINT("info",
                 ("error: %d, status: %d", error, status));
      DBUG_PRINT("info", ("expected error: %d",
                          q->expected_errno[i].code.errnum));
      if ((q->expected_errno[i].type == ERR_ERRNO) &&
          (q->expected_errno[i].code.errnum == status))
        ok= 1;
@@ -1016,7 +1018,6 @@ static void do_exec(struct st_query* q)
      die("At line: %u: command \"%s\" failed with wrong error: %d",
          start_lineno, cmd, status);
  }
  }
  else if (q->expected_errno[0].type == ERR_ERRNO &&
           q->expected_errno[0].code.errnum != 0)
  {
+3 −0
Original line number Diff line number Diff line
@@ -770,10 +770,13 @@ int mi_create(const char *name,uint keys,MI_KEYDEF *keydefs,

uint mi_get_pointer_length(ulonglong file_length, uint def)
{
  DBUG_ASSERT(def >= 2 && def <= 7);
  if (file_length)				/* If not default */
  {
#ifdef NOT_YET_READY_FOR_8_BYTE_POINTERS
    if (file_length >= (longlong) 1 << 56)
      def=8;
#endif
    if (file_length >= (longlong) 1 << 48)
      def=7;
    if (file_length >= (longlong) 1 << 40)
+11 −0
Original line number Diff line number Diff line
@@ -638,6 +638,17 @@ Warnings:
Warning	1264	Out of range value adjusted for column 'Field1' at row 1
DROP TABLE t1;
SET NAMES latin1;
CREATE TABLE t1 (
a varchar(255) NOT NULL default '',
KEY a (a)
) ENGINE=MyISAM DEFAULT CHARSET=ucs2 COLLATE ucs2_general_ci;
insert into t1 values (0x803d);
insert into t1 values (0x005b);
select hex(a) from t1;
hex(a)
005B
803D
drop table t1;
CREATE TABLE t1 (a varchar(64) character set ucs2, b decimal(10,3));
INSERT INTO t1 VALUES ("1.1", 0), ("2.1", 0);
update t1 set b=a;
Loading