Subject: Lower/upper-case consistency with function names

From: Shay Rojansky <[email-masked]>
Date: Sun, 5 Jun 2022 10:20:23 +0200

Hi all,

The PostgreSQL docs mostly show function names in lowercase (e.g. [1],
[2]), which seems to be the PostgreSQL-idiomatic thing to do. However, some
pages show functions in upper case, e.g. COALESCE/NULLIF/GREATEST/LEAST
([3]). Is there some difference between these which warrants the case
difference, or just a case of docs inconsistency?

I ran into this while trying to make Entity Framework (.NET ORM) generate
more idiomatic-looking SQL. If this is just an inconsistency, it's
obviously not very important.

Thanks,

Shay
[1] https://www.postgresql.org/docs/current/functions-aggregate.html
[2] https://www.postgresql.org/docs/current/datatype-datetime.html
[3] https://www.postgresql.org/docs/current/functions-conditional.html

---

From: Julien Rouhaud <[email-masked]>
Date: Sun, 5 Jun 2022 16:27:43 +0800

Hi,

> obviously not very important.

As mentioned in the doc in [3], COALESCE and all the others are actually not
functions (those are specific keywords handled in the parser):

> Although COALESCE, GREATEST, and LEAST are syntactically similar to
> functions, they are not ordinary functions, and thus cannot be used with
> explicit VARIADIC array arguments.

As the rest of the keywords, they're case insensitive but our convention is to
document them in uppercase.

---

From: Shay Rojansky <[email-masked]>
Date: Sun, 5 Jun 2022 10:59:29 +0200

Thanks. Yeah, I noticed that comment, but NULLIF which is also documented
on that page isn't mentioned in that comment, but it's still shown in
upper-case. It's maybe worth adding NULLIF to that comment.

I'm also not sure I'd consider real/not real distinction as something
that's very relevant to the user, to the extent that it warrants a case
difference... But that doesn't matter much.