Re: Surprising (?) Sequence Behavior
От | Richard M. Kues |
---|---|
Тема | Re: Surprising (?) Sequence Behavior |
Дата | |
Msg-id | 479F5C3F.8040105@riva.at обсуждение исходный текст |
Ответ на | Re: Surprising (?) Sequence Behavior (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-general |
Tom Lane schrieb: > >> At least for me this is surprising! > > Why do you find it surprising? Per spec, the SELECT output list is not > evaluated at rows that fail the WHERE clause. This must be so; consider > examples like > SELECT 1/x FROM t WHERE x <> 0; Of ocurse! > > I think what you need is three levels of nested SELECT, with the > nextval() done in the middle level, and probably an "OFFSET 0" in the > middle one to keep Postgres from collapsing the top and middle together. > For the archves. This works: DROP SEQUENCE IF EXISTS s; CREATE TEMPORARY SEQUENCE s; SELECT * FROM ( SELECT nextval('s') AS num, tablename AS name FROM ( SELECT tablename FROM pg_tables ORDER BY tablename ) AS t OFFSET 0 ) AS ranked WHERE ranked.name = 'pg_am' Thanks a lot! richard
В списке pgsql-general по дате отправления: