Thread: BUG #15558: NOTIFY max channel length is undocumented
The following bug has been logged on the website: Bug reference: 15558 Logged by: Andy Edwards Email address: jedwards@fastmail.com PostgreSQL version: 11.1 Operating system: (irrelevant) Description: After debugging why notifications weren't getting delivered, I discovered the following: # LISTEN "pg/tables/TagNotificationTriggers/tag/_org/1/JSON Test/battery/1/lifetimeWh"; NOTICE: identifier "pg/tables/TagNotificationTriggers/tag/_org/1/JSON Test/battery/1/lifetimeWh" will be truncated to "pg/tables/TagNotificationTriggers/tag/_org/1/JSON Test/battery/" I haven't seen a mention of this channel length limit in any version of the documentation for NOTIFY. I wish it were in the documentation, because then I would have found out about this limit before deciding to use Postgres notifications, and chosen to use Redis notifications from the beginning.
On Tue, Dec 18, 2018 at 5:36 PM PG Bug reporting form <noreply@postgresql.org> wrote: > > The following bug has been logged on the website: > > Bug reference: 15558 > Logged by: Andy Edwards > Email address: jedwards@fastmail.com > PostgreSQL version: 11.1 > Operating system: (irrelevant) > Description: > > After debugging why notifications weren't getting delivered, I discovered > the following: > > # LISTEN "pg/tables/TagNotificationTriggers/tag/_org/1/JSON > Test/battery/1/lifetimeWh"; > NOTICE: identifier "pg/tables/TagNotificationTriggers/tag/_org/1/JSON > Test/battery/1/lifetimeWh" will be truncated to > "pg/tables/TagNotificationTriggers/tag/_org/1/JSON Test/battery/" > > I haven't seen a mention of this channel length limit in any version of the > documentation for NOTIFY. I wish it were in the documentation, because then > I would have found out about this limit before deciding to use Postgres > notifications, and chosen to use Redis notifications from the beginning. Since it is just another name/identifier it is the same limit and behavior as is present for table names, column names, type names, etc... The length of identifiers is covered in the general section covering syntax: https://www.postgresql.org/docs/11/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS Default length for identifiers is identified as being 63 bytes - though technically (but not usefully) is system dependent at compile time. It is intentional to not spam the documentation with such a wide-ranging dynamic everywhere it might come into play...I'm undecided whether NOTIFY is deserving of an exception... David J.
Oh, that's a good point. Do you think a hyperlink like the following might be an improvement? channel Name of the notification channel to be signaled (any <a href="https://www.postgresql.org/docs/11/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS">identifier</a>) If there had been a hyperlink I believe I might have clicked it and found this out sooner. On Tue, Dec 18, 2018, at 6:57 PM, David G. Johnston wrote: > On Tue, Dec 18, 2018 at 5:36 PM PG Bug reporting form > <noreply@postgresql.org> wrote: > > > > The following bug has been logged on the website: > > > > Bug reference: 15558 > > Logged by: Andy Edwards > > Email address: jedwards@fastmail.com > > PostgreSQL version: 11.1 > > Operating system: (irrelevant) > > Description: > > > > After debugging why notifications weren't getting delivered, I discovered > > the following: > > > > # LISTEN "pg/tables/TagNotificationTriggers/tag/_org/1/JSON > > Test/battery/1/lifetimeWh"; > > NOTICE: identifier "pg/tables/TagNotificationTriggers/tag/_org/1/JSON > > Test/battery/1/lifetimeWh" will be truncated to > > "pg/tables/TagNotificationTriggers/tag/_org/1/JSON Test/battery/" > > > > I haven't seen a mention of this channel length limit in any version of the > > documentation for NOTIFY. I wish it were in the documentation, because then > > I would have found out about this limit before deciding to use Postgres > > notifications, and chosen to use Redis notifications from the beginning. > > Since it is just another name/identifier it is the same limit and > behavior as is present for table names, column names, type names, > etc... > > The length of identifiers is covered in the general section covering syntax: > > https://www.postgresql.org/docs/11/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS > > Default length for identifiers is identified as being 63 bytes - > though technically (but not usefully) is system dependent at compile > time. > > It is intentional to not spam the documentation with such a > wide-ranging dynamic everywhere it might come into play...I'm > undecided whether NOTIFY is deserving of an exception... > > David J.