Loading config/ac-macros/misc.m4 +28 −0 Original line number Diff line number Diff line Loading @@ -636,3 +636,31 @@ fi dnl --------------------------------------------------------------------------- dnl --------------------------------------------------------------------------- dnl Macro: MYSQL_CHECK_BIG_TABLES dnl Sets BIG_TABLES if --with-big-tables is used dnl --------------------------------------------------------------------------- AC_DEFUN([MYSQL_CHECK_BIG_TABLES], [ AC_ARG_WITH([big-tables], [ --with-big-tables Support tables with more than 4 G rows even on 32 bit platforms], [bigtables="$withval"], [bigtables=no]) AC_MSG_CHECKING([for big tables support]) case "$bigtables" in yes ) AC_DEFINE([BIG_TABLES], [1], [Support big tables]) AC_MSG_RESULT([yes]) ;; * ) AC_MSG_RESULT([no]) ;; esac ]) dnl --------------------------------------------------------------------------- dnl END OF MYSQL_CHECK_BIG_TABLES SECTION dnl --------------------------------------------------------------------------- configure.in +1 −0 Original line number Diff line number Diff line Loading @@ -2373,6 +2373,7 @@ AC_SUBST(readline_basedir) AC_SUBST(readline_link) AC_SUBST(readline_h_ln_cmd) MYSQL_CHECK_BIG_TABLES MYSQL_CHECK_BDB MYSQL_CHECK_INNODB MYSQL_CHECK_EXAMPLEDB Loading mysql-test/lib/init_db.sql +9 −8 Original line number Diff line number Diff line Loading @@ -84,6 +84,7 @@ CREATE TABLE user ( Show_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_user_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, ssl_type enum('','ANY','X509', 'SPECIFIED') COLLATE utf8_general_ci DEFAULT '' NOT NULL, ssl_cipher BLOB NOT NULL, x509_issuer BLOB NOT NULL, Loading @@ -98,9 +99,9 @@ CHARACTER SET utf8 COLLATE utf8_bin comment='Users and global privileges'; INSERT INTO user VALUES ('localhost' ,'root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0); INSERT INTO user VALUES ('@HOSTNAME@%' ,'root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0); REPLACE INTO user VALUES ('127.0.0.1' ,'root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0); INSERT INTO user VALUES ('localhost' ,'root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0); INSERT INTO user VALUES ('@HOSTNAME@%' ,'root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0); REPLACE INTO user VALUES ('127.0.0.1' ,'root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0); INSERT INTO user (host,user) VALUES ('localhost',''); INSERT INTO user (host,user) VALUES ('@HOSTNAME@%',''); Loading Loading @@ -147,11 +148,11 @@ comment='Column privileges'; CREATE TABLE help_topic ( help_topic_id int unsigned not null, name varchar(64) not null, name char(64) not null, help_category_id smallint unsigned not null, description text not null, example text not null, url varchar(128) not null, url char(128) not null, primary key (help_topic_id), unique index (name) ) engine=MyISAM Loading @@ -161,9 +162,9 @@ comment='help topics'; CREATE TABLE help_category ( help_category_id smallint unsigned not null, name varchar(64) not null, name char(64) not null, parent_category_id smallint unsigned null, url varchar(128) not null, url char(128) not null, primary key (help_category_id),unique index (name) ) engine=MyISAM CHARACTER SET utf8 Loading @@ -172,7 +173,7 @@ comment='help categories'; CREATE TABLE help_keyword ( help_keyword_id int unsigned not null, name varchar(64) not null, name char(64) not null, primary key (help_keyword_id),unique index (name) ) engine=MyISAM CHARACTER SET utf8 Loading mysql-test/r/ps_7ndb.result +11 −11 Original line number Diff line number Diff line Loading @@ -48,7 +48,7 @@ test_sequence ------ simple select tests ------ prepare stmt1 from ' select * from t9 order by c1 ' ; execute stmt1; Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def test t9 t9 c1 c1 1 4 1 N 49155 0 63 def test t9 t9 c2 c2 2 6 1 Y 32768 0 63 def test t9 t9 c3 c3 9 9 1 Y 32768 0 63 Loading Loading @@ -1144,7 +1144,7 @@ test_sequence ------ explain select tests ------ prepare stmt1 from ' explain select * from t9 ' ; execute stmt1; Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def id 8 3 1 N 32929 0 63 def select_type 253 19 6 N 1 31 8 def table 253 64 2 N 1 31 8 Loading Loading @@ -1782,7 +1782,7 @@ t5 CREATE TABLE `t5` ( `param15` longblob ) ENGINE=MyISAM DEFAULT CHARSET=latin1 select * from t5 ; Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def test t5 t5 const01 const01 8 1 1 N 32769 0 63 def test t5 t5 param01 param01 8 20 1 Y 32768 0 63 def test t5 t5 const02 const02 246 3 3 N 1 1 63 Loading Loading @@ -1894,7 +1894,7 @@ from t9 where c1= 1 ; @arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32 1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday execute full_info ; Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def @arg01 253 20 1 Y 128 31 63 def @arg02 253 20 1 Y 128 31 63 def @arg03 253 20 1 Y 128 31 63 Loading Loading @@ -1941,7 +1941,7 @@ from t9 where c1= 0 ; @arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL execute full_info ; Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def @arg01 253 20 1 Y 128 31 63 def @arg02 253 20 0 Y 128 31 63 def @arg03 253 20 0 Y 128 31 63 Loading Loading @@ -1991,7 +1991,7 @@ execute stmt1 using @my_key ; @arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32 1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday execute full_info ; Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def @arg01 253 20 1 Y 128 31 63 def @arg02 253 20 1 Y 128 31 63 def @arg03 253 20 1 Y 128 31 63 Loading Loading @@ -2031,7 +2031,7 @@ execute stmt1 using @my_key ; @arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL execute full_info ; Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def @arg01 253 20 1 Y 128 31 63 def @arg02 253 20 0 Y 128 31 63 def @arg03 253 20 0 Y 128 31 63 Loading Loading @@ -2079,7 +2079,7 @@ into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08, @arg25, @arg26, @arg27, @arg28, @arg29, @arg30, @arg31, @arg32 from t9 where c1= 1 ; execute full_info ; Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def @arg01 253 20 1 Y 128 31 63 def @arg02 253 20 1 Y 128 31 63 def @arg03 253 20 1 Y 128 31 63 Loading Loading @@ -2123,7 +2123,7 @@ into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08, @arg25, @arg26, @arg27, @arg28, @arg29, @arg30, @arg31, @arg32 from t9 where c1= 0 ; execute full_info ; Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def @arg01 253 20 1 Y 128 31 63 def @arg02 253 20 0 Y 128 31 63 def @arg03 253 20 0 Y 128 31 63 Loading Loading @@ -2169,7 +2169,7 @@ from t9 where c1= ?" ; set @my_key= 1 ; execute stmt1 using @my_key ; execute full_info ; Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def @arg01 253 20 1 Y 128 31 63 def @arg02 253 20 1 Y 128 31 63 def @arg03 253 20 1 Y 128 31 63 Loading Loading @@ -2207,7 +2207,7 @@ def @arg32 253 8192 6 Y 0 31 8 set @my_key= 0 ; execute stmt1 using @my_key ; execute full_info ; Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def @arg01 253 20 1 Y 128 31 63 def @arg02 253 20 0 Y 128 31 63 def @arg03 253 20 0 Y 128 31 63 Loading sql/log_event.cc +24 −8 Original line number Diff line number Diff line Loading @@ -1059,9 +1059,9 @@ bool Query_log_event::write(IO_CACHE* file) sees unknown Q_CATALOG_NZ_CODE; so it will not be able to read Q_AUTO_INCREMENT*, Q_CHARSET and so replication will fail silently in various ways. Documented that you should not mix alpha/beta versions if they are not exactly the same version, with example of 5.0.2<->5.0.3 and 5.0.3<->5.0.4. If replication is from older to new, the new won't find the catalog and will have the same problems. they are not exactly the same version, with example of 5.0.3->5.0.2 and 5.0.4->5.0.3. If replication is from older to new, the new will recognize Q_CATALOG_CODE and have no problem. */ } if (auto_increment_increment != 1) Loading Loading @@ -1195,6 +1195,7 @@ Query_log_event::Query_log_event(const char* buf, uint event_len, uint8 common_header_len, post_header_len; char *start; const char *end; bool catalog_nz= 1; DBUG_ENTER("Query_log_event::Query_log_event(char*,...)"); common_header_len= description_event->common_header_len; Loading Loading @@ -1286,11 +1287,17 @@ Query_log_event::Query_log_event(const char* buf, uint event_len, pos+= time_zone_len+1; break; } case Q_CATALOG_CODE: /* for 5.0.x where 0<=x<=3 masters */ if ((catalog_len= *pos)) catalog= (char*) pos+1; // Will be copied later pos+= catalog_len+2; // leap over end 0 catalog_nz= 0; // catalog has end 0 in event break; default: /* That's why you must write status vars in growing order of code */ DBUG_PRINT("info",("Query_log_event has unknown status vars (first has\ code: %u), skipping the rest of them", (uint) *(pos-1))); pos= (const uchar*) end; // Break look pos= (const uchar*) end; // Break loop } } Loading @@ -1299,12 +1306,21 @@ Query_log_event::Query_log_event(const char* buf, uint event_len, data_len + 1, MYF(MY_WME)))) DBUG_VOID_RETURN; if (catalog_len) // If catalog is given { if (likely(catalog_nz)) // true except if event comes from 5.0.0|1|2|3. { memcpy(start, catalog, catalog_len); catalog= start; start+= catalog_len; *start++= 0; } else { memcpy(start, catalog, catalog_len+1); // copy end 0 catalog= start; start+= catalog_len+1; } } if (time_zone_len) { memcpy(start, time_zone_str, time_zone_len); Loading Loading
config/ac-macros/misc.m4 +28 −0 Original line number Diff line number Diff line Loading @@ -636,3 +636,31 @@ fi dnl --------------------------------------------------------------------------- dnl --------------------------------------------------------------------------- dnl Macro: MYSQL_CHECK_BIG_TABLES dnl Sets BIG_TABLES if --with-big-tables is used dnl --------------------------------------------------------------------------- AC_DEFUN([MYSQL_CHECK_BIG_TABLES], [ AC_ARG_WITH([big-tables], [ --with-big-tables Support tables with more than 4 G rows even on 32 bit platforms], [bigtables="$withval"], [bigtables=no]) AC_MSG_CHECKING([for big tables support]) case "$bigtables" in yes ) AC_DEFINE([BIG_TABLES], [1], [Support big tables]) AC_MSG_RESULT([yes]) ;; * ) AC_MSG_RESULT([no]) ;; esac ]) dnl --------------------------------------------------------------------------- dnl END OF MYSQL_CHECK_BIG_TABLES SECTION dnl ---------------------------------------------------------------------------
configure.in +1 −0 Original line number Diff line number Diff line Loading @@ -2373,6 +2373,7 @@ AC_SUBST(readline_basedir) AC_SUBST(readline_link) AC_SUBST(readline_h_ln_cmd) MYSQL_CHECK_BIG_TABLES MYSQL_CHECK_BDB MYSQL_CHECK_INNODB MYSQL_CHECK_EXAMPLEDB Loading
mysql-test/lib/init_db.sql +9 −8 Original line number Diff line number Diff line Loading @@ -84,6 +84,7 @@ CREATE TABLE user ( Show_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_user_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, ssl_type enum('','ANY','X509', 'SPECIFIED') COLLATE utf8_general_ci DEFAULT '' NOT NULL, ssl_cipher BLOB NOT NULL, x509_issuer BLOB NOT NULL, Loading @@ -98,9 +99,9 @@ CHARACTER SET utf8 COLLATE utf8_bin comment='Users and global privileges'; INSERT INTO user VALUES ('localhost' ,'root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0); INSERT INTO user VALUES ('@HOSTNAME@%' ,'root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0); REPLACE INTO user VALUES ('127.0.0.1' ,'root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0); INSERT INTO user VALUES ('localhost' ,'root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0); INSERT INTO user VALUES ('@HOSTNAME@%' ,'root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0); REPLACE INTO user VALUES ('127.0.0.1' ,'root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0); INSERT INTO user (host,user) VALUES ('localhost',''); INSERT INTO user (host,user) VALUES ('@HOSTNAME@%',''); Loading Loading @@ -147,11 +148,11 @@ comment='Column privileges'; CREATE TABLE help_topic ( help_topic_id int unsigned not null, name varchar(64) not null, name char(64) not null, help_category_id smallint unsigned not null, description text not null, example text not null, url varchar(128) not null, url char(128) not null, primary key (help_topic_id), unique index (name) ) engine=MyISAM Loading @@ -161,9 +162,9 @@ comment='help topics'; CREATE TABLE help_category ( help_category_id smallint unsigned not null, name varchar(64) not null, name char(64) not null, parent_category_id smallint unsigned null, url varchar(128) not null, url char(128) not null, primary key (help_category_id),unique index (name) ) engine=MyISAM CHARACTER SET utf8 Loading @@ -172,7 +173,7 @@ comment='help categories'; CREATE TABLE help_keyword ( help_keyword_id int unsigned not null, name varchar(64) not null, name char(64) not null, primary key (help_keyword_id),unique index (name) ) engine=MyISAM CHARACTER SET utf8 Loading
mysql-test/r/ps_7ndb.result +11 −11 Original line number Diff line number Diff line Loading @@ -48,7 +48,7 @@ test_sequence ------ simple select tests ------ prepare stmt1 from ' select * from t9 order by c1 ' ; execute stmt1; Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def test t9 t9 c1 c1 1 4 1 N 49155 0 63 def test t9 t9 c2 c2 2 6 1 Y 32768 0 63 def test t9 t9 c3 c3 9 9 1 Y 32768 0 63 Loading Loading @@ -1144,7 +1144,7 @@ test_sequence ------ explain select tests ------ prepare stmt1 from ' explain select * from t9 ' ; execute stmt1; Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def id 8 3 1 N 32929 0 63 def select_type 253 19 6 N 1 31 8 def table 253 64 2 N 1 31 8 Loading Loading @@ -1782,7 +1782,7 @@ t5 CREATE TABLE `t5` ( `param15` longblob ) ENGINE=MyISAM DEFAULT CHARSET=latin1 select * from t5 ; Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def test t5 t5 const01 const01 8 1 1 N 32769 0 63 def test t5 t5 param01 param01 8 20 1 Y 32768 0 63 def test t5 t5 const02 const02 246 3 3 N 1 1 63 Loading Loading @@ -1894,7 +1894,7 @@ from t9 where c1= 1 ; @arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32 1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday execute full_info ; Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def @arg01 253 20 1 Y 128 31 63 def @arg02 253 20 1 Y 128 31 63 def @arg03 253 20 1 Y 128 31 63 Loading Loading @@ -1941,7 +1941,7 @@ from t9 where c1= 0 ; @arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL execute full_info ; Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def @arg01 253 20 1 Y 128 31 63 def @arg02 253 20 0 Y 128 31 63 def @arg03 253 20 0 Y 128 31 63 Loading Loading @@ -1991,7 +1991,7 @@ execute stmt1 using @my_key ; @arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32 1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday execute full_info ; Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def @arg01 253 20 1 Y 128 31 63 def @arg02 253 20 1 Y 128 31 63 def @arg03 253 20 1 Y 128 31 63 Loading Loading @@ -2031,7 +2031,7 @@ execute stmt1 using @my_key ; @arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL execute full_info ; Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def @arg01 253 20 1 Y 128 31 63 def @arg02 253 20 0 Y 128 31 63 def @arg03 253 20 0 Y 128 31 63 Loading Loading @@ -2079,7 +2079,7 @@ into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08, @arg25, @arg26, @arg27, @arg28, @arg29, @arg30, @arg31, @arg32 from t9 where c1= 1 ; execute full_info ; Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def @arg01 253 20 1 Y 128 31 63 def @arg02 253 20 1 Y 128 31 63 def @arg03 253 20 1 Y 128 31 63 Loading Loading @@ -2123,7 +2123,7 @@ into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08, @arg25, @arg26, @arg27, @arg28, @arg29, @arg30, @arg31, @arg32 from t9 where c1= 0 ; execute full_info ; Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def @arg01 253 20 1 Y 128 31 63 def @arg02 253 20 0 Y 128 31 63 def @arg03 253 20 0 Y 128 31 63 Loading Loading @@ -2169,7 +2169,7 @@ from t9 where c1= ?" ; set @my_key= 1 ; execute stmt1 using @my_key ; execute full_info ; Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def @arg01 253 20 1 Y 128 31 63 def @arg02 253 20 1 Y 128 31 63 def @arg03 253 20 1 Y 128 31 63 Loading Loading @@ -2207,7 +2207,7 @@ def @arg32 253 8192 6 Y 0 31 8 set @my_key= 0 ; execute stmt1 using @my_key ; execute full_info ; Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def @arg01 253 20 1 Y 128 31 63 def @arg02 253 20 0 Y 128 31 63 def @arg03 253 20 0 Y 128 31 63 Loading
sql/log_event.cc +24 −8 Original line number Diff line number Diff line Loading @@ -1059,9 +1059,9 @@ bool Query_log_event::write(IO_CACHE* file) sees unknown Q_CATALOG_NZ_CODE; so it will not be able to read Q_AUTO_INCREMENT*, Q_CHARSET and so replication will fail silently in various ways. Documented that you should not mix alpha/beta versions if they are not exactly the same version, with example of 5.0.2<->5.0.3 and 5.0.3<->5.0.4. If replication is from older to new, the new won't find the catalog and will have the same problems. they are not exactly the same version, with example of 5.0.3->5.0.2 and 5.0.4->5.0.3. If replication is from older to new, the new will recognize Q_CATALOG_CODE and have no problem. */ } if (auto_increment_increment != 1) Loading Loading @@ -1195,6 +1195,7 @@ Query_log_event::Query_log_event(const char* buf, uint event_len, uint8 common_header_len, post_header_len; char *start; const char *end; bool catalog_nz= 1; DBUG_ENTER("Query_log_event::Query_log_event(char*,...)"); common_header_len= description_event->common_header_len; Loading Loading @@ -1286,11 +1287,17 @@ Query_log_event::Query_log_event(const char* buf, uint event_len, pos+= time_zone_len+1; break; } case Q_CATALOG_CODE: /* for 5.0.x where 0<=x<=3 masters */ if ((catalog_len= *pos)) catalog= (char*) pos+1; // Will be copied later pos+= catalog_len+2; // leap over end 0 catalog_nz= 0; // catalog has end 0 in event break; default: /* That's why you must write status vars in growing order of code */ DBUG_PRINT("info",("Query_log_event has unknown status vars (first has\ code: %u), skipping the rest of them", (uint) *(pos-1))); pos= (const uchar*) end; // Break look pos= (const uchar*) end; // Break loop } } Loading @@ -1299,12 +1306,21 @@ Query_log_event::Query_log_event(const char* buf, uint event_len, data_len + 1, MYF(MY_WME)))) DBUG_VOID_RETURN; if (catalog_len) // If catalog is given { if (likely(catalog_nz)) // true except if event comes from 5.0.0|1|2|3. { memcpy(start, catalog, catalog_len); catalog= start; start+= catalog_len; *start++= 0; } else { memcpy(start, catalog, catalog_len+1); // copy end 0 catalog= start; start+= catalog_len+1; } } if (time_zone_len) { memcpy(start, time_zone_str, time_zone_len); Loading