@@ -32,19 +32,35 @@ DROP TABLE sequence_test_table;
32
32
CREATE SEQUENCE sequence_test5 AS integer;
33
33
CREATE SEQUENCE sequence_test6 AS smallint;
34
34
CREATE SEQUENCE sequence_test7 AS bigint;
35
+ CREATE SEQUENCE sequence_test8 AS integer MAXVALUE 100000;
36
+ CREATE SEQUENCE sequence_test9 AS integer INCREMENT BY -1;
37
+ CREATE SEQUENCE sequence_test10 AS integer MINVALUE -100000 START 1;
38
+ CREATE SEQUENCE sequence_test11 AS smallint;
39
+ CREATE SEQUENCE sequence_test12 AS smallint INCREMENT -1;
40
+ CREATE SEQUENCE sequence_test13 AS smallint MINVALUE -32768;
41
+ CREATE SEQUENCE sequence_test14 AS smallint MAXVALUE 32767 INCREMENT -1;
35
42
CREATE SEQUENCE sequence_testx AS text;
36
43
ERROR: sequence type must be smallint, integer, or bigint
37
44
CREATE SEQUENCE sequence_testx AS nosuchtype;
38
45
ERROR: type "nosuchtype" does not exist
39
46
LINE 1: CREATE SEQUENCE sequence_testx AS nosuchtype;
40
47
^
41
- ALTER SEQUENCE sequence_test5 AS smallint; -- fails
42
- ERROR: MAXVALUE (2147483647) is out of range for sequence data type smallint
43
- ALTER SEQUENCE sequence_test5 AS smallint NO MINVALUE NO MAXVALUE;
44
48
CREATE SEQUENCE sequence_testx AS smallint MAXVALUE 100000;
45
49
ERROR: MAXVALUE (100000) is out of range for sequence data type smallint
46
50
CREATE SEQUENCE sequence_testx AS smallint MINVALUE -100000;
47
51
ERROR: MINVALUE (-100000) is out of range for sequence data type smallint
52
+ ALTER SEQUENCE sequence_test5 AS smallint; -- success, max will be adjusted
53
+ ALTER SEQUENCE sequence_test8 AS smallint; -- fail, max has to be adjusted
54
+ ERROR: MAXVALUE (100000) is out of range for sequence data type smallint
55
+ ALTER SEQUENCE sequence_test8 AS smallint MAXVALUE 20000; -- ok now
56
+ ALTER SEQUENCE sequence_test9 AS smallint; -- success, min will be adjusted
57
+ ALTER SEQUENCE sequence_test10 AS smallint; -- fail, min has to be adjusted
58
+ ERROR: MINVALUE (-100000) is out of range for sequence data type smallint
59
+ ALTER SEQUENCE sequence_test10 AS smallint MINVALUE -20000; -- ok now
60
+ ALTER SEQUENCE sequence_test11 AS int; -- max will be adjusted
61
+ ALTER SEQUENCE sequence_test12 AS int; -- min will be adjusted
62
+ ALTER SEQUENCE sequence_test13 AS int; -- min and max will be adjusted
63
+ ALTER SEQUENCE sequence_test14 AS int; -- min and max will be adjusted
48
64
---
49
65
--- test creation of SERIAL column
50
66
---
@@ -459,39 +475,53 @@ SELECT * FROM information_schema.sequences
459
475
ORDER BY sequence_name ASC;
460
476
sequence_catalog | sequence_schema | sequence_name | data_type | numeric_precision | numeric_precision_radix | numeric_scale | start_value | minimum_value | maximum_value | increment | cycle_option
461
477
------------------+-----------------+--------------------+-----------+-------------------+-------------------------+---------------+-------------+----------------------+---------------------+-----------+--------------
478
+ regression | public | sequence_test10 | smallint | 16 | 2 | 0 | 1 | -20000 | 32767 | 1 | NO
479
+ regression | public | sequence_test11 | integer | 32 | 2 | 0 | 1 | 1 | 2147483647 | 1 | NO
480
+ regression | public | sequence_test12 | integer | 32 | 2 | 0 | -1 | -2147483648 | -1 | -1 | NO
481
+ regression | public | sequence_test13 | integer | 32 | 2 | 0 | -32768 | -2147483648 | 2147483647 | 1 | NO
482
+ regression | public | sequence_test14 | integer | 32 | 2 | 0 | 32767 | -2147483648 | 2147483647 | -1 | NO
462
483
regression | public | sequence_test2 | bigint | 64 | 2 | 0 | 32 | 5 | 36 | 4 | YES
463
484
regression | public | sequence_test3 | bigint | 64 | 2 | 0 | 1 | 1 | 9223372036854775807 | 1 | NO
464
485
regression | public | sequence_test4 | bigint | 64 | 2 | 0 | -1 | -9223372036854775808 | -1 | -1 | NO
465
486
regression | public | sequence_test5 | smallint | 16 | 2 | 0 | 1 | 1 | 32767 | 1 | NO
466
487
regression | public | sequence_test6 | smallint | 16 | 2 | 0 | 1 | 1 | 32767 | 1 | NO
467
488
regression | public | sequence_test7 | bigint | 64 | 2 | 0 | 1 | 1 | 9223372036854775807 | 1 | NO
489
+ regression | public | sequence_test8 | smallint | 16 | 2 | 0 | 1 | 1 | 20000 | 1 | NO
490
+ regression | public | sequence_test9 | smallint | 16 | 2 | 0 | -1 | -32768 | -1 | -1 | NO
468
491
regression | public | serialtest1_f2_foo | integer | 32 | 2 | 0 | 1 | 1 | 2147483647 | 1 | NO
469
492
regression | public | serialtest2_f2_seq | integer | 32 | 2 | 0 | 1 | 1 | 2147483647 | 1 | NO
470
493
regression | public | serialtest2_f3_seq | smallint | 16 | 2 | 0 | 1 | 1 | 32767 | 1 | NO
471
494
regression | public | serialtest2_f4_seq | smallint | 16 | 2 | 0 | 1 | 1 | 32767 | 1 | NO
472
495
regression | public | serialtest2_f5_seq | bigint | 64 | 2 | 0 | 1 | 1 | 9223372036854775807 | 1 | NO
473
496
regression | public | serialtest2_f6_seq | bigint | 64 | 2 | 0 | 1 | 1 | 9223372036854775807 | 1 | NO
474
- (12 rows)
497
+ (19 rows)
475
498
476
499
SELECT schemaname, sequencename, start_value, min_value, max_value, increment_by, cycle, cache_size, last_value
477
500
FROM pg_sequences
478
501
WHERE sequencename ~ ANY(ARRAY['sequence_test', 'serialtest'])
479
502
ORDER BY sequencename ASC;
480
503
schemaname | sequencename | start_value | min_value | max_value | increment_by | cycle | cache_size | last_value
481
504
------------+--------------------+-------------+----------------------+---------------------+--------------+-------+------------+------------
505
+ public | sequence_test10 | 1 | -20000 | 32767 | 1 | f | 1 |
506
+ public | sequence_test11 | 1 | 1 | 2147483647 | 1 | f | 1 |
507
+ public | sequence_test12 | -1 | -2147483648 | -1 | -1 | f | 1 |
508
+ public | sequence_test13 | -32768 | -2147483648 | 2147483647 | 1 | f | 1 |
509
+ public | sequence_test14 | 32767 | -2147483648 | 2147483647 | -1 | f | 1 |
482
510
public | sequence_test2 | 32 | 5 | 36 | 4 | t | 1 | 5
483
511
public | sequence_test3 | 1 | 1 | 9223372036854775807 | 1 | f | 1 |
484
512
public | sequence_test4 | -1 | -9223372036854775808 | -1 | -1 | f | 1 | -1
485
513
public | sequence_test5 | 1 | 1 | 32767 | 1 | f | 1 |
486
514
public | sequence_test6 | 1 | 1 | 32767 | 1 | f | 1 |
487
515
public | sequence_test7 | 1 | 1 | 9223372036854775807 | 1 | f | 1 |
516
+ public | sequence_test8 | 1 | 1 | 20000 | 1 | f | 1 |
517
+ public | sequence_test9 | -1 | -32768 | -1 | -1 | f | 1 |
488
518
public | serialtest1_f2_foo | 1 | 1 | 2147483647 | 1 | f | 1 | 3
489
519
public | serialtest2_f2_seq | 1 | 1 | 2147483647 | 1 | f | 1 | 2
490
520
public | serialtest2_f3_seq | 1 | 1 | 32767 | 1 | f | 1 | 2
491
521
public | serialtest2_f4_seq | 1 | 1 | 32767 | 1 | f | 1 | 2
492
522
public | serialtest2_f5_seq | 1 | 1 | 9223372036854775807 | 1 | f | 1 | 2
493
523
public | serialtest2_f6_seq | 1 | 1 | 9223372036854775807 | 1 | f | 1 | 2
494
- (12 rows)
524
+ (19 rows)
495
525
496
526
SELECT * FROM pg_sequence_parameters('sequence_test4'::regclass);
497
527
start_value | minimum_value | maximum_value | increment | cycle_option | cache_size | data_type
0 commit comments