mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 15:50:51 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			78 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # Exercise the code path for INFORMATION_SCHEMA.INNODB_BUFFER_POOL_STATS
 | |
| # and INFORMATION_SCHEMA.INNODB_BUFFER_PAGE
 | |
| 
 | |
| # This test assumes that buffer pool is idle
 | |
| # with key rotation threads buffer pages gets evicted this
 | |
| # testcase gets flaky
 | |
| -- source include/not_encrypted.inc
 | |
| 
 | |
| -- source include/have_innodb.inc
 | |
| 
 | |
| -- disable_result_log
 | |
| SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_POOL_STATS;
 | |
| 
 | |
| # How many buffer pools we have
 | |
| SELECT count(*) FROM INFORMATION_SCHEMA.INNODB_BUFFER_POOL_STATS;
 | |
| 
 | |
| SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE;
 | |
| 
 | |
| # This gives the over all buffer pool size
 | |
| SELECT COUNT(*) FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE;
 | |
| 
 | |
| -- enable_result_log
 | |
| 
 | |
| # Create a table and check its page info behave correctly in the pool
 | |
| CREATE TABLE infoschema_buffer_test (col1 INT) ENGINE = INNODB;
 | |
| 
 | |
| INSERT INTO infoschema_buffer_test VALUES(9);
 | |
| 
 | |
| # We should be able to see this table in the buffer pool if we check
 | |
| # right away
 | |
| SELECT TABLE_NAME, INDEX_NAME, NUMBER_RECORDS, DATA_SIZE, PAGE_STATE, PAGE_TYPE
 | |
| FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE
 | |
| WHERE TABLE_NAME like "%infoschema_buffer_test%"
 | |
| 	and PAGE_STATE="file_page" and PAGE_TYPE="index";
 | |
| 
 | |
| # The NUMBER_RECORDS and DATA_SIZE should check with each insertion
 | |
| INSERT INTO infoschema_buffer_test VALUES(19);
 | |
| 
 | |
| SELECT TABLE_NAME, INDEX_NAME, NUMBER_RECORDS, DATA_SIZE, PAGE_STATE, PAGE_TYPE
 | |
| FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE
 | |
| WHERE TABLE_NAME like "%infoschema_buffer_test%"
 | |
| and PAGE_STATE="file_page" and PAGE_TYPE="index";
 | |
| 
 | |
| CREATE INDEX idx ON infoschema_buffer_test(col1);
 | |
| 
 | |
| SELECT TABLE_NAME, INDEX_NAME, NUMBER_RECORDS, DATA_SIZE, PAGE_STATE, PAGE_TYPE
 | |
| FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE
 | |
| WHERE TABLE_NAME like "%infoschema_buffer_test%"
 | |
| and PAGE_STATE="file_page" and INDEX_NAME = "idx" and PAGE_TYPE="index";
 | |
| 
 | |
| 
 | |
| # Check the buffer after dropping the table
 | |
| DROP TABLE infoschema_buffer_test;
 | |
| 
 | |
| SELECT TABLE_NAME, INDEX_NAME, NUMBER_RECORDS, DATA_SIZE, PAGE_STATE, PAGE_TYPE
 | |
| FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE
 | |
| WHERE TABLE_NAME like "%infoschema_buffer_test%";
 | |
| 
 | |
| # Do one more test
 | |
| #--replace_regex /'*[0-9]*'/'NUM'/
 | |
| CREATE TABLE infoschema_parent (id INT NOT NULL, PRIMARY KEY (id))
 | |
| ENGINE=INNODB;
 | |
| 
 | |
| CREATE TABLE infoschema_child (id INT, parent_id INT, INDEX par_ind (parent_id),
 | |
| 			       FOREIGN KEY (parent_id)
 | |
| 			       REFERENCES infoschema_parent(id)
 | |
| 			       ON DELETE CASCADE)
 | |
| ENGINE=INNODB;
 | |
| 
 | |
| SELECT count(*)
 | |
| FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE
 | |
| WHERE TABLE_NAME like "%infoschema_child%" and PAGE_STATE="file_page"
 | |
| and PAGE_TYPE="index";
 | |
| 
 | |
| DROP TABLE infoschema_child;
 | |
| DROP TABLE infoschema_parent;
 | |
| 
 |