I've just been looking through the options which can and cannot be set in
postgresql.conf and have a few points to raise.

1.  There are some undocumented options which appear to relate to WAL:

        Name			Variable		Default		Set by

	checkpoint_timeout	CheckPointTimeout	300		Startup
	wal_buffers		XLOGbuffers		8		Startup
	wal_files		XLOGfiles		0		Startup
	wal_debug		&XLOG_DEBU		0		Superuser
	commit_delay		&CommitDelay		5		User

    Is there any text anywhere to explain what these do? (Point me to that or
    some commented code, and I'll write a documentation patch.)

2.  The following command line options to postgres don't have an equivalent in
    postgresql.conf.  Is that intentional?  (I suppose it is in several cases,
    and I have left out some where it is obviously intentional.)  I can't see
    why these items can't be put in the configuration file:


	Option		Action

	-C		Noversion = true   [not documented in postgres man page]
	-D		potential_Datadir = arg      [set PGDATA]
	-E		EchoQuery = true   [echo queries to log]
	-e		EuroDates = true   [use European format for dates]
	-N		UseNewLine = 0     [newline is not a query separator]
	-o		[set stdout, stderr to file arg]

3.  I see the -E is documented as being for stand-alone mode only; in fact it
    is useful for getting the query into the backend log in normal operation.

4.  The documentation for -o is confusing:

	-o file-name

	Sends all debugging and error output to OutputFile. If the backend
	is running under the postmaster, error messages are still sent to
	the frontend process as well as to OutputFile, but debugging output
	is sent to the controlling tty of the postmaster (since only one	
	file descriptor can be sent to an actual file).

    I think this is saying that, under the postmaster, debugging output does
    not get sent to OutputFile, and error messages are sent both to OutputFile
    and to the frontend.  Is that correct?

-- 
Oliver Elphick                                Oliver.Elphick@lfix.co.uk
Isle of Wight                              http://www.lfix.co.uk/oliver
PGP: 1024R/32B8FAA1: 97 EA 1D 47 72 3F 28 47  6B 7E 39 CC 56 E4 C1 47
GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839  932A 614D 4C34 3E1D 0C1C
                 ========================================
     "Enter into his gates with thanksgiving, and into his 
      courts with praise. Be thankful unto him, and bless 
      his name."           Psalms 100:4 



Thu, 11 Jan 2001 20:37:57 +0000
"Oliver Elphick" <olly@lfix.co.uk>
postgresql.conf and postgres options
Oliver Elphick writes:

> 2.  The following command line options to postgres don't have an equivalent in
>     postgresql.conf.  Is that intentional?  (I suppose it is in several cases,
>     and I have left out some where it is obviously intentional.)  I can't see
>     why these items can't be put in the configuration file:

> 	-C		Noversion = true   [not documented in postgres man page]

This option doesn't do anything.

> 	-D		potential_Datadir = arg      [set PGDATA]

This option can't be in the config file because it is used to *find* the
config file.

> 	-E		EchoQuery = true   [echo queries to log]

Hmm, there's debug_print_query.  This will probably be consolidated in the
future.

> 	-e		EuroDates = true   [use European format for dates]

This should be a config file option, but Thomas Lockhart couldn't make up
his mind what to call it.  ;-)

> 	-N		UseNewLine = 0     [newline is not a query separator]

I don't think this is useful.

> 	-o		[set stdout, stderr to file arg]

I think this is broken or not well maintained.  Will be cleaned up in some
later release.

-- 
Peter Eisentraut      peter_e@gmx.net       http://yi.org/peter-e/


Fri, 12 Jan 2001 00:20:34 +0100 (CET)
Peter Eisentraut <peter_e@gmx.net>
Re: postgresql.conf and postgres options

I think all valid options should appear in the options file.  Right now,
only a few are in there, I think.

