Let's consider the following example (from the start of a psql script):
\c :db_to_run_on
TRUNCATE the_most_important_table;
-- tried to avoid similarities to anything that exists out there
Now if it is run this by the command
psql [connection details] -v db_to_run_on=\'dev_database\'
then it just runs and the user is happy. But what if (s)he decides to specify -v db_to_run_on=production_database
? (Let's assume that this can happen, just like people run rm -rf / # don't try this at home!!!
ocassionally.) Hopefully there is a fresh backup of that table...
So the question arises: how to check the variables passed to a script and stop further processing based on their value?