BUG #15558: NOTIFY max channel length is undocumented

Started by PG Bug reporting formover 7 years ago3 messagesbugs
Jump to latest
#1PG Bug reporting form
noreply@postgresql.org

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.

#2David G. Johnston
david.g.johnston@gmail.com
In reply to: PG Bug reporting form (#1)
Re: BUG #15558: NOTIFY max channel length is undocumented

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.

#3Andy Edwards
jedwards@fastmail.com
In reply to: David G. Johnston (#2)
Re: BUG #15558: NOTIFY max channel length is undocumented

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&quot;&gt;identifier&lt;/a&gt;)

If there had been a hyperlink I believe I might have clicked it and found this out sooner.

Show quoted text

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.