403Webshell
Server IP : 172.67.216.182  /  Your IP : 172.68.164.134
Web Server : Apache
System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64
User : www ( 1000)
PHP Version : 7.4.33
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /www/server/mysql/src/mysql-test/suite/ndb_rpl/t/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /www/server/mysql/src/mysql-test/suite/ndb_rpl/t/ndb_rpl_rep_error.test
# The include statement below is a temp one for tests that are yet to
#be ported to run with InnoDB,
#but needs to be kept for tests that would need MyISAM in future.
--source include/force_myisam_default.inc

#
# Some negative tests of the ndb_replication table
#
#
--source include/have_multi_ndb.inc
--source include/have_binlog_format_mixed_or_row.inc
--source suite/ndb_rpl/ndb_master-slave.inc

# Need suppressions on all servers where warnings/errors can be seen.
--disable_query_log
--connection server1
call mtr.add_suppression("NDB: .*Bad schema for mysql.ndb_replication table.*");
call mtr.add_suppression("NDB Slave: .* unknown conflict resolution function .*");
call mtr.add_suppression("NDB Slave: .* has wrong datatype.*");
call mtr.add_suppression("NDB Slave: .* missing function argument .*");
call mtr.add_suppression("NDB Slave: .* missing \')\' .*");
--connection server2
call mtr.add_suppression("NDB: .*Bad schema for mysql.ndb_replication table.*");
call mtr.add_suppression("NDB Slave: .* unknown conflict resolution function .*");
call mtr.add_suppression("NDB Slave: .* has wrong datatype.*");
call mtr.add_suppression("NDB Slave: .* missing function argument .*");
call mtr.add_suppression("NDB Slave: .* missing \')\' .*");
--connection default
--enable_query_log

#
--echo Wrong schema for the table, too few pks
#
--disable_warnings
--disable_query_log
drop table if exists mysql.ndb_replication;
CREATE TABLE mysql.ndb_replication
  (db VARBINARY(63),
   table_name VARBINARY(63),
   server_id INT UNSIGNED,
   binlog_type INT UNSIGNED,
   conflict_fn VARBINARY(128),
   PRIMARY KEY USING HASH (db,table_name))
  ENGINE=NDB PARTITION BY KEY(db,table_name);
--enable_warnings
--enable_query_log

# gives warning when trying to create table as logging
# may not be as intended
create table t1 (a int key, X int) engine ndb;
drop table t1;


#
--echo Wrong schema for the table, incorrect pk
#
--disable_warnings
--disable_query_log
drop table if exists mysql.ndb_replication;
CREATE TABLE mysql.ndb_replication
  (db VARBINARY(63),
   table_name VARBINARY(63),
   server_id INT UNSIGNED,
   binlog_type INT UNSIGNED,
   conflict_fn VARBINARY(128),
   PRIMARY KEY USING HASH (db,table_name,binlog_type))
  ENGINE=NDB PARTITION BY KEY(db,table_name);
--enable_warnings
--enable_query_log

# gives warning when trying to create table as logging
# may not be as intended
create table t1 (a int key, X int) engine ndb;
drop table t1;

#
--echo Wrong schema for the table, binlog_type is signed
#

--disable_warnings
--disable_query_log
drop table if exists mysql.ndb_replication;
CREATE TABLE mysql.ndb_replication
  (db VARBINARY(63),
   table_name VARBINARY(63),
   server_id INT UNSIGNED,
   binlog_type INT,
   conflict_fn VARBINARY(128),
   PRIMARY KEY USING HASH (db,table_name,server_id))
  ENGINE=NDB PARTITION BY KEY(db,table_name);
--enable_warnings
--enable_query_log

# gives warning when trying to create table as logging
# may not be as intended
create table t1 (a int key, X int) engine ndb;
drop table t1;

