mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 10:56:12 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			74 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| --echo #
 | |
| --echo # Bug 35333 "If a Federated table can't connect to the remote hose, can't retrieve metadata"
 | |
| --echo #
 | |
| --echo # Queries such as SHOW TABLE STATUS and SELECT * FROM INFORMATION_SCHEMA.TABLES fail
 | |
| --echo # when encountering a federated table that cannot connect to its remote table.
 | |
| --echo #
 | |
| --echo # The fix is to store the error text in the TABLE COMMENTS column of I_S.TABLES, clear
 | |
| --echo # the remote connection error and push a warning instead. This allows the SELECT operation
 | |
| --echo # to complete while still indicating a problem. This fix applies to any non-fatal system
 | |
| --echo # error that occurs during a query against I_S.TABLES.de
 | |
| 
 | |
| --source suite/federated/include/federated.inc
 | |
| 
 | |
| --disable_warnings
 | |
| # Federated database exists
 | |
| DROP TABLE IF EXISTS federated.t0;
 | |
| --enable_warnings
 | |
| 
 | |
| --disable_parsing
 | |
| # This test doesn't work with federatedx, as it doesn't allow wrong connections
 | |
| 
 | |
| --echo #
 | |
| --echo # Create the base table to be referenced
 | |
| --echo #
 | |
| CREATE TABLE realdb.t0 (a text, b text) ENGINE=MYISAM;
 | |
| 
 | |
| --echo #
 | |
| --echo # Create a federated table with a bogus port number
 | |
| --echo #
 | |
| CREATE TABLE federated.t0 (a text, b text) ENGINE=FEDERATED
 | |
|     CONNECTION='mysql://root@127.0.0.1:63333/realdb/t0';
 | |
| 
 | |
| #--warning ER_CONNECT_TO_FOREIGN_DATA_SOURCE
 | |
| 
 | |
| --echo #
 | |
| --echo # Trigger a federated system error during a INFORMATION_SCHEMA.TABLES query
 | |
| --echo #
 | |
| # Remove O/S-specific socket error
 | |
| --replace_regex /\(.*\)/(socket errno)/
 | |
| SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE, ENGINE, ROW_FORMAT, TABLE_ROWS, DATA_LENGTH, TABLE_COMMENT
 | |
|        FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'realdb' or TABLE_SCHEMA = 'federated';
 | |
| 
 | |
| # Remove O/S-specific socket error
 | |
| --replace_regex /\(.*\)/(socket errno)/
 | |
| SHOW WARNINGS;
 | |
| DROP TABLE federated.t0;
 | |
| 
 | |
| --enable_parsing
 | |
| 
 | |
| --echo #
 | |
| --echo # Create a MyISAM table then corrupt the file
 | |
| --echo #
 | |
| CREATE TABLE t1 (c1 int) ENGINE=MYISAM;
 | |
| --echo #
 | |
| --echo # Corrupt the MyISAM table by deleting the base file
 | |
| --echo #
 | |
| let $MYSQLD_DATADIR= `SELECT @@datadir`;
 | |
| --remove_file $MYSQLD_DATADIR/test/t1.MYD
 | |
| --remove_file $MYSQLD_DATADIR/test/t1.MYI
 | |
| 
 | |
| --echo #
 | |
| --echo # Trigger a MyISAM system error during an INFORMATION_SCHEMA.TABLES query
 | |
| --echo #
 | |
| --replace_result 20 2
 | |
| SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE, ENGINE, ROW_FORMAT, TABLE_ROWS, DATA_LENGTH, TABLE_COMMENT
 | |
|        FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't1';
 | |
| 
 | |
| DROP TABLE t1;
 | |
| 
 | |
| --echo #
 | |
| --echo # Cleanup
 | |
| --echo #
 | |
| 
 | |
| --source suite/federated/include/federated_cleanup.inc
 | 
