Pessoal,

Recentemente em um cliente tive o problema de uma sequence "pular" o valor
32 por duas vezes... dando uma olhada na mesma pude observar que o valor da
coluna "log_cnt" está 32:

base=# select * from protocolo.protprocesso_p58_codproc_seq ;
        sequence_name         | last_value | increment_by |
max_value      | min_value | cache_value | log_cnt | is_cycled | is_called
------------------------------+------------+--------------+---------------------+-----------+-------------+---------+-----------+-----------
 protprocesso_p58_codproc_seq |       4532 |            1 |
9223372036854775807 |         1 |           1 |      32 | f         | t
(1 row)

Dando uma pesquisada achei a mensagem do Sr. Tom Lane [1] dizendo que esta
coluna é de uso interno e que ele acredita que seja o número de valores
disponíveis sem escrever outra entrada no WAL...

Pelo que entendi o PostgreSQL gera uma espécie de "cache" até uma próxima
escrita do WAL e o caso do valor ter "pulado" seria quando houvesse algum
problema no servidor, tipo uma para inesperada do mesmo... é isso mesmo???
ou alguém tem outra informação a respeito???

Procurei na documentação oficial do PostgreSQL e não achei nenhum lugar que
explicasse a estrutura interna de uma sequence... não seria o caso de
providenciarmos tal documentação, conforme sugere o Sr. Tom Lane??



[1] http://archives.postgresql.org/pgsql-docs/2003-10/msg00036.php

-- 
Fabrízio de Royes Mello
>> Blog sobre TI: http://fabriziomello.blogspot.com
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a