Fix xslt_process() to ensure that it inserts a NULL terminator after the
[PostgreSQL.git] / contrib / spi / autoinc.example
bloba2f470dc2de77956d67b6f209ceada01d124ebfb
1 DROP SEQUENCE next_id;
2 DROP TABLE ids;
4 CREATE SEQUENCE next_id START -2 MINVALUE -2;
6 CREATE TABLE ids (
7         id              int4,
8         idesc           text
9 );
11 CREATE TRIGGER ids_nextid 
12         BEFORE INSERT OR UPDATE ON ids
13         FOR EACH ROW 
14         EXECUTE PROCEDURE autoinc (id, next_id);
16 INSERT INTO ids VALUES (0, 'first (-2 ?)');
17 INSERT INTO ids VALUES (null, 'second (-1 ?)');
18 INSERT INTO ids(idesc) VALUES ('third (1 ?!)');
20 SELECT * FROM ids;
22 UPDATE ids SET id = null, idesc = 'first: -2 --> 2' 
23         WHERE idesc = 'first (-2 ?)';
24 UPDATE ids SET id = 0, idesc = 'second: -1 --> 3' 
25         WHERE id = -1;
26 UPDATE ids SET id = 4, idesc = 'third: 1 --> 4' 
27         WHERE id = 1;
29 SELECT * FROM ids;
31 SELECT 'Wasn''t it 4 ?' as nextval, nextval ('next_id') as value;
33 insert into ids (idesc) select textcat (idesc, '. Copy.') from ids;
35 SELECT * FROM ids;