Em nosso aplicativo, verificamos na inicialização,
se existir uma tabela postgresql, caso contrário, nós a criamos e, em seguida, ativamos a segurança em nível de linha
Se existir, ainda não temos certeza se a segurança em nível de linha é verdadeira ou não
Portanto, sempre precisamos verificar se a segurança em nível de linha está habilitada e, caso contrário, precisamos habilitá-la.
Agora, existem duas maneiras de fazer isso (poderia haver mais, mas estas são as duas maneiras que poderíamos pensar):
ALTER TABLE <tname> enable row level security;
Ou podemos fazer
SELECT rowsecurity FROM pg_tables WHERE tablename = <tname>
e somente se retornarfalse
, executeALTER TABLE
from (1).
A questão que temos é: a opção (2) tem melhor desempenho do que a opção (1) ou está apenas complicando as coisas sem melhorar o desempenho para startups subsequentes?
Essa verificação acontecerá na inicialização de cada aplicativo.