From ee678fe30c3b9088f0ed956eb33c37f15a429932 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Wed, 17 Feb 2010 00:52:09 +0000 Subject: [PATCH] Make NOTIFY_PAYLOAD_MAX_LENGTH depend explicitly on BLCKSZ and NAMEDATALEN, so this code doesn't go nuts with smaller than default BLCKSZ or larger than default NAMEDATALEN. The standard value is still exactly 8000. --- src/backend/commands/async.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/async.c b/src/backend/commands/async.c index f5863480f5..23c57cea04 100644 --- a/src/backend/commands/async.c +++ b/src/backend/commands/async.c @@ -7,7 +7,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/async.c,v 1.151 2010/02/16 22:34:43 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/commands/async.c,v 1.152 2010/02/17 00:52:09 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -137,9 +137,12 @@ /* * Maximum size of a NOTIFY payload, including terminating NULL. This * must be kept small enough so that a notification message fits on one - * SLRU page. + * SLRU page. The magic fudge factor here is noncritical as long as it's + * more than AsyncQueueEntryEmptySize --- we make it significantly bigger + * than that, so changes in that data structure won't affect user-visible + * restrictions. */ -#define NOTIFY_PAYLOAD_MAX_LENGTH 8000 +#define NOTIFY_PAYLOAD_MAX_LENGTH (BLCKSZ - NAMEDATALEN - 128) /* * Struct representing an entry in the global notify queue