Imagem de fundo

No PostgreSQL 17, considere uma transação T1 configurada explicitamente com o nível de ...

No PostgreSQL 17, considere uma transação T1 configurada explicitamente com o nível de isolamento REPEATABLE READ. Dentro dessa transação, T1 executa a consulta SELECT COUNT(*) FROM tabela WHERE condicao = true, obtendo o resultado 10. Enquanto T1 permanece ativa, uma transação concorrente T2 insere uma nova linha que satisfaz a condição condicao = true e realiza COMMIT. Ainda dentro da mesma transação T1, a mesma consulta é executada novamente SELECT COUNT(*) FROM tabela WHERE condicao = true. Em seguida, T1 realiza COMMIT, sem efetuar nenhuma atualização em linhas da tabela.


Qual é o resultado esperado para a segunda execução da consulta em T1?


A

11.


B

10.


C

A segunda consulta causa um erro de serialização, exigindo repetição automática da transação.


D

A segunda consulta causa deadlock entre T1 e T2, exigindo que o PostgreSQL aborte uma das transações automaticamente.