#
--echo Wrong schema for the table, conflict_fn is too long
#
--disable_warnings
--disable_query_log
drop table mysql.ndb_replication;
CREATE TABLE mysql.ndb_replication
  (db VARBINARY(63),
   table_name VARBINARY(63),
   server_id INT UNSIGNED,
   binlog_type INT UNSIGNED,
   conflict_fn VARBINARY(257),
   PRIMARY KEY USING HASH (db,table_name,server_id))
  ENGINE=NDB PARTITION BY KEY(db,table_name);
--enable_warnings
--enable_query_log

# gives warning when trying to create table as logging
# may not be as intended
create table t1 (a int key, X int) engine ndb;
drop table t1;

#
--echo Correct schema for the table but no conflict fn
#
--disable_warnings
--disable_query_log
drop table mysql.ndb_replication;
CREATE TABLE mysql.ndb_replication
  (db VARBINARY(63),
   table_name VARBINARY(63),
   server_id INT UNSIGNED,
   binlog_type INT UNSIGNED,
   PRIMARY KEY USING HASH (db,table_name,server_id))
  ENGINE=NDB PARTITION BY KEY(db,table_name);
--enable_warnings
--enable_query_log

insert into mysql.ndb_replication values ("test", "t1", 0, 7);
create table test.t1 (a int primary key) engine=ndb;
show warnings;
drop table test.t1;

--let server_num=1.1
--let $pattern=%NDB Binlog: logging%
--let $limit=1
--source suite/ndb_rpl/t/show_mysqld_warnings.inc

delete from mysql.ndb_replication;

--echo Check that NULL uses server defaults
show variables like 'ndb_log_update_as_write';
show variables like 'ndb_log_updated_only';
insert into mysql.ndb_replication values ("test", "t1", 0, NULL);

create table test.t1 (a int primary key) engine=ndb;
show warnings;
drop table test.t1;

--source suite/ndb_rpl/t/show_mysqld_warnings.inc


#
--echo Correct schema for the table but other errors
#
--disable_warnings
--disable_query_log
drop table mysql.ndb_replication;
CREATE TABLE mysql.ndb_replication
  (db VARBINARY(63),
   table_name VARBINARY(63),
   server_id INT UNSIGNED,
   binlog_type INT UNSIGNED,
   conflict_fn VARBINARY(128),
   PRIMARY KEY USING HASH (db,table_name,server_id))
  ENGINE=NDB PARTITION BY KEY(db,table_name);
--enable_warnings
--enable_query_log

# Non existant conflict_fn
# gives error when creating table
#call mtr.add_suppression("NDB Slave: .* unknown conflict resolution function .*");

insert into mysql.ndb_replication values ("test", "t1", 0, NULL, "NDB$X(X)");
--error 1296 
create table t1 (a int key, X int) engine ndb;
show warnings;
delete from mysql.ndb_replication;

# Column type cannot be used for this function
# gives warning when creating table
#call mtr.add_suppression("NDB Slave: .* has wrong datatype.*");

insert into mysql.ndb_replication values ("test", "t1", 0, NULL, "NDB$MAX(X)");
create table t1 (a int key, X int) engine ndb;
drop table t1;
delete from mysql.ndb_replication;

# Too few arguments
# gives error when creating table
#call mtr.add_suppression("NDB Slave: .* missing function argument .*");

insert into mysql.ndb_replication values ("test", "t1", 0, NULL, "NDB$MAX()");
--error 1296 
create table t1 (a int key, X int) engine ndb;
show warnings;
delete from mysql.ndb_replication;

# Too many arguments
# gives error when creating table
#call mtr.add_suppression("NDB Slave: .* missing \')\' .*");
insert into mysql.ndb_replication values ("test", "t1", 0, NULL, "NDB$MAX(X Y)");
--error 1296
create table t1 (a int key, X int) engine ndb;
show warnings;
delete from mysql.ndb_replication;

show variables like 'server_id';

create database europenorth;
create database europesouth;
create database usnorth;
create database ussouth;

--echo Basic wildcard tests
--echo Note that we put in bad conflict fn names so that the warnings generated
--echo when the table create fails give an indication of which ndb_replication
--echo table row was chosen.
--echo
--echo Wild serverid
insert into mysql.ndb_replication values ("europenorth", "france", 1, NULL, "NDB$A()");
insert into mysql.ndb_replication values ("europenorth", "france", 0, NULL, "NDB$B()");

