Arquivos
Sobre sequences e segurança multi-usuarios
Existem alguns motivos para utilizar a função embutida nextval() ao inicializar uma sessão no postgres e querer-se acessar uma sequence.
Um dos motivos internos é necessidade de inicialização de itens compartilhados em SeqTableData. Embora possua um tipo semelhante com Relation uma sequence não poderia ser armazenada e recuperada no índice do descritor de cache de relações pois as entradas poderiam não mais estar disponíveis no próximo acesso.
A solução então é armazenar os valores necessários para se manipular as sequences em uma estrutura própria do tipo SeqDataTable. Dentre outros atributos este tipo armazena informações necessárias para validar o acesso, o oid e último valor conforme a descrição:
struct SeqTableData{
Oid relid,
bool last_valid,
int64 last,
[...]
} SeqTableData;
Uma vez que já possuímos o tipo, agora é necessário inicializar as informações com uma versão interna de nextval() conhecida neste ponto por nextval_internal(). A função de nextval_internal é receber o OID da sequence à que se deseja obter informação em pg_class e atribuir em SeqTable; associar páginas no buffer; inicializar operações de bloqueio (AccessShare) para permitir leituras concorrentes e, como já é conhecido, incrementar o valor de last com o valor do atributo increment_by desta sequence.
Backspace do vim6.4
Não entendo porque na versão 6.4 do vim a opção backspace está vazia desabilitando esta tecla para alterações fora de buffer.
Para resolver:
:se bs=start,eol