↑↓ select ↵ open ⌫ change scope Open full search

PG.CENTER connects PostgreSQL documentation, reference, and ecosystem knowledge. Maintained by Pigsty.

Configuration / Version comparison

What changed?

Configuration · PostgreSQL 8.0 → 8.1

Browse PG 8.1

Historical documentation for a PostgreSQL version that is no longer supported.

27 added · 4 removed · 61 changed · 0 coverage changes. These are changes between the pinned reference snapshots.

changedadd_missing_from
--- 8.0
+++ 8.1
@@ -1 +1 @@
-When true, tables that are referenced by a query will be automatically added to the FROM clause if not already present. The default is true for compatibility with previous releases of PostgreSQL. However, this behavior is not SQL-standard, and many people dislike it because it can mask mistakes (such as referencing a table where you should have referenced its alias). Set to false for the SQL-standard behavior of rejecting references to tables that are not listed in FROM.
+When on, tables that are referenced by a query will be automatically added to the FROM clause if not already present. This behavior does not comply with the SQL standard and many people dislike it because it can mask mistakes (such as referencing a table where you should have referenced its alias). The default is off. This variable can be enabled for compatibility with releases of PostgreSQL prior to 8.1, where this behavior was allowed by default. Note that even when this variable is enabled, a warning message will be emitted for each implicit FROM entry referenced by a query. Users are encouraged to update their applications to not rely on this behavior, by adding all tables referenced by a query to the query's FROM clause (or its USING clause in the case of DELETE).
changedarchive_command
--- 8.0
+++ 8.1
@@ -1 +1 @@
-The shell command to execute to archive a completed segment of the WAL file series. If this is an empty string (the default), WAL archiving is disabled. Any %p in the string is replaced by the absolute path of the file to archive, and any %f is replaced by the file name only. Use %% to embed an actual % character in the command. For more information see Section 22.3.1. This option can only be set at server start or in the postgresql.conf file. It is important for the command to return a zero exit status if and only if it succeeds. Examples: archive_command = 'cp "%p" /mnt/server/archivedir/"%f"' archive_command = 'copy "%p" /mnt/server/archivedir/"%f"' # Windows
+The shell command to execute to archive a completed segment of the WAL file series. If this is an empty string (the default), WAL archiving is disabled. Any %p in the string is replaced by the path name of the file to archive, and any %f is replaced by the file name only. (The path name is relative to the working directory of the server, i.e., the cluster's data directory.) Use %% to embed an actual % character in the command. For more information see Section 23.3.1. This option can only be set at server start or in the postgresql.conf file. It is important for the command to return a zero exit status if and only if it succeeds. Examples: archive_command = 'cp "%p" /mnt/server/archivedir/"%f"' archive_command = 'copy "%p" /mnt/server/archivedir/"%f"' # Windows
changedaustralian_timezones
--- 8.0
+++ 8.1
@@ -1 +1 @@
-If set to true, ACST, CST, EST, and SAT are interpreted as Australian time zones rather than as North/South American time zones and Saturday. The default is false.
+If set to on, ACST, CST, EST, and SAT are interpreted as Australian time zones rather than as North/South American time zones and Saturday. The default is off.
changedauthentication_timeout
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Maximum time to complete client authentication, in seconds. If a would-be client has not completed the authentication protocol in this much time, the server breaks the connection. This prevents hung clients from occupying a connection indefinitely. This option can only be set at server start or in the postgresql.conf file. The default is 60.
+Maximum time to complete client authentication, in seconds. If a would-be client has not completed the authentication protocol in this much time, the server breaks the connection. This prevents hung clients from occupying a connection indefinitely. This option can be set at server start or in the postgresql.conf file. The default is 60.
addedautovacuum
--- 8.0
+++ 8.1
@@ -0,0 +1,3 @@
+
+
+Controls whether the server should start the autovacuum subprocess. This is off by default. stats_start_collector and stats_row_level must also be on for this to start. This option can be set at server start or in the postgresql.conf file.
addedautovacuum_analyze_scale_factor
--- 8.0
+++ 8.1
@@ -0,0 +1,3 @@
+
+
+Specifies a fraction of the table size to add to autovacuum_analyze_threshold when deciding whether to trigger an ANALYZE. The default is 0.2. This option can be set at server start or in the postgresql.conf file. This setting can be overridden for individual tables by entries in pg_autovacuum.
addedautovacuum_analyze_threshold
--- 8.0
+++ 8.1
@@ -0,0 +1,3 @@
+
+
+Specifies the minimum number of inserted, updated or deleted tuples needed to trigger an ANALYZE in any one table. The default is 500. This option can be set at server start or in the postgresql.conf file. This setting can be overridden for individual tables by entries in pg_autovacuum.
addedautovacuum_naptime
--- 8.0
+++ 8.1
@@ -0,0 +1,3 @@
+
+
+Specifies the delay between activity rounds for the autovacuum subprocess. In each round the subprocess examines one database and issues VACUUM and ANALYZE commands as needed for tables in that database. The delay is measured in seconds, and the default is 60. This option can be set at server start or in the postgresql.conf file.
addedautovacuum_vacuum_cost_delay
--- 8.0
+++ 8.1
@@ -0,0 +1,3 @@
+
+
+Specifies the cost delay value that will be used in automatic VACUUM operations. If -1 is specified (which is the default), the regular vacuum_cost_delay value will be used. This setting can be overridden for individual tables by entries in pg_autovacuum.
addedautovacuum_vacuum_cost_limit
--- 8.0
+++ 8.1
@@ -0,0 +1,3 @@
+
+
+Specifies the cost limit value that will be used in automatic VACUUM operations. If -1 is specified (which is the default), the regular vacuum_cost_limit value will be used. This setting can be overridden for individual tables by entries in pg_autovacuum.
addedautovacuum_vacuum_scale_factor
--- 8.0
+++ 8.1
@@ -0,0 +1,3 @@
+
+
+Specifies a fraction of the table size to add to autovacuum_vacuum_threshold when deciding whether to trigger a VACUUM. The default is 0.4. This option can be set at server start or in the postgresql.conf file. This setting can be overridden for individual tables by entries in pg_autovacuum.
addedautovacuum_vacuum_threshold
--- 8.0
+++ 8.1
@@ -0,0 +1,3 @@
+
+
+Specifies the minimum number of updated or deleted tuples needed to trigger a VACUUM in any one table. The default is 1000. This option can be set at server start or in the postgresql.conf file. This setting can be overridden for individual tables by entries in pg_autovacuum.
addedbgwriter_all_maxpages
--- 8.0
+++ 8.1
@@ -0,0 +1,3 @@
+
+
+In each round, no more than this many buffers will be written as a result of the scan of the entire buffer pool. (If this limit is reached, the scan stops, and resumes at the next buffer during the next round.) The default value is 5. This option can be set at server start or in the postgresql.conf file.
addedbgwriter_all_percent
--- 8.0
+++ 8.1
@@ -0,0 +1,3 @@
+
+
+To reduce the amount of work that will be needed at checkpoint time, the background writer also does a circular scan through the entire buffer pool, writing buffers that are found to be dirty. In each round, it examines up to bgwriter_all_percent of the buffers for this purpose. The default value is 0.333 (this is a percentage of the total number of shared buffers). With the default bgwriter_delay setting, this will allow the entire shared buffer pool to be scanned about once per minute. This option can be set at server start or in the postgresql.conf file.
changedbgwriter_delay
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Specifies the delay between activity rounds for the background writer. In each round the writer issues writes for some number of dirty buffers (controllable by the following parameters). The selected buffers will always be the least recently used ones among the currently dirty buffers. It then sleeps for bgwriter_delay milliseconds, and repeats. The default value is 200. Note that on many systems, the effective resolution of sleep delays is 10 milliseconds; setting bgwriter_delay to a value that is not a multiple of 10 may have the same results as setting it to the next higher multiple of 10. This option can only be set at server start or in the postgresql.conf file.
+Specifies the delay between activity rounds for the background writer. In each round the writer issues writes for some number of dirty buffers (controllable by the following parameters). It then sleeps for bgwriter_delay milliseconds, and repeats. The default value is 200. Note that on many systems, the effective resolution of sleep delays is 10 milliseconds; setting bgwriter_delay to a value that is not a multiple of 10 may have the same results as setting it to the next higher multiple of 10. This option can be set at server start or in the postgresql.conf file.
addedbgwriter_lru_maxpages
--- 8.0
+++ 8.1
@@ -0,0 +1,3 @@
+
+
+In each round, no more than this many buffers will be written as a result of scanning soon-to-be-recycled buffers. The default value is 5. This option can be set at server start or in the postgresql.conf file.
addedbgwriter_lru_percent
--- 8.0
+++ 8.1
@@ -0,0 +1,3 @@
+
+
+To reduce the probability that server processes will need to issue their own writes, the background writer tries to write buffers that are likely to be recycled soon. In each round, it examines up to bgwriter_lru_percent of the buffers that are nearest to being recycled, and writes any that are dirty. The default value is 1.0 (this is a percentage of the total number of shared buffers). This option can be set at server start or in the postgresql.conf file.
removedbgwriter_maxpages
--- 8.0
+++ 8.1
@@ -1,3 +0,0 @@
-
-
-In each round, no more than this many dirty buffers will be written. The default value is 100. This option can only be set at server start or in the postgresql.conf file.
removedbgwriter_percent
--- 8.0
+++ 8.1
@@ -1,3 +0,0 @@
-
-
-In each round, no more than this percentage of the currently dirty buffers will be written (rounding up any fraction to the next whole number of buffers). The default value is 1. This option can only be set at server start or in the postgresql.conf file.
changedblock_size
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Shows the size of a disk block. It is determined by the value of BLCKSZ when building the server. The default value is 8192 bytes. The meaning of some configuration variables (such as shared_buffers) is influenced by block_size. See Section 16.4.3 for information.
+Reports the size of a disk block. It is determined by the value of BLCKSZ when building the server. The default value is 8192 bytes. The meaning of some configuration variables (such as shared_buffers) is influenced by block_size. See Section 17.4 for information.
addedbonjour_name
--- 8.0
+++ 8.1
@@ -0,0 +1,3 @@
+
+
+Specifies the Bonjour broadcast name. By default, the computer name is used, specified as an empty string ''. This option is ignored if the server was not compiled with Bonjour support. This option can only be set at server start.
changedcheck_function_bodies
--- 8.0
+++ 8.1
@@ -1 +1 @@
-This parameter is normally true. When set to false, it disables validation of the function body string during CREATE FUNCTION. Disabling validation is occasionally useful to avoid problems such as forward references when restoring function definitions from a dump.
+This parameter is normally on. When set to off, it disables validation of the function body string during CREATE FUNCTION. Disabling validation is occasionally useful to avoid problems such as forward references when restoring function definitions from a dump.
changedcheckpoint_warning
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Write a message to the server log if checkpoints caused by the filling of checkpoint segment files happen closer together than this many seconds. The default is 30 seconds. Zero turns off the warning.
+Write a message to the server log if checkpoints caused by the filling of checkpoint segment files happen closer together than this many seconds (which suggests that checkpoint_segments ought to be raised). The default is 30 seconds. Zero disables the warning.
changedclient_min_messages
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Controls which message levels are sent to the client. Valid values are DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, LOG, NOTICE, WARNING, and ERROR. Each level includes all the levels that follow it. The later the level, the fewer messages are sent. The default is NOTICE. Note that LOG has a different rank here than in log_min_messages.
+Controls which message levels are sent to the client. Valid values are DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, LOG, NOTICE, WARNING, ERROR, FATAL, and PANIC. Each level includes all the levels that follow it. The later the level, the fewer messages are sent. The default is NOTICE. Note that LOG has a different rank here than in log_min_messages.
addedconstraint_exclusion
--- 8.0
+++ 8.1
@@ -0,0 +1,3 @@
+
+
+Enables or disables the query planner's use of table constraints to optimize queries. The default is off. When this parameter is on, the planner compares query conditions with table CHECK constraints, and omits scanning tables for which the conditions contradict the constraints. (Presently this is done only for child tables of inheritance scans.) For example: CREATE TABLE parent(key integer, ...); CREATE TABLE child1000(check (key between 1000 and 1999)) INHERITS(parent); CREATE TABLE child2000(check (key between 2000 and 2999)) INHERITS(parent); ... SELECT * FROM parent WHERE key = 2400; With constraint exclusion enabled, this SELECT will not scan child1000 at all. This can improve performance when inheritance is used to build partitioned tables. Currently, constraint_exclusion is disabled by default because it risks incorrect results if query plans are cached — if a table constraint is changed or dropped, the previously generated plan might now be wrong, and there is no built-in mechanism to force re-planning. (This deficiency will probably be addressed in a future PostgreSQL release.) Another reason for keeping it off is that the constraint checks are relatively expensive, and in many circumstances will yield no savings. It is recommended to turn this on only if you are actually using partitioned tables designed to take advantage of the feature. Refer to Section 5.9 for more information on using constraint exclusion and partitioning.
changedcustom_variable_classes
--- 8.0
+++ 8.1
@@ -1 +1 @@
-This variable specifies one or several class names to be used for custom variables, in the form of a comma-separated list. A custom variable is a variable not normally known to PostgreSQL proper but used by some add-on module. Such variables must have names consisting of a class name, a dot, and a variable name. custom_variable_classes specifies all the class names in use in a particular installation. This option can only be set at server start or in the postgresql.conf configuration file.
+This variable specifies one or several class names to be used for custom variables, in the form of a comma-separated list. A custom variable is a variable not normally known to PostgreSQL proper but used by some add-on module. Such variables must have names consisting of a class name, a dot, and a variable name. custom_variable_classes specifies all the class names in use in a particular installation. This option can be set at server start or in the postgresql.conf configuration file.
changeddb_user_namespace
--- 8.0
+++ 8.1
@@ -1 +1 @@
-This allows per-database user names. It is off by default. If this is on, you should create users as username@dbname. When username is passed by a connecting client, @ and the database name is appended to the user name and that database-specific user name is looked up by the server. Note that when you create users with names containing @ within the SQL environment, you will need to quote the user name. With this option enabled, you can still create ordinary global users. Simply append @ when specifying the user name in the client. The @ will be stripped off before the user name is looked up by the server. Note: This feature is intended as a temporary measure until a complete solution is found. At that time, this option will be removed.
+This enables per-database user names. It is off by default. If this is on, you should create users as username@dbname. When username is passed by a connecting client, @ and the database name are appended to the user name and that database-specific user name is looked up by the server. Note that when you create users with names containing @ within the SQL environment, you will need to quote the user name. With this option enabled, you can still create ordinary global users. Simply append @ when specifying the user name in the client. The @ will be stripped off before the user name is looked up by the server. Note: This feature is intended as a temporary measure until a complete solution is found. At that time, this option will be removed.
removeddebug_shared_buffers
--- 8.0
+++ 8.1
@@ -1,3 +0,0 @@
-
-
-Number of seconds between buffer freelist reports. If set greater than zero, emit freelist statistics to the log every so many seconds. Zero (the default) disables reporting.
changeddefault_tablespace
--- 8.0
+++ 8.1
@@ -1 +1 @@
-This variable specifies the default tablespace in which to create objects (tables and indexes) when a CREATE command does not explicitly specify a tablespace. The value is either the name of a tablespace, or an empty string to specify using the default tablespace of the current database. If the value does not match the name of any existing tablespace, PostgreSQL will automatically use the default tablespace of the current database. For more information on tablespaces, see Section 18.6.
+This variable specifies the default tablespace in which to create objects (tables and indexes) when a CREATE command does not explicitly specify a tablespace. The value is either the name of a tablespace, or an empty string to specify using the default tablespace of the current database. If the value does not match the name of any existing tablespace, PostgreSQL will automatically use the default tablespace of the current database. For more information on tablespaces, see Section 19.6.
changeddefault_transaction_read_only
--- 8.0
+++ 8.1
@@ -1 +1 @@
-A read-only SQL transaction cannot alter non-temporary tables. This parameter controls the default read-only status of each new transaction. The default is false (read/write). Consult SET TRANSACTION for more information.
+A read-only SQL transaction cannot alter non-temporary tables. This parameter controls the default read-only status of each new transaction. The default is off (read/write). Consult SET TRANSACTION for more information.
changeddefault_with_oids
--- 8.0
+++ 8.1
@@ -1 +1 @@
-This controls whether CREATE TABLE and CREATE TABLE AS include an OID column in newly-created tables, if neither WITH OIDS nor WITHOUT OIDS is specified. It also determines whether OIDs will be included in tables created by SELECT INTO. In PostgreSQL 8.0.26 default_with_oids defaults to true. This is also the behavior of previous versions of PostgreSQL. However, assuming that tables will contain OIDs by default is not encouraged. This option will probably default to false in a future release of PostgreSQL. To ease compatibility with applications that make use of OIDs, this option should left enabled. To ease compatibility with future versions of PostgreSQL, this option should be disabled, and applications that require OIDs on certain tables should explicitly specify WITH OIDS when those tables are created.
+This controls whether CREATE TABLE and CREATE TABLE AS include an OID column in newly-created tables, if neither WITH OIDS nor WITHOUT OIDS is specified. It also determines whether OIDs will be included in tables created by SELECT INTO. In PostgreSQL 8.1 default_with_oids is disabled by default; in prior versions of PostgreSQL, it was on by default. The use of OIDs in user tables is considered deprecated, so most installations should leave this variable disabled. Applications that require OIDs for a particular table should specify WITH OIDS when creating the table. This variable can be enabled for compatibility with old applications that do not follow this behavior.
addedenable_bitmapscan
--- 8.0
+++ 8.1
@@ -0,0 +1,3 @@
+
+
+Enables or disables the query planner's use of bitmap-scan plan types. The default is on.
addedescape_string_warning
--- 8.0
+++ 8.1
@@ -0,0 +1,3 @@
+
+
+When on, a warning is issued if a backslash (\) appears in an ordinary string literal ('...' syntax). The default is off. Escape string syntax (E'...') should be used for escapes, because in future versions of PostgreSQL ordinary strings will have the standard-conforming behavior of treating backslashes literally.
changedfsync
--- 8.0
+++ 8.1
@@ -1 +1 @@
-If this option is on, the PostgreSQL server will use the fsync() system call in several places to make sure that updates are physically written to disk. This insures that a database cluster will recover to a consistent state after an operating system or hardware crash. However, using fsync() results in a performance penalty: when a transaction is committed, PostgreSQL must wait for the operating system to flush the write-ahead log to disk. When fsync is disabled, the operating system is allowed to do its best in buffering, ordering, and delaying writes. This can result in significantly improved performance. However, if the system crashes, the results of the last few committed transactions may be lost in part or whole. In the worst case, unrecoverable data corruption may occur. (Crashes of the database server itself are not a risk factor here. Only an operating-system-level crash creates a risk of corruption.) Due to the risks involved, there is no universally correct setting for fsync. Some administrators always disable fsync, while others only turn it off for bulk loads, where there is a clear restart point if something goes wrong, whereas some administrators always leave fsync enabled. The default is to enable fsync, for maximum reliability. If you trust your operating system, your hardware, and your utility company (or your battery backup), you can consider disabling fsync. This option can only be set at server start or in the postgresql.conf file.
+If this option is on, the PostgreSQL server will try to make sure that updates are physically written to disk, by issuing fsync() system calls or various equivalent methods (see wal_sync_method). This ensures that the database cluster can recover to a consistent state after an operating system or hardware crash. However, using fsync results in a performance penalty: when a transaction is committed, PostgreSQL must wait for the operating system to flush the write-ahead log to disk. When fsync is disabled, the operating system is allowed to do its best in buffering, ordering, and delaying writes. This can result in significantly improved performance. However, if the system crashes, the results of the last few committed transactions may be lost in part or whole. In the worst case, unrecoverable data corruption may occur. (Crashes of the database software itself are not a risk factor here. Only an operating-system-level crash creates a risk of corruption.) Due to the risks involved, there is no universally correct setting for fsync. Some administrators always disable fsync, while others only turn it off during initial bulk data loads, where there is a clear restart point if something goes wrong. Others always leave fsync enabled. The default is to enable fsync, for maximum reliability. If you trust your operating system, your hardware, and your utility company (or your battery backup), you can consider disabling fsync. This option can be set at server start or in the postgresql.conf file. If you turn this option off, also consider turning off full_page_writes.
addedfull_page_writes
--- 8.0
+++ 8.1
@@ -0,0 +1,3 @@
+
+
+When this option is on, the PostgreSQL server writes the entire content of each disk page to WAL during the first modification of that page after a checkpoint. This parameter is currently ignored (treated as always on) because turning it off can cause failure to recover from crashes even when no hardware or OS-level error occurred. This will be fixed in some future release, or else the parameter will be removed entirely.
changedinteger_datetimes
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Shows whether PostgreSQL was built with support for 64-bit-integer dates and times. It is set by configuring with --enable-integer-datetimes when building PostgreSQL. The default value is off.
+Reports whether PostgreSQL was built with support for 64-bit-integer dates and times. It is set by configuring with --enable-integer-datetimes when building PostgreSQL. The default value is off.
addedkrb_caseins_users
--- 8.0
+++ 8.1
@@ -0,0 +1,3 @@
+
+
+Sets whether Kerberos user names should be treated case-insensitively. The default is off (case sensitive). This parameter can only be set at server start.
addedkrb_server_hostname
--- 8.0
+++ 8.1
@@ -0,0 +1,3 @@
+
+
+Sets the host name part of the service principal. This, combined with krb_srvname, is used to generate the complete service principal, that is krb_srvname/krb_server_hostname@REALM. If not set, the default is the server host name. See Section 20.2.3 for details. This parameter can only be set at server start.
changedkrb_server_keyfile
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Sets the location of the Kerberos server key file. See Section 19.2.3 for details.
+Sets the location of the Kerberos server key file. See Section 20.2.3 for details. This parameter can only be set at server start.
addedkrb_srvname
--- 8.0
+++ 8.1
@@ -0,0 +1,3 @@
+
+
+Sets the Kerberos service name. See Section 20.2.3 for details. This parameter can only be set at server start.
changedlc_collate
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Shows the locale in which sorting of textual data is done. See Section 20.1 for more information. The value is determined when the database cluster is initialized.
+Reports the locale in which sorting of textual data is done. See Section 21.1 for more information. The value is determined when the database cluster is initialized.
changedlc_ctype
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Shows the locale that determines character classifications. See Section 20.1 for more information. The value is determined when the database cluster is initialized. Ordinarily this will be the same as lc_collate, but for special applications it might be set differently.
+Reports the locale that determines character classifications. See Section 21.1 for more information. The value is determined when the database cluster is initialized. Ordinarily this will be the same as lc_collate, but for special applications it might be set differently.
changedlc_messages
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Sets the language in which messages are displayed. Acceptable values are system-dependent; see Section 20.1 for more information. If this variable is set to the empty string (which is the default) then the value is inherited from the execution environment of the server in a system-dependent way. On some systems, this locale category does not exist. Setting this variable will still work, but there will be no effect. Also, there is a chance that no translated messages for the desired language exist. In that case you will continue to see the English messages.
+Sets the language in which messages are displayed. Acceptable values are system-dependent; see Section 21.1 for more information. If this variable is set to the empty string (which is the default) then the value is inherited from the execution environment of the server in a system-dependent way. On some systems, this locale category does not exist. Setting this variable will still work, but there will be no effect. Also, there is a chance that no translated messages for the desired language exist. In that case you will continue to see the English messages.
changedlc_monetary
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Sets the locale to use for formatting monetary amounts, for example with the to_char family of functions. Acceptable values are system-dependent; see Section 20.1 for more information. If this variable is set to the empty string (which is the default) then the value is inherited from the execution environment of the server in a system-dependent way.
+Sets the locale to use for formatting monetary amounts, for example with the to_char family of functions. Acceptable values are system-dependent; see Section 21.1 for more information. If this variable is set to the empty string (which is the default) then the value is inherited from the execution environment of the server in a system-dependent way.
changedlc_numeric
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Sets the locale to use for formatting numbers, for example with the to_char family of functions. Acceptable values are system-dependent; see Section 20.1 for more information. If this variable is set to the empty string (which is the default) then the value is inherited from the execution environment of the server in a system-dependent way.
+Sets the locale to use for formatting numbers, for example with the to_char family of functions. Acceptable values are system-dependent; see Section 21.1 for more information. If this variable is set to the empty string (which is the default) then the value is inherited from the execution environment of the server in a system-dependent way.
changedlc_time
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Sets the locale to use for formatting date and time values. (Currently, this setting does nothing, but it may in the future.) Acceptable values are system-dependent; see Section 20.1 for more information. If this variable is set to the empty string (which is the default) then the value is inherited from the execution environment of the server in a system-dependent way.
+Sets the locale to use for formatting date and time values. (Currently, this setting does nothing, but it may in the future.) Acceptable values are system-dependent; see Section 21.1 for more information. If this variable is set to the empty string (which is the default) then the value is inherited from the execution environment of the server in a system-dependent way.
changedlog_connections
--- 8.0
+++ 8.1
@@ -1 +1 @@
-This outputs a line to the server log detailing each successful connection. This is off by default, although it is probably very useful. This option can only be set at server start or in the postgresql.conf configuration file.
+This outputs a line to the server log detailing each successful connection. This is off by default, although it is probably very useful. Some client programs, like psql, attempt to connect twice while determining if a password is required, so duplicate "connection received" messages do not necessarily indicate a problem. This option can only be set at server start or in the postgresql.conf configuration file.
changedlog_destination
--- 8.0
+++ 8.1
@@ -1 +1 @@
-PostgreSQL supports several methods for logging server messages, including stderr and syslog. On Windows, eventlog is also supported. Set this option to a list of desired log destinations separated by commas. The default is to log to stderr only. This option can only be set at server start or in the postgresql.conf configuration file.
+PostgreSQL supports several methods for logging server messages, including stderr and syslog. On Windows, eventlog is also supported. Set this option to a list of desired log destinations separated by commas. The default is to log to stderr only. This option can be set at server start or in the postgresql.conf configuration file.
changedlog_directory
--- 8.0
+++ 8.1
@@ -1 +1 @@
-When redirect_stderr is enabled, this option determines the directory in which log files will be created. It may be specified as an absolute path, or relative to the cluster data directory. This option can only be set at server start or in the postgresql.conf configuration file.
+When redirect_stderr is enabled, this option determines the directory in which log files will be created. It may be specified as an absolute path, or relative to the cluster data directory. This option can be set at server start or in the postgresql.conf configuration file.
changedlog_disconnections
--- 8.0
+++ 8.1
@@ -1 +1 @@
-This outputs a line in the server log similar to log_connections but at session termination, and includes the duration of the session. This is off by default. This option can only be set at server start or in the postgresql.conf configuration file.
+This outputs a line in the server log similar to log_connections but at session termination, and includes the duration of the session. This is off by default. This option can be set at server start or in the postgresql.conf configuration file.
changedlog_duration
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Causes the duration of every completed statement which satisfies log_statement to be logged. When using this option, if you are not using syslog, it is recommended that you log the PID or session ID using log_line_prefix so that you can link the statement to the duration using the process ID or session ID. The default is off. Only superusers can change this setting.
+Causes the duration of every completed statement which satisfies log_statement to be logged. When using this option, if you are not using syslog, it is recommended that you log the PID or session ID using log_line_prefix so that you can link the statement message to the later duration message using the process ID or session ID. The default is off. Only superusers can change this setting.
changedlog_filename
--- 8.0
+++ 8.1
@@ -1 +1 @@
-When redirect_stderr is enabled, this option sets the file names of the created log files. The value is treated as a strftime pattern, so %-escapes can be used to specify time-varying file names. If no %-escapes are present, PostgreSQL will append the epoch of the new log file's open time. For example, if log_filename were server_log, then the chosen file name would be server_log.1093827753 for a log starting at Sun Aug 29 19:02:33 2004 MST. This option can only be set at server start or in the postgresql.conf configuration file.
+When redirect_stderr is enabled, this option sets the file names of the created log files. The value is treated as a strftime pattern, so %-escapes can be used to specify time-varying file names. If no %-escapes are present, PostgreSQL will append the epoch of the new log file's open time. For example, if log_filename were server_log, then the chosen file name would be server_log.1093827753 for a log starting at Sun Aug 29 19:02:33 2004 MST. This option can be set at server start or in the postgresql.conf configuration file.
changedlog_hostname
--- 8.0
+++ 8.1
@@ -1 +1 @@
-By default, connection log messages only show the IP address of the connecting host. Turning on this option causes logging of the host name as well. Note that depending on your host name resolution setup this might impose a non-negligible performance penalty. This option can only be set at server start or in the postgresql.conf file.
+By default, connection log messages only show the IP address of the connecting host. Turning on this option causes logging of the host name as well. Note that depending on your host name resolution setup this might impose a non-negligible performance penalty. This option can be set at server start or in the postgresql.conf file.
changedlog_line_prefix
--- 8.0
+++ 8.1
@@ -1 +1 @@
-This is a printf-style string that is output at the beginning of each log line. The default is an empty string. Each recognized escape is replaced as outlined below - anything else that looks like an escape is ignored. Other characters are copied straight to the log line. Some escapes are only recognised by session processes, and do not apply to background processes such as the postmaster. Syslog produces its own time stamp and process ID information, so you probably do not want to use those escapes if you are using syslog. This option can only be set at server start or in the postgresql.conf configuration file. Escape Effect Session only %u User name yes %d Database name yes %r Remote host name or IP address, and remote port yes %p Process ID no %t Time stamp no %i Command tag: This is the command that generated the log line. yes %c Session ID: A unique identifier for each session. It is 2 4-byte hexadecimal numbers (without leading zeros) separated by a dot. The numbers are the session start time and the process ID, so this can also be used as a space saving way of printing these items. yes %l Number of the log line for each process, starting at 1 no %s Session start time stamp yes %x Transaction ID yes %q Does not produce any output, but tells non-session processes to stop at this point in the string. Ignored by session processes. no %% Literal % no
+This is a printf-style string that is output at the beginning of each log line. The default is an empty string. Each recognized escape is replaced as outlined below - anything else that looks like an escape is ignored. Other characters are copied straight to the log line. Some escapes are only recognized by session processes, and do not apply to background processes such as the postmaster. Syslog produces its own time stamp and process ID information, so you probably do not want to use those escapes if you are using syslog. This option can be set at server start or in the postgresql.conf configuration file. Escape Effect Session only %u User name yes %d Database name yes %r Remote host name or IP address, and remote port yes %h Remote host name or IP address yes %p Process ID no %t Time stamp (no milliseconds) no %m Time stamp with milliseconds no %i Command tag: This is the command that generated the log line. yes %c Session ID: A unique identifier for each session. It is 2 4-byte hexadecimal numbers (without leading zeros) separated by a dot. The numbers are the session start time and the process ID, so this can also be used as a space saving way of printing these items. yes %l Number of the log line for each process, starting at 1 no %s Session start time stamp yes %x Transaction ID yes %q Does not produce any output, but tells non-session processes to stop at this point in the string. Ignored by session processes. no %% Literal % no
changedlog_min_duration_statement
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Sets a minimum statement execution time (in milliseconds) that causes a statement to be logged. All SQL statements that run for the time specified or longer will be logged with their duration. Setting this to zero will print all queries and their durations. Minus-one (the default) disables the feature. For example, if you set it to 250 then all SQL statements that run 250ms or longer will be logged. Enabling this option can be useful in tracking down unoptimized queries in your applications. Only superusers can change this setting.
+Logs the statement and its duration on a single log line if its duration is greater than or equal to the specified number of milliseconds. Setting this to zero will print all statements and their durations. Minus-one (the default) disables the feature. For example, if you set it to 250 then all SQL statements that run 250ms or longer will be logged. Enabling this option can be useful in tracking down unoptimized queries in your applications. This setting is independent of log_statement and log_duration. Only superusers can change this setting.
changedlog_rotation_age
--- 8.0
+++ 8.1
@@ -1 +1 @@
-When redirect_stderr is enabled, this option determines the maximum lifetime of an individual log file. After this many minutes have elapsed, a new log file will be created. Set to zero to disable time-based creation of new log files. This option can only be set at server start or in the postgresql.conf configuration file.
+When redirect_stderr is enabled, this option determines the maximum lifetime of an individual log file. After this many minutes have elapsed, a new log file will be created. Set to zero to disable time-based creation of new log files. This option can be set at server start or in the postgresql.conf configuration file.
changedlog_rotation_size
--- 8.0
+++ 8.1
@@ -1 +1 @@
-When redirect_stderr is enabled, this option determines the maximum size of an individual log file. After this many kilobytes have been emitted into a log file, a new log file will be created. Set to zero to disable size-based creation of new log files. This option can only be set at server start or in the postgresql.conf configuration file.
+When redirect_stderr is enabled, this option determines the maximum size of an individual log file. After this many kilobytes have been emitted into a log file, a new log file will be created. Set to zero to disable size-based creation of new log files. This option can be set at server start or in the postgresql.conf configuration file.
changedlog_statement
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Controls which SQL statements are logged. Valid values are none, ddl, mod, and all. ddl logs all data definition commands like CREATE, ALTER, and DROP commands. mod logs all ddl statements, plus INSERT, UPDATE, DELETE, TRUNCATE, and COPY FROM. PREPARE and EXPLAIN ANALYZE statements are also logged if their contained command is of an appropriate type. The default is none. Only superusers can change this setting. Note: The EXECUTE statement is not considered a ddl or mod statement. When it is logged, only the name of the prepared statement is reported, not the actual prepared statement. When a function is defined in the PL/pgSQLserver-side language, any queries executed by the function will only be logged the first time that the function is invoked in a particular session. This is because PL/pgSQL keeps a cache of the query plans produced for the SQL statements in the function.
+Controls which SQL statements are logged. Valid values are none, ddl, mod, and all. ddl logs all data definition commands like CREATE, ALTER, and DROP commands. mod logs all ddl statements, plus INSERT, UPDATE, DELETE, TRUNCATE, and COPY FROM. PREPARE and EXPLAIN ANALYZE statements are also logged if their contained command is of an appropriate type. The default is none. Only superusers can change this setting. Note: The EXECUTE statement is not considered a ddl or mod statement. Statements that generate syntax errors are not logged. Set log_min_error_statement to error to log such statements. When a function is defined in the PL/pgSQLserver-side language, any queries executed by the function will only be logged the first time that the function is invoked in a particular session. This is because PL/pgSQL keeps a cache of the query plans produced for the SQL statements in the function.
changedlog_truncate_on_rotation
--- 8.0
+++ 8.1
@@ -1 +1 @@
-When redirect_stderr is enabled, this option will cause PostgreSQL to truncate (overwrite), rather than append to, any existing log file of the same name. However, truncation will occur only when a new file is being opened due to time-based rotation, not during server startup or size-based rotation. When false, pre-existing files will be appended to in all cases. For example, using this option in combination with a log_filename like postgresql-%H.log would result in generating twenty-four hourly log files and then cyclically overwriting them. This option can only be set at server start or in the postgresql.conf configuration file. Example: To keep 7 days of logs, one log file per day named server_log.Mon, server_log.Tue, etc, and automatically overwrite last week's log with this week's log, set log_filename to server_log.%a, log_truncate_on_rotation to true, and log_rotation_age to 1440. Example: To keep 24 hours of logs, one log file per hour, but also rotate sooner if the log file size exceeds 1GB, set log_filename to server_log.%H%M, log_truncate_on_rotation to true, log_rotation_age to 60, and log_rotation_size to 1000000. Including %M in log_filename allows any size-driven rotations that may occur to select a filename different from the hour's initial filename.
+When redirect_stderr is enabled, this option will cause PostgreSQL to truncate (overwrite), rather than append to, any existing log file of the same name. However, truncation will occur only when a new file is being opened due to time-based rotation, not during server startup or size-based rotation. When off, pre-existing files will be appended to in all cases. For example, using this option in combination with a log_filename like postgresql-%H.log would result in generating twenty-four hourly log files and then cyclically overwriting them. This option can be set at server start or in the postgresql.conf configuration file. Example: To keep 7 days of logs, one log file per day named server_log.Mon, server_log.Tue, etc, and automatically overwrite last week's log with this week's log, set log_filename to server_log.%a, log_truncate_on_rotation to on, and log_rotation_age to 1440. Example: To keep 24 hours of logs, one log file per hour, but also rotate sooner if the log file size exceeds 1GB, set log_filename to server_log.%H%M, log_truncate_on_rotation to on, log_rotation_age to 60, and log_rotation_size to 1000000. Including %M in log_filename allows any size-driven rotations that may occur to select a file name different from the hour's initial file name.
changedmax_connections
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Determines the maximum number of concurrent connections to the database server. The default is typically 100, but may be less if your kernel settings will not support it (as determined during initdb). This parameter can only be set at server start. Increasing this parameter may cause PostgreSQL to request more System V shared memory or semaphores than your operating system's default configuration allows. See Section 16.5.1 for information on how to adjust those parameters, if necessary.
+Determines the maximum number of concurrent connections to the database server. The default is typically 100, but may be less if your kernel settings will not support it (as determined during initdb). This parameter can only be set at server start. Increasing this parameter may cause PostgreSQL to request more System V shared memory or semaphores than your operating system's default configuration allows. See Section 16.4.1 for information on how to adjust those parameters, if necessary.
changedmax_fsm_relations
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Sets the maximum number of relations (tables and indexes) for which free space will be tracked in the shared free-space map. Roughly fifty bytes of shared memory are consumed for each slot. The default is 1000. This option can only be set at server start.
+Sets the maximum number of relations (tables and indexes) for which free space will be tracked in the shared free-space map. Roughly seventy bytes of shared memory are consumed for each slot. The default is 1000. This option can only be set at server start.
changedmax_function_args
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Shows the maximum number of function arguments. It is determined by the value of FUNC_MAX_ARGS when building the server. The default value is 32.
+Reports the maximum number of function arguments. It is determined by the value of FUNC_MAX_ARGS when building the server. The default value is 100.
changedmax_identifier_length
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Shows the maximum identifier length. It is determined as one less than the value of NAMEDATALEN when building the server. The default value of NAMEDATALEN is 64; therefore the default max_identifier_length is 63.
+Reports the maximum identifier length. It is determined as one less than the value of NAMEDATALEN when building the server. The default value of NAMEDATALEN is 64; therefore the default max_identifier_length is 63.
changedmax_index_keys
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Shows the maximum number of index keys. It is determined by the value of INDEX_MAX_KEYS when building the server. The default value is 32.
+Reports the maximum number of index keys. It is determined by the value of INDEX_MAX_KEYS when building the server. The default value is 32.
changedmax_locks_per_transaction
--- 8.0
+++ 8.1
@@ -1 +1 @@
-The shared lock table is sized on the assumption that at most max_locks_per_transaction * max_connections distinct objects will need to be locked at any one time. (Thus, this parameter's name may be confusing: it is not a hard limit on the number of locks taken by any one transaction, but rather a maximum average value.) The default, 64, has historically proven sufficient, but you might need to raise this value if you have clients that touch many different tables in a single transaction. This option can only be set at server start.
+The shared lock table is created with room to describe locks on max_locks_per_transaction * (max_connections + max_prepared_transactions) objects; hence, no more than this many distinct objects can be locked at any one time. (Thus, this parameter's name may be confusing: it is not a hard limit on the number of locks taken by any one transaction, but rather a maximum average value.) The default, 64, has historically proven sufficient, but you might need to raise this value if you have clients that touch many different tables in a single transaction. This option can only be set at server start. Increasing this parameter may cause PostgreSQL to request more System V shared memory than your operating system's default configuration allows. See Section 16.4.1 for information on how to adjust those parameters, if necessary.
addedmax_prepared_transactions
--- 8.0
+++ 8.1
@@ -0,0 +1,3 @@
+
+
+Sets the maximum number of transactions that can be in the "prepared" state simultaneously (see PREPARE TRANSACTION). Setting this parameter to zero disables the prepared-transaction feature. The default is 5. This option can only be set at server start. If you are not using prepared transactions, this parameter may as well be set to zero. If you are using them, you will probably want max_prepared_transactions to be at least as large as max_connections, to avoid unwanted failures at the prepare step. Increasing this parameter may cause PostgreSQL to request more System V shared memory than your operating system's default configuration allows. See Section 16.4.1 for information on how to adjust those parameters, if necessary.
removedrendezvous_name
--- 8.0
+++ 8.1
@@ -1,3 +0,0 @@
-
-
-Specifies the Rendezvous broadcast name. By default, the computer name is used, specified as an empty string ''. This option is ignored if the server was not compiled with Rendezvous support. This option can only be set at server start.
changedsearch_path
--- 8.0
+++ 8.1
@@ -1 +1 @@
-This variable specifies the order in which schemas are searched when an object (table, data type, function, etc.) is referenced by a simple name with no schema component. When there are objects of identical names in different schemas, the one found first in the search path is used. An object that is not in any of the schemas in the search path can only be referenced by specifying its containing schema with a qualified (dotted) name. The value for search_path has to be a comma-separated list of schema names. If one of the list items is the special value $user, then the schema having the name returned by SESSION_USER is substituted, if there is such a schema. (If not, $user is ignored.) The system catalog schema, pg_catalog, is always searched, whether it is mentioned in the path or not. If it is mentioned in the path then it will be searched in the specified order. If pg_catalog is not in the path then it will be searched before searching any of the path items. Likewise, the current session's temporary-table schema, pg_temp_nnn, is always searched if it exists. It can be explicitly listed in the path by using the alias pg_temp. If it is not listed in the path then it is searched first (before even pg_catalog). However, the temporary schema is only searched for relation (table, view, sequence, etc) and data type names. It will never be searched for function or operator names. When objects are created without specifying a particular target schema, they will be placed in the first schema listed in the search path. An error is reported if the search path is empty. The default value for this parameter is '$user, public' (where the second part will be ignored if there is no schema named public). This supports shared use of a database (where no users have private schemas, and all share use of public), private per-user schemas, and combinations of these. Other effects can be obtained by altering the default search path setting, either globally or per-user. The current effective value of the search path can be examined via the SQL function current_schemas(). This is not quite the same as examining the value of search_path, since current_schemas() shows how the requests appearing in search_path were resolved. For more information on schema handling, see Section 5.8.
+This variable specifies the order in which schemas are searched when an object (table, data type, function, etc.) is referenced by a simple name with no schema component. When there are objects of identical names in different schemas, the one found first in the search path is used. An object that is not in any of the schemas in the search path can only be referenced by specifying its containing schema with a qualified (dotted) name. The value for search_path has to be a comma-separated list of schema names. If one of the list items is the special value $user, then the schema having the name returned by SESSION_USER is substituted, if there is such a schema. (If not, $user is ignored.) The system catalog schema, pg_catalog, is always searched, whether it is mentioned in the path or not. If it is mentioned in the path then it will be searched in the specified order. If pg_catalog is not in the path then it will be searched before searching any of the path items. Likewise, the current session's temporary-table schema, pg_temp_nnn, is always searched if it exists. It can be explicitly listed in the path by using the alias pg_temp. If it is not listed in the path then it is searched first (before even pg_catalog). However, the temporary schema is only searched for relation (table, view, sequence, etc) and data type names. It will never be searched for function or operator names. When objects are created without specifying a particular target schema, they will be placed in the first schema listed in the search path. An error is reported if the search path is empty. The default value for this parameter is '$user, public' (where the second part will be ignored if there is no schema named public). This supports shared use of a database (where no users have private schemas, and all share use of public), private per-user schemas, and combinations of these. Other effects can be obtained by altering the default search path setting, either globally or per-user. The current effective value of the search path can be examined via the SQL function current_schemas(). This is not quite the same as examining the value of search_path, since current_schemas() shows how the requests appearing in search_path were resolved. For more information on schema handling, see Section 5.7.
changedserver_encoding
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Shows the database encoding (character set). It is determined when the database is created. Ordinarily, clients need only be concerned with the value of client_encoding.
+Reports the database encoding (character set). It is determined when the database is created. Ordinarily, clients need only be concerned with the value of client_encoding.
changedserver_version
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Shows the version number of the server. It is determined by the value of PG_VERSION when building the server.
+Reports the version number of the server. It is determined by the value of PG_VERSION when building the server.
changedshared_buffers
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Sets the number of shared memory buffers used by the database server. The default is typically 1000, but may be less if your kernel settings will not support it (as determined during initdb). Each buffer is 8192 bytes, unless a different value of BLCKSZ was chosen when building the server. This setting must be at least 16, as well as at least twice the value of max_connections; however, settings significantly higher than the minimum are usually needed for good performance. Values of a few thousand are recommended for production installations. This option can only be set at server start. Increasing this parameter may cause PostgreSQL to request more System V shared memory than your operating system's default configuration allows. See Section 16.5.1 for information on how to adjust those parameters, if necessary.
+Sets the number of shared memory buffers used by the database server. The default is typically 1000, but may be less if your kernel settings will not support it (as determined during initdb). Each buffer is 8192 bytes, unless a different value of BLCKSZ was chosen when building the server. This setting must be at least 16, as well as at least twice the value of max_connections; however, settings significantly higher than the minimum are usually needed for good performance. Values of a few thousand are recommended for production installations. This option can only be set at server start. Increasing this parameter may cause PostgreSQL to request more System V shared memory than your operating system's default configuration allows. See Section 16.4.1 for information on how to adjust those parameters, if necessary.
changedsql_inheritance
--- 8.0
+++ 8.1
@@ -1 +1 @@
-This controls the inheritance semantics, in particular whether subtables are included by various commands by default. They were not included in versions prior to 7.1. If you need the old behavior you can set this variable to off, but in the long run you are encouraged to change your applications to use the ONLY key word to exclude subtables. See Section 5.5 for more information about inheritance.
+This controls the inheritance semantics, in particular whether subtables are included by various commands by default. They were not included in versions prior to 7.1. If you need the old behavior you can set this variable to off, but in the long run you are encouraged to change your applications to use the ONLY key word to exclude subtables. See Section 5.8 for more information about inheritance.
changedssl
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Enables SSL connections. Please read Section 16.8 before using this. The default is off. This parameter can only be set at server start.
+Enables SSL connections. Please read Section 16.7 before using this. The default is off. This parameter can only be set at server start.
addedstandard_conforming_strings
--- 8.0
+++ 8.1
@@ -0,0 +1,3 @@
+
+
+Reports whether ordinary string literals ('...') treat backslashes literally, as specified in the SQL standard. The value is currently always off, indicating that backslashes are treated as escapes. It is planned that this will change to on in a future PostgreSQL release when string literal syntax changes to meet the standard. Applications may check this parameter to determine how string literals will be processed. The presence of this parameter can also be taken as an indication that the escape string syntax (E'...') is supported.
changedstatement_timeout
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Abort any statement that takes over the specified number of milliseconds. A value of zero (the default) turns off the limitation.
+Abort any statement that takes over the specified number of milliseconds. If log_min_error_statement is set to ERROR or lower, the statement that timed out will also be logged. A value of zero (the default) turns off the limitation.
changedstats_block_level
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Enables the collection of block-level statistics on database activity. This option is disabled by default. If this option is enabled, the data that is produced can be accessed via the pg_stat and pg_statio family of system views; refer to Chapter 23 for more information.
+Enables the collection of block-level statistics on database activity. This option is disabled by default. If this option is enabled, the data that is produced can be accessed via the pg_stat and pg_statio family of system views; refer to Chapter 24 for more information.
changedstats_command_string
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Enables the collection of statistics on the currently executing command of each session, along with the time at which that command began execution. This option is off by default. Note that even when enabled, this information is not visible to all users, only to superusers and the user owning the session being reported on; so it should not represent a security risk. This data can be accessed via the pg_stat_activity system view; refer to Chapter 23 for more information.
+Enables the collection of statistics on the currently executing command of each session, along with the time at which that command began execution. This option is off by default. Note that even when enabled, this information is not visible to all users, only to superusers and the user owning the session being reported on; so it should not represent a security risk. This data can be accessed via the pg_stat_activity system view; refer to Chapter 24 for more information.
changedstats_reset_on_server_start
--- 8.0
+++ 8.1
@@ -1 +1 @@
-If on, collected statistics are zeroed out whenever the server is restarted. If off, statistics are accumulated across server restarts. The default is on. This option can only be set at server start.
+If on, collected statistics are zeroed out whenever the server is restarted. If off, statistics are accumulated across server restarts. The default is off. This option can only be set at server start.
changedstats_row_level
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Enables the collection of row-level statistics on database activity. This option is disabled by default. If this option is enabled, the data that is produced can be accessed via the pg_stat and pg_statio family of system views; refer to Chapter 23 for more information.
+Enables the collection of row-level statistics on database activity. This option is disabled by default. If this option is enabled, the data that is produced can be accessed via the pg_stat and pg_statio family of system views; refer to Chapter 24 for more information.
changedsyslog_facility
--- 8.0
+++ 8.1
@@ -1 +1 @@
-When logging to syslog is enabled, this option determines the syslog "facility" to be used. You may choose from LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7; the default is LOCAL0. See also the documentation of your system's syslog daemon. This option can only be set at server start.
+When logging to syslog is enabled, this option determines the syslog "facility" to be used. You may choose from LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7; the default is LOCAL0. See also the documentation of your system's syslog daemon. This option can be set at server start or in the postgresql.conf configuration file.
changedsyslog_ident
--- 8.0
+++ 8.1
@@ -1 +1 @@
-When logging to syslog is enabled, this option determines the program name used to identify PostgreSQL messages in syslog logs. The default is postgres. This option can only be set at server start.
+When logging to syslog is enabled, this option determines the program name used to identify PostgreSQL messages in syslog logs. The default is postgres. This option can be set at server start or in the postgresql.conf configuration file.
addedtcp_keepalives_count
--- 8.0
+++ 8.1
@@ -0,0 +1,3 @@
+
+
+On systems that support the TCP_KEEPCNT socket option, specifies how many keepalives may be lost before the connection is considered dead. A value of 0 uses the system default. If TCP_KEEPCNT is not supported, this parameter must be 0. This option is ignored for connections made via a Unix-domain socket.
addedtcp_keepalives_idle
--- 8.0
+++ 8.1
@@ -0,0 +1,3 @@
+
+
+On systems that support the TCP_KEEPIDLE socket option, specifies the number of seconds between sending keepalives on an otherwise idle connection. A value of 0 uses the system default. If TCP_KEEPIDLE is not supported, this parameter must be 0. This option is ignored for connections made via a Unix-domain socket.
addedtcp_keepalives_interval
--- 8.0
+++ 8.1
@@ -0,0 +1,3 @@
+
+
+On systems that support the TCP_KEEPINTVL socket option, specifies how long, in seconds, to wait for a response to a keepalive before retransmitting. A value of 0 uses the system default. If TCP_KEEPINTVL is not supported, this parameter must be 0. This option is ignored for connections made via a Unix-domain socket.
addedtemp_buffers
--- 8.0
+++ 8.1
@@ -0,0 +1,3 @@
+
+
+Sets the maximum number of temporary buffers used by each database session. These are session-local buffers used only for access to temporary tables. The default is 1000. The setting can be changed within individual sessions, but only up until the first use of temporary tables within a session; subsequent attempts to change the value will have no effect on that session. A session will allocate temporary buffers as needed up to the limit given by temp_buffers. The cost of setting a large value in sessions that do not actually need a lot of temporary buffers is only a buffer descriptor, or about 64 bytes, per increment in temp_buffers. However if a buffer is actually used an additional 8192 bytes will be consumed for it (or in general, BLCKSZ bytes).
addedtrace_sort
--- 8.0
+++ 8.1
@@ -0,0 +1,3 @@
+
+
+If on, emit information about resource usage during sort operations. This option is only available if the TRACE_SORT macro was defined when PostgreSQL was compiled. (However, TRACE_SORT is currently defined by default.)
changedtransform_null_equals
--- 8.0
+++ 8.1
@@ -1 +1 @@
-When turned on, expressions of the form expr = NULL (or NULL = expr) are treated as expr IS NULL, that is, they return true if expr evaluates to the null value, and false otherwise. The correct SQL-spec-compliant behavior of expr = NULL is to always return null (unknown). Therefore this option defaults to off. However, filtered forms in Microsoft Access generate queries that appear to use expr = NULL to test for null values, so if you use that interface to access the database you might want to turn this option on. Since expressions of the form expr = NULL always return the null value (using the correct interpretation) they are not very useful and do not appear often in normal applications, so this option does little harm in practice. But new users are frequently confused about the semantics of expressions involving null values, so this option is not on by default. Note that this option only affects the exact form = NULL, not other comparison operators or other expressions that are computationally equivalent to some expression involving the equals operator (such as IN). Thus, this option is not a general fix for bad programming. Refer to Section 9.2 for related information.
+When on, expressions of the form expr = NULL (or NULL = expr) are treated as expr IS NULL, that is, they return true if expr evaluates to the null value, and false otherwise. The correct SQL-spec-compliant behavior of expr = NULL is to always return null (unknown). Therefore this option defaults to off. However, filtered forms in Microsoft Access generate queries that appear to use expr = NULL to test for null values, so if you use that interface to access the database you might want to turn this option on. Since expressions of the form expr = NULL always return the null value (using the correct interpretation) they are not very useful and do not appear often in normal applications, so this option does little harm in practice. But new users are frequently confused about the semantics of expressions involving null values, so this option is not on by default. Note that this option only affects the exact form = NULL, not other comparison operators or other expressions that are computationally equivalent to some expression involving the equals operator (such as IN). Thus, this option is not a general fix for bad programming. Refer to Section 9.2 for related information.
changedunix_socket_permissions
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Sets the access permissions of the Unix-domain socket. Unix-domain sockets use the usual Unix file system permission set. The option value is expected to be a numeric mode specification in the form accepted by the chmod and umask system calls. (To use the customary octal format the number must start with a 0 (zero).) The default permissions are 0777, meaning anyone can connect. Reasonable alternatives are 0770 (only user and group, see also unix_socket_group) and 0700 (only user). (Note that for a Unix-domain socket, only write permission matters and so there is no point in setting or revoking read or execute permissions.) This access control mechanism is independent of the one described in Chapter 19. This option can only be set at server start.
+Sets the access permissions of the Unix-domain socket. Unix-domain sockets use the usual Unix file system permission set. The option value is expected to be a numeric mode specification in the form accepted by the chmod and umask system calls. (To use the customary octal format the number must start with a 0 (zero).) The default permissions are 0777, meaning anyone can connect. Reasonable alternatives are 0770 (only user and group, see also unix_socket_group) and 0700 (only user). (Note that for a Unix-domain socket, only write permission matters and so there is no point in setting or revoking read or execute permissions.) This access control mechanism is independent of the one described in Chapter 20. This option can only be set at server start.
changedwal_buffers
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Number of disk-page buffers allocated in shared memory for WAL data. The default is 8. The setting need only be large enough to hold the amount of WAL data generated by one typical transaction. This option can only be set at server start.
+Number of disk-page buffers allocated in shared memory for WAL data. The default is 8. The setting need only be large enough to hold the amount of WAL data generated by one typical transaction, since the data is written out to disk at every transaction commit. This option can only be set at server start. Increasing this parameter may cause PostgreSQL to request more System V shared memory than your operating system's default configuration allows. See Section 16.4.1 for information on how to adjust those parameters, if necessary.
changedwal_debug
--- 8.0
+++ 8.1
@@ -1 +1 @@
-If true, emit WAL-related debugging output. This option is only available if the WAL_DEBUG macro was defined when PostgreSQL was compiled.
+If on, emit WAL-related debugging output. This option is only available if the WAL_DEBUG macro was defined when PostgreSQL was compiled.
changedwal_sync_method
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Method used for forcing WAL updates out to disk. Possible values are fsync (call fsync() at each commit), fdatasync (call fdatasync() at each commit), fsync_writethrough (call _commit() at each commit on Windows), open_sync (write WAL files with open() option O_SYNC), and open_datasync (write WAL files with open() option O_DSYNC). Not all of these choices are available on all platforms. If fsync is off then this setting is irrelevant. This option can only be set at server start or in the postgresql.conf file.
+Method used for forcing WAL updates out to disk. If fsync is off then this setting is irrelevant, since updates will not be forced out at all. Possible values are: open_datasync (write WAL files with open() option O_DSYNC) fdatasync (call fdatasync() at each commit) fsync (call fsync() at each commit) fsync_writethrough (call fsync() at each commit, forcing write-through of any disk write cache) open_sync (write WAL files with open() option O_SYNC) Not all of these choices are available on all platforms. The default is the first method in the above list that is supported by the platform, except that fdatasync is the default on Linux. This option can be set at server start or in the postgresql.conf file.
changedzero_damaged_pages
--- 8.0
+++ 8.1
@@ -1 +1 @@
-Detection of a damaged page header normally causes PostgreSQL to report an error, aborting the current command. Setting zero_damaged_pages to true causes the system to instead report a warning, zero out the damaged page, and continue processing. This behavior will destroy data, namely all the rows on the damaged page. But it allows you to get past the error and retrieve rows from any undamaged pages that may be present in the table. So it is useful for recovering data if corruption has occurred due to hardware or software error. You should generally not set this true until you have given up hope of recovering data from the damaged page(s) of a table. The default setting is off, and it can only be changed by a superuser.
+Detection of a damaged page header normally causes PostgreSQL to report an error, aborting the current command. Setting zero_damaged_pages to on causes the system to instead report a warning, zero out the damaged page, and continue processing. This behavior will destroy data, namely all the rows on the damaged page. But it allows you to get past the error and retrieve rows from any undamaged pages that may be present in the table. So it is useful for recovering data if corruption has occurred due to hardware or software error. You should generally not set this on until you have given up hope of recovering data from the damaged page(s) of a table. The default setting is off, and it can only be changed by a superuser.