I'm trying to execute a different create or replace function
signature according to version()
- since anyarray
& anyelement
are removed in postgres 14 and replaced by anycompatiblearray
& anycompatibleelement
.
I can't use prepare
to draft different statement strings to be executed, since they can't contain DDL.
If I just naively if/else the creates, then both are parsed and each block causes a syntax error in the postgres version it's not intended for.
Is there any way I can execute a string of DDL, or otherwise ignore the syntax error for the half that isn't going to be executed on the current version?