Arquivos

Arquivo para fevereiro 13, 2008

Sobre sequences e segurança multi-usuarios

fevereiro 13, 2008 Deixe um comentário

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.

CategoriasNúcleo

Backspace do vim6.4

fevereiro 13, 2008 Deixe um comentário

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

CategoriasNúcleo
Seguir

Obtenha todo post novo entregue na sua caixa de entrada.