diff --git a/client/mysqldump.c b/client/mysqldump.c
index 7b0e7aa9906f88d4f239ad9004d7d55e6f609e52..0f75f0b7315fa095ed83530bfb78d6405fc08af2 100644
--- a/client/mysqldump.c
+++ b/client/mysqldump.c
@@ -1,4 +1,4 @@
-/* Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
+/* Copyright 2000-2008 MySQL AB, 2008, 2009 Sun Microsystems, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff --git a/config/ac-macros/ha_ndbcluster.m4 b/config/ac-macros/ha_ndbcluster.m4
index 5ee136f2266847b236de9b17e1b0fbee563d60c2..3718b64f6887a969b307c1c52f6602a2226e98eb 100644
--- a/config/ac-macros/ha_ndbcluster.m4
+++ b/config/ac-macros/ha_ndbcluster.m4
@@ -330,41 +330,11 @@ AC_DEFUN([MYSQL_SETUP_NDBCLUSTER], [
   AC_SUBST([NDB_SIZEOF_LONG])
   AC_SUBST([NDB_SIZEOF_LONG_LONG])
 
-  AC_CONFIG_FILES(storage/ndb/include/Makefile dnl
-   storage/ndb/src/Makefile storage/ndb/src/common/Makefile dnl
-   storage/ndb/docs/Makefile dnl
-   storage/ndb/tools/Makefile dnl
-   storage/ndb/src/common/debugger/Makefile dnl
-   storage/ndb/src/common/debugger/signaldata/Makefile dnl
-   storage/ndb/src/common/portlib/Makefile dnl
-   storage/ndb/src/common/util/Makefile dnl
-   storage/ndb/src/common/logger/Makefile dnl
-   storage/ndb/src/common/transporter/Makefile dnl
-   storage/ndb/src/common/mgmcommon/Makefile dnl
-   storage/ndb/src/kernel/Makefile dnl
-   storage/ndb/src/kernel/error/Makefile dnl
-   storage/ndb/src/kernel/blocks/Makefile dnl
-   storage/ndb/src/kernel/blocks/dbdict/Makefile dnl
-   storage/ndb/src/kernel/blocks/dbdih/Makefile dnl
-   storage/ndb/src/kernel/blocks/dblqh/Makefile dnl
-   storage/ndb/src/kernel/blocks/dbtup/Makefile dnl
-   storage/ndb/src/kernel/blocks/backup/Makefile dnl
-   storage/ndb/src/kernel/vm/Makefile dnl
-   storage/ndb/src/mgmapi/Makefile dnl
-   storage/ndb/src/ndbapi/Makefile dnl
-   storage/ndb/src/mgmsrv/Makefile dnl
-   storage/ndb/src/mgmclient/Makefile dnl
-   storage/ndb/src/cw/Makefile dnl
-   storage/ndb/src/cw/cpcd/Makefile dnl
-   storage/ndb/test/Makefile dnl
-   storage/ndb/test/src/Makefile dnl
-   storage/ndb/test/ndbapi/Makefile dnl
-   storage/ndb/test/ndbapi/bank/Makefile dnl
-   storage/ndb/test/tools/Makefile dnl
-   storage/ndb/test/run-test/Makefile dnl
-   storage/ndb/include/ndb_version.h storage/ndb/include/ndb_global.h dnl
-   storage/ndb/include/ndb_types.h dnl
-  )
+  AC_CONFIG_FILES([
+   storage/ndb/include/ndb_version.h
+   storage/ndb/include/ndb_global.h
+   storage/ndb/include/ndb_types.h
+  ])
 ])
 
 AC_SUBST(TEST_NDBCLUSTER)                                                                                
diff --git a/config/ac-macros/plugins.m4 b/config/ac-macros/plugins.m4
index e1da6fd11f5d067d8480560f205c7c2ee3b5a71c..5d15afeda9938af558ea440be27dbea272268f66 100644
--- a/config/ac-macros/plugins.m4
+++ b/config/ac-macros/plugins.m4
@@ -477,10 +477,23 @@ dnl Although this is "pretty", it breaks libmysqld build
       # Even if we don't build a plugin, we bundle its source into the dist
       # file.  So its Makefile (and Makefiles for any subdirs) must be
       # generated for 'make dist' to work.
-      m4_syscmd(test -f "$6/configure")
+      m4_syscmd([test -f "]$6[/configure"])
       ifelse(m4_sysval, 0,
         [AC_CONFIG_SUBDIRS($6)],
-        [AC_CONFIG_FILES($6/Makefile)]
+        [
+          # autoconf doesn't provide an automatic way to configure DIST_SUBDIRS of
+          # a subdir; for our purposes, it's enough to just check for existing
+          # Makefile.am files and add them in here
+dnl
+dnl Warning, don't try to quote the m4_esyscmd() macro, it doesn't
+dnl work.  Quoting here is tricky.
+dnl
+dnl The $FIND or $SED variable can be set by the user when calling autoconf itself
+dnl to if they need to pass a specific path.  This is *NOT* used when calling
+dnl running configure!
+dnl
+          AC_CONFIG_FILES(m4_esyscmd([${FIND-find} "]$6[" -name Makefile.am -print | ${SED-sed} 's,\.am$,,']))
+        ]
       )
 
       ifelse(
diff --git a/mysql-test/r/innodb-autoinc.result b/mysql-test/r/innodb-autoinc.result
index 1e4b088c6cdead7b439e3d6bec4318978b473a8b..ade4db35ce6d482dead0f8eb361ea2189c054f53 100644
--- a/mysql-test/r/innodb-autoinc.result
+++ b/mysql-test/r/innodb-autoinc.result
@@ -579,3 +579,291 @@ c1
 18446744073709551610
 18446744073709551615
 DROP TABLE t1;
+SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1;
+SET @@INSERT_ID=1;
+SHOW VARIABLES LIKE "%auto_inc%";
+Variable_name	Value
+auto_increment_increment	1
+auto_increment_offset	1
+CREATE TABLE t1 (c1 DOUBLE NOT NULL AUTO_INCREMENT, c2 INT, PRIMARY KEY (c1)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES(NULL, 1);
+INSERT INTO t1 VALUES(NULL, 2);
+SELECT * FROM t1;
+c1	c2
+1	1
+2	2
+ALTER TABLE t1 CHANGE c1 c1 SERIAL;
+SELECT * FROM t1;
+c1	c2
+1	1
+2	2
+INSERT INTO t1 VALUES(NULL, 3);
+INSERT INTO t1 VALUES(NULL, 4);
+SELECT * FROM t1;
+c1	c2
+1	1
+2	2
+3	3
+4	4
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (c1 FLOAT NOT NULL AUTO_INCREMENT, c2 INT, PRIMARY KEY (c1)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES(NULL, 1);
+INSERT INTO t1 VALUES(NULL, 2);
+SELECT * FROM t1;
+c1	c2
+1	1
+2	2
+ALTER TABLE t1 CHANGE c1 c1 SERIAL;
+SELECT * FROM t1;
+c1	c2
+1	1
+2	2
+INSERT INTO t1 VALUES(NULL, 3);
+INSERT INTO t1 VALUES(NULL, 4);
+SELECT * FROM t1;
+c1	c2
+1	1
+2	2
+3	3
+4	4
+DROP TABLE t1;
+SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=5;
+DROP TABLE IF EXISTS t1;
+Warnings:
+Note	1051	Unknown table 't1'
+DROP TABLE IF EXISTS t2;
+Warnings:
+Note	1051	Unknown table 't2'
+CREATE TABLE t1 (
+a INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
+b INT(10) UNSIGNED NOT NULL,
+c ENUM('FALSE','TRUE') DEFAULT NULL,
+PRIMARY KEY (a)) ENGINE = InnoDB;
+CREATE TABLE t2 (
+m INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
+n INT(10) UNSIGNED NOT NULL,
+o enum('FALSE','TRUE') DEFAULT NULL,
+PRIMARY KEY (m)) ENGINE = InnoDB;
+INSERT INTO t2 (n,o) VALUES
+(1 , 'true'), (1 , 'false'), (2 , 'true'), (2 , 'false'), (3 , 'true'),
+(3 , 'false'), (4 , 'true'), (4 , 'false'), (5 , 'true'), (5 , 'false');
+SHOW CREATE TABLE t2;
+Table	Create Table
+t2	CREATE TABLE `t2` (
+  `m` int(11) unsigned NOT NULL AUTO_INCREMENT,
+  `n` int(10) unsigned NOT NULL,
+  `o` enum('FALSE','TRUE') DEFAULT NULL,
+  PRIMARY KEY (`m`)
+) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=latin1
+INSERT INTO t1 (b,c) SELECT n,o FROM t2 ;
+SHOW CREATE TABLE t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `a` int(11) unsigned NOT NULL AUTO_INCREMENT,
+  `b` int(10) unsigned NOT NULL,
+  `c` enum('FALSE','TRUE') DEFAULT NULL,
+  PRIMARY KEY (`a`)
+) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=latin1
+INSERT INTO t1 (b,c) SELECT n,o FROM t2 ;
+SELECT * FROM t1;
+a	b	c
+1	1	TRUE
+2	1	FALSE
+3	2	TRUE
+4	2	FALSE
+5	3	TRUE
+6	3	FALSE
+7	4	TRUE
+8	4	FALSE
+9	5	TRUE
+10	5	FALSE
+13	1	TRUE
+14	1	FALSE
+15	2	TRUE
+16	2	FALSE
+17	3	TRUE
+18	3	FALSE
+19	4	TRUE
+20	4	FALSE
+21	5	TRUE
+22	5	FALSE
+SHOW CREATE TABLE t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `a` int(11) unsigned NOT NULL AUTO_INCREMENT,
+  `b` int(10) unsigned NOT NULL,
+  `c` enum('FALSE','TRUE') DEFAULT NULL,
+  PRIMARY KEY (`a`)
+) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=latin1
+INSERT INTO t1 (b,c) SELECT n,o FROM t2 WHERE o = 'false';
+SELECT * FROM t1;
+a	b	c
+1	1	TRUE
+2	1	FALSE
+3	2	TRUE
+4	2	FALSE
+5	3	TRUE
+6	3	FALSE
+7	4	TRUE
+8	4	FALSE
+9	5	TRUE
+10	5	FALSE
+13	1	TRUE
+14	1	FALSE
+15	2	TRUE
+16	2	FALSE
+17	3	TRUE
+18	3	FALSE
+19	4	TRUE
+20	4	FALSE
+21	5	TRUE
+22	5	FALSE
+23	1	FALSE
+24	2	FALSE
+25	3	FALSE
+26	4	FALSE
+27	5	FALSE
+SHOW CREATE TABLE t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `a` int(11) unsigned NOT NULL AUTO_INCREMENT,
+  `b` int(10) unsigned NOT NULL,
+  `c` enum('FALSE','TRUE') DEFAULT NULL,
+  PRIMARY KEY (`a`)
+) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=latin1
+INSERT INTO t1 (b,c) SELECT n,o FROM t2 WHERE o = 'false';
+SELECT * FROM t1;
+a	b	c
+1	1	TRUE
+2	1	FALSE
+3	2	TRUE
+4	2	FALSE
+5	3	TRUE
+6	3	FALSE
+7	4	TRUE
+8	4	FALSE
+9	5	TRUE
+10	5	FALSE
+13	1	TRUE
+14	1	FALSE
+15	2	TRUE
+16	2	FALSE
+17	3	TRUE
+18	3	FALSE
+19	4	TRUE
+20	4	FALSE
+21	5	TRUE
+22	5	FALSE
+23	1	FALSE
+24	2	FALSE
+25	3	FALSE
+26	4	FALSE
+27	5	FALSE
+30	1	FALSE
+31	2	FALSE
+32	3	FALSE
+33	4	FALSE
+34	5	FALSE
+SHOW CREATE TABLE t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `a` int(11) unsigned NOT NULL AUTO_INCREMENT,
+  `b` int(10) unsigned NOT NULL,
+  `c` enum('FALSE','TRUE') DEFAULT NULL,
+  PRIMARY KEY (`a`)
+) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=latin1
+INSERT INTO t1 (b,c) SELECT n,o FROM t2 WHERE o = 'false';
+SHOW CREATE TABLE t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `a` int(11) unsigned NOT NULL AUTO_INCREMENT,
+  `b` int(10) unsigned NOT NULL,
+  `c` enum('FALSE','TRUE') DEFAULT NULL,
+  PRIMARY KEY (`a`)
+) ENGINE=InnoDB AUTO_INCREMENT=44 DEFAULT CHARSET=latin1
+INSERT INTO t1 (b,c) SELECT n,o FROM t2 WHERE o = 'false';
+SHOW CREATE TABLE t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `a` int(11) unsigned NOT NULL AUTO_INCREMENT,
+  `b` int(10) unsigned NOT NULL,
+  `c` enum('FALSE','TRUE') DEFAULT NULL,
+  PRIMARY KEY (`a`)
+) ENGINE=InnoDB AUTO_INCREMENT=51 DEFAULT CHARSET=latin1
+INSERT INTO t1 (b,c) SELECT n,o FROM t2 WHERE o = 'false';
+SELECT * FROM t1;
+a	b	c
+1	1	TRUE
+2	1	FALSE
+3	2	TRUE
+4	2	FALSE
+5	3	TRUE
+6	3	FALSE
+7	4	TRUE
+8	4	FALSE
+9	5	TRUE
+10	5	FALSE
+13	1	TRUE
+14	1	FALSE
+15	2	TRUE
+16	2	FALSE
+17	3	TRUE
+18	3	FALSE
+19	4	TRUE
+20	4	FALSE
+21	5	TRUE
+22	5	FALSE
+23	1	FALSE
+24	2	FALSE
+25	3	FALSE
+26	4	FALSE
+27	5	FALSE
+30	1	FALSE
+31	2	FALSE
+32	3	FALSE
+33	4	FALSE
+34	5	FALSE
+37	1	FALSE
+38	2	FALSE
+39	3	FALSE
+40	4	FALSE
+41	5	FALSE
+44	1	FALSE
+45	2	FALSE
+46	3	FALSE
+47	4	FALSE
+48	5	FALSE
+51	1	FALSE
+52	2	FALSE
+53	3	FALSE
+54	4	FALSE
+55	5	FALSE
+SHOW CREATE TABLE t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `a` int(11) unsigned NOT NULL AUTO_INCREMENT,
+  `b` int(10) unsigned NOT NULL,
+  `c` enum('FALSE','TRUE') DEFAULT NULL,
+  PRIMARY KEY (`a`)
+) ENGINE=InnoDB AUTO_INCREMENT=58 DEFAULT CHARSET=latin1
+DROP TABLE t1;
+DROP TABLE t2;
+DROP TABLE IF EXISTS t1;
+Warnings:
+Note	1051	Unknown table 't1'
+DROP TABLE IF EXISTS t2;
+Warnings:
+Note	1051	Unknown table 't2'
+CREATE TABLE t1(
+c1 INT(10) UNSIGNED NOT NULL AUTO_INCREMENT
+PRIMARY KEY) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL);
+CREATE TABLE t2(
+c1 TINYINT(3) UNSIGNED NOT NULL AUTO_INCREMENT
+PRIMARY KEY) ENGINE=InnoDB;
+INSERT INTO t2 SELECT c1 FROM t1;
+Got one of the listed errors
+INSERT INTO t2 SELECT NULL FROM t1;
+Got one of the listed errors
+DROP TABLE t1;
+DROP TABLE t2;
diff --git a/mysql-test/r/mysqldump.result b/mysql-test/r/mysqldump.result
index 45dd89f8078b001de84cd8b0225ed04154f425da..1d02adf4504676aa73525043efe858e8f119cab6 100644
--- a/mysql-test/r/mysqldump.result
+++ b/mysql-test/r/mysqldump.result
@@ -3815,6 +3815,73 @@ DROP TABLE t1,t2;
 
 
 -- Dump completed on DATE
+SET @@GLOBAL.CONCURRENT_INSERT = @OLD_CONCURRENT_INSERT;
+#
+# Bug #42635: mysqldump includes views that were excluded using 
+#   the --ignore-table option
+#
+create database db42635;
+use db42635;
+create table t1 (id int);
+create view db42635.v1 (c) as select * from db42635.t1;
+create view db42635.v2 (c) as select * from db42635.t1;
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+DROP TABLE IF EXISTS `t1`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `t1` (
+  `id` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+LOCK TABLES `t1` WRITE;
+/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
+/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
+UNLOCK TABLES;
+DROP TABLE IF EXISTS `v2`;
+/*!50001 DROP VIEW IF EXISTS `v2`*/;
+SET @saved_cs_client     = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE TABLE `v2` (
+  `c` int(11)
+) ENGINE=MyISAM */;
+SET character_set_client = @saved_cs_client;
+/*!50001 DROP TABLE `v2`*/;
+/*!50001 DROP VIEW IF EXISTS `v2`*/;
+/*!50001 SET @saved_cs_client          = @@character_set_client */;
+/*!50001 SET @saved_cs_results         = @@character_set_results */;
+/*!50001 SET @saved_col_connection     = @@collation_connection */;
+/*!50001 SET character_set_client      = latin1 */;
+/*!50001 SET character_set_results     = latin1 */;
+/*!50001 SET collation_connection      = latin1_swedish_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
+/*!50001 VIEW `v2` AS select `t1`.`id` AS `c` from `t1` */;
+/*!50001 SET character_set_client      = @saved_cs_client */;
+/*!50001 SET character_set_results     = @saved_cs_results */;
+/*!50001 SET collation_connection      = @saved_col_connection */;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+use test;
+drop database db42635;
 #
 # Bug#33550 mysqldump 4.0 compatibility broken
 #