--echo Should match specific entry (1) with algorithm A.
--error 1296
create table europenorth.france (a int primary key) engine=ndb;
show warnings;

delete from mysql.ndb_replication where server_id=1;

--echo Should match generic entry (0) with algorthin B.
--error 1296
create table europenorth.france (a int primary key) engine=ndb;
show warnings;

delete from mysql.ndb_replication;

--echo Wild table_name
insert into mysql.ndb_replication values ("europenorth", "fr_nce", 1, NULL, "NDB$A()");
insert into mysql.ndb_replication values ("europenorth", "%any", 1, NULL, "NDB$B()");

--echo Should match specific entry (fr_nce) with algorithm A.
--error 1296
create table europenorth.france (a int primary key) engine=ndb;
show warnings;

--echo Should match specific entry (%any) with algorithm B.
--error 1296
create table europenorth.germany (a int primary key) engine=ndb;
show warnings;

--echo Should match specific entry (%any) with algorithm B.
--error 1296
create table europenorth.romany (a int primary key) engine=ndb;
show warnings;

--echo No match, should be fine
create table europenorth.uk (a int primary key) engine=ndb;
show warnings;
drop table europenorth.uk;

delete from mysql.ndb_replication;

--echo Wild db
insert into mysql.ndb_replication values ("%north", "countries", 1, NULL, "NDB$A()");
insert into mysql.ndb_replication values ("%south", "countries", 1, NULL, "NDB$B()");

--echo Should match north with A
--error 1296
create table europenorth.countries (a int primary key) engine=ndb;
show warnings;

--echo Should match north with A
--error 1296
create table usnorth.countries (a int primary key) engine=ndb;
show warnings;

--echo Should match south with B
--error 1296
create table europesouth.countries (a int primary key) engine=ndb;
show warnings;

--echo Should match south with B
--error 1296 
create table ussouth.countries (a int primary key) engine=ndb;
show warnings;

delete from mysql.ndb_replication;

--echo Now test wildcard matching precedence
--echo Wildcards match in the following precedence (highest->lowest)
--echo   Exact match
--echo   Wild serverid
--echo   Wild table_name
--echo   Wild serverid + wild table_name
--echo   Wild db
--echo   Wild db + wild serverid
--echo   Wild db + wild table_name
--echo   All wild
--echo
--echo The 'wild serverid' is 0
--echo
--echo Multiple matches at the same precedence are ambiguous and result
--echo in an error.
--echo

--echo Start with full set of potential matches, and chip away
# Put in duplicate matches at every precedence
# Delete rows to get one then no matches at each precedence.

# Unique
insert into mysql.ndb_replication values ("europenorth", "netherlands", 1, NULL, "NDB$A()");

# Wild serverid
insert into mysql.ndb_replication values ("europenorth", "netherlands", 0, NULL, "NDB$B()");

# Wild table_name (two)
insert into mysql.ndb_replication values ("europenorth", "%lands", 1, NULL, "NDB$C()");
insert into mysql.ndb_replication values ("europenorth", "nether%s", 1, NULL, "NDB$D()");

# Wild server_id and table_name
insert into mysql.ndb_replication values ("europenorth", "%lands", 0, NULL, "NDB$E()");
insert into mysql.ndb_replication values ("europenorth", "nether%s", 0, NULL, "NDB$F()");

# Wild db
insert into mysql.ndb_replication values ("Europe%", "netherlands", 1, NULL, "NDB$G()");
insert into mysql.ndb_replication values ("%North", "netherlands", 1, NULL, "NDB$H()");

# Wild db + Wild server_id

insert into mysql.ndb_replication values ("Europe%", "netherlands", 0, NULL, "NDB$I()");
insert into mysql.ndb_replication values ("%North", "netherlands", 0, NULL, "NDB$J()");

# Wild db + Wild table_name

