Vamos considerar o seguinte exemplo (desde o início de um script psql):
\c :db_to_run_on
TRUNCATE the_most_important_table;
-- tried to avoid similarities to anything that exists out there
Agora, se for executado isso pelo comando
psql [connection details] -v db_to_run_on=\'dev_database\'
então ele é executado e o usuário fica feliz. Mas e se ele decidir especificar -v db_to_run_on=production_database
? (Vamos supor que isso possa acontecer, assim como as pessoas correm rm -rf / # don't try this at home!!!
ocasionalmente.) Espero que haja um novo backup dessa tabela ...
Portanto, surge a pergunta: como verificar as variáveis passadas para um script e interromper o processamento com base em seu valor?
\set ON_ERROR_STOP on
- agradável!