diff --git a/mysql-test/r/variables.result b/mysql-test/r/variables.result
index 80fa0c88b822c3045a3d650e5118f34d05711048..7c9a9145ad15294557234990b853e42278381abb 100644
--- a/mysql-test/r/variables.result
+++ b/mysql-test/r/variables.result
@@ -1421,6 +1421,12 @@ SELECT @@global.expire_logs_days;
 @@global.expire_logs_days
 99
 SET GLOBAL expire_logs_days = @old_eld;
+SET GLOBAL auto_increment_offset=-1;
+Warnings:
+Warning	1292	Truncated incorrect auto_increment_offset value: '-1'
+SET GLOBAL auto_increment_offset=0;
+Warnings:
+Warning	1292	Truncated incorrect auto_increment_offset value: '0'
 select @@storage_engine;
 Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
 def					@@storage_engine	253	6	6	N	1	31	8
@@ -1433,13 +1439,13 @@ SELECT @@GLOBAL.server_id;
 4294967295
 SET GLOBAL server_id = (1 << 32);
 Warnings:
-Warning	1292	Truncated incorrect server-id value: '4294967296'
+Warning	1292	Truncated incorrect server_id value: '4294967296'
 SELECT @@GLOBAL.server_id;
 @@GLOBAL.server_id
 4294967295
 SET GLOBAL server_id = (1 << 60);
 Warnings:
-Warning	1292	Truncated incorrect server-id value: '1152921504606846976'
+Warning	1292	Truncated incorrect server_id value: '1152921504606846976'
 SELECT @@GLOBAL.server_id;
 @@GLOBAL.server_id
 4294967295
diff --git a/mysql-test/suite/binlog/r/binlog_auto_increment_bug33029.result b/mysql-test/suite/binlog/r/binlog_auto_increment_bug33029.result
index 8df0568a755d806d3141bf29bf90be3f13826913..8226469fcf7f77271631d2e27663fd4812f17747 100644
--- a/mysql-test/suite/binlog/r/binlog_auto_increment_bug33029.result
+++ b/mysql-test/suite/binlog/r/binlog_auto_increment_bug33029.result
@@ -38,4 +38,5 @@ DROP PROCEDURE IF EXISTS p2;
 DROP FUNCTION IF EXISTS f1;
 DROP TRIGGER IF EXISTS tr1;
 stop slave sql_thread;
+reset slave;
 SET @@global.relay_log_purge= @old_relay_log_purge;
diff --git a/mysql-test/suite/binlog/t/binlog_auto_increment_bug33029.test b/mysql-test/suite/binlog/t/binlog_auto_increment_bug33029.test
index f20cc33f82026941f8410f9afc88e94796261f70..5297767675c4fc578c82f63ec92407e161702592 100644
--- a/mysql-test/suite/binlog/t/binlog_auto_increment_bug33029.test
+++ b/mysql-test/suite/binlog/t/binlog_auto_increment_bug33029.test
@@ -52,9 +52,10 @@ DROP FUNCTION IF EXISTS f1;
 DROP TRIGGER IF EXISTS tr1;
 enable_warnings;
 
-remove_file $MYSQLD_DATADIR/slave-relay-bin.000001;
-remove_file $MYSQLD_DATADIR/slave-relay-bin.index;
 stop slave sql_thread;
+reset slave;
 source include/wait_for_slave_sql_to_stop.inc;
+remove_file $MYSQLD_DATADIR/slave-relay-bin.000001;
+remove_file $MYSQLD_DATADIR/slave-relay-bin.index;
 
 SET @@global.relay_log_purge= @old_relay_log_purge;
diff --git a/mysql-test/suite/funcs_1/r/is_columns_mysql.result b/mysql-test/suite/funcs_1/r/is_columns_mysql.result
index 9d1f316a9bf8fe5e7e11908791e78a30f775d51b..2f1f61c0525030d21ad49ba6856509d87e116168 100644
--- a/mysql-test/suite/funcs_1/r/is_columns_mysql.result
+++ b/mysql-test/suite/funcs_1/r/is_columns_mysql.result
@@ -48,7 +48,7 @@ NULL	mysql	event	last_executed	10	NULL	YES	datetime	NULL	NULL	NULL	NULL	NULL	NUL
 NULL	mysql	event	modified	9	0000-00-00 00:00:00	NO	timestamp	NULL	NULL	NULL	NULL	NULL	NULL	timestamp			select,insert,update,references	
 NULL	mysql	event	name	2		NO	char	64	192	NULL	NULL	utf8	utf8_general_ci	char(64)	PRI		select,insert,update,references	
 NULL	mysql	event	on_completion	14	DROP	NO	enum	8	24	NULL	NULL	utf8	utf8_general_ci	enum('DROP','PRESERVE')			select,insert,update,references	