> I've just been looking through the options which can and cannot be set in
> postgresql.conf and have a few points to raise.
> 
> 1.  There are some undocumented options which appear to relate to WAL:
> 
>         Name			Variable		Default		Set by
> 
> 	checkpoint_timeout	CheckPointTimeout	300		Startup
> 	wal_buffers		XLOGbuffers		8		Startup
> 	wal_files		XLOGfiles		0		Startup
> 	wal_debug		&XLOG_DEBU		0		Superuser
> 	commit_delay		&CommitDelay		5		User
> 
>     Is there any text anywhere to explain what these do? (Point me to that or
>     some commented code, and I'll write a documentation patch.)
> 
> 2.  The following command line options to postgres don't have an equivalent in
>     postgresql.conf.  Is that intentional?  (I suppose it is in several cases,
>     and I have left out some where it is obviously intentional.)  I can't see
>     why these items can't be put in the configuration file:
> 
> 
> 	Option		Action
> 
> 	-C		Noversion = true   [not documented in postgres man page]
> 	-D		potential_Datadir = arg      [set PGDATA]
> 	-E		EchoQuery = true   [echo queries to log]
> 	-e		EuroDates = true   [use European format for dates]
> 	-N		UseNewLine = 0     [newline is not a query separator]
> 	-o		[set stdout, stderr to file arg]
> 
> 3.  I see the -E is documented as being for stand-alone mode only; in fact it
>     is useful for getting the query into the backend log in normal operation.
> 
> 4.  The documentation for -o is confusing:
> 
> 	-o file-name
> 
> 	Sends all debugging and error output to OutputFile. If the backend
> 	is running under the postmaster, error messages are still sent to
> 	the frontend process as well as to OutputFile, but debugging output
> 	is sent to the controlling tty of the postmaster (since only one	
> 	file descriptor can be sent to an actual file).
> 
>     I think this is saying that, under the postmaster, debugging output does
>     not get sent to OutputFile, and error messages are sent both to OutputFile
>     and to the frontend.  Is that correct?
> 
> -- 
> Oliver Elphick                                Oliver.Elphick@lfix.co.uk
> Isle of Wight                              http://www.lfix.co.uk/oliver
> PGP: 1024R/32B8FAA1: 97 EA 1D 47 72 3F 28 47  6B 7E 39 CC 56 E4 C1 47
> GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839  932A 614D 4C34 3E1D 0C1C
>                  ========================================
>      "Enter into his gates with thanksgiving, and into his 
>       courts with praise. Be thankful unto him, and bless 
>       his name."           Psalms 100:4 
> 
> 
> 


-- 
  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

Fri, 12 Jan 2001 00:24:25 -0500 (EST)
Bruce Momjian <pgman@candle.pha.pa.us>
Re: postgresql.conf and postgres options
I have added all possible config options to postgresql.conf.sample.

I have attached the new version of the file.  I think you will be amazed
at how GUC gives us such powerful control over PostgreSQL.

Thanks, Peter.

> Oliver Elphick writes:
> 
> > 2.  The following command line options to postgres don't have an equivalent in
> >     postgresql.conf.  Is that intentional?  (I suppose it is in several cases,
> >     and I have left out some where it is obviously intentional.)  I can't see
> >     why these items can't be put in the configuration file:
> 
> > 	-C		Noversion = true   [not documented in postgres man page]
> 
> This option doesn't do anything.
> 
> > 	-D		potential_Datadir = arg      [set PGDATA]
> 
> This option can't be in the config file because it is used to *find* the
> config file.
> 
> > 	-E		EchoQuery = true   [echo queries to log]
> 
> Hmm, there's debug_print_query.  This will probably be consolidated in the
> future.
> 
> > 	-e		EuroDates = true   [use European format for dates]
> 
> This should be a config file option, but Thomas Lockhart couldn't make up
> his mind what to call it.  ;-)
> 
> > 	-N		UseNewLine = 0     [newline is not a query separator]
> 
> I don't think this is useful.
> 
> > 	-o		[set stdout, stderr to file arg]
> 
> I think this is broken or not well maintained.  Will be cleaned up in some
> later release.
> 
> -- 
> Peter Eisentraut      peter_e@gmx.net       http://yi.org/peter-e/
> 
> 


-- 
  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

#
# PostgreSQL configuration file
# -----------------------------
#
# This file consists of lines of the form
#
#   name = value
#
# (The `=' is optional.) White space is collapsed, comments are
# introduced by `#' anywhere on a line. The complete list of option
# names and allowed values can be found in the PostgreSQL
# documentation. Examples are:

#log_connections = on
#fsync = off
#max_connections = 64

# Any option can also be given as a command line switch to the
# postmaster, e.g., 'postmaster -c log_connections=on'. Some options
# can be set at run-time with the 'SET' SQL command.


#========================================================================


#
#	Connection Parameters
#
#tcpip_socket = false
#ssl = false

#max_connections = 32 # 1-1024

#port = 5432 
#hostname_lookup = false
#show_source_port = false

#unix_socket_directory = ""
#unix_socket_group = ""
#unix_socket_permissions = 0777

#virtual_host = ""

#krb_server_keyfile = ""


#
#	Performance
#
#sort_mem = 512
#shared_buffers = 2*max_connections # min 16
#fsync = true


#
#	Optimizer Parameters
#
#enable_seqscan = true
#enable_indexscan = true
#enable_tidscan = true
#enable_sort = true
#enable_nestloop = true
#enable_mergejoin = true
#enable_hashjoin = true

#ksqo = false
#geqo = true

#effective_cache_size = 1000  # default in 8k pages
#random_page_cost = 4
#cpu_tuple_cost = 0.01
#cpu_index_tuple_cost = 0.001
#cpu_operator_cost = 0.0025
#geqo_selection_bias = 2.0 # range 1.5-2.0


#
#	GEQO Optimizer Parameters
#
#geqo_threshold = 11
#geqo_pool_size = 0  #default based in tables, range 128-1024
#geqo_effort = 1
#geqo_generations = 0
#geqo_random_seed = -1 # auto-compute seed


#
#	Inheritance
#
#sql_inheritance = true


#
#	Deadlock
#
#deadlock_timeout = 1000


#
#	Expression Depth Limitation
#
#max_expr_depth = 10000 # min 10


#
#	Write-ahead log (WAL)
#
#wal_buffers = 8 # min 4
#wal_files = 0 # range 0-64
#wal_debug = 0 # range 0-16
#commit_delay = 5 # range 0-1000
#checkpoint_timeout = 300 # range 30-1800


#
#	Debug display
#
#silent_mode = false

#log_connections = false
#log_timestamp = false
#log_pid = false

#debug_level = 0 # range 0-16

#debug_print_query = false
#debug_print_parse = false
#debug_print_rewritten = false
#debug_print_plan = false
#debug_pretty_print = false

#ifdef USE_ASSERT_CHECKING
#debug_assertions = true
#endif


#
#	Syslog
#
#ifdef ENABLE_SYSLOG
#syslog = 0 # range 0-2
#syslog_facility = "LOCAL0"
#syslog_ident = "postgres"
#endif


#
#	Statistics
#
#show_parser_stats = false
#show_planner_stats = false
#show_executor_stats = false
#show_query_stats = false
#ifdef BTREE_BUILD_STATS
#show_btree_build_stats = false
#endif


#
#	Lock Tracing
#
#trace_notify = false
#ifdef LOCK_DEBUG
#trace_locks = false
#trace_userlocks = false
#trace_spinlocks = false
#debug_deadlocks = false
#trace_lock_oidmin = 16384
#trace_lock_table = 0
#endif
Wed, 24 Jan 2001 13:41:16 -0500 (EST)
Bruce Momjian <pgman@candle.pha.pa.us>
Re: postgresql.conf and postgres options
Bruce Momjian writes:

> I have added all possible config options to postgresql.conf.sample.

It was actually fully intentional that there was *no* list of all possible
config options in the sample file, because

1) Who's going to maintain this?

2) People should read the documentation before messing with options.

