Andrew - Supernews <andrew+nonews(at)supernews(dot)com> writes:
>>> "WHERE spcname NOT LIKE E'pg\\_%'");
> It's not even correct as it stands - if you want to match a literal _
> using LIKE then you would need E'pg\\\\_%' there.
Good point!
> Would NOT LIKE 'pg!_%' ESCAPE '!' be better?
Seems like a fine solution --- I was about to object that ESCAPE
doesn't go back as far as PG 7.0, but neither does pg_tablespace,
so that seems OK.
Or perhaps better, use a regular regex: spcname !~ '^pg_'. The
majority of the comparable cases in psql's describe.c do it this
way, and they seem more readable to me ...
regards, tom lane