insert into mysql.ndb_replication values ("Europe%", "%lands", 1, NULL, "NDB$K()");
insert into mysql.ndb_replication values ("%North", "nether%s", 1, NULL, "NDB$L()");

# All wild

insert into mysql.ndb_replication values ("Europe%", "%lands", 0, NULL, "NDB$M()");
insert into mysql.ndb_replication values ("%North", "nether%s", 0, NULL, "NDB$N()");


--echo Unique match (A)
--error 1296
create table europenorth.netherlands (a int primary key) engine=ndb;
show warnings;

delete from mysql.ndb_replication where db="europenorth" and table_name="netherlands" and server_id=1;

--echo Unique match with wild serverid (B)
--error 1296
create table europenorth.netherlands (a int primary key) engine=ndb;
show warnings;

delete from mysql.ndb_replication where db="europenorth" and table_name="netherlands" and server_id=0;

--echo Ambiguous wild table name
create table europenorth.netherlands (a int primary key) engine=ndb;
show warnings;
drop table europenorth.netherlands;

delete from mysql.ndb_replication where db="europenorth" and table_name="%lands" and server_id=1;

--echo Wild table name (D)
--error 1296
create table europenorth.netherlands (a int primary key) engine=ndb;
show warnings;

delete from mysql.ndb_replication where db="europenorth" and table_name="nether%s" and server_id=1;

--echo Ambiguous wild server id and table name
create table europenorth.netherlands (a int primary key) engine=ndb;
show warnings;
drop table europenorth.netherlands;

delete from mysql.ndb_replication where db="europenorth" and table_name="nether%s" and server_id=0;

--echo Wild server id and table name (E)
--error 1296
create table europenorth.netherlands (a int primary key) engine=ndb;
show warnings;

delete from mysql.ndb_replication where db="europenorth" and table_name="%lands" and server_id=0;

--echo Amiguous wild db
create table europenorth.netherlands (a int primary key) engine=ndb;
show warnings;
drop table europenorth.netherlands;

delete from mysql.ndb_replication where db="Europe%" and table_name="netherlands" and server_id=1;

--echo Wild db (H)
--error 1296 
create table europenorth.netherlands (a int primary key) engine=ndb;
show warnings;

delete from mysql.ndb_replication where db="%North" and table_name="netherlands" and server_id=1;

--echo Ambiguous wild db + server_id
create table europenorth.netherlands (a int primary key) engine=ndb;
show warnings;
drop table europenorth.netherlands;

delete from mysql.ndb_replication where db="Europe%" and table_name="netherlands" and server_id=0;

--echo Wild db + server id (J)
--error 1296 
create table europenorth.netherlands (a int primary key) engine=ndb;
show warnings;

delete from mysql.ndb_replication where db="%North" and table_name="netherlands" and server_id=0;

--echo Ambiguous wild db + table_name
create table europenorth.netherlands (a int primary key) engine=ndb;
show warnings;
drop table europenorth.netherlands;

delete from mysql.ndb_replication where db="Europe%" and table_name="%lands" and server_id=1;

--echo Wild db + table_name (L)
--error 1296 
create table europenorth.netherlands (a int primary key) engine=ndb;
show warnings;

delete from mysql.ndb_replication where db="%North" and table_name="nether%s" and server_id=1;

--echo Ambiguous all wild
create table europenorth.netherlands (a int primary key) engine=ndb;
show warnings;
drop table europenorth.netherlands;

delete from mysql.ndb_replication where db="Europe%" and table_name="%lands" and server_id=0;

--echo All wild (N)
--error 1296
create table europenorth.netherlands (a int primary key) engine=ndb;
show warnings;

delete from mysql.ndb_replication;

drop database europenorth;
drop database europesouth;
drop database usnorth;
drop database ussouth;

--disable_query_log
--sync_slave_with_master
stop slave;
drop table mysql.ndb_replication;
--connection master
drop table mysql.ndb_replication;
--enable_query_log

Youez - 2016 - github.com/yon3zu
LinuXploit