403Webshell
Server IP : 172.67.216.182  /  Your IP : 162.158.106.46
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/extra/rpl_tests/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /www/server/mysql/src/mysql-test/extra/rpl_tests/rpl_lower_case_table_names.test
# BUG#37656
#
#  This test aims at checking whether lower_case_table_names=1 option works
#  for database names and table names.
#
#  This test checks the following (when lower_case_table_names=1 is set on slave):
#    (i) creating a database on upper case on master results in lower case
#        database name on slave
#   (ii) creating tables with upper case names on master results in lower case
#        table names on slave
#  (iii) loading data infile into capitalized table name on master replicates to
#        lower case table name on slave
#   (iv) Propagating changes from upper case table names on into correspondent 
#        lower case table names on slave works.


# setup: create database and tables
-- echo ******** [ MASTER ] ********
-- let $dbname_upper= BUG_37656
-- let $dbname_lower= `SELECT LOWER('$dbname_upper')`
-- eval CREATE DATABASE $dbname_upper
-- eval use $dbname_upper

# assert: database names are in upper case in master and lower
#         case in slave
-- eval show databases like '$dbname_upper'
sync_slave_with_master;
-- echo ******** [ SLAVE ] ********
--eval show databases like '$dbname_lower'

-- connection master
-- echo ******** [ MASTER ] ********
CREATE TABLE T1 (a int);
-- eval CREATE TABLE T2 (b int) ENGINE=$engine
CREATE TABLE T3 (txt TEXT);

# assert: that tables exist on master with upper case names
# this fixes result mismatches for MacOSX
--replace_result Tables_in_bug_37656 Tables_in_BUG_37656
show tables;

# assert: that tables exist on slave but with lower case names
-- sync_slave_with_master
-- echo ******** [ SLAVE ] ********
-- eval use $dbname_lower
show tables;

# action: lets create t1 for asserting below that t1 does not get changes
#         from master (slave configured with --replicate-ignore-db=$dbname_lower.t1)
CREATE TABLE t1 (a INT);

# action: fill data into tables
-- connection master
-- echo ******** [ MASTER ] ********
-- eval use $dbname_upper
INSERT INTO T1 VALUES (1);
INSERT INTO T2 VALUES (1);
if (`SELECT @@session.binlog_format != 'ROW'`)
{
  -- eval LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE $dbname_upper.T3
}

if  (`SELECT @@session.binlog_format = 'ROW'`)
{
  use test;
  -- eval INSERT INTO $dbname_upper.T1 VALUES (2)
  -- eval INSERT INTO $dbname_upper.T2 VALUES (2)
  -- eval LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE $dbname_upper.T3
}
# assert: lower case tables on lower case database on slave
#         get updates from upper case tables on upper case
#         database on master
-- sync_slave_with_master
-- echo ******** [ SLAVE ] ********

# assert: changes for slave's t1 were filterd out
if (`SELECT count(*) != 0 FROM t1`)
{
  -- echo UNEXPECTED DATA on $dbname_lower.t1 as table is filtered by replicate-ignore-table rules
}

-- let $diff_tables= master:$dbname_upper.T2, slave:$dbname_lower.t2
-- source include/diff_tables.inc

-- let $diff_tables= master:$dbname_upper.T3, slave:$dbname_lower.t3
-- source include/diff_tables.inc

# clean up
-- connection master
-- echo ******** [ MASTER ] ********
-- eval DROP DATABASE $dbname_upper


# 
# BUG#50653: drop procedure implicitely treats db name in a case sensitive way
#

-- source include/rpl_reset.inc
-- connection master

-- let $dbname= B50653
-- let $procname= b50653_proc

-- eval CREATE DATABASE $dbname
-- eval USE $dbname
-- eval CREATE PROCEDURE $procname() BEGIN SELECT 1; END

if (`SELECT count(*) = 1 FROM mysql.proc WHERE name like '$dbname'`)
{
  -- die Procedure not created on MASTER
}

-- sync_slave_with_master
if (`SELECT count(*) = 1 FROM mysql.proc WHERE name like '$dbname'`)
{
  -- die Procedure not created on SLAVE
}

-- connection master
-- eval DROP PROCEDURE $procname

if (`SELECT count(*) FROM mysql.proc WHERE name like '$dbname'`)
{
  -- die Procedure not dropped on MASTER
}

-- sync_slave_with_master
if (`SELECT count(*) FROM mysql.proc WHERE name like '$dbname'`)
{
  -- die Procedure not dropped on SLAVE
}

-- let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1)
if ($last_error)
{
  -- die UNEXPECTED SLAVE SQL error: $last_error
}

-- connection master
-- eval DROP DATABASE $dbname
-- sync_slave_with_master

Youez - 2016 - github.com/yon3zu
LinuXploit