(" is not the correct string delimiter either.)

I have bad experiences with sample config files.  The first thing I
usually do is delete them and dig up the documentation.

Do other people have comments on this issue?

-- 
Peter Eisentraut      peter_e@gmx.net       http://yi.org/peter-e/


Wed, 24 Jan 2001 20:02:10 +0100 (CET)
Peter Eisentraut <peter_e@gmx.net>
Re: postgresql.conf and postgres options
> Bruce Momjian writes:
> 
> > I have added all possible config options to postgresql.conf.sample.
> 
> It was actually fully intentional that there was *no* list of all possible
> config options in the sample file, because
> 
> 1) Who's going to maintain this?
> 
> 2) People should read the documentation before messing with options.
> 
> (" is not the correct string delimiter either.)

Changed to ''.  Thanks.

> 
> I have bad experiences with sample config files.  The first thing I
> usually do is delete them and dig up the documentation.
> 
> Do other people have comments on this issue?

I have marked all places where these defaults are set in the C code,
pointing them to update postgresql.conf.sample.  

I found it is nice to see a nice list of all options for quick review.
It makes the file much more useful, I think.

-- 
  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

Wed, 24 Jan 2001 14:03:25 -0500 (EST)
Bruce Momjian <pgman@candle.pha.pa.us>
Re: postgresql.conf and postgres options
Bruce Momjian wrote:
> I have added all possible config options to postgresql.conf.sample.

> I have attached the new version of the file.  I think you will be amazed
> at how GUC gives us such powerful control over PostgreSQL.

Good.  As a sysadmin I _like_ sample configs (which I usually rename to
something else, and write my own, of course), as it gives a single
concise quick-reference to the syntax.

Lots of packages do this -- squid is the biggest one I can think of
right now (biggest in terms of config file size and power).  Samba is
another example.  There are a plethora of others, of course.

But, Peter's point does hold -- someone will have to maintain this.
--
Lamar Owen
WGCR Internet Radio
1 Peter 4:11

Wed, 24 Jan 2001 16:06:38 -0500
Lamar Owen <lamar.owen@wgcr.org>
Re: postgresql.conf and postgres options
I think the list is great, show what can be configured rather than 
guessing/digging to find it, where it belongs, in what order (if any), etc. 
etc. etc.
The only addition I could think would be to label (default value).

Needless, I like it.. :)


At 1/24/2001 01:03 PM, Bruce Momjian wrote:
> > Bruce Momjian writes:
> >
> > > I have added all possible config options to postgresql.conf.sample.
> >
> > It was actually fully intentional that there was *no* list of all possible
> > config options in the sample file, because
> >
> > 1) Who's going to maintain this?
> >
> > 2) People should read the documentation before messing with options.
> >
> > (" is not the correct string delimiter either.)
>
>Changed to ''.  Thanks.
>
> >
> > I have bad experiences with sample config files.  The first thing I
> > usually do is delete them and dig up the documentation.
> >
> > Do other people have comments on this issue?
>
>I have marked all places where these defaults are set in the C code,
>pointing them to update postgresql.conf.sample.
>
>I found it is nice to see a nice list of all options for quick review.
>It makes the file much more useful, I think.



Wed, 24 Jan 2001 16:09:20 -0600
Thomas Swan <tswan-lst@ics.olemiss.edu>
Re: postgresql.conf and postgres options

Defaults are listed as the assignment value, and of course, the are all
commented out.

> I think the list is great, show what can be configured rather than 
> guessing/digging to find it, where it belongs, in what order (if any), etc. 
> etc. etc.
> The only addition I could think would be to label (default value).
> 
> Needless, I like it.. :)
> 
> 
> At 1/24/2001 01:03 PM, Bruce Momjian wrote:
> > > Bruce Momjian writes:
> > >
> > > > I have added all possible config options to postgresql.conf.sample.
> > >
> > > It was actually fully intentional that there was *no* list of all possible
> > > config options in the sample file, because
> > >
> > > 1) Who's going to maintain this?
> > >
> > > 2) People should read the documentation before messing with options.
> > >
> > > (" is not the correct string delimiter either.)
> >
> >Changed to ''.  Thanks.
> >
> > >
> > > I have bad experiences with sample config files.  The first thing I
> > > usually do is delete them and dig up the documentation.
> > >
> > > Do other people have comments on this issue?
> >
> >I have marked all places where these defaults are set in the C code,
> >pointing them to update postgresql.conf.sample.
> >
> >I found it is nice to see a nice list of all options for quick review.
> >It makes the file much more useful, I think.
> 
> 
> 


-- 
  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

Wed, 24 Jan 2001 19:05:13 -0500 (EST)
Bruce Momjian <pgman@candle.pha.pa.us>
Re: Re: postgresql.conf and postgres options