---
--- test creation of SERIAL column
---
 
CREATE TABLE serialTest (f1 text, f2 serial);
NOTICE:  CREATE TABLE will create implicit sequence "serialtest_f2_seq" for serial column "serialtest.f2"
 
INSERT INTO serialTest VALUES ('foo');
INSERT INTO serialTest VALUES ('bar');
INSERT INTO serialTest VALUES ('force', 100);
INSERT INTO serialTest VALUES ('wrong', NULL);
ERROR:  null value in column "f2" violates not-null constraint
 
SELECT * FROM serialTest;
  f1   | f2  
-------+-----
 foo   |   1
 bar   |   2
 force | 100
(3 rows)

 
CREATE SEQUENCE sequence_test;
 
BEGIN;
SELECT nextval('sequence_test');
 nextval 
---------
       1
(1 row)

DROP SEQUENCE sequence_test;
END;
-- renaming sequences
CREATE SEQUENCE foo_seq;
ALTER TABLE foo_seq RENAME TO foo_seq_new;
SELECT * FROM foo_seq_new;
 sequence_name | last_value | increment_by |      max_value      | min_value | cache_value | log_cnt | is_cycled | is_called 
---------------+------------+--------------+---------------------+-----------+-------------+---------+-----------+-----------
 foo_seq       |          1 |            1 | 9223372036854775807 |         1 |           1 |       1 | f         | f
(1 row)

DROP SEQUENCE foo_seq_new;
--
-- Alter sequence
--
CREATE SEQUENCE sequence_test2 START WITH 32;
SELECT nextval('sequence_test2');
 nextval 
---------
      32
(1 row)

ALTER SEQUENCE sequence_test2 RESTART WITH 16
	 INCREMENT BY 4 MAXVALUE 22 MINVALUE 5 CYCLE;
SELECT nextval('sequence_test2');
 nextval 
---------
      16
(1 row)

SELECT nextval('sequence_test2');
 nextval 
---------
      20
(1 row)

SELECT nextval('sequence_test2');
 nextval 
---------
       5
(1 row)

-- Test comments
COMMENT ON SEQUENCE asdf IS 'won''t work';
ERROR:  relation "asdf" does not exist
COMMENT ON SEQUENCE sequence_test2 IS 'will work';
COMMENT ON SEQUENCE sequence_test2 IS NULL;
