According to
https://www.postgresql.org/docs/12/app-psql.html#APP-PSQL-VARIABLES and
experience, variables don't interpolate inside of string literals:
"
Variable interpolation will not be performed within quoted SQL literals and
identifiers. Therefore, a construction such as ':foo' doesn't work to
produce a quoted literal from a variable's value.
"
$ psql12 -v BOM=2023-02-01 -af foo.sql
select :'BOM'::timestamp + interval'6 month';
?column?
---------------------
2023-08-01 00:00:00
(1 row)
select $$ :BOM $$;
?column?
----------
:BOM
(1 row)
But crosstab takes text strings as parameters. How then do you use \set
variables in crosstab queries?
--
Born in Arizona, moved to Babylonia.