![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
Dear All, =20 A program produces the wrong output for any given input. Here comes bug report: 1. Database dump is attached. 2. Input: "BEGIN; INSERT INTO test1(some_text) VALUES ('test1'); SELECT= =20 lastval() as id; END;" 3. Output: INSERT 0 1 id ---- 3 (1 row) 4. Exspected Output: id ---- 2 (1 row) [snip] |
#3
| |||
| |||
|
|
AFAIK, serials are not guaranteed to produce sequential values; tehy will produce unique values. That means that they can (and sometimes will) jump. |
#4
| |||
| |||
|
|
On Wed, Nov 16, 2005 at 06:29:40AM +0100, Tomas Zerolo wrote: AFAIK, serials are not guaranteed to produce sequential values; tehy will produce unique values. That means that they can (and sometimes will) jump. =20 In this particular case, however, the behavior is due to the rule on test1: =20 CREATE RULE test1_on_insert AS ON INSERT TO test1 DO INSERT INTO test_log1 (qid) VALUES (new.id); |
#5
| |||
| |||
|
|
I understand that RULES are like macros. Strangest thing here is that INSERT to test1 will touch only one sequence: test1_id_seq. And it increments test1_id_seq twice during insert with RULE. |
![]() |
| Thread Tools | |
| Display Modes | |
| |