sql-formatter icon indicating copy to clipboard operation
sql-formatter copied to clipboard

Failure on schema-qualified special `OPERATOR` in PostgreSQL

Open innermatrix opened this issue 1 year ago • 4 comments

Describe the bug

echo "select 'a' operator(public.=) 'A';" | npx sql-formatter -l postgresql

Expected behavior

Useful output

Actual behavior

Failure

Usage

$ npx sql-formatter --version    
15.2.0

Yeah, this syntax is weird; unfortunately, it's generated by pg_dump in some cases, so my scripts that pipe schema dump through sql-formatter are failing.

innermatrix avatar Jan 30 '24 21:01 innermatrix

Thanks for reporting.

That's definitely a tricky bit of syntax to handle.

You might be interested in trying out prettier-plugin-sql-cst. It doesn't yet have a full PostgreSQL support, but it does handle the OPERATOR() syntax.

I can thing of several hacks to fix this issue in sql-formatter. Will have to figure out which one would be the least hacky way of doing it.

nene avatar Jan 31 '24 09:01 nene

Thanks; I am following that project and plan to switch to it when its Postgres support matures more, but for now here we are 🙂

innermatrix avatar Jan 31 '24 15:01 innermatrix

If you know of anything particular that's missing from the current PostgreSQL support in the prettier-plugin-sql-cst, feel free to let me know and I might prioritize that. It will take a while for it to support 100% of Postgres syntax, but most likely something like 10% of it is actually used by most people. But I don't know which 10% :)

nene avatar Jan 31 '24 17:01 nene