mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 19:06:14 +01:00 
			
		
		
		
	 8b8c8fcb86
			
		
	
	
	
	
	8b8c8fcb86When the sequence is unsigned bigint, it needs to be cast to unsigned for correct computation of the modulus.
		
			
				
	
	
		
			72 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| --source include/have_sequence.inc
 | |
| 
 | |
| #
 | |
| # tests with auto_increment_increment and auto_increment_offset
 | |
| #
 | |
| 
 | |
| --disable_ps2_protocol
 | |
| set global auto_increment_increment= 2, auto_increment_offset= 2;
 | |
| 
 | |
| create sequence s start with -3 minvalue= -1000 increment 0;
 | |
| 
 | |
| select nextval(s);
 | |
| select nextval(s);
 | |
| flush tables;
 | |
| select nextval(s);
 | |
| drop sequence s;
 | |
| 
 | |
| set global auto_increment_increment= 2, auto_increment_offset= 1;
 | |
| 
 | |
| create sequence s start with -3 minvalue= -1000 increment 0;
 | |
| 
 | |
| select nextval(s);
 | |
| select nextval(s);
 | |
| select nextval(s);
 | |
| flush tables;
 | |
| select nextval(s);
 | |
| drop sequence s;
 | |
| 
 | |
| # Clean up
 | |
| 
 | |
| set global auto_increment_increment= default, auto_increment_offset= default;
 | |
| 
 | |
| --echo #
 | |
| --echo # MDEV-28152 Features for sequence
 | |
| --echo #
 | |
| 
 | |
| set global auto_increment_increment= 100;
 | |
| set global auto_increment_offset= 42;
 | |
| create sequence s as bigint unsigned start with 9223372036854775800 increment 0;
 | |
| select next value for s;
 | |
| select next value for s;
 | |
| drop sequence s;
 | |
| 
 | |
| set global auto_increment_increment= 100;
 | |
| set global auto_increment_offset= 5;
 | |
| # Test underflow
 | |
| create sequence s as bigint start with -9223372036854775805 minvalue -9223372036854775807 maxvalue -9223372036854775800 increment 0;
 | |
| drop sequence s;
 | |
| 
 | |
| set global auto_increment_increment= default, auto_increment_offset= default;
 | |
| 
 | |
| --echo #
 | |
| --echo # MDEV-33836 Assertion `(ulonglong) next_free_value % real_increment == (ulonglong) offset' failed in void sequence_definition::adjust_values(longlong)
 | |
| --echo #
 | |
| 
 | |
| CREATE SEQUENCE s AS BIGINT UNSIGNED START WITH 9223372036854775800 INCREMENT 0;
 | |
| set @old_AUTO_INCREMENT_INCREMENT=@@global.AUTO_INCREMENT_INCREMENT;
 | |
| set global AUTO_INCREMENT_INCREMENT=10;
 | |
| SELECT NEXTVAL (s);
 | |
| FLUSH TABLES WITH READ LOCK;
 | |
| # ER_CANT_UPDATE_WITH_READLOCK when executed normally
 | |
| # ER_BAD_FIELD_ERROR when executed as a prepared statement
 | |
| --error ER_CANT_UPDATE_WITH_READLOCK,ER_BAD_FIELD_ERROR
 | |
| UPDATE s SET a=1;
 | |
| unlock tables;
 | |
| set global AUTO_INCREMENT_INCREMENT=@old_AUTO_INCREMENT_INCREMENT;
 | |
| drop sequence s;
 | |
| --enable_ps2_protocol
 | |
| 
 | |
| --echo #
 | |
| --echo # End of 11.5 tests
 | |
| --echo #
 |