-NULL	mysql	event	originator	17	NULL	NO	int	NULL	NULL	10	0	NULL	NULL	int(10)			select,insert,update,references	
+NULL	mysql	event	originator	17	NULL	NO	int	NULL	NULL	10	0	NULL	NULL	int(10) unsigned			select,insert,update,references	
 NULL	mysql	event	sql_mode	15		NO	set	478	1434	NULL	NULL	utf8	utf8_general_ci	set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH')			select,insert,update,references	
 NULL	mysql	event	starts	11	NULL	YES	datetime	NULL	NULL	NULL	NULL	NULL	NULL	datetime			select,insert,update,references	
 NULL	mysql	event	status	13	ENABLED	NO	enum	18	54	NULL	NULL	utf8	utf8_general_ci	enum('ENABLED','DISABLED','SLAVESIDE_DISABLED')			select,insert,update,references	
@@ -60,7 +60,7 @@ NULL	mysql	func	type	4	NULL	NO	enum	9	27	NULL	NULL	utf8	utf8_general_ci	enum('fu
 NULL	mysql	general_log	argument	6	NULL	NO	mediumtext	16777215	16777215	NULL	NULL	utf8	utf8_general_ci	mediumtext			select,insert,update,references	
 NULL	mysql	general_log	command_type	5	NULL	NO	varchar	64	192	NULL	NULL	utf8	utf8_general_ci	varchar(64)			select,insert,update,references	
 NULL	mysql	general_log	event_time	1	CURRENT_TIMESTAMP	NO	timestamp	NULL	NULL	NULL	NULL	NULL	NULL	timestamp		on update CURRENT_TIMESTAMP	select,insert,update,references	
-NULL	mysql	general_log	server_id	4	NULL	NO	int	NULL	NULL	10	0	NULL	NULL	int(11)			select,insert,update,references	
+NULL	mysql	general_log	server_id	4	NULL	NO	int	NULL	NULL	10	0	NULL	NULL	int(10) unsigned			select,insert,update,references	
 NULL	mysql	general_log	thread_id	3	NULL	NO	int	NULL	NULL	10	0	NULL	NULL	int(11)			select,insert,update,references	
 NULL	mysql	general_log	user_host	2	NULL	NO	mediumtext	16777215	16777215	NULL	NULL	utf8	utf8_general_ci	mediumtext			select,insert,update,references	
 NULL	mysql	help_category	help_category_id	1	NULL	NO	smallint	NULL	NULL	5	0	NULL	NULL	smallint(5) unsigned	PRI		select,insert,update,references	
@@ -150,7 +150,7 @@ NULL	mysql	slow_log	lock_time	4	NULL	NO	time	NULL	NULL	NULL	NULL	NULL	NULL	time
 NULL	mysql	slow_log	query_time	3	NULL	NO	time	NULL	NULL	NULL	NULL	NULL	NULL	time			select,insert,update,references	
 NULL	mysql	slow_log	rows_examined	6	NULL	NO	int	NULL	NULL	10	0	NULL	NULL	int(11)			select,insert,update,references	
 NULL	mysql	slow_log	rows_sent	5	NULL	NO	int	NULL	NULL	10	0	NULL	NULL	int(11)			select,insert,update,references	
-NULL	mysql	slow_log	server_id	10	NULL	NO	int	NULL	NULL	10	0	NULL	NULL	int(11)			select,insert,update,references	
+NULL	mysql	slow_log	server_id	10	NULL	NO	int	NULL	NULL	10	0	NULL	NULL	int(10) unsigned			select,insert,update,references	
 NULL	mysql	slow_log	sql_text	11	NULL	NO	mediumtext	16777215	16777215	NULL	NULL	utf8	utf8_general_ci	mediumtext			select,insert,update,references	
 NULL	mysql	slow_log	start_time	1	CURRENT_TIMESTAMP	NO	timestamp	NULL	NULL	NULL	NULL	NULL	NULL	timestamp		on update CURRENT_TIMESTAMP	select,insert,update,references	
 NULL	mysql	slow_log	user_host	2	NULL	NO	mediumtext	16777215	16777215	NULL	NULL	utf8	utf8_general_ci	mediumtext			select,insert,update,references	
@@ -329,7 +329,7 @@ NULL	mysql	event	ends	datetime	NULL	NULL	NULL	NULL	datetime
 3.0000	mysql	event	on_completion	enum	8	24	utf8	utf8_general_ci	enum('DROP','PRESERVE')
 3.0000	mysql	event	sql_mode	set	478	1434	utf8	utf8_general_ci	set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH')
 3.0000	mysql	event	comment	char	64	192	utf8	utf8_bin	char(64)
-NULL	mysql	event	originator	int	NULL	NULL	NULL	NULL	int(10)
+NULL	mysql	event	originator	int	NULL	NULL	NULL	NULL	int(10) unsigned
 1.0000	mysql	event	time_zone	char	64	64	latin1	latin1_swedish_ci	char(64)
 3.0000	mysql	event	character_set_client	char	32	96	utf8	utf8_bin	char(32)
 3.0000	mysql	event	collation_connection	char	32	96	utf8	utf8_bin	char(32)
@@ -342,7 +342,7 @@ NULL	mysql	func	ret	tinyint	NULL	NULL	NULL	NULL	tinyint(1)
 NULL	mysql	general_log	event_time	timestamp	NULL	NULL	NULL	NULL	timestamp
 1.0000	mysql	general_log	user_host	mediumtext	16777215	16777215	utf8	utf8_general_ci	mediumtext
 NULL	mysql	general_log	thread_id	int	NULL	NULL	NULL	NULL	int(11)
-NULL	mysql	general_log	server_id	int	NULL	NULL	NULL	NULL	int(11)
+NULL	mysql	general_log	server_id	int	NULL	NULL	NULL	NULL	int(10) unsigned
 3.0000	mysql	general_log	command_type	varchar	64	192	utf8	utf8_general_ci	varchar(64)
 1.0000	mysql	general_log	argument	mediumtext	16777215	16777215	utf8	utf8_general_ci	mediumtext
 NULL	mysql	help_category	help_category_id	smallint	NULL	NULL	NULL	NULL	smallint(5) unsigned
@@ -434,7 +434,7 @@ NULL	mysql	slow_log	rows_examined	int	NULL	NULL	NULL	NULL	int(11)
 3.0000	mysql	slow_log	db	varchar	512	1536	utf8	utf8_general_ci	varchar(512)
 NULL	mysql	slow_log	last_insert_id	int	NULL	NULL	NULL	NULL	int(11)
 NULL	mysql	slow_log	insert_id	int	NULL	NULL	NULL	NULL	int(11)
-NULL	mysql	slow_log	server_id	int	NULL	NULL	NULL	NULL	int(11)
+NULL	mysql	slow_log	server_id	int	NULL	NULL	NULL	NULL	int(10) unsigned
 1.0000	mysql	slow_log	sql_text	mediumtext	16777215	16777215	utf8	utf8_general_ci	mediumtext
 3.0000	mysql	tables_priv	Host	char	60	180	utf8	utf8_bin	char(60)
 3.0000	mysql	tables_priv	Db	char	64	192	utf8	utf8_bin	char(64)
diff --git a/mysql-test/suite/sys_vars/r/auto_increment_increment_basic.result b/mysql-test/suite/sys_vars/r/auto_increment_increment_basic.result
index 75f76a60b331e8845bd680547b418480f5db0a2f..3cfdc54457b34c0e2124debc7c72f16090c603c5 100644
--- a/mysql-test/suite/sys_vars/r/auto_increment_increment_basic.result
+++ b/mysql-test/suite/sys_vars/r/auto_increment_increment_basic.result
@@ -55,7 +55,7 @@ SELECT @@session.auto_increment_increment;
 '#------------------FN_DYNVARS_001_05-----------------------#'
 SET @@global.auto_increment_increment = 0;
 Warnings:
-Warning	1292	Truncated incorrect auto-increment-increment value: '0'
+Warning	1292	Truncated incorrect auto_increment_increment value: '0'
 SELECT @@global.auto_increment_increment;
 @@global.auto_increment_increment
 1
@@ -83,7 +83,7 @@ SELECT @@global.auto_increment_increment;
 65535
 SET @@session.auto_increment_increment = 0;
 Warnings:
-Warning	1292	Truncated incorrect auto-increment-increment value: '0'
+Warning	1292	Truncated incorrect auto_increment_increment value: '0'
 SELECT @@session.auto_increment_increment;
 @@session.auto_increment_increment
 1
@@ -126,7 +126,7 @@ SELECT @@global.auto_increment_increment;
 1
 SET @@global.auto_increment_increment = FALSE;
 Warnings:
-Warning	1292	Truncated incorrect auto-increment-increment value: '0'
+Warning	1292	Truncated incorrect auto_increment_increment value: '0'
 SELECT @@global.auto_increment_increment;
 @@global.auto_increment_increment
 1
diff --git a/mysql-test/suite/sys_vars/r/auto_increment_offset_basic.result b/mysql-test/suite/sys_vars/r/auto_increment_offset_basic.result
index f91037cb7cf6ae1fa7bc9bfcb4901994947f5b7d..7752851cb4cebb22808cefbe4db35d525bbdfa89 100644
--- a/mysql-test/suite/sys_vars/r/auto_increment_offset_basic.result
+++ b/mysql-test/suite/sys_vars/r/auto_increment_offset_basic.result
@@ -55,7 +55,7 @@ SELECT @@session.auto_increment_offset;
 '#------------------FN_DYNVARS_002_05-----------------------#'
 SET @@global.auto_increment_offset = 0;
 Warnings:
-Warning	1292	Truncated incorrect auto-increment-offset value: '0'
+Warning	1292	Truncated incorrect auto_increment_offset value: '0'
 SELECT @@global.auto_increment_offset;
 @@global.auto_increment_offset
 1
@@ -88,7 +88,7 @@ SELECT @@global.auto_increment_offset;
 65535
 SET @@session.auto_increment_offset = 0;
 Warnings:
-Warning	1292	Truncated incorrect auto-increment-offset value: '0'
+Warning	1292	Truncated incorrect auto_increment_offset value: '0'
 SELECT @@session.auto_increment_offset;
 @@session.auto_increment_offset
 1
@@ -139,7 +139,7 @@ SELECT @@global.auto_increment_offset;
 1
 SET @@global.auto_increment_offset = FALSE;
 Warnings:
-Warning	1292	Truncated incorrect auto-increment-offset value: '0'
+Warning	1292	Truncated incorrect auto_increment_offset value: '0'
 SELECT @@global.auto_increment_offset;
 @@global.auto_increment_offset
 1
diff --git a/mysql-test/suite/sys_vars/r/concurrent_insert_basic.result b/mysql-test/suite/sys_vars/r/concurrent_insert_basic.result
index 2c7fc4296dda76edcd2bfc2d19dee053191aa452..1ea9c37c2a1a9617e85e98df8c219ad4e4f1367e 100644
--- a/mysql-test/suite/sys_vars/r/concurrent_insert_basic.result
+++ b/mysql-test/suite/sys_vars/r/concurrent_insert_basic.result
@@ -35,7 +35,7 @@ Select @@global.concurrent_insert;
 0
 SET @@global.concurrent_insert = 100;
 Warnings:
-Warning	1292	Truncated incorrect concurrent-insert value: '100'
+Warning	1292	Truncated incorrect concurrent_insert value: '100'
 Select @@global.concurrent_insert;
 @@global.concurrent_insert
 2
diff --git a/mysql-test/suite/sys_vars/r/rpl_recovery_rank_basic_32.result b/mysql-test/suite/sys_vars/r/rpl_recovery_rank_basic_32.result
index d4dd46eba719352a18c0a7efb5366fb94b22391f..2f0c9beea9cf841bcb8fe07bf9d1a7b8b262e221 100644
--- a/mysql-test/suite/sys_vars/r/rpl_recovery_rank_basic_32.result
+++ b/mysql-test/suite/sys_vars/r/rpl_recovery_rank_basic_32.result
@@ -23,13 +23,13 @@ SELECT @@global.rpl_recovery_rank;
 123456789
 SET @@global.rpl_recovery_rank = 2147483648*2;
 Warnings:
-Warning	1292	Truncated incorrect rpl-recovery-rank value: '4294967296'
+Warning	1292	Truncated incorrect rpl_recovery_rank value: '4294967296'
 SELECT @@global.rpl_recovery_rank;
 @@global.rpl_recovery_rank
 4294967295
 SET @@global.rpl_recovery_rank = 2147483648*1024;
 Warnings:
-Warning	1292	Truncated incorrect rpl-recovery-rank value: '2199023255552'
+Warning	1292	Truncated incorrect rpl_recovery_rank value: '2199023255552'
 SELECT @@global.rpl_recovery_rank;
 @@global.rpl_recovery_rank
 4294967295
@@ -38,7 +38,7 @@ SELECT @@global.rpl_recovery_rank;
 4294967295
 SET @@global.rpl_recovery_rank = 2147483648*2147483648;
 Warnings:
-Warning	1292	Truncated incorrect rpl-recovery-rank value: '4611686018427387904'
+Warning	1292	Truncated incorrect rpl_recovery_rank value: '4611686018427387904'
 SELECT @@global.rpl_recovery_rank;
 @@global.rpl_recovery_rank
 4294967295
diff --git a/mysql-test/suite/sys_vars/r/server_id_basic_32.result b/mysql-test/suite/sys_vars/r/server_id_basic_32.result
index 6f801fc627be9cfdaea429d635162058e3f146bc..b1e74736a1013674997f2d7c79a2eb2734e6d0d4 100644
--- a/mysql-test/suite/sys_vars/r/server_id_basic_32.result
+++ b/mysql-test/suite/sys_vars/r/server_id_basic_32.result
@@ -61,7 +61,7 @@ SELECT @@global.server_id;
 0
 SET @@global.server_id = 2147483649*2;
 Warnings:
-Warning	1292	Truncated incorrect server-id value: '4294967298'
+Warning	1292	Truncated incorrect server_id value: '4294967298'
 SELECT @@global.server_id;
 @@global.server_id
 4294967295
diff --git a/mysql-test/suite/sys_vars/r/server_id_basic_64.result b/mysql-test/suite/sys_vars/r/server_id_basic_64.result
index 6f801fc627be9cfdaea429d635162058e3f146bc..12d49248f54e1dc3dcb3ba7771f12abac7ff7fcd 100644
--- a/mysql-test/suite/sys_vars/r/server_id_basic_64.result
+++ b/mysql-test/suite/sys_vars/r/server_id_basic_64.result
@@ -52,16 +52,20 @@ SET @@local.server_id = 4;
 ERROR HY000: Variable 'server_id' is a GLOBAL variable and should be set with SET GLOBAL
 '#------------------FN_DYNVARS_144_05-----------------------#'
 SET @@global.server_id = -1;
+Warnings:
+Warning	1292	Truncated incorrect server_id value: '-1'
 SELECT @@global.server_id;
 @@global.server_id
 0
 SET @@global.server_id = -2147483648;
+Warnings:
+Warning	1292	Truncated incorrect server_id value: '-2147483648'
 SELECT @@global.server_id;
 @@global.server_id
 0
 SET @@global.server_id = 2147483649*2;
 Warnings:
-Warning	1292	Truncated incorrect server-id value: '4294967298'
+Warning	1292	Truncated incorrect server_id value: '4294967298'
 SELECT @@global.server_id;
 @@global.server_id
 4294967295
diff --git a/mysql-test/t/innodb-autoinc.test b/mysql-test/t/innodb-autoinc.test
index e6b804c4fff3eb8cb904861f68208d6c6f844ed2..d76b29a7dc85b7c93d47014e726ac330349185e3 100644
--- a/mysql-test/t/innodb-autoinc.test
+++ b/mysql-test/t/innodb-autoinc.test
@@ -390,3 +390,91 @@ INSERT INTO t1 VALUES (NULL);
 #endif
 SELECT * FROM t1;
 DROP TABLE t1;
+
+#
+# Check for floating point autoinc column handling
+#
+SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1;
+SET @@INSERT_ID=1;
+SHOW VARIABLES LIKE "%auto_inc%";
+CREATE TABLE t1 (c1 DOUBLE NOT NULL AUTO_INCREMENT, c2 INT, PRIMARY KEY (c1)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES(NULL, 1);
+INSERT INTO t1 VALUES(NULL, 2);
+SELECT * FROM t1;
+ALTER TABLE t1 CHANGE c1 c1 SERIAL;
+SELECT * FROM t1;
+INSERT INTO t1 VALUES(NULL, 3);
+INSERT INTO t1 VALUES(NULL, 4);
+SELECT * FROM t1;
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (c1 FLOAT NOT NULL AUTO_INCREMENT, c2 INT, PRIMARY KEY (c1)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES(NULL, 1);
+INSERT INTO t1 VALUES(NULL, 2);
+SELECT * FROM t1;
+ALTER TABLE t1 CHANGE c1 c1 SERIAL;
+SELECT * FROM t1;
+INSERT INTO t1 VALUES(NULL, 3);
+INSERT INTO t1 VALUES(NULL, 4);
+SELECT * FROM t1;
+DROP TABLE t1;
+
+#
+# Bug# 42714: AUTOINC column calculated next value not greater than highest
+# value stored in table.
+#
+SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=5;
+DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t2;
+CREATE TABLE t1 (
+  a INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
+  b INT(10) UNSIGNED NOT NULL,
+  c ENUM('FALSE','TRUE') DEFAULT NULL,
+  PRIMARY KEY (a)) ENGINE = InnoDB;
+CREATE TABLE t2 (
+  m INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
+  n INT(10) UNSIGNED NOT NULL,
+  o enum('FALSE','TRUE') DEFAULT NULL,
+  PRIMARY KEY (m)) ENGINE = InnoDB;
+INSERT INTO t2 (n,o) VALUES
+  (1 , 'true'), (1 , 'false'), (2 , 'true'), (2 , 'false'), (3 , 'true'),
+  (3 , 'false'), (4 , 'true'), (4 , 'false'), (5 , 'true'), (5 , 'false');
+SHOW CREATE TABLE t2;
+INSERT INTO t1 (b,c) SELECT n,o FROM t2 ;
+SHOW CREATE TABLE t1;
+INSERT INTO t1 (b,c) SELECT n,o FROM t2 ;
+SELECT * FROM t1;
+SHOW CREATE TABLE t1;
+INSERT INTO t1 (b,c) SELECT n,o FROM t2 WHERE o = 'false';
+SELECT * FROM t1;
+SHOW CREATE TABLE t1;
+INSERT INTO t1 (b,c) SELECT n,o FROM t2 WHERE o = 'false';
+SELECT * FROM t1;
+SHOW CREATE TABLE t1;
+INSERT INTO t1 (b,c) SELECT n,o FROM t2 WHERE o = 'false';
+SHOW CREATE TABLE t1;
+INSERT INTO t1 (b,c) SELECT n,o FROM t2 WHERE o = 'false';
+SHOW CREATE TABLE t1;
+INSERT INTO t1 (b,c) SELECT n,o FROM t2 WHERE o = 'false';
+SELECT * FROM t1;
+SHOW CREATE TABLE t1;
+DROP TABLE t1;
+DROP TABLE t2;
+#
+# 43203: Overflow from auto incrementing causes server segv
+#
+
+DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t2;
+CREATE TABLE t1(
+   c1 INT(10) UNSIGNED NOT NULL AUTO_INCREMENT
+   PRIMARY KEY) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL);
+CREATE TABLE t2(
+    c1 TINYINT(3) UNSIGNED NOT NULL AUTO_INCREMENT
+    PRIMARY KEY) ENGINE=InnoDB;
+-- error ER_DUP_ENTRY,1062
+INSERT INTO t2 SELECT c1 FROM t1;
+-- error ER_DUP_ENTRY,1467
+INSERT INTO t2 SELECT NULL FROM t1;
+DROP TABLE t1;
+DROP TABLE t2;
diff --git a/mysql-test/t/mysqldump.test b/mysql-test/t/mysqldump.test
index 224152d20d0cf7c900e76bebcdb49d336067b78f..51becb01fff17d66c5b03812ad6f9ba7ad0f7f64 100644
--- a/mysql-test/t/mysqldump.test
+++ b/mysql-test/t/mysqldump.test
@@ -1647,6 +1647,22 @@ DROP TABLE t1,t2;
 --replace_regex /-- [^D][^u][^m][^p].*// /\/\*!.*// / on [0-9 :-]+/ on DATE/
 --exec $MYSQL_DUMP test
 
+# We reset concurrent_inserts value to whatever it was at the start of the test
+SET @@GLOBAL.CONCURRENT_INSERT = @OLD_CONCURRENT_INSERT;
+
+--echo #
+--echo # Bug #42635: mysqldump includes views that were excluded using 
+--echo #   the --ignore-table option
+--echo #
+
+create database db42635;
+use db42635;
+create table t1 (id int);
+create view db42635.v1 (c) as select * from db42635.t1;
+create view db42635.v2 (c) as select * from db42635.t1;
+--exec $MYSQL_DUMP --skip-comments --ignore-table=db42635.v1 db42635
+use test;
+drop database db42635;
 
 --echo #
 --echo # Bug#33550 mysqldump 4.0 compatibility broken
diff --git a/mysql-test/t/type_bit_innodb.test b/mysql-test/t/type_bit_innodb.test
index 85c9127b2f6668ed91d59211a9c76ac3859db676..e7e66da89279bf07445535cf0af46d14dc899097 100644
--- a/mysql-test/t/type_bit_innodb.test
+++ b/mysql-test/t/type_bit_innodb.test
@@ -40,6 +40,8 @@ drop table t1;
 create table t1 (a bit) engine=innodb;
 insert into t1 values (b'0'), (b'1'), (b'000'), (b'100'), (b'001');
 select hex(a) from t1;
+# It is not deterministic which duplicate will be seen first
+--replace_regex /(.*Duplicate entry )'.*'( for key.*)/\1''\2/
 --error ER_DUP_ENTRY
 alter table t1 add unique (a);
 drop table t1;
diff --git a/mysql-test/t/variables.test b/mysql-test/t/variables.test
index 7865a9d7b8eba85c02c81223d5466dfe98927e8f..e224d3b024467fa083125ad50e38669941f93a4a 100644
--- a/mysql-test/t/variables.test
+++ b/mysql-test/t/variables.test
@@ -1155,6 +1155,11 @@ SELECT @@global.expire_logs_days;
 # cleanup
 SET GLOBAL expire_logs_days = @old_eld;
 
+# show that warning uses underscore (sysvar-name), not hyphens (option-name)
+SET GLOBAL auto_increment_offset=-1;
+SET GLOBAL auto_increment_offset=0;
+
+
 
 #
 # Bug#41030 Wrong meta data (incorrect fieldlen)
diff --git a/sql-bench/TODO b/sql-bench/TODO
deleted file mode 100644
index 8a103e8919980a83a23cc64b7a17f152d846baae..0000000000000000000000000000000000000000
--- a/sql-bench/TODO
+++ /dev/null
@@ -1,21 +0,0 @@
-When comparing with ms-sql:
-
-Check how to get MySQL faster         mysql   ms-sql
-
-count_distinct (2000)               |  89.00|  39.00|
-count_distinct_big (120)            | 324.00| 121.00|
-count_distinct_group (1000)         | 158.00| 107.00|
-count_distinct_group_on_key (1000)  |  49.00|  17.00|
-count_distinct_group_on_key_parts (1| 157.00| 108.00|
-order_by_big (10)                   | 197.00|  89.00|
-order_by_big_key (10)               | 170.00|  82.00|
-order_by_big_key2 (10)              | 163.00|  73.00|
-order_by_big_key_desc (10)          | 172.00|  84.00|
-order_by_big_key_diff (10)          | 193.00|  89.00|
-order_by_big_key_prefix (10)        | 165.00|  72.00|                          
-
-
-Why is the following slow on NT:
-				        NT     Linux
-update_of_primary_key_many_keys (256| 560.00|  65.00|
-
diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h
index 6acac86a1e07913b8d9807be6397de755db57eff..d83c24bf6ca98ffec01d3cb25a74390689597876 100644
--- a/sql/mysql_priv.h
+++ b/sql/mysql_priv.h
@@ -2065,6 +2065,9 @@ extern SHOW_COMP_OPTION have_geometry, have_rtree_keys;
 extern SHOW_COMP_OPTION have_crypt;
 extern SHOW_COMP_OPTION have_compress;
 
+extern int orig_argc;
+extern char **orig_argv;
+extern const char *load_default_groups[];
 
 #ifndef __WIN__
 extern pthread_t signal_thread;
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index f0785842040c862a1efdd5a427ef3ce18ebb1255..080f78993a1db092c6c866fac2ac9f5febadc88e 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -671,6 +671,9 @@ static int defaults_argc;
 static char **defaults_argv;
 static char *opt_bin_logname;
 
+int orig_argc;
+char **orig_argv;
+
 static my_socket unix_sock,ip_sock;
 struct rand_struct sql_rand; ///< used by sql_class.cc:THD::THD()
 
@@ -2945,18 +2948,16 @@ pthread_handler_t handle_shutdown(void *arg)
 }
 #endif
 
-#if !defined(EMBEDDED_LIBRARY)
-static const char *load_default_groups[]= {
+const char *load_default_groups[]= {
 #ifdef WITH_NDBCLUSTER_STORAGE_ENGINE
 "mysql_cluster",
 #endif
 "mysqld","server", MYSQL_BASE_VERSION, 0, 0};
 
-#if defined(__WIN__)
+#if defined(__WIN__) && !defined(EMBEDDED_LIBRARY)
 static const int load_default_groups_sz=
 sizeof(load_default_groups)/sizeof(load_default_groups[0]);
 #endif
-#endif /*!EMBEDDED_LIBRARY*/
 
 
 /**
@@ -3244,6 +3245,8 @@ static int init_common_variables(const char *conf_file_name, int argc,
                      SQLCOM_END + 8);
 #endif
 
+  orig_argc=argc;
+  orig_argv=argv;
   load_defaults(conf_file_name, groups, &argc, &argv);
   defaults_argv=argv;
   defaults_argc=argc;
@@ -3909,6 +3912,7 @@ server.");
     if ((ho_error= handle_options(&defaults_argc, &tmp_argv, no_opts,
                                   mysqld_get_one_option)))
       unireg_abort(ho_error);
+    my_getopt_skip_unknown= TRUE;
 
     if (defaults_argc)
     {
diff --git a/sql/set_var.cc b/sql/set_var.cc
index 3464661dff996a2ddb304769b35d0579d0af5705..7d20c0f46a7db66488c652f99f7f0c49a1de0a5c 100644
--- a/sql/set_var.cc
+++ b/sql/set_var.cc
@@ -1522,9 +1522,10 @@ static bool get_unsigned(THD *thd, set_var *var, ulonglong user_max,
 
     var->save_result.ulonglong_value= getopt_ull_limit_value(var->save_result.
                                                              ulonglong_value,
-							     limits, &fixed);
+                                                             limits, &fixed);
 
-    if ((warnings == 0) && throw_bounds_warning(thd, fixed, TRUE, limits->name,
+    if ((warnings == 0) && throw_bounds_warning(thd, fixed, TRUE,
+                                                var->var->name,
                                                 (longlong) unadjusted))
       return TRUE;
   }
diff --git a/sql/sql_plugin.cc b/sql/sql_plugin.cc
index 60f205ec8e81a109537a55c411204ba71cb6bf19..223ba6ef42e61d26cce3cc902f322d3017a2c643 100644
--- a/sql/sql_plugin.cc
+++ b/sql/sql_plugin.cc
@@ -1139,8 +1139,9 @@ int plugin_init(int *argc, char **argv, int flags)
     for (plugin= *builtins; plugin->info; plugin++)
     {
       if (opt_ignore_builtin_innodb &&
-          !my_strcasecmp(&my_charset_latin1, plugin->name, "InnoDB"))
-          continue;
+          !my_strnncoll(&my_charset_latin1, (const uchar*) plugin->name,
+                        6, (const uchar*) "InnoDB", 6))
+        continue;
       /* by default, ndbcluster and federated are disabled */
       def_enabled=
         my_strcasecmp(&my_charset_latin1, plugin->name, "NDBCLUSTER") != 0 &&
@@ -1633,8 +1634,8 @@ bool mysql_install_plugin(THD *thd, const LEX_STRING *name, const LEX_STRING *dl
 {
   TABLE_LIST tables;
   TABLE *table;
-  int error, argc;
-  char *argv[2];
+  int error, argc=orig_argc;
+  char **argv=orig_argv;
   struct st_plugin_int *tmp;
   DBUG_ENTER("mysql_install_plugin");
 
@@ -1650,21 +1651,31 @@ bool mysql_install_plugin(THD *thd, const LEX_STRING *name, const LEX_STRING *dl
 
   pthread_mutex_lock(&LOCK_plugin);
   rw_wrlock(&LOCK_system_variables_hash);
-  /* handle_options() assumes arg0 (program name) always exists */
-  argv[0]= const_cast<char*>(""); // without a cast gcc emits a warning
-  argv[1]= 0;
-  argc= 1;
+
+  load_defaults(MYSQL_CONFIG_NAME, load_default_groups, &argc, &argv);
   error= plugin_add(thd->mem_root, name, dl, &argc, argv, REPORT_TO_USER);
+  if (argv)
+    free_defaults(argv);
   rw_unlock(&LOCK_system_variables_hash);
 
   if (error || !(tmp= plugin_find_internal(name, MYSQL_ANY_PLUGIN)))
     goto err;
 
-  if (plugin_initialize(tmp))
+  if (tmp->state == PLUGIN_IS_DISABLED)
   {
-    my_error(ER_CANT_INITIALIZE_UDF, MYF(0), name->str,
-             "Plugin initialization function failed.");
-    goto deinit;
+    push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
+                        ER_CANT_INITIALIZE_UDF, ER(ER_CANT_INITIALIZE_UDF),
+                        name->str, "Plugin is disabled");
+  }
+  else
+  {
+    DBUG_ASSERT(tmp->state == PLUGIN_IS_UNINITIALIZED);
+    if (plugin_initialize(tmp))
+    {
+      my_error(ER_CANT_INITIALIZE_UDF, MYF(0), name->str,
+               "Plugin initialization function failed.");
+      goto deinit;
+    }
   }
 
   /*
diff --git a/storage/innobase/btr/btr0sea.c b/storage/innobase/btr/btr0sea.c
index 3482e16497a0dfb30eebf5ff3a846c691f58b0b0..84ad0e27110fe30e2f8cfdd36cc4d00e97119978 100644
--- a/storage/innobase/btr/btr0sea.c
+++ b/storage/innobase/btr/btr0sea.c
@@ -1105,12 +1105,20 @@ btr_search_drop_page_hash_when_freed(
 	page = buf_page_get_gen(space, page_no, RW_S_LATCH, NULL,
 				BUF_GET_IF_IN_POOL, __FILE__, __LINE__,
 				&mtr);
+	/* Because the buffer pool mutex was released by
+	buf_page_peek_if_search_hashed(), it is possible that the
+	block was removed from the buffer pool by another thread
+	before buf_page_get_gen() got a chance to acquire the buffer
+	pool mutex again.  Thus, we must check for a NULL return. */
+
+	if (UNIV_LIKELY(page != NULL)) {
 
 #ifdef UNIV_SYNC_DEBUG
-	buf_page_dbg_add_level(page, SYNC_TREE_NODE_FROM_HASH);
+		buf_page_dbg_add_level(page, SYNC_TREE_NODE_FROM_HASH);
 #endif /* UNIV_SYNC_DEBUG */
 
-	btr_search_drop_page_hash_index(page);
+		btr_search_drop_page_hash_index(page);
+	}
 
 	mtr_commit(&mtr);
 }
diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc
index 522392edc7af5bf04f098f3c7ee97bc5c246a23c..a019b95a2bb94d71b4920644c615d6e6b9f9d4da 100644
--- a/storage/innobase/handler/ha_innodb.cc
+++ b/storage/innobase/handler/ha_innodb.cc
@@ -953,6 +953,12 @@ innobase_next_autoinc(
 	/* Should never be 0. */
 	ut_a(increment > 0);
 
+	/* According to MySQL documentation, if the offset is greater than
+	the increment then the offset is ignored. */
+	if (offset > increment) {
+		offset = 0;
+	}
+
 	if (max_value <= current) {
 		next_value = max_value;
 	} else if (offset <= 1) {
@@ -3312,8 +3318,8 @@ build_template(
 				goto include_field;
 			}
 
-                        if (bitmap_is_set(table->read_set, i) ||
-                            bitmap_is_set(table->write_set, i)) {
+			if (bitmap_is_set(table->read_set, i) ||
+			    bitmap_is_set(table->write_set, i)) {
 				/* This field is needed in the query */
 
 				goto include_field;
@@ -3405,7 +3411,7 @@ build_template(
 }
 
 /************************************************************************
-Get the upper limit of the MySQL integral type. */
+Get the upper limit of the MySQL integral and floating-point type. */
 
 ulonglong
 ha_innobase::innobase_get_int_col_max_value(
@@ -3416,7 +3422,7 @@ ha_innobase::innobase_get_int_col_max_value(
 
 	switch(field->key_type()) {
 	/* TINY */
-        case HA_KEYTYPE_BINARY:
+	case HA_KEYTYPE_BINARY:
 		max_value = 0xFFULL;
 		break;
 	case HA_KEYTYPE_INT8:
@@ -3430,7 +3436,7 @@ ha_innobase::innobase_get_int_col_max_value(
 		max_value = 0x7FFFULL;
 		break;
 	/* MEDIUM */
-    	case HA_KEYTYPE_UINT24:
+	case HA_KEYTYPE_UINT24:
 		max_value = 0xFFFFFFULL;
 		break;
 	case HA_KEYTYPE_INT24:
@@ -3444,12 +3450,20 @@ ha_innobase::innobase_get_int_col_max_value(
 		max_value = 0x7FFFFFFFULL;
 		break;
 	/* BIG */
-    	case HA_KEYTYPE_ULONGLONG:
+	case HA_KEYTYPE_ULONGLONG:
 		max_value = 0xFFFFFFFFFFFFFFFFULL;
 		break;
 	case HA_KEYTYPE_LONGLONG:
 		max_value = 0x7FFFFFFFFFFFFFFFULL;
 		break;
+	case HA_KEYTYPE_FLOAT:
+		/* We use the maximum as per IEEE754-2008 standard, 2^24 */
+		max_value = 0x1000000ULL;
+		break;
+	case HA_KEYTYPE_DOUBLE:
+		/* We use the maximum as per IEEE754-2008 standard, 2^53 */
+		max_value = 0x20000000000000ULL;
+		break;
 	default:
 		ut_error;
 	}
@@ -3772,7 +3786,7 @@ ha_innobase::write_row(
 			will be 0 if get_auto_increment() was not called.*/
 
 			if (auto_inc <= col_max_value
-			    && auto_inc > prebuilt->autoinc_last_value) {
+			    && auto_inc >= prebuilt->autoinc_last_value) {
 set_max_autoinc:
 				ut_a(prebuilt->autoinc_increment > 0);
 
@@ -7650,11 +7664,13 @@ ha_innobase::get_auto_increment(
 
 		prebuilt->autoinc_last_value = next_value;
 
-		ut_a(prebuilt->autoinc_last_value >= *first_value);
-
-		/* Update the table autoinc variable */
-		dict_table_autoinc_update_if_greater(
-			prebuilt->table, prebuilt->autoinc_last_value);
+		if (prebuilt->autoinc_last_value < *first_value) {
+			*first_value = (~(ulonglong) 0);
+		} else {
+			/* Update the table autoinc variable */
+			dict_table_autoinc_update_if_greater(
+				prebuilt->table, prebuilt->autoinc_last_value);
+		}
 	} else {
 		/* This will force write_row() into attempting an update
 		of the table's AUTOINC counter. */