diff options
68 files changed, 3064 insertions, 116 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 3c24c3b0d99..69fbbca3830 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -154,6 +154,7 @@ INCLUDE(cpack_rpm) INCLUDE(cpack_deb) # Add macros +INCLUDE(wsrep) INCLUDE(character_sets) INCLUDE(cpu_info) INCLUDE(zlib) @@ -167,7 +168,6 @@ INCLUDE(ctest) INCLUDE(plugin) INCLUDE(install_macros) INCLUDE(mysql_add_executable) -INCLUDE(wsrep) # Handle options OPTION(DISABLE_SHARED @@ -290,6 +290,7 @@ MARK_AS_ADVANCED(WITH_FAST_MUTEXES) OPTION(WITH_INNODB_DISALLOW_WRITES "InnoDB freeze writes patch from Google" ${WITH_WSREP}) IF (WITH_INNODB_DISALLOW_WRITES) + MESSAGE(STATUS "INNODB_DISALLOW_WRITES") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWITH_INNODB_DISALLOW_WRITES") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DWITH_INNODB_DISALLOW_WRITES") ENDIF() diff --git a/cmake/wsrep.cmake b/cmake/wsrep.cmake index 1e979a6bad1..d52097b9046 100644 --- a/cmake/wsrep.cmake +++ b/cmake/wsrep.cmake @@ -23,7 +23,7 @@ SET(WSREP_PATCH_VERSION "10") # MariaDB addition: Revision number of the last revision merged from # codership branch visible in @@visible_comment. # Branch : codership-mysql/5.6 -SET(WSREP_PATCH_REVNO "4123") # Should be updated on every merge. +SET(WSREP_PATCH_REVNO "4144") # Should be updated on every merge. # MariaDB: Obtain patch revision number: # Update WSREP_PATCH_REVNO if WSREP_REV environment variable is set. diff --git a/mysql-test/include/mtr_warnings.sql b/mysql-test/include/mtr_warnings.sql index 97309be0857..84f5823c5ef 100644 --- a/mysql-test/include/mtr_warnings.sql +++ b/mysql-test/include/mtr_warnings.sql @@ -229,12 +229,25 @@ INSERT INTO global_suppressions VALUES ("Slave I/O: Setting @mariadb_slave_capability failed with error:.*"), /* - Galera-related warnings. + Galera suppressions */ - ("WSREP: Could not open saved state file for reading: .*"), - ("WSREP: last inactive check more than .* skipping check"), - ("WSREP: Gap in state sequence. Need state transfer."), - ("WSREP: Failed to prepare for incremental state transfer: .*"), + ("WSREP:*down context*"), + ("WSREP: Failed to send state UUID:*"), + ("WSREP: wsrep_sst_receive_address is set to '127.0.0.1"), + ("WSREP: option --wsrep-casual-reads is deprecated"), + ("WSREP: --wsrep-casual-reads=ON takes precedence over --wsrep-sync-wait=0"), + ("WSREP: Could not open saved state file for reading: "), + ("WSREP: access file\\(gvwstate\\.dat\\) failed\\(No such file or directory\\)"), + ("WSREP: Gap in state sequence\\. Need state transfer\\."), + ("WSREP: Failed to prepare for incremental state transfer: Local state UUID \\(00000000-0000-0000-0000-000000000000\\) does not match group state UUID"), + ("WSREP: No existing UUID has been found, so we assume that this is the first time that this server has been started\\. Generating a new UUID: "), + ("WSREP: last inactive check more than"), + ("WSREP: binlog cache not empty \\(0 bytes\\) at connection close"), + ("WSREP: Failed to guess base node address"), + ("WSREP: Guessing address for incoming client connections failed"), + ("WSREP: Failed to read output of: '/sbin/ifconfig"), + ("WSREP: SQL statement was ineffective"), + ("THE_LAST_SUPPRESSION")|| diff --git a/mysql-test/include/write_var_to_file.inc b/mysql-test/include/write_var_to_file.inc index 08de195ccbb..4c54e719ebd 100644 --- a/mysql-test/include/write_var_to_file.inc +++ b/mysql-test/include/write_var_to_file.inc @@ -51,7 +51,7 @@ if (`SELECT LENGTH(@@secure_file_priv) > 0`) --copy_file $_wvtf_tmp_file $write_to_file --remove_file $_wvtf_tmp_file } -if (`SELECT LENGTH(@@secure_file_priv) = 0`) +if (`SELECT LENGTH(@@secure_file_priv) = 0 OR LENGTH(@@secure_file_priv) IS NULL`) { --eval SELECT '$write_var' INTO DUMPFILE '$write_to_file' } diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 942f4624c44..e0c5c8663fb 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -3189,6 +3189,9 @@ sub check_wsrep_support() { mtr_report(" - adding wsrep, galera to default test suites"); push @DEFAULT_SUITES, qw(wsrep galera); + # ADD scripts to $PATH to that wsrep_sst_* can be found + $ENV{'PATH'} = $ENV{'PATH'}.':'.$basedir.'/scripts'; + # Check whether WSREP_PROVIDER environment variable is set. if (defined $ENV{'WSREP_PROVIDER'}) { if ((mtr_file_exists($ENV{'WSREP_PROVIDER'}) eq "") && diff --git a/mysql-test/suite/galera/galera_2nodes.cnf b/mysql-test/suite/galera/galera_2nodes.cnf index c0d5b3add3f..9431e585aea 100644 --- a/mysql-test/suite/galera/galera_2nodes.cnf +++ b/mysql-test/suite/galera/galera_2nodes.cnf @@ -2,22 +2,36 @@ !include include/default_mysqld.cnf [mysqld.1] +innodb_file_per_table binlog-format=row +innodb_file_format=Barracuda +performance_schema=OFF + wsrep_provider=@ENV.WSREP_PROVIDER wsrep_cluster_address='gcomm://' wsrep_provider_options='base_port=@mysqld.1.#galera_port' wsrep_sst_receive_address='127.0.0.1:@mysqld.1.#sst_port' # enforce read-committed characteristics across the cluster wsrep_causal_reads=ON +wsrep_sync_wait = 7 +wsrep_node_address=127.0.0.1 +wsrep_node_incoming_address=127.0.0.1 [mysqld.2] +innodb_file_per_table binlog-format=row +innodb_file_format=Barracuda +performance_schema=OFF + wsrep_provider=@ENV.WSREP_PROVIDER wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port' wsrep_provider_options='base_port=@mysqld.2.#galera_port' wsrep_sst_receive_address='127.0.0.1:@mysqld.2.#sst_port' # enforce read-committed characteristics across the cluster wsrep_causal_reads=ON +wsrep_sync_wait = 7 +wsrep_node_address=127.0.0.1 +wsrep_node_incoming_address=127.0.0.1 [ENV] NODE_MYPORT_1= @mysqld.1.port diff --git a/mysql-test/suite/galera/r/galera_fk_cascade_delete.result b/mysql-test/suite/galera/r/galera_fk_cascade_delete.result new file mode 100644 index 00000000000..89f4301a0b4 --- /dev/null +++ b/mysql-test/suite/galera/r/galera_fk_cascade_delete.result @@ -0,0 +1,30 @@ +CREATE TABLE grandparent ( +id INT NOT NULL PRIMARY KEY +) ENGINE=InnoDB; +CREATE TABLE parent ( +id INT NOT NULL PRIMARY KEY, +grandparent_id INT, +FOREIGN KEY (grandparent_id) +REFERENCES grandparent(id) +ON DELETE CASCADE +) ENGINE=InnoDB; +CREATE TABLE child ( +id INT NOT NULL PRIMARY KEY, +parent_id INT, +FOREIGN KEY (parent_id) +REFERENCES parent(id) +ON DELETE CASCADE +) ENGINE=InnoDB; +INSERT INTO grandparent VALUES (1),(2); +INSERT INTO parent VALUES (1,1), (2,2); +INSERT INTO child VALUES (1,1), (2,2); +DELETE FROM grandparent WHERE id = 1; +SELECT COUNT(*) = 0 FROM parent WHERE grandparent_id = 1; +COUNT(*) = 0 +1 +SELECT COUNT(*) = 0 FROM child WHERE parent_id = 1; +COUNT(*) = 0 +1 +DROP TABLE child; +DROP TABLE parent; +DROP TABLE grandparent; diff --git a/mysql-test/suite/galera/r/galera_fk_cascade_update.result b/mysql-test/suite/galera/r/galera_fk_cascade_update.result new file mode 100644 index 00000000000..2ab2ad31a13 --- /dev/null +++ b/mysql-test/suite/galera/r/galera_fk_cascade_update.result @@ -0,0 +1,30 @@ +CREATE TABLE grandparent ( +id INT NOT NULL PRIMARY KEY +) ENGINE=InnoDB; +CREATE TABLE parent ( +id INT NOT NULL PRIMARY KEY, +grandparent_id INT, +FOREIGN KEY (grandparent_id) +REFERENCES grandparent(id) +ON UPDATE CASCADE +) ENGINE=InnoDB; +CREATE TABLE child ( +id INT NOT NULL PRIMARY KEY, +grandparent_id INT, +FOREIGN KEY (grandparent_id) +REFERENCES parent(grandparent_id) +ON UPDATE CASCADE +) ENGINE=InnoDB; +INSERT INTO grandparent VALUES (1),(2); +INSERT INTO parent VALUES (1,1), (2,2); +INSERT INTO child VALUES (1,1), (2,2); +UPDATE grandparent SET id = 3 WHERE id = 1; +SELECT COUNT(*) = 1 FROM parent WHERE grandparent_id = 3; +COUNT(*) = 1 +1 +SELECT COUNT(*) = 1 FROM child WHERE grandparent_id = 3; +COUNT(*) = 1 +1 +DROP TABLE child; +DROP TABLE parent; +DROP TABLE grandparent; diff --git a/mysql-test/suite/galera/r/galera_fk_conflict.result b/mysql-test/suite/galera/r/galera_fk_conflict.result new file mode 100644 index 00000000000..ae6c4823a54 --- /dev/null +++ b/mysql-test/suite/galera/r/galera_fk_conflict.result @@ -0,0 +1,23 @@ +CREATE TABLE parent ( +id INT PRIMARY KEY, +KEY (id) +) ENGINE=InnoDB; +CREATE TABLE child ( +id INT PRIMARY KEY, +parent_id INT, +FOREIGN KEY (parent_id) +REFERENCES parent(id) +) ENGINE=InnoDB; +INSERT INTO parent VALUES (1), (2); +INSERT INTO child VALUES (1,1); +SET AUTOCOMMIT = OFF; +START TRANSACTION; +DELETE FROM parent WHERE id = 2; +SET AUTOCOMMIT = OFF; +START TRANSACTION; +INSERT INTO child VALUES (2, 2); +COMMIT; +COMMIT; +ERROR 40001: Deadlock found when trying to get lock; try restarting transaction +DROP TABLE child; +DROP TABLE parent; diff --git a/mysql-test/suite/galera/r/galera_fk_mismatch.result b/mysql-test/suite/galera/r/galera_fk_mismatch.result new file mode 100644 index 00000000000..07cdb1b09a2 --- /dev/null +++ b/mysql-test/suite/galera/r/galera_fk_mismatch.result @@ -0,0 +1,25 @@ +CREATE TABLE parent ( +id1 INT, +id2 INT, +PRIMARY KEY (id1, id2) /* Multipart PK */ +) ENGINE=InnoDB; +CREATE TABLE child ( +id INT PRIMARY KEY, +parent_id1 INT, +FOREIGN KEY (parent_id1) +REFERENCES parent(id1) /* FK is subset of PK above */ +ON UPDATE CASCADE +ON DELETE CASCADE +) ENGINE=InnoDB; +INSERT INTO parent VALUES (1, 2); +INSERT INTO child VALUES (1, 1); +UPDATE parent SET id1 = 3 WHERE id1 = 1; +SELECT COUNT(*) = 1 FROM child WHERE parent_id1 = 3; +COUNT(*) = 1 +1 +DELETE FROM parent WHERE id1 = 3; +SELECT COUNT(*) = 0 FROM child WHERE parent_id1 = 3; +COUNT(*) = 0 +1 +DROP TABLE child; +DROP TABLE parent; diff --git a/mysql-test/suite/galera/r/galera_fk_multicolumn.result b/mysql-test/suite/galera/r/galera_fk_multicolumn.result new file mode 100644 index 00000000000..62ec9f85cd4 --- /dev/null +++ b/mysql-test/suite/galera/r/galera_fk_multicolumn.result @@ -0,0 +1,35 @@ +CREATE TABLE t0 ( +f1 INT PRIMARY KEY, +f2 INT UNIQUE +) ENGINE=INNODB; +CREATE TABLE t1 ( +f1 INT PRIMARY KEY, +FOREIGN KEY (f1) +REFERENCES t0(f1) +ON UPDATE CASCADE +) ENGINE=INNODB; +CREATE TABLE t2 ( +f2 INT PRIMARY KEY, +FOREIGN KEY (f2) +REFERENCES t0(f2) +ON UPDATE CASCADE +) ENGINE=INNODB; +INSERT INTO t0 VALUES (0, 0); +INSERT INTO t1 VALUES (0); +INSERT INTO t2 VALUES (0); +UPDATE t0 SET f1 = 1, f2 = 2; +SELECT f1 = 1 FROM t1 WHERE f1 = 1; +f1 = 1 +1 +SELECT f2 = 2 FROM t2 WHERE f2 = 2; +f2 = 2 +1 +SELECT f1 = 1 FROM t1; +f1 = 1 +1 +SELECT f2 = 2 FROM t2; +f2 = 2 +1 +DROP TABLE t2; +DROP TABLE t1; +DROP TABLE t0; diff --git a/mysql-test/suite/galera/r/galera_fk_multitable.result b/mysql-test/suite/galera/r/galera_fk_multitable.result new file mode 100644 index 00000000000..410565eb0ed --- /dev/null +++ b/mysql-test/suite/galera/r/galera_fk_multitable.result @@ -0,0 +1,22 @@ +CREATE TABLE t0 ( +f0 INT PRIMARY KEY +) ENGINE=INNODB; +CREATE TABLE t1 ( +f1 INT PRIMARY KEY, +f0 INTEGER, +FOREIGN KEY (f0) +REFERENCES t0(f0) +ON DELETE CASCADE +) ENGINE=INNODB; +INSERT INTO t0 VALUES (0), (1); +INSERT INTO t1 VALUES (0, 0); +INSERT INTO t1 VALUES (1, 0); +DELETE t0.*, t1.* FROM t0, t1 WHERE t0.f0 = 0 AND t1.f1 = 0; +SELECT COUNT(*) = 1 FROM t0; +COUNT(*) = 1 +1 +SELECT COUNT(*) = 0 FROM t1; +COUNT(*) = 0 +1 +DROP TABLE t1; +DROP TABLE t0; diff --git a/mysql-test/suite/galera/r/galera_fk_no_pk.result b/mysql-test/suite/galera/r/galera_fk_no_pk.result new file mode 100644 index 00000000000..e4f92863d92 --- /dev/null +++ b/mysql-test/suite/galera/r/galera_fk_no_pk.result @@ -0,0 +1,28 @@ +CREATE TABLE parent ( +id INT, +KEY (id) +) ENGINE=InnoDB; +CREATE TABLE child ( +id INT, +parent_id INT, +FOREIGN KEY (parent_id) +REFERENCES parent(id) +ON UPDATE CASCADE +ON DELETE CASCADE +) ENGINE=InnoDB; +INSERT INTO parent VALUES (1), (1), (2), (2); +INSERT INTO child VALUES (1,1), (2,2), (1,1), (2,2); +DELETE FROM parent WHERE id = 1; +SELECT COUNT(*) = 0 FROM child WHERE id = 1; +COUNT(*) = 0 +1 +UPDATE parent SET id = 3 WHERE id = 2; +SELECT COUNT(*) = 0 FROM child WHERE parent_id = 1; +COUNT(*) = 0 +1 +SELECT parent_id = 3 FROM child WHERE id = 2; +parent_id = 3 +1 +1 +DROP TABLE child; +DROP TABLE parent; diff --git a/mysql-test/suite/galera/r/galera_fk_selfreferential.result b/mysql-test/suite/galera/r/galera_fk_selfreferential.result new file mode 100644 index 00000000000..25c37046e88 --- /dev/null +++ b/mysql-test/suite/galera/r/galera_fk_selfreferential.result @@ -0,0 +1,13 @@ +CREATE TABLE t1 ( +f1 INT NOT NULL PRIMARY KEY, +f2 INT, +FOREIGN KEY (f2) +REFERENCES t1(f1) +ON DELETE CASCADE +) ENGINE=InnoDB; +INSERT INTO t1 VALUES (1, 1), (2, 1); +DELETE FROM t1 WHERE f1 = 1; +SELECT COUNT(*) = 0 FROM t1; +COUNT(*) = 0 +1 +DROP TABLE t1; diff --git a/mysql-test/suite/galera/r/galera_fk_setnull.result b/mysql-test/suite/galera/r/galera_fk_setnull.result new file mode 100644 index 00000000000..f7fb9d04040 --- /dev/null +++ b/mysql-test/suite/galera/r/galera_fk_setnull.result @@ -0,0 +1,30 @@ +CREATE TABLE parent ( +id INT NOT NULL, +PRIMARY KEY (id) +) ENGINE=InnoDB; +CREATE TABLE child ( +id INT, +parent_id INT, +FOREIGN KEY (parent_id) +REFERENCES parent(id) +ON UPDATE SET NULL +ON DELETE SET NULL +) ENGINE=InnoDB; +INSERT INTO parent VALUES (1),(2); +INSERT INTO child VALUES (1,1),(2,2); +DELETE FROM parent WHERE id = 1; +SELECT parent_id IS NULL FROM child WHERE id = 1; +parent_id IS NULL +1 +SELECT parent_id IS NULL FROM child WHERE id = 1; +parent_id IS NULL +1 +UPDATE parent SET id = 3 WHERE id = 2; +SELECT parent_id IS NULL FROM child WHERE id = 2; +parent_id IS NULL +1 +SELECT parent_id IS NULL FROM child WHERE id = 2; +parent_id IS NULL +1 +DROP TABLE child; +DROP TABLE parent; diff --git a/mysql-test/suite/galera/r/galera_many_columns.result b/mysql-test/suite/galera/r/galera_many_columns.result new file mode 100644 index 00000000000..ba7b9116e7c --- /dev/null +++ b/mysql-test/suite/galera/r/galera_many_columns.result @@ -0,0 +1,1050 @@ +CREATE TABLE t1 (f1017 VARCHAR(3) DEFAULT 'ABC') ENGINE=InnoDB; +ALTER TABLE t1 ADD COLUMN f1016 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f1015 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f1014 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f1013 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f1012 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f1011 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f1010 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f1009 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f1008 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f1007 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f1006 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f1005 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f1004 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f1003 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f1002 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f1001 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f1000 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f999 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f998 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f997 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f996 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f995 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f994 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f993 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f992 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f991 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f990 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f989 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f988 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f987 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f986 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f985 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f984 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f983 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f982 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f981 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f980 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f979 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f978 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f977 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f976 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f975 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f974 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f973 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f972 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f971 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f970 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f969 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f968 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f967 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f966 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f965 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f964 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f963 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f962 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f961 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f960 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f959 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f958 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f957 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f956 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f955 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f954 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f953 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f952 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f951 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f950 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f949 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f948 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f947 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f946 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f945 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f944 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f943 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f942 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f941 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f940 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f939 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f938 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f937 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f936 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f935 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f934 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f933 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f932 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f931 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f930 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f929 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f928 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f927 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f926 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f925 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f924 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f923 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f922 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f921 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f920 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f919 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f918 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f917 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f916 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f915 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f914 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f913 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f912 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f911 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f910 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f909 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f908 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f907 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f906 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f905 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f904 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f903 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f902 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f901 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f900 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f899 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f898 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f897 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f896 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f895 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f894 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f893 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f892 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f891 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f890 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f889 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f888 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f887 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f886 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f885 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f884 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f883 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f882 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f881 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f880 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f879 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f878 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f877 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f876 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f875 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f874 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f873 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f872 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f871 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f870 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f869 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f868 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f867 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f866 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f865 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f864 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f863 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f862 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f861 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f860 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f859 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f858 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f857 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f856 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f855 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f854 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f853 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f852 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f851 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f850 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f849 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f848 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f847 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f846 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f845 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f844 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f843 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f842 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f841 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f840 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f839 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f838 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f837 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f836 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f835 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f834 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f833 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f832 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f831 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f830 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f829 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f828 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f827 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f826 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f825 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f824 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f823 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f822 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f821 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f820 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f819 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f818 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f817 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f816 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f815 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f814 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f813 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f812 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f811 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f810 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f809 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f808 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f807 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f806 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f805 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f804 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f803 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f802 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f801 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f800 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f799 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f798 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f797 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f796 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f795 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f794 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f793 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f792 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f791 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f790 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f789 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f788 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f787 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f786 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f785 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f784 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f783 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f782 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f781 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f780 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f779 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f778 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f777 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f776 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f775 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f774 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f773 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f772 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f771 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f770 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f769 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f768 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f767 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f766 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f765 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f764 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f763 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f762 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f761 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f760 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f759 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f758 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f757 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f756 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f755 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f754 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f753 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f752 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f751 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f750 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f749 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f748 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f747 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f746 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f745 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f744 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f743 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f742 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f741 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f740 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f739 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f738 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f737 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f736 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f735 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f734 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f733 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f732 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f731 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f730 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f729 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f728 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f727 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f726 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f725 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f724 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f723 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f722 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f721 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f720 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f719 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f718 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f717 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f716 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f715 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f714 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f713 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f712 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f711 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f710 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f709 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f708 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f707 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f706 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f705 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f704 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f703 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f702 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f701 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f700 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f699 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f698 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f697 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f696 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f695 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f694 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f693 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f692 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f691 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f690 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f689 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f688 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f687 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f686 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f685 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f684 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f683 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f682 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f681 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f680 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f679 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f678 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f677 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f676 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f675 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f674 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f673 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f672 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f671 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f670 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f669 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f668 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f667 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f666 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f665 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f664 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f663 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f662 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f661 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f660 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f659 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f658 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f657 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f656 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f655 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f654 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f653 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f652 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f651 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f650 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f649 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f648 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f647 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f646 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f645 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f644 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f643 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f642 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f641 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f640 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f639 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f638 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f637 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f636 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f635 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f634 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f633 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f632 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f631 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f630 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f629 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f628 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f627 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f626 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f625 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f624 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f623 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f622 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f621 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f620 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f619 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f618 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f617 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f616 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f615 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f614 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f613 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f612 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f611 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f610 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f609 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f608 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f607 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f606 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f605 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f604 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f603 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f602 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f601 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f600 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f599 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f598 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f597 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f596 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f595 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f594 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f593 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f592 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f591 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f590 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f589 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f588 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f587 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f586 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f585 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f584 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f583 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f582 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f581 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f580 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f579 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f578 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f577 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f576 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f575 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f574 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f573 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f572 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f571 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f570 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f569 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f568 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f567 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f566 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f565 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f564 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f563 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f562 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f561 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f560 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f559 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f558 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f557 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f556 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f555 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f554 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f553 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f552 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f551 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f550 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f549 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f548 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f547 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f546 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f545 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f544 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f543 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f542 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f541 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f540 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f539 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f538 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f537 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f536 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f535 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f534 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f533 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f532 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f531 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f530 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f529 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f528 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f527 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f526 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f525 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f524 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f523 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f522 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f521 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f520 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f519 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f518 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f517 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f516 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f515 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f514 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f513 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f512 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f511 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f510 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f509 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f508 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f507 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f506 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f505 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f504 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f503 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f502 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f501 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f500 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f499 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f498 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f497 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f496 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f495 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f494 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f493 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f492 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f491 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f490 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f489 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f488 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f487 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f486 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f485 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f484 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f483 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f482 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f481 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f480 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f479 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f478 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f477 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f476 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f475 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f474 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f473 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f472 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f471 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f470 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f469 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f468 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f467 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f466 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f465 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f464 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f463 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f462 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f461 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f460 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f459 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f458 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f457 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f456 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f455 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f454 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f453 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f452 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f451 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f450 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f449 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f448 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f447 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f446 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f445 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f444 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f443 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f442 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f441 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f440 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f439 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f438 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f437 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f436 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f435 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f434 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f433 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f432 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f431 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f430 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f429 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f428 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f427 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f426 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f425 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f424 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f423 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f422 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f421 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f420 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f419 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f418 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f417 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f416 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f415 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f414 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f413 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f412 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f411 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f410 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f409 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f408 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f407 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f406 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f405 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f404 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f403 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f402 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f401 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f400 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f399 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f398 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f397 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f396 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f395 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f394 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f393 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f392 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f391 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f390 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f389 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f388 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f387 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f386 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f385 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f384 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f383 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f382 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f381 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f380 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f379 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f378 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f377 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f376 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f375 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f374 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f373 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f372 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f371 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f370 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f369 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f368 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f367 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f366 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f365 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f364 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f363 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f362 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f361 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f360 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f359 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f358 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f357 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f356 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f355 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f354 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f353 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f352 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f351 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f350 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f349 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f348 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f347 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f346 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f345 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f344 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f343 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f342 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f341 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f340 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f339 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f338 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f337 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f336 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f335 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f334 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f333 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f332 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f331 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f330 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f329 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f328 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f327 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f326 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f325 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f324 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f323 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f322 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f321 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f320 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f319 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f318 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f317 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f316 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f315 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f314 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f313 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f312 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f311 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f310 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f309 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f308 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f307 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f306 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f305 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f304 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f303 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f302 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f301 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f300 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f299 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f298 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f297 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f296 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f295 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f294 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f293 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f292 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f291 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f290 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f289 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f288 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f287 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f286 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f285 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f284 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f283 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f282 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f281 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f280 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f279 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f278 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f277 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f276 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f275 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f274 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f273 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f272 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f271 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f270 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f269 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f268 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f267 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f266 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f265 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f264 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f263 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f262 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f261 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f260 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f259 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f258 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f257 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f256 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f255 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f254 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f253 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f252 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f251 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f250 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f249 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f248 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f247 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f246 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f245 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f244 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f243 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f242 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f241 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f240 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f239 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f238 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f237 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f236 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f235 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f234 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f233 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f232 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f231 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f230 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f229 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f228 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f227 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f226 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f225 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f224 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f223 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f222 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f221 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f220 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f219 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f218 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f217 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f216 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f215 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f214 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f213 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f212 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f211 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f210 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f209 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f208 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f207 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f206 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f205 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f204 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f203 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f202 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f201 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f200 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f199 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f198 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f197 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f196 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f195 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f194 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f193 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f192 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f191 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f190 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f189 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f188 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f187 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f186 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f185 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f184 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f183 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f182 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f181 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f180 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f179 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f178 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f177 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f176 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f175 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f174 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f173 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f172 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f171 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f170 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f169 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f168 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f167 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f166 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f165 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f164 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f163 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f162 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f161 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f160 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f159 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f158 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f157 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f156 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f155 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f154 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f153 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f152 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f151 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f150 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f149 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f148 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f147 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f146 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f145 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f144 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f143 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f142 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f141 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f140 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f139 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f138 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f137 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f136 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f135 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f134 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f133 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f132 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f131 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f130 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f129 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f128 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f127 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f126 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f125 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f124 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f123 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f122 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f121 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f120 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f119 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f118 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f117 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f116 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f115 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f114 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f113 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f112 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f111 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f110 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f109 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f108 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f107 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f106 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f105 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f104 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f103 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f102 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f101 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f100 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f99 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f98 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f97 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f96 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f95 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f94 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f93 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f92 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f91 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f90 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f89 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f88 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f87 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f86 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f85 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f84 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f83 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f82 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f81 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f80 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f79 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f78 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f77 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f76 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f75 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f74 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f73 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f72 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f71 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f70 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f69 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f68 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f67 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f66 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f65 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f64 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f63 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f62 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f61 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f60 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f59 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f58 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f57 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f56 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f55 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f54 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f53 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f52 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f51 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f50 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f49 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f48 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f47 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f46 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f45 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f44 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f43 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f42 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f41 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f40 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f39 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f38 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f37 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f36 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f35 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f34 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f33 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f32 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f31 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f30 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f29 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f28 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f27 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f26 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f25 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f24 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f23 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f22 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f21 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f20 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f19 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f18 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f17 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f16 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f15 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f14 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f13 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f12 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f11 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f10 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f9 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f8 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f7 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f6 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f5 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f4 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f3 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f2 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD COLUMN f1 VARCHAR(3) DEFAULT 'ABC'; +ALTER TABLE t1 ADD PRIMARY KEY (f1, f1017); +INSERT INTO t1 (f1) VALUES (DEFAULT); +SELECT f1 = 'ABC', f1017 = 'ABC' FROM t1; +f1 = 'ABC' f1017 = 'ABC' +1 1 +UPDATE t1 SET f1 = 'XYZ', f1017 = 'XYZ' ; +SELECT f1 = 'XYZ', f1017 = 'XYZ' FROM t1 WHERE f1 = 'XYZ' AND f1017 = 'XYZ'; +f1 = 'XYZ' f1017 = 'XYZ' +1 1 +SET AUTOCOMMIT=OFF; +START TRANSACTION; +UPDATE t1 SET f2 = 'KLM' WHERE f1 = 'XYZ' AND f1017 = 'XYZ'; +SET AUTOCOMMIT=OFF; +START TRANSACTION; +UPDATE t1 SET f2 = 'CDE' WHERE f1 = 'XYZ' AND f1017 = 'XYZ'; +COMMIT; +COMMIT; +ERROR 40001: Deadlock found when trying to get lock; try restarting transaction +ROLLBACK; +ROLLBACK; +START TRANSACTION; +INSERT INTO t1 (f1, f1017) VALUES ('BCE','BCE'); +INSERT INTO t1 (f1, f1017) VALUES ('CED','CED'); +INSERT INTO t1 (f1, f1017) VALUES ('EDF','EDF'); +INSERT INTO t1 (f1, f1017) VALUES ('FED','FED'); +ROLLBACK; +SELECT COUNT(*) = 1 FROM t1; +COUNT(*) = 1 +1 +SELECT COUNT(*) = 1 FROM t1; +COUNT(*) = 1 +1 +DROP TABLE t1; diff --git a/mysql-test/suite/galera/r/galera_many_indexes.result b/mysql-test/suite/galera/r/galera_many_indexes.result new file mode 100644 index 00000000000..ab6eec550a1 --- /dev/null +++ b/mysql-test/suite/galera/r/galera_many_indexes.result @@ -0,0 +1,123 @@ +CREATE TABLE t1 (f1 VARCHAR(767) PRIMARY KEY) ENGINE=InnoDB; +CREATE UNIQUE INDEX i63 ON t1(f1); +CREATE UNIQUE INDEX i62 ON t1(f1); +CREATE UNIQUE INDEX i61 ON t1(f1); +CREATE UNIQUE INDEX i60 ON t1(f1); +CREATE UNIQUE INDEX i59 ON t1(f1); +CREATE UNIQUE INDEX i58 ON t1(f1); +CREATE UNIQUE INDEX i57 ON t1(f1); +CREATE UNIQUE INDEX i56 ON t1(f1); +CREATE UNIQUE INDEX i55 ON t1(f1); +CREATE UNIQUE INDEX i54 ON t1(f1); +CREATE UNIQUE INDEX i53 ON t1(f1); +CREATE UNIQUE INDEX i52 ON t1(f1); +CREATE UNIQUE INDEX i51 ON t1(f1); +CREATE UNIQUE INDEX i50 ON t1(f1); +CREATE UNIQUE INDEX i49 ON t1(f1); +CREATE UNIQUE INDEX i48 ON t1(f1); +CREATE UNIQUE INDEX i47 ON t1(f1); +CREATE UNIQUE INDEX i46 ON t1(f1); +CREATE UNIQUE INDEX i45 ON t1(f1); +CREATE UNIQUE INDEX i44 ON t1(f1); +CREATE UNIQUE INDEX i43 ON t1(f1); +CREATE UNIQUE INDEX i42 ON t1(f1); +CREATE UNIQUE INDEX i41 ON t1(f1); +CREATE UNIQUE INDEX i40 ON t1(f1); +CREATE UNIQUE INDEX i39 ON t1(f1); +CREATE UNIQUE INDEX i38 ON t1(f1); +CREATE UNIQUE INDEX i37 ON t1(f1); +CREATE UNIQUE INDEX i36 ON t1(f1); +CREATE UNIQUE INDEX i35 ON t1(f1); +CREATE UNIQUE INDEX i34 ON t1(f1); +CREATE UNIQUE INDEX i33 ON t1(f1); +CREATE UNIQUE INDEX i32 ON t1(f1); +CREATE UNIQUE INDEX i31 ON t1(f1); +CREATE UNIQUE INDEX i30 ON t1(f1); +CREATE UNIQUE INDEX i29 ON t1(f1); +CREATE UNIQUE INDEX i28 ON t1(f1); +CREATE UNIQUE INDEX i27 ON t1(f1); +CREATE UNIQUE INDEX i26 ON t1(f1); +CREATE UNIQUE INDEX i25 ON t1(f1); +CREATE UNIQUE INDEX i24 ON t1(f1); +CREATE UNIQUE INDEX i23 ON t1(f1); +CREATE UNIQUE INDEX i22 ON t1(f1); +CREATE UNIQUE INDEX i21 ON t1(f1); +CREATE UNIQUE INDEX i20 ON t1(f1); +CREATE UNIQUE INDEX i19 ON t1(f1); +CREATE UNIQUE INDEX i18 ON t1(f1); +CREATE UNIQUE INDEX i17 ON t1(f1); +CREATE UNIQUE INDEX i16 ON t1(f1); +CREATE UNIQUE INDEX i15 ON t1(f1); +CREATE UNIQUE INDEX i14 ON t1(f1); +CREATE UNIQUE INDEX i13 ON t1(f1); +CREATE UNIQUE INDEX i12 ON t1(f1); +CREATE UNIQUE INDEX i11 ON t1(f1); +CREATE UNIQUE INDEX i10 ON t1(f1); +CREATE UNIQUE INDEX i9 ON t1(f1); +CREATE UNIQUE INDEX i8 ON t1(f1); +CREATE UNIQUE INDEX i7 ON t1(f1); +CREATE UNIQUE INDEX i6 ON t1(f1); +CREATE UNIQUE INDEX i5 ON t1(f1); +CREATE UNIQUE INDEX i4 ON t1(f1); +CREATE UNIQUE INDEX i3 ON t1(f1); +CREATE UNIQUE INDEX i2 ON t1(f1); +CREATE UNIQUE INDEX i1 ON t1(f1); +INSERT INTO t1 VALUES (REPEAT('a', 767)); +SELECT COUNT(*) = 1 FROM t1; +COUNT(*) = 1 +1 +SELECT LENGTH(f1) = 767 FROM t1; +LENGTH(f1) = 767 +1 +EXPLAIN SELECT COUNT(*) = 1 FROM t1 FORCE KEY (PRIMARY) WHERE f1 = REPEAT('a', 767); +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 const PRIMARY PRIMARY 769 const 1 Using index +SELECT COUNT(*) = 1 FROM t1 FORCE KEY (PRIMARY) WHERE f1 = REPEAT('a', 767); +COUNT(*) = 1 +1 +EXPLAIN SELECT COUNT(*) = 1 FROM t1 FORCE KEY (i1) WHERE f1 = REPEAT('a', 767); +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 const i1 i1 769 const 1 Using index +SELECT COUNT(*) = 1 FROM t1 FORCE KEY (i1) WHERE f1 = REPEAT('a', 767); +COUNT(*) = 1 +1 +EXPLAIN SELECT COUNT(*) = 1 FROM t1 FORCE KEY (i63) WHERE f1 = REPEAT('a', 767); +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 const i63 i63 769 const 1 Using index +SELECT COUNT(*) = 1 FROM t1 FORCE KEY (i63) WHERE f1 = REPEAT('a', 767); +COUNT(*) = 1 +1 +INSERT INTO t1 VALUES (REPEAT('b', 767)); +ANALYZE TABLE t1; +Table Op Msg_type Msg_text +test.t1 analyze status OK +SELECT COUNT(*) = 2 FROM t1; +COUNT(*) = 2 +1 +ANALYZE TABLE t1; +Table Op Msg_type Msg_text +test.t1 analyze status OK +DELETE FROM t1 WHERE f1 = REPEAT('b', 767); +SET AUTOCOMMIT=OFF; +START TRANSACTION; +SELECT COUNT(*) = 1 FROM t1; +COUNT(*) = 1 +1 +INSERT INTO t1 (f1) VALUES (REPEAT('c', 767)); +ROLLBACK; +SELECT COUNT(*) = 1 FROM t1; +COUNT(*) = 1 +1 +START TRANSACTION; +SET AUTOCOMMIT=OFF; +SELECT COUNT(*) = 1 FROM t1; +COUNT(*) = 1 +1 +START TRANSACTION; +START TRANSACTION; +UPDATE t1 SET f1 = REPEAT('e', 767); +UPDATE t1 SET f1 = REPEAT('f', 767); +COMMIT; +COMMIT; +ERROR 40001: Deadlock found when trying to get lock; try restarting transaction +DROP TABLE t1; diff --git a/mysql-test/suite/galera/r/galera_many_rows.result b/mysql-test/suite/galera/r/galera_many_rows.result new file mode 100644 index 00000000000..fdcec573030 --- /dev/null +++ b/mysql-test/suite/galera/r/galera_many_rows.result @@ -0,0 +1,41 @@ +CREATE TABLE ten (f1 INTEGER) ENGINE=INNODB; +INSERT INTO ten VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10); +CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, f2 INTEGER) Engine=InnoDB; +INSERT INTO t1 (f2) SELECT a1.f1 FROM ten AS a1, ten AS a2, ten AS a3, ten AS a4, ten AS a5; +SELECT COUNT(*) = 100000 FROM t1; +COUNT(*) = 100000 +1 +INSERT INTO t1 (f2) SELECT a1.f1 FROM ten AS a1, ten AS a2, ten AS a3, ten AS a4, ten AS a5; +SELECT COUNT(*) = 200000 FROM t1; +COUNT(*) = 200000 +1 +UPDATE t1 SET f2 = 1; +SELECT COUNT(*) = 200000 FROM t1 WHERE f2 = 1; +COUNT(*) = 200000 +1 +SET AUTOCOMMIT=OFF; +START TRANSACTION; +INSERT INTO t1 (f2) SELECT a1.f1 FROM ten AS a1, ten AS a2, ten AS a3, ten AS a4, ten AS a5; +ROLLBACK; +SELECT COUNT(*) = 200000 FROM t1; +COUNT(*) = 200000 +1 +SELECT COUNT(*) = 200000 FROM t1; +COUNT(*) = 200000 +1 +SET AUTOCOMMIT=OFF; +START TRANSACTION; +UPDATE t1 SET f2 = 2; +ROLLBACK; +START TRANSACTION; +SELECT COUNT(*) = 200000 FROM t1; +COUNT(*) = 200000 +1 +UPDATE t1 SET f2 = 3; +START TRANSACTION; +UPDATE t1 SET f2 = 4; +COMMIT; +COMMIT; +ERROR 40001: Deadlock found when trying to get lock; try restarting transaction +DROP TABLE t1; +DROP TABLE ten; diff --git a/mysql-test/suite/galera/r/galera_nopk_bit.result b/mysql-test/suite/galera/r/galera_nopk_bit.result new file mode 100644 index 00000000000..5723dac42fd --- /dev/null +++ b/mysql-test/suite/galera/r/galera_nopk_bit.result @@ -0,0 +1,27 @@ +CREATE TABLE t1 (f1 BIT) ENGINE=InnoDB; +INSERT INTO t1 VALUES (NULL),(0),(b'1'); +SELECT f1 IS NULL, f1 = b'1' FROM t1; +f1 IS NULL f1 = b'1' +1 NULL +0 0 +0 1 +DELETE FROM t1 WHERE f1 = b'1'; +UPDATE t1 SET f1 = b'1' WHERE f1 IS NULL; +UPDATE t1 SET f1 = 1 WHERE f1 = b'0'; +SELECT f1 IS NULL, f1 = b'1' FROM t1; +f1 IS NULL f1 = b'1' +0 1 +0 1 +CREATE TABLE t2 (f1 BIT) ENGINE=InnoDB; +INSERT INTO t2 VALUES (NULL); +SET AUTOCOMMIT=OFF; +START TRANSACTION; +UPDATE t2 SET f1 = 0 WHERE f1 IS NULL; +SET AUTOCOMMIT=OFF; +START TRANSACTION; +UPDATE t2 SET f1 = 1 WHERE f1 IS NULL; +COMMIT; +COMMIT; +ERROR 40001: Deadlock found when trying to get lock; try restarting transaction +DROP TABLE t1; +DROP TABLE t2; diff --git a/mysql-test/suite/galera/r/galera_nopk_blob.result b/mysql-test/suite/galera/r/galera_nopk_blob.result new file mode 100644 index 00000000000..7491b715ed2 --- /dev/null +++ b/mysql-test/suite/galera/r/galera_nopk_blob.result @@ -0,0 +1,27 @@ +CREATE TABLE t1 (f1 BLOB) ENGINE=InnoDB; +INSERT INTO t1 VALUES (NULL),('abc'); +SELECT f1 FROM t1; +f1 +NULL +abc +DELETE FROM t1 WHERE f1 IS NULL; +UPDATE t1 SET f1 = 'xyz' WHERE f1 = 'abc'; +SELECT COUNT(*) = 1 FROM t1; +COUNT(*) = 1 +1 +SELECT f1 = 'abc' FROM t1; +f1 = 'abc' +0 +CREATE TABLE t2 (f1 BLOB) ENGINE=InnoDB; +INSERT INTO t2 VALUES (NULL); +SET AUTOCOMMIT=OFF; +START TRANSACTION; +UPDATE t2 SET f1 = 'abc' WHERE f1 IS NULL; +SET AUTOCOMMIT=OFF; +START TRANSACTION; +UPDATE t2 SET f1 = 'xyz' WHERE f1 IS NULL; +COMMIT; +COMMIT; +ERROR 40001: Deadlock found when trying to get lock; try restarting transaction +DROP TABLE t1; +DROP TABLE t2; diff --git a/mysql-test/suite/galera/r/galera_nopk_large_varchar.result b/mysql-test/suite/galera/r/galera_nopk_large_varchar.result new file mode 100644 index 00000000000..abca81e15b0 --- /dev/null +++ b/mysql-test/suite/galera/r/galera_nopk_large_varchar.result @@ -0,0 +1,30 @@ +CREATE TABLE t1 (f1 VARCHAR(8000)) ENGINE=InnoDB; +INSERT INTO t1 VALUES (NULL),(CONCAT(REPEAT('x', 7999), 'a')); +SELECT LENGTH(f1) FROM t1; +LENGTH(f1) +NULL +8000 +DELETE FROM t1 WHERE f1 IS NULL; +UPDATE t1 SET f1 = CONCAT(REPEAT('x', 7999), 'b') WHERE f1 = CONCAT(REPEAT('x', 7999), 'a'); +SELECT COUNT(*) = 1 FROM t1; +COUNT(*) = 1 +1 +SELECT LENGTH(f1) = 8000 FROM t1; +LENGTH(f1) = 8000 +1 +SELECT f1 = CONCAT(REPEAT('x', 7999), 'b') FROM t1; +f1 = CONCAT(REPEAT('x', 7999), 'b') +1 +CREATE TABLE t2 (f1 BLOB) ENGINE=InnoDB; +INSERT INTO t2 VALUES (CONCAT(REPEAT('x', 7999), 'a')); +SET AUTOCOMMIT=OFF; +START TRANSACTION; +UPDATE t2 SET f1 = 'abc' WHERE f1 = CONCAT(REPEAT('x', 7999), 'a'); +SET AUTOCOMMIT=OFF; +START TRANSACTION; +UPDATE t2 SET f1 = 'xyz' WHERE f1 = CONCAT(REPEAT('x', 7999), 'a'); +COMMIT; +COMMIT; +ERROR 40001: Deadlock found when trying to get lock; try restarting transaction +DROP TABLE t1; +DROP TABLE t2; diff --git a/mysql-test/suite/galera/r/galera_unicode_identifiers.result b/mysql-test/suite/galera/r/galera_unicode_identifiers.result new file mode 100644 index 00000000000..cb348f8509f --- /dev/null +++ b/mysql-test/suite/galera/r/galera_unicode_identifiers.result @@ -0,0 +1,46 @@ +SET GLOBAL wsrep_sync_wait = 7; +SET GLOBAL wsrep_sync_wait = 7; +CREATE DATABASE `database with space`; +USE `database with space`; +CREATE TABLE `table with space` ( +`column with space` INTEGER AUTO_INCREMENT PRIMARY KEY, +`second column with space` INTEGER, +UNIQUE `index name with space` (`second column with space`) +) ENGINE=INNODB; +INSERT INTO `table with space` VALUES (DEFAULT, 1); +CREATE DATABASE `база`; +USE `база`; +CREATE TABLE `таблица` ( +`първа_колона` INTEGER PRIMARY KEY, +`втора_колона` INTEGER, +UNIQUE `индекс` (`втора_колона`) +) ENGINE=INNODB; +INSERT INTO `таблица` VALUES (1, 1); +CREATE DATABASE `втора база`; +USE `втора база`; +CREATE TABLE `втора таблица` ( +`първа колона` INTEGER, +`втора колона` INTEGER, +KEY `първи индекс` (`първа колона`) +) ENGINE=INNODB; +INSERT INTO `втора таблица` VALUES (1, 1); +USE `database with space`; +SELECT * FROM `table with space`; +column with space second column with space +1 1 +USE `база`; +SELECT * FROM `таблица`; +първа_колона втора_колона +1 1 +USE `втора база`; +SELECT * FROM `втора таблица`; +първа колона втора колона +1 1 +SET GLOBAL wsrep_sync_wait = (SELECT @@wsrep_sync_wait); +DROP TABLE `database with space`.`table with space`; +DROP TABLE `база`.`таблица`; +DROP TABLE `втора база`.`втора таблица`; +DROP DATABASE `database with space`; +DROP DATABASE `база`; +DROP DATABASE `втора база`; +SET GLOBAL wsrep_sync_wait = (SELECT @@wsrep_sync_wait); diff --git a/mysql-test/suite/galera/r/galera_var_auto_inc_control_off.result b/mysql-test/suite/galera/r/galera_var_auto_inc_control_off.result new file mode 100644 index 00000000000..87d6020d47c --- /dev/null +++ b/mysql-test/suite/galera/r/galera_var_auto_inc_control_off.result @@ -0,0 +1,67 @@ +SET GLOBAL wsrep_auto_increment_control = OFF; +SET GLOBAL auto_increment_increment = 1; +SET GLOBAL auto_increment_offset = 1; +SET GLOBAL wsrep_auto_increment_control = OFF; +SET GLOBAL auto_increment_increment = 1; +SET GLOBAL auto_increment_offset = 1; +SELECT @@auto_increment_increment = 1; +@@auto_increment_increment = 1 +1 +SELECT @@auto_increment_offset = 1; +@@auto_increment_offset = 1 +1 +CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, node VARCHAR(10)) ENGINE=InnoDB; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `f1` int(11) NOT NULL AUTO_INCREMENT, + `node` varchar(10) DEFAULT NULL, + PRIMARY KEY (`f1`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `f1` int(11) NOT NULL AUTO_INCREMENT, + `node` varchar(10) DEFAULT NULL, + PRIMARY KEY (`f1`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +SELECT @@auto_increment_increment = 1; +@@auto_increment_increment = 1 +1 +SELECT @@auto_increment_offset = 1; +@@auto_increment_offset = 1 +1 +SET AUTOCOMMIT=OFF; +START TRANSACTION; +INSERT INTO t1 (node) VALUES ('node1'); +SELECT f1 FROM t1; +f1 +1 +SELECT @@auto_increment_increment = 1; +@@auto_increment_increment = 1 +1 +SELECT @@auto_increment_offset = 1; +@@auto_increment_offset = 1 +1 +SET AUTOCOMMIT=OFF; +START TRANSACTION; +INSERT INTO t1 (node) VALUES ('node2'); +SELECT f1 FROM t1; +f1 +1 +COMMIT; +COMMIT; +ERROR 40001: Deadlock found when trying to get lock; try restarting transaction +SELECT * FROM t1; +f1 node +1 node1 +SELECT * FROM t1; +f1 node +1 node1 +SET GLOBAL wsrep_auto_increment_control = 1; +SET GLOBAL auto_increment_increment = 2; +SET GLOBAL auto_increment_offset = 1; +SET GLOBAL wsrep_auto_increment_control = 1; +SET GLOBAL auto_increment_increment = 2; +SET GLOBAL auto_increment_offset = 2; +DROP TABLE t1; diff --git a/mysql-test/suite/galera/r/galera_var_auto_inc_control_on.result b/mysql-test/suite/galera/r/galera_var_auto_inc_control_on.result new file mode 100644 index 00000000000..953ae9f4d81 --- /dev/null +++ b/mysql-test/suite/galera/r/galera_var_auto_inc_control_on.result @@ -0,0 +1,44 @@ +CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, node VARCHAR(10)) ENGINE=InnoDB; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `f1` int(11) NOT NULL AUTO_INCREMENT, + `node` varchar(10) DEFAULT NULL, + PRIMARY KEY (`f1`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +SELECT @@auto_increment_increment = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'); +@@auto_increment_increment = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size') +1 +SELECT @@auto_increment_offset = 1; +@@auto_increment_offset = 1 +1 +INSERT INTO t1 VALUES (DEFAULT, 'node1');; +INSERT INTO t1 VALUES (DEFAULT, 'node2');; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `f1` int(11) NOT NULL AUTO_INCREMENT, + `node` varchar(10) DEFAULT NULL, + PRIMARY KEY (`f1`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1 +SELECT @@auto_increment_increment = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'); +@@auto_increment_increment = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size') +1 +SELECT @@auto_increment_offset = 2; +@@auto_increment_offset = 2 +1 +INSERT INTO t1 VALUES (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2');; +INSERT INTO t1 VALUES (DEFAULT, 'node1'), (DEFAULT, 'node1'), (DEFAULT, 'node1'), (DEFAULT, 'node1'), (DEFAULT, 'node1'), (DEFAULT, 'node1'), (DEFAULT, 'node1'), (DEFAULT, 'node1'), (DEFAULT, 'node1'), (DEFAULT, 'node1');; +SELECT COUNT(*) = 22 FROM t1; +COUNT(*) = 22 +1 +SELECT COUNT(DISTINCT f1) = 22 FROM t1; +COUNT(DISTINCT f1) = 22 +1 +SELECT COUNT(*) = 22 FROM t1; +COUNT(*) = 22 +1 +SELECT COUNT(DISTINCT f1) = 22 FROM t1; +COUNT(DISTINCT f1) = 22 +1 +DROP TABLE t1; diff --git a/mysql-test/suite/galera/r/galera_var_certify_nonPK_off.result b/mysql-test/suite/galera/r/galera_var_certify_nonPK_off.result new file mode 100644 index 00000000000..35dabb7654f --- /dev/null +++ b/mysql-test/suite/galera/r/galera_var_certify_nonPK_off.result @@ -0,0 +1,21 @@ +SET GLOBAL wsrep_certify_nonPK = OFF; +SET GLOBAL wsrep_certify_nonPK = OFF; +CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB /* Table has no primary key */; +CREATE TABLE t2 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; +INSERT INTO t1 VALUES (1), (2); +ERROR 40001: Deadlock found when trying to get lock; try restarting transaction +INSERT INTO t2 VALUES (1), (2); +UPDATE t2 SET f1 = 3 WHERE f1 = 1; +SELECT COUNT(*) = 0 FROM t1; +COUNT(*) = 0 +1 +SELECT COUNT(*) = 2 FROM t2; +COUNT(*) = 2 +1 +SELECT COUNT(*) = 1 FROM t2 WHERE f1 = 3; +COUNT(*) = 1 +1 +SET GLOBAL wsrep_certify_nonPK = 1; +SET GLOBAL wsrep_certify_nonPK = 1; +DROP TABLE t1; +DROP TABLE t2; diff --git a/mysql-test/suite/galera/r/galera_var_fkchecks.result b/mysql-test/suite/galera/r/galera_var_fkchecks.result new file mode 100644 index 00000000000..342212a5241 --- /dev/null +++ b/mysql-test/suite/galera/r/galera_var_fkchecks.result @@ -0,0 +1,26 @@ +CREATE TABLE parent ( +id INT PRIMARY KEY, +KEY (id) +) ENGINE=InnoDB; +CREATE TABLE child ( +id INT PRIMARY KEY, +parent_id INT, +FOREIGN KEY (parent_id) +REFERENCES parent(id) +) ENGINE=InnoDB; +INSERT INTO parent VALUES (1); +INSERT INTO child VALUES (1,1); +SET SESSION foreign_key_checks = 0; +INSERT INTO child VALUES (2,2); +SELECT COUNT(*) = 1 FROM child WHERE id = 2; +COUNT(*) = 1 +1 +INSERT INTO child VALUES (3,3); +ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test`.`child`, CONSTRAINT `child_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `parent` (`id`)) +SET SESSION foreign_key_checks = 0; +DELETE FROM parent; +SELECT COUNT(*) = 0 FROM parent; +COUNT(*) = 0 +1 +DROP TABLE child; +DROP TABLE parent; diff --git a/mysql-test/suite/galera/r/galera_var_mysql_replication_bundle.result b/mysql-test/suite/galera/r/galera_var_mysql_replication_bundle.result new file mode 100644 index 00000000000..f2a951c26b0 --- /dev/null +++ b/mysql-test/suite/galera/r/galera_var_mysql_replication_bundle.result @@ -0,0 +1,12 @@ +CREATE TABLE t1 (f1 INT PRIMARY KEY) Engine=InnoDB; +SET GLOBAL wsrep_mysql_replication_bundle = 2; +INSERT INTO t1 VALUES (1); +SELECT COUNT(*) = 0 FROM t1; +COUNT(*) = 0 +0 +INSERT INTO t1 VALUES (2); +SELECT COUNT(*) = 2 FROM t1; +COUNT(*) = 2 +1 +SET GLOBAL wsrep_mysql_replication_bundle = 0; +DROP TABLE t1; diff --git a/mysql-test/suite/galera/r/galera_var_replicate_myisam_off.result b/mysql-test/suite/galera/r/galera_var_replicate_myisam_off.result new file mode 100644 index 00000000000..c8b79071d10 --- /dev/null +++ b/mysql-test/suite/galera/r/galera_var_replicate_myisam_off.result @@ -0,0 +1,8 @@ +SET GLOBAL wsrep_replicate_myisam = FALSE; +CREATE TABLE t1 (f1 INT PRIMARY KEY) Engine=MyISAM; +INSERT INTO t1 VALUES (1); +SELECT COUNT(*) = 0 FROM t1; +COUNT(*) = 0 +1 +SET GLOBAL wsrep_replicate_myisam = 0; +DROP TABLE t1; diff --git a/mysql-test/suite/galera/r/galera_var_replicate_myisam_on.result b/mysql-test/suite/galera/r/galera_var_replicate_myisam_on.result new file mode 100644 index 00000000000..abaec56a2ad --- /dev/null +++ b/mysql-test/suite/galera/r/galera_var_replicate_myisam_on.result @@ -0,0 +1,8 @@ +SET GLOBAL wsrep_replicate_myisam = TRUE; +CREATE TABLE t1 (f1 INT PRIMARY KEY) Engine=MyISAM; +INSERT INTO t1 VALUES (1); +SELECT COUNT(*) = 1 FROM t1; +COUNT(*) = 1 +1 +SET GLOBAL wsrep_replicate_myisam = 0; +DROP TABLE t1; diff --git a/mysql-test/suite/galera/r/galera_var_sync_wait.result b/mysql-test/suite/galera/r/galera_var_sync_wait.result new file mode 100644 index 00000000000..f6136a4ddc4 --- /dev/null +++ b/mysql-test/suite/galera/r/galera_var_sync_wait.result @@ -0,0 +1,21 @@ +CREATE TABLE t1 (f1 INT PRIMARY KEY) Engine=InnoDB; +SET GLOBAL wsrep_sync_wait = 1; +SHOW TABLES LIKE '%t1'; +Tables_in_test (%t1) +t1 +SELECT COUNT(*) = 0 FROM t1; +COUNT(*) = 0 +1 +CREATE TABLE t2 (f1 INT PRIMARY KEY) Engine=InnoDB; +SET GLOBAL wsrep_sync_wait = 4; +INSERT INTO t2 VALUES (1); +CREATE TABLE t3 (f1 INT PRIMARY KEY) Engine=InnoDB; +INSERT INTO t3 VALUES (1); +SET GLOBAL wsrep_sync_wait = 2; +UPDATE t3 SET f1 = 2; +affected rows: 1 +info: Rows matched: 1 Changed: 1 Warnings: 0 +SET GLOBAL wsrep_sync_wait = 7; +DROP TABLE t1; +DROP TABLE t2; +DROP TABLE t3; diff --git a/mysql-test/suite/galera/t/galera_fk_cascade_delete.test b/mysql-test/suite/galera/t/galera_fk_cascade_delete.test new file mode 100644 index 00000000000..9b79b4c30b6 --- /dev/null +++ b/mysql-test/suite/galera/t/galera_fk_cascade_delete.test @@ -0,0 +1,41 @@ +# +# Test Foreign Key Cascading DELETEs +# + +--source include/galera_cluster.inc +--source include/have_innodb.inc + +CREATE TABLE grandparent ( + id INT NOT NULL PRIMARY KEY +) ENGINE=InnoDB; + +CREATE TABLE parent ( + id INT NOT NULL PRIMARY KEY, + grandparent_id INT, + FOREIGN KEY (grandparent_id) + REFERENCES grandparent(id) + ON DELETE CASCADE +) ENGINE=InnoDB; + +CREATE TABLE child ( + id INT NOT NULL PRIMARY KEY, + parent_id INT, + FOREIGN KEY (parent_id) + REFERENCES parent(id) + ON DELETE CASCADE +) ENGINE=InnoDB; + +INSERT INTO grandparent VALUES (1),(2); +INSERT INTO parent VALUES (1,1), (2,2); +INSERT INTO child VALUES (1,1), (2,2); + +--connection node_2 +DELETE FROM grandparent WHERE id = 1; + +--connection node_1 +SELECT COUNT(*) = 0 FROM parent WHERE grandparent_id = 1; +SELECT COUNT(*) = 0 FROM child WHERE parent_id = 1; + +DROP TABLE child; +DROP TABLE parent; +DROP TABLE grandparent; diff --git a/mysql-test/suite/galera/t/galera_fk_cascade_update.test b/mysql-test/suite/galera/t/galera_fk_cascade_update.test new file mode 100644 index 00000000000..e736803a285 --- /dev/null +++ b/mysql-test/suite/galera/t/galera_fk_cascade_update.test @@ -0,0 +1,41 @@ +# +# Test Foreign Key Cascading UPDATEs +# + +--source include/galera_cluster.inc +--source include/have_innodb.inc + +CREATE TABLE grandparent ( + id INT NOT NULL PRIMARY KEY +) ENGINE=InnoDB; + +CREATE TABLE parent ( + id INT NOT NULL PRIMARY KEY, + grandparent_id INT, + FOREIGN KEY (grandparent_id) + REFERENCES grandparent(id) + ON UPDATE CASCADE +) ENGINE=InnoDB; + +CREATE TABLE child ( + id INT NOT NULL PRIMARY KEY, + grandparent_id INT, + FOREIGN KEY (grandparent_id) + REFERENCES parent(grandparent_id) + ON UPDATE CASCADE +) ENGINE=InnoDB; + +INSERT INTO grandparent VALUES (1),(2); +INSERT INTO parent VALUES (1,1), (2,2); +INSERT INTO child VALUES (1,1), (2,2); + +--connection node_2 +UPDATE grandparent SET id = 3 WHERE id = 1; + +--connection node_1 +SELECT COUNT(*) = 1 FROM parent WHERE grandparent_id = 3; +SELECT COUNT(*) = 1 FROM child WHERE grandparent_id = 3; + +DROP TABLE child; +DROP TABLE parent; +DROP TABLE grandparent; diff --git a/mysql-test/suite/galera/t/galera_fk_conflict.test b/mysql-test/suite/galera/t/galera_fk_conflict.test new file mode 100644 index 00000000000..cb6f95ee687 --- /dev/null +++ b/mysql-test/suite/galera/t/galera_fk_conflict.test @@ -0,0 +1,41 @@ +# +# Test two transactions on separate nodes which conflict on a FK +# + +--source include/galera_cluster.inc +--source include/have_innodb.inc + +CREATE TABLE parent ( + id INT PRIMARY KEY, + KEY (id) +) ENGINE=InnoDB; + +CREATE TABLE child ( + id INT PRIMARY KEY, + parent_id INT, + FOREIGN KEY (parent_id) + REFERENCES parent(id) +) ENGINE=InnoDB; + +INSERT INTO parent VALUES (1), (2); +INSERT INTO child VALUES (1,1); + +--connection node_1 +SET AUTOCOMMIT = OFF; +START TRANSACTION; +DELETE FROM parent WHERE id = 2; + +--connection node_2 +SET AUTOCOMMIT = OFF; +START TRANSACTION; +INSERT INTO child VALUES (2, 2); + +--connection node_1 +COMMIT; + +--connection node_2 +--error ER_LOCK_DEADLOCK +COMMIT; + +DROP TABLE child; +DROP TABLE parent; diff --git a/mysql-test/suite/galera/t/galera_fk_mismatch.test b/mysql-test/suite/galera/t/galera_fk_mismatch.test new file mode 100644 index 00000000000..bded41381a7 --- /dev/null +++ b/mysql-test/suite/galera/t/galera_fk_mismatch.test @@ -0,0 +1,38 @@ +# +# Test the operation where the definition of the FK is different from the one of the underlying key +# + +--source include/galera_cluster.inc +--source include/have_innodb.inc + +CREATE TABLE parent ( + id1 INT, + id2 INT, + PRIMARY KEY (id1, id2) /* Multipart PK */ +) ENGINE=InnoDB; + +CREATE TABLE child ( + id INT PRIMARY KEY, + parent_id1 INT, + FOREIGN KEY (parent_id1) + REFERENCES parent(id1) /* FK is subset of PK above */ + ON UPDATE CASCADE + ON DELETE CASCADE +) ENGINE=InnoDB; + +INSERT INTO parent VALUES (1, 2); +INSERT INTO child VALUES (1, 1); + +--connection node_2 +UPDATE parent SET id1 = 3 WHERE id1 = 1; + +--connection node_1 +SELECT COUNT(*) = 1 FROM child WHERE parent_id1 = 3; + +DELETE FROM parent WHERE id1 = 3; + +--connection node_2 +SELECT COUNT(*) = 0 FROM child WHERE parent_id1 = 3; + +DROP TABLE child; +DROP TABLE parent; diff --git a/mysql-test/suite/galera/t/galera_fk_multicolumn.test b/mysql-test/suite/galera/t/galera_fk_multicolumn.test new file mode 100644 index 00000000000..fc00eadcf5f --- /dev/null +++ b/mysql-test/suite/galera/t/galera_fk_multicolumn.test @@ -0,0 +1,42 @@ +# +# Test UPDATE on multiple columns with multiple FKs +# + +--source include/galera_cluster.inc +--source include/have_innodb.inc + +CREATE TABLE t0 ( + f1 INT PRIMARY KEY, + f2 INT UNIQUE +) ENGINE=INNODB; + +CREATE TABLE t1 ( + f1 INT PRIMARY KEY, + FOREIGN KEY (f1) + REFERENCES t0(f1) + ON UPDATE CASCADE +) ENGINE=INNODB; + +CREATE TABLE t2 ( + f2 INT PRIMARY KEY, + FOREIGN KEY (f2) + REFERENCES t0(f2) + ON UPDATE CASCADE +) ENGINE=INNODB; + +INSERT INTO t0 VALUES (0, 0); +INSERT INTO t1 VALUES (0); +INSERT INTO t2 VALUES (0); + +--connection node_2 +UPDATE t0 SET f1 = 1, f2 = 2; + +--connection node_1 +SELECT f1 = 1 FROM t1 WHERE f1 = 1; +SELECT f2 = 2 FROM t2 WHERE f2 = 2; +SELECT f1 = 1 FROM t1; +SELECT f2 = 2 FROM t2; + +DROP TABLE t2; +DROP TABLE t1; +DROP TABLE t0; diff --git a/mysql-test/suite/galera/t/galera_fk_multitable.test b/mysql-test/suite/galera/t/galera_fk_multitable.test new file mode 100644 index 00000000000..e53757b051b --- /dev/null +++ b/mysql-test/suite/galera/t/galera_fk_multitable.test @@ -0,0 +1,32 @@ +# +# Test multi-table DELETE in the presence of FKs +# + +--source include/galera_cluster.inc +--source include/have_innodb.inc + +CREATE TABLE t0 ( + f0 INT PRIMARY KEY +) ENGINE=INNODB; + +CREATE TABLE t1 ( + f1 INT PRIMARY KEY, + f0 INTEGER, + FOREIGN KEY (f0) + REFERENCES t0(f0) + ON DELETE CASCADE +) ENGINE=INNODB; + +INSERT INTO t0 VALUES (0), (1); +INSERT INTO t1 VALUES (0, 0); +INSERT INTO t1 VALUES (1, 0); + +--connection node_2 +DELETE t0.*, t1.* FROM t0, t1 WHERE t0.f0 = 0 AND t1.f1 = 0; + +--connection node_1 +SELECT COUNT(*) = 1 FROM t0; +SELECT COUNT(*) = 0 FROM t1; + +DROP TABLE t1; +DROP TABLE t0; diff --git a/mysql-test/suite/galera/t/galera_fk_no_pk.test b/mysql-test/suite/galera/t/galera_fk_no_pk.test new file mode 100644 index 00000000000..d1f9c26762d --- /dev/null +++ b/mysql-test/suite/galera/t/galera_fk_no_pk.test @@ -0,0 +1,37 @@ +# +# Test foreign keys if no PK is present +# + +--source include/galera_cluster.inc +--source include/have_innodb.inc + +CREATE TABLE parent ( + id INT, + KEY (id) +) ENGINE=InnoDB; + +CREATE TABLE child ( + id INT, + parent_id INT, + FOREIGN KEY (parent_id) + REFERENCES parent(id) + ON UPDATE CASCADE + ON DELETE CASCADE +) ENGINE=InnoDB; + +INSERT INTO parent VALUES (1), (1), (2), (2); +INSERT INTO child VALUES (1,1), (2,2), (1,1), (2,2); + +--connection node_2 +DELETE FROM parent WHERE id = 1; +SELECT COUNT(*) = 0 FROM child WHERE id = 1; + +--connection node_1 +UPDATE parent SET id = 3 WHERE id = 2; + +--connection node_2 +SELECT COUNT(*) = 0 FROM child WHERE parent_id = 1; +SELECT parent_id = 3 FROM child WHERE id = 2; + +DROP TABLE child; +DROP TABLE parent; diff --git a/mysql-test/suite/galera/t/galera_fk_selfreferential.test b/mysql-test/suite/galera/t/galera_fk_selfreferential.test new file mode 100644 index 00000000000..e2c19001030 --- /dev/null +++ b/mysql-test/suite/galera/t/galera_fk_selfreferential.test @@ -0,0 +1,24 @@ +# +# Test self-referential foreign keys +# + +--source include/galera_cluster.inc +--source include/have_innodb.inc + +CREATE TABLE t1 ( + f1 INT NOT NULL PRIMARY KEY, + f2 INT, + FOREIGN KEY (f2) + REFERENCES t1(f1) + ON DELETE CASCADE +) ENGINE=InnoDB; + +INSERT INTO t1 VALUES (1, 1), (2, 1); + +--connection node_2 +DELETE FROM t1 WHERE f1 = 1; + +--connection node_1 +SELECT COUNT(*) = 0 FROM t1; + +DROP TABLE t1; diff --git a/mysql-test/suite/galera/t/galera_fk_setnull.test b/mysql-test/suite/galera/t/galera_fk_setnull.test new file mode 100644 index 00000000000..46ba82dbf9c --- /dev/null +++ b/mysql-test/suite/galera/t/galera_fk_setnull.test @@ -0,0 +1,36 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +CREATE TABLE parent ( + id INT NOT NULL, + PRIMARY KEY (id) +) ENGINE=InnoDB; + +CREATE TABLE child ( + id INT, + parent_id INT, + FOREIGN KEY (parent_id) + REFERENCES parent(id) + ON UPDATE SET NULL + ON DELETE SET NULL +) ENGINE=InnoDB; + +INSERT INTO parent VALUES (1),(2); +INSERT INTO child VALUES (1,1),(2,2); + +--connection node_2 +DELETE FROM parent WHERE id = 1; +SELECT parent_id IS NULL FROM child WHERE id = 1; + +--connection node_1 +SELECT parent_id IS NULL FROM child WHERE id = 1; + +UPDATE parent SET id = 3 WHERE id = 2; +SELECT parent_id IS NULL FROM child WHERE id = 2; + +--connection node_2 +SELECT parent_id IS NULL FROM child WHERE id = 2; + +--connection node_1 +DROP TABLE child; +DROP TABLE parent; diff --git a/mysql-test/suite/galera/t/galera_many_columns.test b/mysql-test/suite/galera/t/galera_many_columns.test new file mode 100644 index 00000000000..09bd9902e81 --- /dev/null +++ b/mysql-test/suite/galera/t/galera_many_columns.test @@ -0,0 +1,65 @@ +--source include/big_test.inc +--source include/galera_cluster.inc +--source include/have_innodb.inc + +CREATE TABLE t1 (f1017 VARCHAR(3) DEFAULT 'ABC') ENGINE=InnoDB; + +--let $count = 1016 +while ($count) +{ + --disable_query_log + --eval SET @ddl_var1 = CONCAT("ALTER TABLE t1 ADD COLUMN f", $count, " VARCHAR(3) DEFAULT 'ABC'") + --let $ddl_var = `SELECT @ddl_var1` + --enable_query_log + --eval $ddl_var + --dec $count +} + +ALTER TABLE t1 ADD PRIMARY KEY (f1, f1017); + +INSERT INTO t1 (f1) VALUES (DEFAULT); + +--connection node_2 +SELECT f1 = 'ABC', f1017 = 'ABC' FROM t1; +UPDATE t1 SET f1 = 'XYZ', f1017 = 'XYZ' ; + +--connection node_1 +SELECT f1 = 'XYZ', f1017 = 'XYZ' FROM t1 WHERE f1 = 'XYZ' AND f1017 = 'XYZ'; + + +# Deadlock + +--connection node_1 +SET AUTOCOMMIT=OFF; +START TRANSACTION; +UPDATE t1 SET f2 = 'KLM' WHERE f1 = 'XYZ' AND f1017 = 'XYZ'; + +--connection node_2 +SET AUTOCOMMIT=OFF; +START TRANSACTION; +UPDATE t1 SET f2 = 'CDE' WHERE f1 = 'XYZ' AND f1017 = 'XYZ'; +COMMIT; + +--connection node_1 +--error ER_LOCK_DEADLOCK +COMMIT; +ROLLBACK; + +--connection node_2 +ROLLBACK; + +# Rollback + +--connection node_1 +START TRANSACTION; +INSERT INTO t1 (f1, f1017) VALUES ('BCE','BCE'); +INSERT INTO t1 (f1, f1017) VALUES ('CED','CED'); +INSERT INTO t1 (f1, f1017) VALUES ('EDF','EDF'); +INSERT INTO t1 (f1, f1017) VALUES ('FED','FED'); +ROLLBACK; +SELECT COUNT(*) = 1 FROM t1; + +--connection node_2 +SELECT COUNT(*) = 1 FROM t1; + +DROP TABLE t1; diff --git a/mysql-test/suite/galera/t/galera_many_indexes.test b/mysql-test/suite/galera/t/galera_many_indexes.test new file mode 100644 index 00000000000..e01d0b23aa5 --- /dev/null +++ b/mysql-test/suite/galera/t/galera_many_indexes.test @@ -0,0 +1,74 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +CREATE TABLE t1 (f1 VARCHAR(767) PRIMARY KEY) ENGINE=InnoDB; + +# MySQL complains about multiple identical indexes on the same column +--disable_warnings + +--let $count = 63 +while ($count) +{ + --disable_query_log + --eval SET @ddl_var1 = CONCAT("CREATE UNIQUE INDEX i", $count, " ON t1(f1)") + --let $ddl_var = `SELECT @ddl_var1` + --enable_query_log + --eval $ddl_var + --dec $count +} +--enable_warnings + +INSERT INTO t1 VALUES (REPEAT('a', 767)); +--connection node_2 +SELECT COUNT(*) = 1 FROM t1; +SELECT LENGTH(f1) = 767 FROM t1; + +EXPLAIN SELECT COUNT(*) = 1 FROM t1 FORCE KEY (PRIMARY) WHERE f1 = REPEAT('a', 767); +SELECT COUNT(*) = 1 FROM t1 FORCE KEY (PRIMARY) WHERE f1 = REPEAT('a', 767); + +EXPLAIN SELECT COUNT(*) = 1 FROM t1 FORCE KEY (i1) WHERE f1 = REPEAT('a', 767); +SELECT COUNT(*) = 1 FROM t1 FORCE KEY (i1) WHERE f1 = REPEAT('a', 767); + +EXPLAIN SELECT COUNT(*) = 1 FROM t1 FORCE KEY (i63) WHERE f1 = REPEAT('a', 767); +SELECT COUNT(*) = 1 FROM t1 FORCE KEY (i63) WHERE f1 = REPEAT('a', 767); + +INSERT INTO t1 VALUES (REPEAT('b', 767)); +ANALYZE TABLE t1; + +--connection node_1 +SELECT COUNT(*) = 2 FROM t1; +ANALYZE TABLE t1; +DELETE FROM t1 WHERE f1 = REPEAT('b', 767); + +# Rollback +--connection node_1 +SET AUTOCOMMIT=OFF; +START TRANSACTION; +SELECT COUNT(*) = 1 FROM t1; +INSERT INTO t1 (f1) VALUES (REPEAT('c', 767)); +ROLLBACK; +SELECT COUNT(*) = 1 FROM t1; + +--connection node_2 +START TRANSACTION; +SET AUTOCOMMIT=OFF; +SELECT COUNT(*) = 1 FROM t1; + +# Deadlock +--connection node_1 +START TRANSACTION; +--connection node_2 +START TRANSACTION; + +--connection node_1 +UPDATE t1 SET f1 = REPEAT('e', 767); +--connection node_2 +UPDATE t1 SET f1 = REPEAT('f', 767); + +--connection node_1 +COMMIT; +--connection node_2 +--error ER_LOCK_DEADLOCK +COMMIT; + +DROP TABLE t1; diff --git a/mysql-test/suite/galera/t/galera_many_rows.test b/mysql-test/suite/galera/t/galera_many_rows.test new file mode 100644 index 00000000000..5ec1af0a8bf --- /dev/null +++ b/mysql-test/suite/galera/t/galera_many_rows.test @@ -0,0 +1,55 @@ + +--source include/big_test.inc +--source include/galera_cluster.inc +--source include/have_innodb.inc + +CREATE TABLE ten (f1 INTEGER) ENGINE=INNODB; +INSERT INTO ten VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10); + +CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, f2 INTEGER) Engine=InnoDB; +INSERT INTO t1 (f2) SELECT a1.f1 FROM ten AS a1, ten AS a2, ten AS a3, ten AS a4, ten AS a5; + +--connection node_2 +SELECT COUNT(*) = 100000 FROM t1; +INSERT INTO t1 (f2) SELECT a1.f1 FROM ten AS a1, ten AS a2, ten AS a3, ten AS a4, ten AS a5; + +--connection node_1 +SELECT COUNT(*) = 200000 FROM t1; +UPDATE t1 SET f2 = 1; + +--connection node_2 +SELECT COUNT(*) = 200000 FROM t1 WHERE f2 = 1; + +# Rollback +--connection node_1 +SET AUTOCOMMIT=OFF; +START TRANSACTION; +INSERT INTO t1 (f2) SELECT a1.f1 FROM ten AS a1, ten AS a2, ten AS a3, ten AS a4, ten AS a5; +ROLLBACK; +SELECT COUNT(*) = 200000 FROM t1; + +--connection node_2 +SELECT COUNT(*) = 200000 FROM t1; +SET AUTOCOMMIT=OFF; +START TRANSACTION; +UPDATE t1 SET f2 = 2; +ROLLBACK; + +--connection node_1 +START TRANSACTION; +SELECT COUNT(*) = 200000 FROM t1; +UPDATE t1 SET f2 = 3; + +--connection node_2 +START TRANSACTION; +UPDATE t1 SET f2 = 4; + +--connection node_1 +COMMIT; + +--connection node_2 +--error ER_LOCK_DEADLOCK +COMMIT; + +DROP TABLE t1; +DROP TABLE ten; diff --git a/mysql-test/suite/galera/t/galera_nopk_bit.test b/mysql-test/suite/galera/t/galera_nopk_bit.test new file mode 100644 index 00000000000..4292a6d6711 --- /dev/null +++ b/mysql-test/suite/galera/t/galera_nopk_bit.test @@ -0,0 +1,46 @@ +# +# This checks that even tables with a single BIT column are replicated properly without a PK +# + +--source include/galera_cluster.inc +--source include/have_innodb.inc + +CREATE TABLE t1 (f1 BIT) ENGINE=InnoDB; +INSERT INTO t1 VALUES (NULL),(0),(b'1'); + +--connection node_2 +SELECT f1 IS NULL, f1 = b'1' FROM t1; + +DELETE FROM t1 WHERE f1 = b'1'; +UPDATE t1 SET f1 = b'1' WHERE f1 IS NULL; +UPDATE t1 SET f1 = 1 WHERE f1 = b'0'; + +--connection node_1 +SELECT f1 IS NULL, f1 = b'1' FROM t1; + +# +# Provoke a conflict +# + +--connection node_1 +CREATE TABLE t2 (f1 BIT) ENGINE=InnoDB; +INSERT INTO t2 VALUES (NULL); + +SET AUTOCOMMIT=OFF; +START TRANSACTION; +UPDATE t2 SET f1 = 0 WHERE f1 IS NULL; + +--connection node_2 +SET AUTOCOMMIT=OFF; +START TRANSACTION; +UPDATE t2 SET f1 = 1 WHERE f1 IS NULL; + +--connection node_1 +COMMIT; + +--connection node_2 +--error ER_LOCK_DEADLOCK +COMMIT; + +DROP TABLE t1; +DROP TABLE t2; diff --git a/mysql-test/suite/galera/t/galera_nopk_blob.test b/mysql-test/suite/galera/t/galera_nopk_blob.test new file mode 100644 index 00000000000..08e3b996c8e --- /dev/null +++ b/mysql-test/suite/galera/t/galera_nopk_blob.test @@ -0,0 +1,46 @@ +# +# This checks that even tables with a single BLOB column and no FK are replicated properly +# + +--source include/galera_cluster.inc +--source include/have_innodb.inc + +CREATE TABLE t1 (f1 BLOB) ENGINE=InnoDB; +INSERT INTO t1 VALUES (NULL),('abc'); + +--connection node_2 +SELECT f1 FROM t1; + +DELETE FROM t1 WHERE f1 IS NULL; +UPDATE t1 SET f1 = 'xyz' WHERE f1 = 'abc'; + +--connection node_1 +SELECT COUNT(*) = 1 FROM t1; +SELECT f1 = 'abc' FROM t1; + +# +# Provoke a conflict +# + +--connection node_1 +CREATE TABLE t2 (f1 BLOB) ENGINE=InnoDB; +INSERT INTO t2 VALUES (NULL); + +SET AUTOCOMMIT=OFF; +START TRANSACTION; +UPDATE t2 SET f1 = 'abc' WHERE f1 IS NULL; + +--connection node_2 +SET AUTOCOMMIT=OFF; +START TRANSACTION; +UPDATE t2 SET f1 = 'xyz' WHERE f1 IS NULL; + +--connection node_1 +COMMIT; + +--connection node_2 +--error ER_LOCK_DEADLOCK +COMMIT; + +DROP TABLE t1; +DROP TABLE t2; diff --git a/mysql-test/suite/galera/t/galera_nopk_large_varchar.test b/mysql-test/suite/galera/t/galera_nopk_large_varchar.test new file mode 100644 index 00000000000..bb9bcd5a593 --- /dev/null +++ b/mysql-test/suite/galera/t/galera_nopk_large_varchar.test @@ -0,0 +1,50 @@ +# +# This checks that even tables with a single long VARCHARcolumn and no FK are replicated properly +# + +--source include/galera_cluster.inc +--source include/have_innodb.inc + +# From the Innodb manual: "The maximum row length, except for variable-length columns (VARBINARY, VARCHAR, BLOB and TEXT), +# is slightly less than half of a database page. That is, the maximum row length is about 8000 bytes" + +CREATE TABLE t1 (f1 VARCHAR(8000)) ENGINE=InnoDB; +INSERT INTO t1 VALUES (NULL),(CONCAT(REPEAT('x', 7999), 'a')); + +--connection node_2 +SELECT LENGTH(f1) FROM t1; + +DELETE FROM t1 WHERE f1 IS NULL; +UPDATE t1 SET f1 = CONCAT(REPEAT('x', 7999), 'b') WHERE f1 = CONCAT(REPEAT('x', 7999), 'a'); + +--connection node_1 +SELECT COUNT(*) = 1 FROM t1; +SELECT LENGTH(f1) = 8000 FROM t1; +SELECT f1 = CONCAT(REPEAT('x', 7999), 'b') FROM t1; + +# +# Provoke a conflict +# + +--connection node_1 +CREATE TABLE t2 (f1 BLOB) ENGINE=InnoDB; +INSERT INTO t2 VALUES (CONCAT(REPEAT('x', 7999), 'a')); + +SET AUTOCOMMIT=OFF; +START TRANSACTION; +UPDATE t2 SET f1 = 'abc' WHERE f1 = CONCAT(REPEAT('x', 7999), 'a'); + +--connection node_2 +SET AUTOCOMMIT=OFF; +START TRANSACTION; +UPDATE t2 SET f1 = 'xyz' WHERE f1 = CONCAT(REPEAT('x', 7999), 'a'); + +--connection node_1 +COMMIT; + +--connection node_2 +--error ER_LOCK_DEADLOCK +COMMIT; + +DROP TABLE t1; +DROP TABLE t2; diff --git a/mysql-test/suite/galera/t/galera_unicode_identifiers.test b/mysql-test/suite/galera/t/galera_unicode_identifiers.test new file mode 100644 index 00000000000..4722d6d61a2 --- /dev/null +++ b/mysql-test/suite/galera/t/galera_unicode_identifiers.test @@ -0,0 +1,72 @@ +# +# Test non-ascii table, column and index names +# + +--source include/galera_cluster.inc +--source include/have_innodb.inc + +--let $wsrep_sync_wait_orig = (SELECT @@wsrep_sync_wait) +SET GLOBAL wsrep_sync_wait = 7; + +--connection node_2 +SET GLOBAL wsrep_sync_wait = 7; + +--connection node_1 + +# Spaces in identifiers + +CREATE DATABASE `database with space`; +USE `database with space`; +CREATE TABLE `table with space` ( + `column with space` INTEGER AUTO_INCREMENT PRIMARY KEY, + `second column with space` INTEGER, + UNIQUE `index name with space` (`second column with space`) +) ENGINE=INNODB; +INSERT INTO `table with space` VALUES (DEFAULT, 1); + +# Unicode identifiers + +CREATE DATABASE `база`; +USE `база`; +CREATE TABLE `таблица` ( + `първа_колона` INTEGER PRIMARY KEY, + `втора_колона` INTEGER, + UNIQUE `индекс` (`втора_колона`) +) ENGINE=INNODB; + +INSERT INTO `таблица` VALUES (1, 1); + +# Without a PK + +CREATE DATABASE `втора база`; +USE `втора база`; +CREATE TABLE `втора таблица` ( + `първа колона` INTEGER, + `втора колона` INTEGER, + KEY `първи индекс` (`първа колона`) +) ENGINE=INNODB; + +INSERT INTO `втора таблица` VALUES (1, 1); + +--connection node_2 +USE `database with space`; +SELECT * FROM `table with space`; + +USE `база`; +SELECT * FROM `таблица`; + +USE `втора база`; +SELECT * FROM `втора таблица`; + +--eval SET GLOBAL wsrep_sync_wait = $wsrep_sync_wait_orig + +--connection node_1 +DROP TABLE `database with space`.`table with space`; +DROP TABLE `база`.`таблица`; +DROP TABLE `втора база`.`втора таблица`; + +DROP DATABASE `database with space`; +DROP DATABASE `база`; +DROP DATABASE `втора база`; +--eval SET GLOBAL wsrep_sync_wait = $wsrep_sync_wait_orig + diff --git a/mysql-test/suite/galera/t/galera_var_auto_inc_control_off.test b/mysql-test/suite/galera/t/galera_var_auto_inc_control_off.test new file mode 100644 index 00000000000..1ae08abc920 --- /dev/null +++ b/mysql-test/suite/galera/t/galera_var_auto_inc_control_off.test @@ -0,0 +1,101 @@ +# +# Test wsrep_auto_increment_control = OFF +# We issue two concurrent INSERTs and one will fail with a deadlock error +# + +--source include/galera_cluster.inc +--source include/have_innodb.inc + +--let $auto_increment_control_orig = `SELECT @@wsrep_auto_increment_control` + +# +# Preserve existing variable values +# + +--connection node_1 +--let $auto_increment_increment_node1 = `SELECT @@auto_increment_increment` +--let $auto_increment_offset_node1 = `SELECT @@auto_increment_offset` + +# Restore stock MySQL defaults +SET GLOBAL wsrep_auto_increment_control = OFF; +SET GLOBAL auto_increment_increment = 1; +SET GLOBAL auto_increment_offset = 1; + +#Open a fresh connection to node_1 so that the variables above take effect +--let $galera_connection_name = node_1a +--let $galera_server_number = 1 +--source include/galera_connect.inc + +--connection node_2 +--let $auto_increment_increment_node2 = `SELECT @@auto_increment_increment` +--let $auto_increment_offset_node2 = `SELECT @@auto_increment_offset` + +SET GLOBAL wsrep_auto_increment_control = OFF; +SET GLOBAL auto_increment_increment = 1; +SET GLOBAL auto_increment_offset = 1; + +#Open a fresh connection to node_2 +--let $galera_connection_name = node_2a +--let $galera_server_number = 2 +--source include/galera_connect.inc + +--connection node_1a +SELECT @@auto_increment_increment = 1; +SELECT @@auto_increment_offset = 1; + +CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, node VARCHAR(10)) ENGINE=InnoDB; + +# +# We expect that SHOW CREATE TABLE on both nodes will return identical values +# + +SHOW CREATE TABLE t1; + +--connection node_2a + +SHOW CREATE TABLE t1; + +--connection node_1a +SELECT @@auto_increment_increment = 1; +SELECT @@auto_increment_offset = 1; +SET AUTOCOMMIT=OFF; +START TRANSACTION; +INSERT INTO t1 (node) VALUES ('node1'); +SELECT f1 FROM t1; + +--connection node_2a +SELECT @@auto_increment_increment = 1; +SELECT @@auto_increment_offset = 1; +SET AUTOCOMMIT=OFF; +START TRANSACTION; +INSERT INTO t1 (node) VALUES ('node2'); +SELECT f1 FROM t1; + +--connection node_1a +COMMIT; + +--connection node_2a +--error ER_LOCK_DEADLOCK +COMMIT; + +--connection node_1a +SELECT * FROM t1; + +--connection node_2a +SELECT * FROM t1; + +# +# Restore all variables as they were +# + +--connection node_1 +--eval SET GLOBAL wsrep_auto_increment_control = $auto_increment_control_orig +--eval SET GLOBAL auto_increment_increment = $auto_increment_increment_node1 +--eval SET GLOBAL auto_increment_offset = $auto_increment_offset_node1 + +--connection node_2 +--eval SET GLOBAL wsrep_auto_increment_control = $auto_increment_control_orig +--eval SET GLOBAL auto_increment_increment = $auto_increment_increment_node2 +--eval SET GLOBAL auto_increment_offset = $auto_increment_offset_node2 + +DROP TABLE t1; diff --git a/mysql-test/suite/galera/t/galera_var_auto_inc_control_on.test b/mysql-test/suite/galera/t/galera_var_auto_inc_control_on.test new file mode 100644 index 00000000000..4d1b9af1573 --- /dev/null +++ b/mysql-test/suite/galera/t/galera_var_auto_inc_control_on.test @@ -0,0 +1,56 @@ +# +# Test the operation of wsrep_auto_increment_control = ON +# + +--source include/galera_cluster.inc +--source include/have_innodb.inc + +--connection node_1 + +CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, node VARCHAR(10)) ENGINE=InnoDB; + +SHOW CREATE TABLE t1; + +# auto_increment_increment is equal to the number of nodes +# auto_increment_offset is equal to the ID of the node + +SELECT @@auto_increment_increment = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'); +SELECT @@auto_increment_offset = 1; + +# Expect no conflicts +--send INSERT INTO t1 VALUES (DEFAULT, 'node1'); + +--connection node_2 +--send INSERT INTO t1 VALUES (DEFAULT, 'node2'); + +--connection node_1 +--reap + +--connection node_2 +--reap + +SHOW CREATE TABLE t1; +SELECT @@auto_increment_increment = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'); +SELECT @@auto_increment_offset = 2; + +# Expect no conflicts +--send INSERT INTO t1 VALUES (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'); + +--connection node_1 +--send INSERT INTO t1 VALUES (DEFAULT, 'node1'), (DEFAULT, 'node1'), (DEFAULT, 'node1'), (DEFAULT, 'node1'), (DEFAULT, 'node1'), (DEFAULT, 'node1'), (DEFAULT, 'node1'), (DEFAULT, 'node1'), (DEFAULT, 'node1'), (DEFAULT, 'node1'); + +--connection node_2 +--reap + +--connection node_1 +--reap + +--connection node_2 +SELECT COUNT(*) = 22 FROM t1; +SELECT COUNT(DISTINCT f1) = 22 FROM t1; + +--connection node_1 +SELECT COUNT(*) = 22 FROM t1; +SELECT COUNT(DISTINCT f1) = 22 FROM t1; + +DROP TABLE t1; diff --git a/mysql-test/suite/galera/t/galera_var_certify_nonPK_off.test b/mysql-test/suite/galera/t/galera_var_certify_nonPK_off.test new file mode 100644 index 00000000000..f7967daebe7 --- /dev/null +++ b/mysql-test/suite/galera/t/galera_var_certify_nonPK_off.test @@ -0,0 +1,39 @@ +# +# Test wsrep_certify_nonPK = OFF +# + +--source include/galera_cluster.inc +--source include/have_innodb.inc + +--let $wsrep_certify_nonPK_orig = `SELECT @@wsrep_certify_nonPK` +SET GLOBAL wsrep_certify_nonPK = OFF; + +--connection node_2 +SET GLOBAL wsrep_certify_nonPK = OFF; + +--connection node_1 +CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB /* Table has no primary key */; +CREATE TABLE t2 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; + +# All DML without a PK is rejected with an error +--error ER_LOCK_DEADLOCK +INSERT INTO t1 VALUES (1), (2); + +# DML with a PK is allowed to proceed +INSERT INTO t2 VALUES (1), (2); +UPDATE t2 SET f1 = 3 WHERE f1 = 1; + +--connection node_2 +SELECT COUNT(*) = 0 FROM t1; +SELECT COUNT(*) = 2 FROM t2; +SELECT COUNT(*) = 1 FROM t2 WHERE f1 = 3; + +--connection node_1 +--eval SET GLOBAL wsrep_certify_nonPK = $wsrep_certify_nonPK_orig + +--connection node_2 +--eval SET GLOBAL wsrep_certify_nonPK = $wsrep_certify_nonPK_orig + +DROP TABLE t1; +DROP TABLE t2; + diff --git a/mysql-test/suite/galera/t/galera_var_fkchecks.test b/mysql-test/suite/galera/t/galera_var_fkchecks.test new file mode 100644 index 00000000000..c771b50c06c --- /dev/null +++ b/mysql-test/suite/galera/t/galera_var_fkchecks.test @@ -0,0 +1,40 @@ +# +# Test the operation on the foreign_key_checks variable +# + +--source include/galera_cluster.inc +--source include/have_innodb.inc + +CREATE TABLE parent ( + id INT PRIMARY KEY, + KEY (id) +) ENGINE=InnoDB; + +CREATE TABLE child ( + id INT PRIMARY KEY, + parent_id INT, + FOREIGN KEY (parent_id) + REFERENCES parent(id) +) ENGINE=InnoDB; + +INSERT INTO parent VALUES (1); +INSERT INTO child VALUES (1,1); + +SET SESSION foreign_key_checks = 0; + +INSERT INTO child VALUES (2,2); + +--connection node_2 +SELECT COUNT(*) = 1 FROM child WHERE id = 2; + +--error ER_NO_REFERENCED_ROW_2 +INSERT INTO child VALUES (3,3); + +SET SESSION foreign_key_checks = 0; +DELETE FROM parent; + +--connection node_1 +SELECT COUNT(*) = 0 FROM parent; + +DROP TABLE child; +DROP TABLE parent; diff --git a/mysql-test/suite/galera/t/galera_var_mysql_replication_bundle.test b/mysql-test/suite/galera/t/galera_var_mysql_replication_bundle.test new file mode 100644 index 00000000000..642d939692c --- /dev/null +++ b/mysql-test/suite/galera/t/galera_var_mysql_replication_bundle.test @@ -0,0 +1,30 @@ +# +# Simple test for the operation on the wsrep-mysql-replication-bundle +# + +--source include/galera_cluster.inc +--source include/have_innodb.inc + +--let $wsrep_mysql_replication_bundle_orig = `SELECT @@wsrep_mysql_replication_bundle` + +CREATE TABLE t1 (f1 INT PRIMARY KEY) Engine=InnoDB; + +SET GLOBAL wsrep_mysql_replication_bundle = 2; + +--connection node_1 +# This statement will not be replicated immediately +INSERT INTO t1 VALUES (1); + +--connection node_2 +SELECT COUNT(*) = 0 FROM t1; + +--connection node_1 +INSERT INTO t1 VALUES (2); + +--connection node_2 +SELECT COUNT(*) = 2 FROM t1; + +--connection node_1 +--eval SET GLOBAL wsrep_mysql_replication_bundle = $wsrep_mysql_replication_bundle_orig + +DROP TABLE t1; diff --git a/mysql-test/suite/galera/t/galera_var_replicate_myisam_off.test b/mysql-test/suite/galera/t/galera_var_replicate_myisam_off.test new file mode 100644 index 00000000000..a9811283918 --- /dev/null +++ b/mysql-test/suite/galera/t/galera_var_replicate_myisam_off.test @@ -0,0 +1,21 @@ +# +# Simple test for wsrep-replicate-myisam = FALSE +# + +--source include/galera_cluster.inc +--source include/have_innodb.inc + +--let $wsrep_replicate_myisam_orig = `SELECT @@wsrep_replicate_myisam` + +SET GLOBAL wsrep_replicate_myisam = FALSE; + +CREATE TABLE t1 (f1 INT PRIMARY KEY) Engine=MyISAM; +INSERT INTO t1 VALUES (1); + +--connection node_2 +SELECT COUNT(*) = 0 FROM t1; + +--connection node_1 +--eval SET GLOBAL wsrep_replicate_myisam = $wsrep_replicate_myisam_orig + +DROP TABLE t1; diff --git a/mysql-test/suite/galera/t/galera_var_replicate_myisam_on.test b/mysql-test/suite/galera/t/galera_var_replicate_myisam_on.test new file mode 100644 index 00000000000..f6838028e66 --- /dev/null +++ b/mysql-test/suite/galera/t/galera_var_replicate_myisam_on.test @@ -0,0 +1,21 @@ +# +# Simple test for wsrep-replicate-myisam = ON +# + +--source include/galera_cluster.inc +--source include/have_innodb.inc + +--let $wsrep_replicate_myisam_orig = `SELECT @@wsrep_replicate_myisam` + +SET GLOBAL wsrep_replicate_myisam = TRUE; + +CREATE TABLE t1 (f1 INT PRIMARY KEY) Engine=MyISAM; +INSERT INTO t1 VALUES (1); + +--connection node_2 +SELECT COUNT(*) = 1 FROM t1; + +--connection node_1 +--eval SET GLOBAL wsrep_replicate_myisam = $wsrep_replicate_myisam_orig + +DROP TABLE t1; diff --git a/mysql-test/suite/galera/t/galera_var_sync_wait.test b/mysql-test/suite/galera/t/galera_var_sync_wait.test new file mode 100644 index 00000000000..935c271a4d6 --- /dev/null +++ b/mysql-test/suite/galera/t/galera_var_sync_wait.test @@ -0,0 +1,43 @@ +# +# Simple test for the various levels of wsrep-sync-wait +# + +--source include/galera_cluster.inc +--source include/have_innodb.inc + +--let $wsrep_sync_wait_orig = `SELECT @@wsrep_sync_wait` + +--connection node_1 +CREATE TABLE t1 (f1 INT PRIMARY KEY) Engine=InnoDB; + +--connection node_2 +SET GLOBAL wsrep_sync_wait = 1; +# Those statements should see the table +SHOW TABLES LIKE '%t1'; +SELECT COUNT(*) = 0 FROM t1; + +--connection node_1 +CREATE TABLE t2 (f1 INT PRIMARY KEY) Engine=InnoDB; + +--connection node_2 +SET GLOBAL wsrep_sync_wait = 4; +# This insert should see the table and succeed +INSERT INTO t2 VALUES (1); + +--connection node_1 +CREATE TABLE t3 (f1 INT PRIMARY KEY) Engine=InnoDB; +INSERT INTO t3 VALUES (1); + +--connection node_2 +SET GLOBAL wsrep_sync_wait = 2; +# This statement should see and update 1 row +--enable_info +UPDATE t3 SET f1 = 2; +--disable_info + +--connection node_2 +--eval SET GLOBAL wsrep_sync_wait = $wsrep_sync_wait_orig + +DROP TABLE t1; +DROP TABLE t2; +DROP TABLE t3; diff --git a/mysql-test/suite/innodb/r/innodb-autoinc.result b/mysql-test/suite/innodb/r/innodb-autoinc.result index 4ddae5f875e..5c341bd6b98 100644 --- a/mysql-test/suite/innodb/r/innodb-autoinc.result +++ b/mysql-test/suite/innodb/r/innodb-autoinc.result @@ -197,11 +197,10 @@ c1 c2 5 9 DROP TABLE t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=100, @@SESSION.AUTO_INCREMENT_OFFSET=10; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 100 auto_increment_offset 10 -wsrep_auto_increment_control ON DROP TABLE IF EXISTS t1; Warnings: Note 1051 Unknown table 'test.t1' @@ -229,13 +228,13 @@ c1 410 1000 DROP TABLE t1; +SET GLOBAL wsrep_auto_increment_control=OFF; SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 1 auto_increment_offset 1 -wsrep_auto_increment_control ON DROP TABLE IF EXISTS t1; Warnings: Note 1051 Unknown table 'test.t1' @@ -271,11 +270,10 @@ c1 DROP TABLE t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 1 auto_increment_offset 1 -wsrep_auto_increment_control ON DROP TABLE IF EXISTS t1; Warnings: Note 1051 Unknown table 'test.t1' @@ -285,11 +283,10 @@ SELECT * FROM t1; c1 -1 SET @@SESSION.AUTO_INCREMENT_INCREMENT=100, @@SESSION.AUTO_INCREMENT_OFFSET=10; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 100 auto_increment_offset 10 -wsrep_auto_increment_control ON INSERT INTO t1 VALUES (-2), (NULL),(2),(NULL); INSERT INTO t1 VALUES (250),(NULL); SELECT * FROM t1; @@ -319,11 +316,10 @@ c1 DROP TABLE t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 1 auto_increment_offset 1 -wsrep_auto_increment_control ON DROP TABLE IF EXISTS t1; Warnings: Note 1051 Unknown table 'test.t1' @@ -335,11 +331,10 @@ SELECT * FROM t1; c1 1 SET @@SESSION.AUTO_INCREMENT_INCREMENT=100, @@SESSION.AUTO_INCREMENT_OFFSET=10; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 100 auto_increment_offset 10 -wsrep_auto_increment_control ON INSERT INTO t1 VALUES (-2); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 @@ -376,11 +371,10 @@ c1 DROP TABLE t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 1 auto_increment_offset 1 -wsrep_auto_increment_control ON DROP TABLE IF EXISTS t1; Warnings: Note 1051 Unknown table 'test.t1' @@ -392,11 +386,10 @@ SELECT * FROM t1; c1 1 SET @@SESSION.AUTO_INCREMENT_INCREMENT=100, @@SESSION.AUTO_INCREMENT_OFFSET=10; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 100 auto_increment_offset 10 -wsrep_auto_increment_control ON INSERT INTO t1 VALUES (-2),(NULL),(2),(NULL); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 @@ -427,11 +420,10 @@ c1 DROP TABLE t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 1 auto_increment_offset 1 -wsrep_auto_increment_control ON DROP TABLE IF EXISTS t1; Warnings: Note 1051 Unknown table 'test.t1' @@ -443,11 +435,10 @@ c1 1 9223372036854775794 SET @@SESSION.AUTO_INCREMENT_INCREMENT=2, @@SESSION.AUTO_INCREMENT_OFFSET=10; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 2 auto_increment_offset 10 -wsrep_auto_increment_control ON INSERT INTO t1 VALUES (NULL),(NULL),(NULL),(NULL),(NULL),(NULL); SELECT * FROM t1; c1 @@ -462,11 +453,10 @@ c1 DROP TABLE t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 1 auto_increment_offset 1 -wsrep_auto_increment_control ON DROP TABLE IF EXISTS t1; Warnings: Note 1051 Unknown table 'test.t1' @@ -478,11 +468,10 @@ c1 1 18446744073709551603 SET @@SESSION.AUTO_INCREMENT_INCREMENT=2, @@SESSION.AUTO_INCREMENT_OFFSET=10; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 2 auto_increment_offset 10 -wsrep_auto_increment_control ON INSERT INTO t1 VALUES (NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL); ERROR HY000: Failed to read auto-increment value from storage engine SELECT * FROM t1; @@ -492,11 +481,10 @@ c1 DROP TABLE t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 1 auto_increment_offset 1 -wsrep_auto_increment_control ON DROP TABLE IF EXISTS t1; Warnings: Note 1051 Unknown table 'test.t1' @@ -508,11 +496,10 @@ c1 1 18446744073709551603 SET @@SESSION.AUTO_INCREMENT_INCREMENT=5, @@SESSION.AUTO_INCREMENT_OFFSET=7; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 5 auto_increment_offset 7 -wsrep_auto_increment_control ON INSERT INTO t1 VALUES (NULL),(NULL), (NULL); ERROR HY000: Failed to read auto-increment value from storage engine SELECT * FROM t1; @@ -522,11 +509,10 @@ c1 DROP TABLE t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 1 auto_increment_offset 1 -wsrep_auto_increment_control ON DROP TABLE IF EXISTS t1; Warnings: Note 1051 Unknown table 'test.t1' @@ -542,11 +528,10 @@ c1 -9223372036854775806 1 SET @@SESSION.AUTO_INCREMENT_INCREMENT=3, @@SESSION.AUTO_INCREMENT_OFFSET=3; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 3 auto_increment_offset 3 -wsrep_auto_increment_control ON INSERT INTO t1 VALUES (NULL),(NULL), (NULL); SELECT * FROM t1; c1 @@ -560,11 +545,10 @@ c1 DROP TABLE t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 1 auto_increment_offset 1 -wsrep_auto_increment_control ON DROP TABLE IF EXISTS t1; Warnings: Note 1051 Unknown table 'test.t1' @@ -579,11 +563,10 @@ SET @@SESSION.AUTO_INCREMENT_INCREMENT=1152921504606846976, @@SESSION.AUTO_INCRE Warnings: Warning 1292 Truncated incorrect auto_increment_increment value: '1152921504606846976' Warning 1292 Truncated incorrect auto_increment_offset value: '1152921504606846976' -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 65535 auto_increment_offset 65535 -wsrep_auto_increment_control ON INSERT INTO t1 VALUES (NULL),(NULL); ERROR 22003: Out of range value for column 'c1' at row 1 SELECT * FROM t1; @@ -593,11 +576,10 @@ c1 DROP TABLE t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 1 auto_increment_offset 1 -wsrep_auto_increment_control ON 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); @@ -881,11 +863,10 @@ ERROR 22003: Out of range value for column 'c1' at row 1 DROP TABLE t1; DROP TABLE t2; SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 1 auto_increment_offset 1 -wsrep_auto_increment_control ON CREATE TABLE t1 (c1 TINYINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; INSERT INTO t1 VALUES (1, NULL); INSERT INTO t1 VALUES (-1, 'innodb'); @@ -1272,11 +1253,10 @@ t1 CREATE TABLE `t1` ( ) ENGINE=InnoDB AUTO_INCREMENT=18446744073709551615 DEFAULT CHARSET=latin1 DROP TABLE t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=256; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 1 auto_increment_offset 256 -wsrep_auto_increment_control ON CREATE TABLE t1 (c1 TINYINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; INSERT INTO t1 VALUES (1, NULL); SHOW CREATE TABLE t1; @@ -1291,11 +1271,10 @@ c1 c2 1 NULL DROP TABLE t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 1 auto_increment_offset 1 -wsrep_auto_increment_control ON CREATE TABLE t1 (c1 INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; INSERT INTO t1 VALUES (2147483648, 'a'); SHOW CREATE TABLE t1; diff --git a/mysql-test/suite/innodb/t/galera.skip b/mysql-test/suite/innodb/t/galera.skip new file mode 100644 index 00000000000..a09bd47d7e7 --- /dev/null +++ b/mysql-test/suite/innodb/t/galera.skip @@ -0,0 +1,24 @@ +innodb : deadlock, failure in UPDATE IGNORE, lp1372296 +innodb_ctype_ldml : Test contains statements unsafe to replicate in statement-based replication +innodb-autoinc : deadlock, failure in REPLACE, lp1372296 +innodb_mysql : deadlock due to DDL +innodb_buffer_pool_load : Test contains statements unsafe to replicate in statement-based replication +innodb-autoinc-56228 : deadlock, lp1372301 +innodb_lock_wait_timeout_1 : Test contains statements unsafe to replicate in statement-based replication +innodb-consistent : Test contains statements unsafe to replicate in statement-based replication +innodb-semi-consistent : Test contains statements unsafe to replicate in statement-based replication +innodb-index : DDL concurrent with transaction +innodb-lock : deadlock on INSERT IGNORE, lp1372296 +innodb-status-output : Test performs server restart +innodb-wl5522 : Test contains statements unsafe to replicate in statement-based replication +innodb-wl6445 : Test performs server restart +innodb_bug40360 : Test contains statements unsafe to replicate in statement-based replication +innodb_bug40565 : Galera git bug #137 - Invalid deadlock on UPDATE to NULL without a PK +innodb_bug42419 : Test contains statements unsafe to replicate in statement-based replication +innodb_bug49164 : Test contains statements unsafe to replicate in statement-based replication +innodb_bug45357 : impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging +innodb_bug52663 : Test contains statements unsafe to replicate in statement-based replication +innodb_bug59733 : Test contains statements unsafe to replicate in statement-based replication +innodb_gis : Test contains statements unsafe to replicate in statement-based replication +innodb_prefix_index_restart_server : crash, lp1372288 +innodb_stats_external_pages : Test contains statements unsafe to replicate in statement-based replication diff --git a/mysql-test/suite/innodb/t/innodb-autoinc.test b/mysql-test/suite/innodb/t/innodb-autoinc.test index fd40b50ebbc..88744980c2f 100644 --- a/mysql-test/suite/innodb/t/innodb-autoinc.test +++ b/mysql-test/suite/innodb/t/innodb-autoinc.test @@ -161,7 +161,7 @@ DROP TABLE t1; # # Test changes to AUTOINC next value calculation SET @@SESSION.AUTO_INCREMENT_INCREMENT=100, @@SESSION.AUTO_INCREMENT_OFFSET=10; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; DROP TABLE IF EXISTS t1; CREATE TABLE t1 (c1 INT AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB; INSERT INTO t1 VALUES (NULL),(5),(NULL); @@ -176,9 +176,11 @@ DROP TABLE t1; # Test with SIGNED INT column, by inserting a 0 for the first column value # 0 is treated in the same was NULL. # Reset the AUTOINC session variables +SET GLOBAL wsrep_auto_increment_control=OFF; + SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; DROP TABLE IF EXISTS t1; CREATE TABLE t1 (c1 INT AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB; INSERT INTO t1 VALUES(0); @@ -198,13 +200,13 @@ DROP TABLE t1; # Reset the AUTOINC session variables SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; DROP TABLE IF EXISTS t1; CREATE TABLE t1 (c1 INT AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB; INSERT INTO t1 VALUES(-1); SELECT * FROM t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=100, @@SESSION.AUTO_INCREMENT_OFFSET=10; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; INSERT INTO t1 VALUES (-2), (NULL),(2),(NULL); INSERT INTO t1 VALUES (250),(NULL); SELECT * FROM t1; @@ -219,13 +221,13 @@ DROP TABLE t1; # Reset the AUTOINC session variables SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; DROP TABLE IF EXISTS t1; CREATE TABLE t1 (c1 INT UNSIGNED AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB; INSERT INTO t1 VALUES(-1); SELECT * FROM t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=100, @@SESSION.AUTO_INCREMENT_OFFSET=10; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; INSERT INTO t1 VALUES (-2); INSERT INTO t1 VALUES (NULL); INSERT INTO t1 VALUES (2); @@ -245,13 +247,13 @@ DROP TABLE t1; # Reset the AUTOINC session variables SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; DROP TABLE IF EXISTS t1; CREATE TABLE t1 (c1 INT UNSIGNED AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB; INSERT INTO t1 VALUES(-1); SELECT * FROM t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=100, @@SESSION.AUTO_INCREMENT_OFFSET=10; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; INSERT INTO t1 VALUES (-2),(NULL),(2),(NULL); INSERT INTO t1 VALUES (250),(NULL); SELECT * FROM t1; @@ -267,7 +269,7 @@ DROP TABLE t1; # Check for overflow handling when increment is > 1 SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; DROP TABLE IF EXISTS t1; CREATE TABLE t1 (c1 BIGINT AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB; # TODO: Fix the autoinc init code @@ -276,7 +278,7 @@ INSERT INTO t1 VALUES(NULL); INSERT INTO t1 VALUES (9223372036854775794); #-- 2^63 - 14 SELECT * FROM t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=2, @@SESSION.AUTO_INCREMENT_OFFSET=10; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; # This should just fit INSERT INTO t1 VALUES (NULL),(NULL),(NULL),(NULL),(NULL),(NULL); SELECT * FROM t1; @@ -286,7 +288,7 @@ DROP TABLE t1; # Check for overflow handling when increment and offser are > 1 SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; DROP TABLE IF EXISTS t1; CREATE TABLE t1 (c1 BIGINT UNSIGNED AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB; # TODO: Fix the autoinc init code @@ -295,7 +297,7 @@ INSERT INTO t1 VALUES(NULL); INSERT INTO t1 VALUES (18446744073709551603); #-- 2^64 - 13 SELECT * FROM t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=2, @@SESSION.AUTO_INCREMENT_OFFSET=10; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; --error ER_AUTOINC_READ_FAILED INSERT INTO t1 VALUES (NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL); SELECT * FROM t1; @@ -305,7 +307,7 @@ DROP TABLE t1; # Check for overflow handling when increment and offset are odd numbers SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; DROP TABLE IF EXISTS t1; CREATE TABLE t1 (c1 BIGINT UNSIGNED AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB; # TODO: Fix the autoinc init code @@ -314,7 +316,7 @@ INSERT INTO t1 VALUES(NULL); INSERT INTO t1 VALUES (18446744073709551603); #-- 2^64 - 13 SELECT * FROM t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=5, @@SESSION.AUTO_INCREMENT_OFFSET=7; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; --error ER_AUTOINC_READ_FAILED INSERT INTO t1 VALUES (NULL),(NULL), (NULL); SELECT * FROM t1; @@ -324,7 +326,7 @@ DROP TABLE t1; # and check for large -ve numbers SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; DROP TABLE IF EXISTS t1; CREATE TABLE t1 (c1 BIGINT AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB; # TODO: Fix the autoinc init code @@ -335,7 +337,7 @@ INSERT INTO t1 VALUES(-9223372036854775807); #-- -2^63 + 1 INSERT INTO t1 VALUES(-9223372036854775808); #-- -2^63 SELECT * FROM t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=3, @@SESSION.AUTO_INCREMENT_OFFSET=3; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; INSERT INTO t1 VALUES (NULL),(NULL), (NULL); SELECT * FROM t1; DROP TABLE t1; @@ -344,7 +346,7 @@ DROP TABLE t1; # large numbers 2^60 SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; DROP TABLE IF EXISTS t1; CREATE TABLE t1 (c1 BIGINT UNSIGNED AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB; # TODO: Fix the autoinc init code @@ -353,7 +355,7 @@ INSERT INTO t1 VALUES(NULL); INSERT INTO t1 VALUES (18446744073709551610); #-- 2^64 - 2 SELECT * FROM t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=1152921504606846976, @@SESSION.AUTO_INCREMENT_OFFSET=1152921504606846976; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; --error 167 INSERT INTO t1 VALUES (NULL),(NULL); SELECT * FROM t1; @@ -364,7 +366,7 @@ DROP TABLE t1; # SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SET @@INSERT_ID=1; -SHOW VARIABLES LIKE "%auto_inc%"; +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); @@ -450,7 +452,7 @@ DROP TABLE t2; # If the user has specified negative values for an AUTOINC column then # InnoDB should ignore those values when setting the table's max value. SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; # TINYINT CREATE TABLE t1 (c1 TINYINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; INSERT INTO t1 VALUES (1, NULL); @@ -646,7 +648,7 @@ DROP TABLE t1; # Check if we handle offset > column max value properly SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=256; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; # TINYINT CREATE TABLE t1 (c1 TINYINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; INSERT INTO t1 VALUES (1, NULL); @@ -658,7 +660,7 @@ DROP TABLE t1; # of the column. IMO, this should not be allowed and the assertion that fails # is actually an invariant. SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; -SHOW VARIABLES LIKE "%auto_inc%"; +SHOW VARIABLES LIKE "auto_inc%"; # TINYINT CREATE TABLE t1 (c1 INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; INSERT INTO t1 VALUES (2147483648, 'a'); diff --git a/mysql-test/suite/parts/r/partition_exch_qa_10.result b/mysql-test/suite/parts/r/partition_exch_qa_10.result index 8afdc06fb42..7193a6c99a1 100755 --- a/mysql-test/suite/parts/r/partition_exch_qa_10.result +++ b/mysql-test/suite/parts/r/partition_exch_qa_10.result @@ -23,10 +23,9 @@ a b DROP PROCEDURE test_p1; SET @save_autocommit= @@autocommit; SET @@autocommit= OFF; -SHOW VARIABLES LIKE '%autocommit%'; +SHOW VARIABLES LIKE 'autocommit%'; Variable_name Value autocommit OFF -wsrep_retry_autocommit 1 CREATE TRIGGER test_trg_1 BEFORE UPDATE ON tp FOR EACH ROW BEGIN ALTER TABLE tp EXCHANGE PARTITION p0 WITH TABLE t_10; diff --git a/mysql-test/suite/parts/t/partition_exch_qa_10.test b/mysql-test/suite/parts/t/partition_exch_qa_10.test index 4f569605f5f..a87d658cfb6 100644 --- a/mysql-test/suite/parts/t/partition_exch_qa_10.test +++ b/mysql-test/suite/parts/t/partition_exch_qa_10.test @@ -37,7 +37,7 @@ DROP PROCEDURE test_p1; SET @save_autocommit= @@autocommit; SET @@autocommit= OFF; -SHOW VARIABLES LIKE '%autocommit%'; +SHOW VARIABLES LIKE 'autocommit%'; DELIMITER |; --error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG CREATE TRIGGER test_trg_1 BEFORE UPDATE ON tp FOR EACH ROW diff --git a/mysql-test/suite/perfschema/r/rpl_statements.result b/mysql-test/suite/perfschema/r/rpl_statements.result index f9d572a5804..4e1f03643f1 100644 --- a/mysql-test/suite/perfschema/r/rpl_statements.result +++ b/mysql-test/suite/perfschema/r/rpl_statements.result @@ -11,10 +11,9 @@ include/master-slave.inc *** Create test tables -show variables like '%binlog_format%'; +show variables like 'binlog_format%'; Variable_name Value binlog_format MIXED -wsrep_forced_binlog_format NONE drop table if exists test.marker; select thread_id into @my_thread_id from performance_schema.threads @@ -56,10 +55,9 @@ Expect 1 *** MASTER *** ************** -show variables like '%binlog_format%'; +show variables like 'binlog_format%'; Variable_name Value binlog_format MIXED -wsrep_forced_binlog_format NONE *** Clear statement events *** Create/drop table, create/drop database diff --git a/mysql-test/suite/perfschema/t/rpl_statements.test b/mysql-test/suite/perfschema/t/rpl_statements.test index fa429cd2aa3..479805edccc 100644 --- a/mysql-test/suite/perfschema/t/rpl_statements.test +++ b/mysql-test/suite/perfschema/t/rpl_statements.test @@ -64,7 +64,7 @@ connection master; --echo *** Create test tables --echo -show variables like '%binlog_format%'; +show variables like 'binlog_format%'; --disable_warnings drop table if exists test.marker; @@ -129,7 +129,7 @@ connection master; --echo *** MASTER *** --echo ************** --echo -show variables like '%binlog_format%'; +show variables like 'binlog_format%'; --echo *** Clear statement events --source ../include/rpl_statements_truncate.inc diff --git a/sql/mysqld.cc b/sql/mysqld.cc index b08af09b160..fdd4f9060c4 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -9630,6 +9630,31 @@ static int get_options(int *argc_ptr, char ***argv_ptr) else global_system_variables.option_bits&= ~OPTION_BIG_SELECTS; +#ifdef WITH_WSREP + if (global_system_variables.wsrep_causal_reads) { + WSREP_WARN("option --wsrep-casual-reads is deprecated"); + if (!(global_system_variables.wsrep_sync_wait & + WSREP_SYNC_WAIT_BEFORE_READ)) { + WSREP_WARN("--wsrep-casual-reads=ON takes precedence over --wsrep-sync-wait=%u. " + "WSREP_SYNC_WAIT_BEFORE_READ is on", + global_system_variables.wsrep_sync_wait); + global_system_variables.wsrep_sync_wait |= WSREP_SYNC_WAIT_BEFORE_READ; + } else { + // they are both turned on. + } + } else { + if (global_system_variables.wsrep_sync_wait & + WSREP_SYNC_WAIT_BEFORE_READ) { + WSREP_WARN("--wsrep-sync-wait=%u takes precedence over --wsrep-causal-reads=OFF. " + "WSREP_SYNC_WAIT_BEFORE_READ is on", + global_system_variables.wsrep_sync_wait); + global_system_variables.wsrep_causal_reads = 1; + } else { + // they are both turned off. + } + } +#endif // WITH_WSREP + // Synchronize @@global.autocommit on --autocommit const ulonglong turn_bit_on= opt_autocommit ? OPTION_AUTOCOMMIT : OPTION_NOT_AUTOCOMMIT; diff --git a/sql/sql_alter.cc b/sql/sql_alter.cc index 8b4f4ab9963..a39f07ae35d 100644 --- a/sql/sql_alter.cc +++ b/sql/sql_alter.cc @@ -308,16 +308,12 @@ bool Sql_cmd_alter_table::execute(THD *thd) #ifdef WITH_WSREP TABLE *find_temporary_table(THD *thd, const TABLE_LIST *tl); - if (WSREP(thd) && - (!thd->is_current_stmt_binlog_format_row() || - !find_temporary_table(thd, first_table)) && - wsrep_to_isolation_begin(thd, - lex->name.str ? select_lex->db : NULL, - lex->name.str ? lex->name.str : NULL, - first_table)) + if ((!thd->is_current_stmt_binlog_format_row() || + !find_temporary_table(thd, first_table))) { - WSREP_WARN("ALTER TABLE isolation failure"); - DBUG_RETURN(TRUE); + WSREP_TO_ISOLATION_BEGIN(((lex->name.str) ? select_lex->db : NULL), + ((lex->name.str) ? lex->name.str : NULL), + first_table); } #endif /* WITH_WSREP */ result= mysql_alter_table(thd, select_lex->db, lex->name.str, @@ -328,9 +324,13 @@ bool Sql_cmd_alter_table::execute(THD *thd) select_lex->order_list.first, lex->ignore); + DBUG_RETURN(result); + #ifdef WITH_WSREP +error: + WSREP_WARN("ALTER TABLE isolation failure"); + DBUG_RETURN(TRUE); #endif /* WITH_WSREP */ - DBUG_RETURN(result); } bool Sql_cmd_discard_import_tablespace::execute(THD *thd) diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index fc48db37f99..ca116ccabaa 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -975,12 +975,8 @@ bool do_command(THD *thd) thd->wsrep_query_state= QUERY_EXEC; mysql_mutex_unlock(&thd->LOCK_wsrep_thd); } - - if ((WSREP(thd) && packet_length == packet_error) || - (!WSREP(thd) && (packet_length == packet_error))) -#else - if (packet_length == packet_error) #endif /* WITH_WSREP */ + if (packet_length == packet_error) { DBUG_PRINT("info",("Got error %d reading command from socket %s", net->error, diff --git a/sql/wsrep_applier.cc b/sql/wsrep_applier.cc index 23687e98c32..03d356aa046 100644 --- a/sql/wsrep_applier.cc +++ b/sql/wsrep_applier.cc @@ -95,7 +95,8 @@ static wsrep_cb_status_t wsrep_apply_events(THD* thd, DBUG_ENTER("wsrep_apply_events"); - if (thd->killed == KILL_CONNECTION) + if (thd->killed == KILL_CONNECTION && + thd->wsrep_conflict_state != REPLAYING) { WSREP_INFO("applier has been aborted, skipping apply_rbr: %lld", (long long) wsrep_thd_trx_seqno(thd)); diff --git a/sql/wsrep_mysqld.cc b/sql/wsrep_mysqld.cc index d59c9cd65d0..c5036d5e83a 100644 --- a/sql/wsrep_mysqld.cc +++ b/sql/wsrep_mysqld.cc @@ -307,9 +307,16 @@ wsrep_view_handler_cb (void* app_ctx, wsrep_ready_set(FALSE); /* Close client connections to ensure that they don't interfere - * with SST */ - WSREP_DEBUG("[debug]: closing client connections for PRIM"); - wsrep_close_client_connections(TRUE); + * with SST. Necessary only if storage engines are initialized + * before SST. + * TODO: Just killing all ongoing transactions should be enough + * since wsrep_ready is OFF and no new transactions can start. + */ + if (!wsrep_before_SE()) + { + WSREP_DEBUG("[debug]: closing client connections for PRIM"); + wsrep_close_client_connections(TRUE); + } ssize_t const req_len= wsrep_sst_prepare (sst_req); diff --git a/sql/wsrep_mysqld.h b/sql/wsrep_mysqld.h index a42f69276d7..14edf26c44f 100644 --- a/sql/wsrep_mysqld.h +++ b/sql/wsrep_mysqld.h @@ -192,7 +192,7 @@ extern wsrep_seqno_t wsrep_locked_seqno; (global_system_variables.wsrep_on) #define WSREP(thd) \ - (WSREP_ON && (thd && thd->variables.wsrep_on)) + (WSREP_ON && wsrep && (thd && thd->variables.wsrep_on)) #define WSREP_CLIENT(thd) \ (WSREP(thd) && thd->wsrep_client_thread) diff --git a/sql/wsrep_var.cc b/sql/wsrep_var.cc index 2272945535d..e917c8f7d42 100644 --- a/sql/wsrep_var.cc +++ b/sql/wsrep_var.cc @@ -62,26 +62,34 @@ bool wsrep_on_update (sys_var *self, THD* thd, enum_var_type var_type) bool wsrep_causal_reads_update (sys_var *self, THD* thd, enum_var_type var_type) { - // global setting should not affect session setting. - // if (var_type == OPT_GLOBAL) { - // thd->variables.wsrep_causal_reads = global_system_variables.wsrep_causal_reads; - // } - if (thd->variables.wsrep_causal_reads) { - thd->variables.wsrep_sync_wait |= WSREP_SYNC_WAIT_BEFORE_READ; + // wsrep_sync_wait should also be updated. + if (var_type == OPT_GLOBAL) { + if (global_system_variables.wsrep_causal_reads) { + global_system_variables.wsrep_sync_wait |= WSREP_SYNC_WAIT_BEFORE_READ; + } else { + global_system_variables.wsrep_sync_wait &= ~WSREP_SYNC_WAIT_BEFORE_READ; + } } else { - thd->variables.wsrep_sync_wait &= ~WSREP_SYNC_WAIT_BEFORE_READ; + if (thd->variables.wsrep_causal_reads) { + thd->variables.wsrep_sync_wait |= WSREP_SYNC_WAIT_BEFORE_READ; + } else { + thd->variables.wsrep_sync_wait &= ~WSREP_SYNC_WAIT_BEFORE_READ; + } } + return false; } bool wsrep_sync_wait_update (sys_var* self, THD* thd, enum_var_type var_type) { - // global setting should not affect session setting. - // if (var_type == OPT_GLOBAL) { - // thd->variables.wsrep_sync_wait = global_system_variables.wsrep_sync_wait; - // } - thd->variables.wsrep_causal_reads = thd->variables.wsrep_sync_wait & - WSREP_SYNC_WAIT_BEFORE_READ; + // wsrep_causal_reads should also be updated. + if (var_type == OPT_GLOBAL) { + global_system_variables.wsrep_causal_reads= + global_system_variables.wsrep_sync_wait & WSREP_SYNC_WAIT_BEFORE_READ; + } else { + thd->variables.wsrep_causal_reads= + thd->variables.wsrep_sync_wait & WSREP_SYNC_WAIT_BEFORE_READ; + } return false; } |