pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Bruce Momjian <pgman@candle.pha.pa.us>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Josh Berkus <josh@agliodbs.com>
Cc: John Proctor <jproctor@prium.net>
Cc: PostgreSQL-patches <pgsql-patches@postgresql.org>
Subject: Re: [SQL] 16 parameter limit
Date: Mon, 15 Apr 2002 22:58:51 -0400 (EDT)
Message-ID: <200204160258.g3G2wpG01075@candle.pha.pa.us> (raw)
In-Reply-To: <26072.1018030901@sss.pgh.pa.us>


The following patch adds --maxindfuncparams to configure to allow you to
more easily set the maximum number of function parameters and columns
in an index.  (Can someone come up with a better name?)

The patch also removes --def_maxbackends, which Tom reported a few weeks
ago he wanted to remove.  Can people review this?  To test it, you have
to run autoconf.

Are we staying at 16 as the default?   I personally think we can
increase it to 32 with little penalty, and that we should increase
NAMEDATALEN to 64.

---------------------------------------------------------------------------

Tom Lane wrote:
> "Josh Berkus" <josh@agliodbs.com> writes:
> > Personally, as a heavy user of PL/pgSQL procedures, I'm not sure you
> >  need to increase the *default* number of parameters.  Postgres just
> >  needs to implement a parameter number change as part of a documented
> >  command-line compile-time option, i.e. "--with-parameters=32".
> 
> I would not object to providing such a configure option; it seems a
> reasonable thing to do.  But the real debate here seems to be what
> the default should be.  The ACS people would like their code to run
> on a "stock" Postgres installation, so they've been lobbying to change
> the default, not just to make it fractionally easier to build a
> non-default configuration.
> 
> > Also, what is the practical maximum number of parameters?
> 
> If you tried to make it more than perhaps 500, you'd start to see
> index-tuple-too-big failures in the pg_proc indexes.  Realistically,
> though, I can't see people calling procedures with hundreds of
> positionally-specified parameters --- such code would be unmanageably
> error-prone.
> 
> I was surprised that people were dissatisfied with 16 (it was 8 not very
> long ago...).  Needing more strikes me as a symptom of either bad coding
> practices or missing features of other sorts.
> 
> 			regards, tom lane
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
> 
> http://archives.postgresql.org
> 

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Attachments:

/pgpatches/maxbackends (text/plain, 4.5K) download Index: configure.in =================================================================== RCS file: /cvsroot/pgsql/configure.in,v retrieving revision 1.178 diff -c -r1.178 configure.in *** configure.in 14 Apr 2002 17:23:20 -0000 1.178 --- configure.in 16 Apr 2002 01:47:00 -0000 *************** *** 215,229 **** AC_SUBST(default_port) # ! # Maximum number of allowed connections (--with-maxbackends), default 32 # ! AC_MSG_CHECKING([for default soft limit on number of connections]) ! PGAC_ARG_REQ(with, maxbackends, [ --with-maxbackends=N set default maximum number of connections [32]], [], ! [with_maxbackends=32]) ! AC_MSG_RESULT([$with_maxbackends]) ! AC_DEFINE_UNQUOTED([DEF_MAXBACKENDS], [$with_maxbackends], ! [The default soft limit on the number of concurrent connections, i.e., the default for the postmaster -N switch (--with-maxbackends)]) # --- 215,229 ---- AC_SUBST(default_port) # ! # Maximum number of index/function parameters (--with-maxindfuncparams), default 16 # ! AC_MSG_CHECKING([maximum number of index/function parameters]) ! PGAC_ARG_REQ(with, maxindfuncparams, [ --with-maxindfuncparams=N maximum number of index/function parameters [16]], [], ! [with_maxindfuncparams=16]) ! AC_MSG_RESULT([$with_maxindfuncparams]) ! AC_DEFINE_UNQUOTED([MAXINDFUNCPARAMS], [$with_maxindfuncparams], ! [The maximum number of index/function parameters]) # Index: src/backend/utils/misc/guc.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/utils/misc/guc.c,v retrieving revision 1.65 diff -c -r1.65 guc.c *** src/backend/utils/misc/guc.c 3 Apr 2002 05:39:32 -0000 1.65 --- src/backend/utils/misc/guc.c 16 Apr 2002 01:47:02 -0000 *************** *** 408,419 **** */ { "max_connections", PGC_POSTMASTER, PGC_S_DEFAULT, &MaxBackends, ! DEF_MAXBACKENDS, 1, INT_MAX, NULL, NULL }, { "shared_buffers", PGC_POSTMASTER, PGC_S_DEFAULT, &NBuffers, ! DEF_NBUFFERS, 16, INT_MAX, NULL, NULL }, { --- 408,419 ---- */ { "max_connections", PGC_POSTMASTER, PGC_S_DEFAULT, &MaxBackends, ! 32, 1, INT_MAX, NULL, NULL }, { "shared_buffers", PGC_POSTMASTER, PGC_S_DEFAULT, &NBuffers, ! 64, 16, INT_MAX, NULL, NULL }, { Index: src/include/pg_config.h.in =================================================================== RCS file: /cvsroot/pgsql/src/include/pg_config.h.in,v retrieving revision 1.21 diff -c -r1.21 pg_config.h.in *** src/include/pg_config.h.in 10 Apr 2002 22:47:09 -0000 1.21 --- src/include/pg_config.h.in 16 Apr 2002 01:47:03 -0000 *************** *** 77,87 **** #undef DEF_PGPORT_STR /* ! * Default soft limit on number of backend server processes per postmaster; ! * this is just the default setting for the postmaster's -N switch. ! * (--with-maxbackends=N) */ ! #undef DEF_MAXBACKENDS /* --enable-nls */ #undef ENABLE_NLS --- 77,86 ---- #undef DEF_PGPORT_STR /* ! * The maximum number of columns in an index and the maximum number of ! * parameters to a function. This controls the length of oidvector. */ ! #undef MAXINDFUNCPARAMS /* --enable-nls */ #undef ENABLE_NLS *************** *** 107,121 **** */ /* - * Default number of buffers in shared buffer pool (each of size BLCKSZ). - * This is just the default setting for the postmaster's -B switch. - * Perhaps it ought to be configurable from a configure switch. - * NOTE: default setting corresponds to the minimum number of buffers - * that postmaster.c will allow for the default MaxBackends value. - */ - #define DEF_NBUFFERS (DEF_MAXBACKENDS > 8 ? DEF_MAXBACKENDS * 2 : 16) - - /* * Size of a disk block --- this also limits the size of a tuple. * You can set it bigger if you need bigger tuples (although TOAST * should reduce the need to have large tuples, since fields can now --- 106,111 ---- *************** *** 162,169 **** * switch statement in fmgr_oldstyle() in src/backend/utils/fmgr/fmgr.c. * But consider converting such functions to new-style instead... */ ! #define INDEX_MAX_KEYS 16 ! #define FUNC_MAX_ARGS INDEX_MAX_KEYS /* * System default value for pg_attribute.attstattarget --- 152,159 ---- * switch statement in fmgr_oldstyle() in src/backend/utils/fmgr/fmgr.c. * But consider converting such functions to new-style instead... */ ! #define INDEX_MAX_KEYS MAXINDFUNCPARAMS ! #define FUNC_MAX_ARGS MAXINDFUNCPARAMS /* * System default value for pg_attribute.attstattarget

view thread (43+ messages)  latest in thread

Message-ID: <200204160258.g3G2wpG01075@candle.pha.pa.us>
Permalink:  ../200204160258.g3G2wpG01075@candle.pha.pa.us/
Also on:    postgresql.org/message-id/200204160258.g3G2wpG01075@candle.pha.pa.us

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: pgman@candle.pha.pa.us, tgl@sss.pgh.pa.us, josh@agliodbs.com, jproctor@prium.net, pgsql-patches@postgresql.org
  Subject: Re: [SQL] 16 parameter limit
  In-Reply-To: <200204160258.g3G2wpG01075@candle.pha.pa.us>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox