[postgis-users] ST_SPHEROID_LENGTH SLOW

David Vaz davidvaz at dcc.fc.up.pt
Tue Oct 7 04:07:52 PDT 2008


I am unable to find any significant difference in the configurations,
and the 2 datasets are in fact equal. It might be a slight difference in
the configuration or even in compilation of postgres, but I am no expert
in this so I need some help. I have attached both configuration and
output of 'SHOW ALL'. I hope someone can give light on this subject. To
me it seems the problem is on the Postgres side as you pointed out.

Mark Cave-Ayland wrote:
> Hi David,
>
>> Hi,
>>
>> I am a debian user, several months ago debian testing introduced
>> postgresql-8.3, and later postgis 1.3 for postgresql-8.3. The problem I
>> am facing is that length_spheroid is much slower in postgres-8.3 from
>> under 1s to about 60s (See Bellow). I have google-it without any luck.
>> Does anyone have any idea on why this happens?
>
> Firstly it is not the length_spheroid function that is being slow here
> - the time is disappearing into the index scan on your primary key.
>
>> Both databases are equal, tested in same machine, with different
>> installations to avoid software versions conflicts.
>
> Something doesn't quite ring true here. Looking at your results below
> I see this:
>
>> FIRST:
>> postgresql-8.2 (version 8.2.7-2+b1) with postgis (version 1.3.2-1)
>
> (cut)
>
>>    ->  Index Scan using test_pkey on test  (cost=0.00..2268.52
>> rows=13010 width=26054) (actual time=1.850..588.298 rows=100 loops=1)
>                    ^^^^^
> (cut)
>
>> SECOND:
>> postgresql-8.3 (version 8.3.3-1) with postgis (version 1.3.3-3)
>
>>    ->  Index Scan using test_pkey on test  (cost=0.00..1137.11
>> rows=13010 width=104429) (actual time=182.732..59741.572 rows=100
>> loops=1)
>                    ^^^^^^
> The width parameter gives what PostgreSQL thinks is the average size
> of a row for this scan, and the two are clearly different - are you
> sure you have the same dataset on both systems?
>
> Also you haven't mentioned anything about comparing settings in
> postgresql.conf - are they the same, and are you definitely using
> autovacuum on both systems? If not, a "VACUUM FULL test; REINDEX TABLE
> test" may help if you are suffering from table/index bloat.
>
>
> HTH,
>
> Mark.
>

-------------- next part --------------
              name               |                 setting                  |                                         description                                          
---------------------------------+------------------------------------------+----------------------------------------------------------------------------------------------
 add_missing_from                | off                                      | Automatically adds missing table references to FROM clauses.
 allow_system_table_mods         | off                                      | Allows modifications of the structure of system tables.
 archive_command                 |                                          | WAL archiving command.
 archive_timeout                 | 0                                        | Forces a switch to the next xlog file if a new file has not been started within N seconds.
 array_nulls                     | on                                       | Enable input of NULL elements in arrays.
 authentication_timeout          | 1min                                     | Sets the maximum time in seconds to complete client authentication.
 autovacuum                      | on                                       | Starts the autovacuum subprocess.
 autovacuum_analyze_scale_factor | 0.1                                      | Number of tuple inserts, updates or deletes prior to analyze as a fraction of reltuples.
 autovacuum_analyze_threshold    | 250                                      | Minimum number of tuple inserts, updates or deletes prior to analyze.
 autovacuum_freeze_max_age       | 200000000                                | Age at which to autovacuum a table to prevent transaction ID wraparound.
 autovacuum_naptime              | 1min                                     | Time to sleep between autovacuum runs, in seconds.
 autovacuum_vacuum_cost_delay    | -1                                       | Vacuum cost delay in milliseconds, for autovacuum.
 autovacuum_vacuum_cost_limit    | -1                                       | Vacuum cost amount available before napping, for autovacuum.
 autovacuum_vacuum_scale_factor  | 0.2                                      | Number of tuple updates or deletes prior to vacuum as a fraction of reltuples.
 autovacuum_vacuum_threshold     | 500                                      | Minimum number of tuple updates or deletes prior to vacuum.
 backslash_quote                 | safe_encoding                            | Sets whether "\'" is allowed in string literals.
 bgwriter_all_maxpages           | 5                                        | Background writer maximum number of all pages to flush per round
 bgwriter_all_percent            | 0.333                                    | Background writer percentage of all buffers to flush per round
 bgwriter_delay                  | 200ms                                    | Background writer sleep time between rounds in milliseconds
 bgwriter_lru_maxpages           | 5                                        | Background writer maximum number of LRU pages to flush per round
 bgwriter_lru_percent            | 1                                        | Background writer percentage of LRU buffers to flush per round
 block_size                      | 8192                                     | Shows size of a disk block
 bonjour_name                    |                                          | Sets the Bonjour broadcast service name.
 check_function_bodies           | on                                       | Check function bodies during CREATE FUNCTION.
 checkpoint_segments             | 3                                        | Sets the maximum distance in log segments between automatic WAL checkpoints.
 checkpoint_timeout              | 5min                                     | Sets the maximum time in seconds between automatic WAL checkpoints.
 checkpoint_warning              | 30s                                      | Logs if filling of checkpoint segments happens more frequently than this (in seconds).
 client_encoding                 | UTF8                                     | Sets the client's character set encoding.
 client_min_messages             | notice                                   | Sets the message levels that are sent to the client.
 commit_delay                    | 0                                        | Sets the delay in microseconds between transaction commit and flushing WAL to disk.
 commit_siblings                 | 5                                        | Sets the minimum concurrent open transactions before performing commit_delay.
 config_file                     | /etc/postgresql/8.2/main/postgresql.conf | Sets the server's main configuration file.
 constraint_exclusion            | off                                      | Enables the planner to use constraints to optimize queries.
 cpu_index_tuple_cost            | 0.005                                    | Sets the planner's estimate of the cost of processing each index entry during an index scan.
 cpu_operator_cost               | 0.0025                                   | Sets the planner's estimate of the cost of processing each operator or function call.
 cpu_tuple_cost                  | 0.01                                     | Sets the planner's estimate of the cost of processing each tuple (row).
 custom_variable_classes         |                                          | Sets the list of known custom variable classes.
 data_directory                  | /var/lib/postgresql/8.2/main             | Sets the server's data directory.
 DateStyle                       | ISO, MDY                                 | Sets the display format for date and time values.
 db_user_namespace               | off                                      | Enables per-database user names.
 deadlock_timeout                | 1s                                       | The time in milliseconds to wait on lock before checking for deadlock.
 debug_assertions                | off                                      | Turns on various assertion checks.
 debug_pretty_print              | off                                      | Indents parse and plan tree displays.
 debug_print_parse               | off                                      | Prints the parse tree to the server log.
 debug_print_plan                | off                                      | Prints the execution plan to server log.
 debug_print_rewritten           | off                                      | Prints the parse tree after rewriting to server log.
 default_statistics_target       | 10                                       | Sets the default statistics target.
 default_tablespace              |                                          | Sets the default tablespace to create tables and indexes in.
 default_transaction_isolation   | read committed                           | Sets the transaction isolation level of each new transaction.
 default_transaction_read_only   | off                                      | Sets the default read-only status of new transactions.
 default_with_oids               | off                                      | Create new tables with OIDs by default.
 dynamic_library_path            | $libdir                                  | Sets the path for dynamically loadable modules.
 effective_cache_size            | 128MB                                    | Sets the planner's assumption about size of the disk cache.
 enable_bitmapscan               | on                                       | Enables the planner's use of bitmap-scan plans.
 enable_hashagg                  | on                                       | Enables the planner's use of hashed aggregation plans.
 enable_hashjoin                 | on                                       | Enables the planner's use of hash join plans.
 enable_indexscan                | on                                       | Enables the planner's use of index-scan plans.
 enable_mergejoin                | on                                       | Enables the planner's use of merge join plans.
 enable_nestloop                 | on                                       | Enables the planner's use of nested-loop join plans.
 enable_seqscan                  | on                                       | Enables the planner's use of sequential-scan plans.
 enable_sort                     | on                                       | Enables the planner's use of explicit sort steps.
 enable_tidscan                  | on                                       | Enables the planner's use of TID scan plans.
 escape_string_warning           | on                                       | Warn about backslash escapes in ordinary string literals.
 explain_pretty_print            | on                                       | Uses the indented output format for EXPLAIN VERBOSE.
 external_pid_file               | /var/run/postgresql/8.2-main.pid         | Writes the postmaster PID to the specified file.
 extra_float_digits              | 0                                        | Sets the number of digits displayed for floating-point values.
 from_collapse_limit             | 8                                        | Sets the FROM-list size beyond which subqueries are not collapsed.
 fsync                           | on                                       | Forces synchronization of updates to disk.
 full_page_writes                | on                                       | Writes full pages to WAL when first modified after a checkpoint.
 geqo                            | on                                       | Enables genetic query optimization.
 geqo_effort                     | 5                                        | GEQO: effort is used to set the default for other GEQO parameters.
 geqo_generations                | 0                                        | GEQO: number of iterations of the algorithm.
 geqo_pool_size                  | 0                                        | GEQO: number of individuals in the population.
 geqo_selection_bias             | 2                                        | GEQO: selective pressure within the population.
 geqo_threshold                  | 12                                       | Sets the threshold of FROM items beyond which GEQO is used.
 gin_fuzzy_search_limit          | 0                                        | Sets the maximum allowed result for exact search by GIN.
 hba_file                        | /etc/postgresql/8.2/main/pg_hba.conf     | Sets the server's "hba" configuration file
 ident_file                      | /etc/postgresql/8.2/main/pg_ident.conf   | Sets the server's "ident" configuration file
 ignore_system_indexes           | off                                      | Disables reading from system indexes.
 integer_datetimes               | on                                       | Datetimes are integer based.
 join_collapse_limit             | 8                                        | Sets the FROM-list size beyond which JOIN constructs are not flattened.
 krb_caseins_users               | off                                      | Sets whether Kerberos user names should be treated as case-insensitive.
 krb_server_hostname             |                                          | Sets the hostname of the Kerberos server.
 krb_server_keyfile              | FILE:/etc/postgresql/krb5.keytab         | Sets the location of the Kerberos server key file.
 krb_srvname                     | postgres                                 | Sets the name of the Kerberos service.
 lc_collate                      | en_US.UTF-8                              | Shows the collation order locale.
 lc_ctype                        | en_US.UTF-8                              | Shows the character classification and case conversion locale.
 lc_messages                     | en_US.UTF-8                              | Sets the language in which messages are displayed.
 lc_monetary                     | en_US.UTF-8                              | Sets the locale for formatting monetary amounts.
 lc_numeric                      | en_US.UTF-8                              | Sets the locale for formatting numbers.
 lc_time                         | en_US.UTF-8                              | Sets the locale for formatting date and time values.
 listen_addresses                | localhost                                | Sets the host name or IP address(es) to listen to.
 local_preload_libraries         |                                          | Lists shared libraries to preload into each backend.
 log_connections                 | off                                      | Logs each successful connection.
 log_destination                 | stderr                                   | Sets the destination for server log output.
 log_directory                   | pg_log                                   | Sets the destination directory for log files.
 log_disconnections              | off                                      | Logs end of a session, including duration.
 log_duration                    | off                                      | Logs the duration of each completed SQL statement.
 log_error_verbosity             | default                                  | Sets the verbosity of logged messages.
 log_executor_stats              | off                                      | Writes executor performance statistics to the server log.
 log_filename                    | postgresql-%Y-%m-%d_%H%M%S.log           | Sets the file name pattern for log files.
 log_hostname                    | off                                      | Logs the host name in the connection logs.
 log_line_prefix                 | %t                                       | Controls information prefixed to each log line
 log_min_duration_statement      | -1                                       | Sets the minimum execution time in milliseconds above which statements will be logged.
 log_min_error_statement         | error                                    | Causes all statements generating error at or above this level to be logged.
 log_min_messages                | notice                                   | Sets the message levels that are logged.
 log_parser_stats                | off                                      | Writes parser performance statistics to the server log.
 log_planner_stats               | off                                      | Writes planner performance statistics to the server log.
 log_rotation_age                | 1d                                       | Automatic log file rotation will occur after N minutes
 log_rotation_size               | 10MB                                     | Automatic log file rotation will occur after N kilobytes
 log_statement                   | none                                     | Sets the type of statements logged.
 log_statement_stats             | off                                      | Writes cumulative performance statistics to the server log.
 log_truncate_on_rotation        | off                                      | Truncate existing log files of same name during log rotation.
 maintenance_work_mem            | 16MB                                     | Sets the maximum memory to be used for maintenance operations.
 max_connections                 | 100                                      | Sets the maximum number of concurrent connections.
 max_files_per_process           | 1000                                     | Sets the maximum number of simultaneously open files for each server process.
 max_fsm_pages                   | 153600                                   | Sets the maximum number of disk pages for which free space is tracked.
 max_fsm_relations               | 1000                                     | Sets the maximum number of tables and indexes for which free space is tracked.
 max_function_args               | 100                                      | Shows the maximum number of function arguments.
 max_identifier_length           | 63                                       | Shows the maximum identifier length
 max_index_keys                  | 32                                       | Shows the maximum number of index keys.
 max_locks_per_transaction       | 64                                       | Sets the maximum number of locks per transaction.
 max_prepared_transactions       | 5                                        | Sets the maximum number of simultaneously prepared transactions.
 max_stack_depth                 | 2MB                                      | Sets the maximum stack depth, in kilobytes.
 password_encryption             | on                                       | Encrypt passwords.
 port                            | 5432                                     | Sets the TCP port the server listens on.
 post_auth_delay                 | 0                                        | Waits N seconds on connection startup after authentication.
 pre_auth_delay                  | 0                                        | no description available
 random_page_cost                | 4                                        | Sets the planner's estimate of the cost of a nonsequentially fetched disk page.
 redirect_stderr                 | off                                      | Start a subprocess to capture stderr output into log files.
 regex_flavor                    | advanced                                 | Sets the regular expression "flavor".
 search_path                     | "$user",public                           | Sets the schema search order for names that are not schema-qualified.
 seq_page_cost                   | 1                                        | Sets the planner's estimate of the cost of a sequentially fetched disk page.
 server_encoding                 | UTF8                                     | Sets the server (database) character set encoding.
 server_version                  | 8.2.7                                    | Shows the server version.
 server_version_num              | 80207                                    | Shows the server version as an integer.
 shared_buffers                  | 24MB                                     | Sets the number of shared memory buffers used by the server.
 shared_preload_libraries        |                                          | Lists shared libraries to preload into server.
 silent_mode                     | off                                      | Runs the server silently.
 sql_inheritance                 | on                                       | Causes subtables to be included by default in various commands.
 ssl                             | on                                       | Enables SSL connections.
 standard_conforming_strings     | off                                      | '...' strings treat backslashes literally.
 statement_timeout               | 0                                        | Sets the maximum allowed duration (in milliseconds) of any statement.
 stats_block_level               | off                                      | Collects block-level statistics on database activity.
 stats_command_string            | on                                       | Collects information about executing commands.
 stats_reset_on_server_start     | off                                      | Zeroes collected statistics on server restart.
 stats_row_level                 | on                                       | Collects row-level statistics on database activity.
 stats_start_collector           | on                                       | Starts the server statistics-collection subprocess.
 superuser_reserved_connections  | 3                                        | Sets the number of connection slots reserved for superusers.
 syslog_facility                 | LOCAL0                                   | Sets the syslog "facility" to be used when syslog enabled.
 syslog_ident                    | postgres                                 | Sets the program name used to identify PostgreSQL messages in syslog.
 tcp_keepalives_count            | 0                                        | Maximum number of TCP keepalive retransmits.
 tcp_keepalives_idle             | 0                                        | Seconds between issuing TCP keepalives.
 tcp_keepalives_interval         | 0                                        | Seconds between TCP keepalive retransmits.
 temp_buffers                    | 1024                                     | Sets the maximum number of temporary buffers used by each session.
 TimeZone                        | Portugal                                 | Sets the time zone for displaying and interpreting time stamps.
 timezone_abbreviations          | Default                                  | Selects a file of time zone abbreviations
 trace_notify                    | off                                      | Generates debugging output for LISTEN and NOTIFY.
 trace_sort                      | off                                      | Emit information about resource usage in sorting.
 transaction_isolation           | read committed                           | Sets the current transaction's isolation level.
 transaction_read_only           | off                                      | Sets the current transaction's read-only status.
 transform_null_equals           | off                                      | Treats "expr=NULL" as "expr IS NULL".
 unix_socket_directory           | /var/run/postgresql                      | Sets the directory where the Unix-domain socket will be created.
 unix_socket_group               |                                          | Sets the owning group of the Unix-domain socket.
 unix_socket_permissions         | 511                                      | Sets the access permissions of the Unix-domain socket.
 update_process_title            | on                                       | Updates the process title to show the active SQL command.
 vacuum_cost_delay               | 0                                        | Vacuum cost delay in milliseconds.
 vacuum_cost_limit               | 200                                      | Vacuum cost amount available before napping.
 vacuum_cost_page_dirty          | 20                                       | Vacuum cost for a page dirtied by vacuum.
 vacuum_cost_page_hit            | 1                                        | Vacuum cost for a page found in the buffer cache.
 vacuum_cost_page_miss           | 10                                       | Vacuum cost for a page not found in the buffer cache.
 vacuum_freeze_min_age           | 100000000                                | Minimum age at which VACUUM should freeze a table row.
 wal_buffers                     | 64kB                                     | Sets the number of disk-page buffers in shared memory for WAL.
 wal_sync_method                 | fdatasync                                | Selects the method used for forcing WAL updates out to disk.
 work_mem                        | 1MB                                      | Sets the maximum memory to be used for query workspaces.
 zero_damaged_pages              | off                                      | Continues processing past damaged page headers.
(176 rows)

-------------- next part --------------
# -----------------------------
# PostgreSQL configuration file
# -----------------------------
#
# This file consists of lines of the form:
#
#   name = value
#
# (The '=' is optional.)  White space may be used.  Comments are introduced
# with '#' anywhere on a line.  The complete list of option names and
# allowed values can be found in the PostgreSQL documentation.  The
# commented-out settings shown in this file represent the default values.
#
# Please note that re-commenting a setting is NOT sufficient to revert it
# to the default value, unless you restart the server.
#
# Any option can also be given as a command line switch to the server,
# e.g., 'postgres -c log_connections=on'.  Some options can be changed at
# run-time with the 'SET' SQL command.
#
# This file is read on server startup and when the server receives a
# SIGHUP.  If you edit the file on a running system, you have to SIGHUP the
# server for the changes to take effect, or use "pg_ctl reload". Some
# settings, which are marked below, require a server shutdown and restart
# to take effect.
#
# Memory units:  kB = kilobytes MB = megabytes GB = gigabytes
# Time units:    ms = milliseconds s = seconds min = minutes h = hours d = days


#---------------------------------------------------------------------------
# FILE LOCATIONS
#---------------------------------------------------------------------------

# The default values of these variables are driven from the -D command line
# switch or PGDATA environment variable, represented here as ConfigDir.

data_directory = '/var/lib/postgresql/8.2/main'		# use data in another directory
					# (change requires restart)
hba_file = '/etc/postgresql/8.2/main/pg_hba.conf'	# host-based authentication file
					# (change requires restart)
ident_file = '/etc/postgresql/8.2/main/pg_ident.conf'	# ident configuration file
					# (change requires restart)

# If external_pid_file is not explicitly set, no extra PID file is written.
external_pid_file = '/var/run/postgresql/8.2-main.pid'		# write an extra PID file
					# (change requires restart)


#---------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#---------------------------------------------------------------------------

# - Connection Settings -

#listen_addresses = 'localhost'		# what IP address(es) to listen on; 
					# comma-separated list of addresses;
					# defaults to 'localhost', '*' = all
					# (change requires restart)
port = 5432				# (change requires restart)
max_connections = 100			# (change requires restart)
# Note: increasing max_connections costs ~400 bytes of shared memory per 
# connection slot, plus lock space (see max_locks_per_transaction).  You
# might also need to raise shared_buffers to support more connections.
#superuser_reserved_connections = 3	# (change requires restart)
unix_socket_directory = '/var/run/postgresql'		# (change requires restart)
#unix_socket_group = ''			# (change requires restart)
#unix_socket_permissions = 0777		# octal
					# (change requires restart)
#bonjour_name = ''			# defaults to the computer name
					# (change requires restart)

# - Security & Authentication -

#authentication_timeout = 1min		# 1s-600s
ssl = true				# (change requires restart)
#password_encryption = on
#db_user_namespace = off

# Kerberos
#krb_server_keyfile = ''		# (change requires restart)
#krb_srvname = 'postgres'		# (change requires restart)
#krb_server_hostname = ''		# empty string matches any keytab entry
					# (change requires restart)
#krb_caseins_users = off		# (change requires restart)

# - TCP Keepalives -
# see 'man 7 tcp' for details

#tcp_keepalives_idle = 0		# TCP_KEEPIDLE, in seconds;
					# 0 selects the system default
#tcp_keepalives_interval = 0		# TCP_KEEPINTVL, in seconds;
					# 0 selects the system default
#tcp_keepalives_count = 0		# TCP_KEEPCNT;
					# 0 selects the system default


#---------------------------------------------------------------------------
# RESOURCE USAGE (except WAL)
#---------------------------------------------------------------------------

# - Memory -

shared_buffers = 24MB			# min 128kB or max_connections*16kB
					# (change requires restart)
#temp_buffers = 8MB			# min 800kB
#max_prepared_transactions = 5		# can be 0 or more
					# (change requires restart)
# Note: increasing max_prepared_transactions costs ~600 bytes of shared memory
# per transaction slot, plus lock space (see max_locks_per_transaction).
#work_mem = 1MB				# min 64kB
#maintenance_work_mem = 16MB		# min 1MB
#max_stack_depth = 2MB			# min 100kB

# - Free Space Map -

max_fsm_pages = 153600		# min max_fsm_relations*16, 6 bytes each
					# (change requires restart)
#max_fsm_relations = 1000		# min 100, ~70 bytes each
					# (change requires restart)

# - Kernel Resource Usage -

#max_files_per_process = 1000		# min 25
					# (change requires restart)
#shared_preload_libraries = ''		# (change requires restart)

# - Cost-Based Vacuum Delay -

#vacuum_cost_delay = 0			# 0-1000 milliseconds
#vacuum_cost_page_hit = 1		# 0-10000 credits
#vacuum_cost_page_miss = 10		# 0-10000 credits
#vacuum_cost_page_dirty = 20		# 0-10000 credits
#vacuum_cost_limit = 200		# 0-10000 credits

# - Background writer -

#bgwriter_delay = 200ms			# 10-10000ms between rounds
#bgwriter_lru_percent = 1.0		# 0-100% of LRU buffers scanned/round
#bgwriter_lru_maxpages = 5		# 0-1000 buffers max written/round
#bgwriter_all_percent = 0.333		# 0-100% of all buffers scanned/round
#bgwriter_all_maxpages = 5		# 0-1000 buffers max written/round


#---------------------------------------------------------------------------
# WRITE AHEAD LOG
#---------------------------------------------------------------------------

# - Settings -

#fsync = on				# turns forced synchronization on or off
#wal_sync_method = fsync		# the default is the first option 
					# supported by the operating system:
					#   open_datasync
					#   fdatasync
					#   fsync
					#   fsync_writethrough
					#   open_sync
#full_page_writes = on			# recover from partial page writes
#wal_buffers = 64kB			# min 32kB
					# (change requires restart)
#commit_delay = 0			# range 0-100000, in microseconds
#commit_siblings = 5			# range 1-1000

# - Checkpoints -

#checkpoint_segments = 3		# in logfile segments, min 1, 16MB each
#checkpoint_timeout = 5min		# range 30s-1h
#checkpoint_warning = 30s		# 0 is off

# - Archiving -

#archive_command = ''		# command to use to archive a logfile segment
#archive_timeout = 0		# force a logfile segment switch after this
				# many seconds; 0 is off


#---------------------------------------------------------------------------
# QUERY TUNING
#---------------------------------------------------------------------------

# - Planner Method Configuration -

#enable_bitmapscan = on
#enable_hashagg = on
#enable_hashjoin = on
#enable_indexscan = on
#enable_mergejoin = on
#enable_nestloop = on
#enable_seqscan = on
#enable_sort = on
#enable_tidscan = on

# - Planner Cost Constants -

#seq_page_cost = 1.0			# measured on an arbitrary scale
#random_page_cost = 4.0			# same scale as above
#cpu_tuple_cost = 0.01			# same scale as above
#cpu_index_tuple_cost = 0.005		# same scale as above
#cpu_operator_cost = 0.0025		# same scale as above
#effective_cache_size = 128MB

# - Genetic Query Optimizer -

#geqo = on
#geqo_threshold = 12
#geqo_effort = 5			# range 1-10
#geqo_pool_size = 0			# selects default based on effort
#geqo_generations = 0			# selects default based on effort
#geqo_selection_bias = 2.0		# range 1.5-2.0

# - Other Planner Options -

#default_statistics_target = 10		# range 1-1000
#constraint_exclusion = off
#from_collapse_limit = 8
#join_collapse_limit = 8		# 1 disables collapsing of explicit 
					# JOINs


#---------------------------------------------------------------------------
# ERROR REPORTING AND LOGGING
#---------------------------------------------------------------------------

# - Where to Log -

#log_destination = 'stderr'		# Valid values are combinations of 
					# stderr, syslog and eventlog, 
					# depending on platform.

# This is used when logging to stderr:
#redirect_stderr = off			# Enable capturing of stderr into log 
					# files
					# (change requires restart)

# These are only used if redirect_stderr is on:
#log_directory = 'pg_log'		# Directory where log files are written
					# Can be absolute or relative to PGDATA
#log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # Log file name pattern.
					# Can include strftime() escapes
#log_truncate_on_rotation = off # If on, any existing log file of the same 
					# name as the new log file will be
					# truncated rather than appended to. But
					# such truncation only occurs on
					# time-driven rotation, not on restarts
					# or size-driven rotation. Default is
					# off, meaning append to existing files
					# in all cases.
#log_rotation_age = 1d			# Automatic rotation of logfiles will 
					# happen after that time.  0 to 
					# disable.
#log_rotation_size = 10MB		# Automatic rotation of logfiles will 
					# happen after that much log
					# output.  0 to disable.

# These are relevant when logging to syslog:
#syslog_facility = 'LOCAL0'
#syslog_ident = 'postgres'


# - When to Log -

#client_min_messages = notice		# Values, in order of decreasing detail:
					#   debug5
					#   debug4
					#   debug3
					#   debug2
					#   debug1
					#   log
					#   notice
					#   warning
					#   error

#log_min_messages = notice		# Values, in order of decreasing detail:
					#   debug5
					#   debug4
					#   debug3
					#   debug2
					#   debug1
					#   info
					#   notice
					#   warning
					#   error
					#   log
					#   fatal
					#   panic

#log_error_verbosity = default		# terse, default, or verbose messages

#log_min_error_statement = error	# Values in order of increasing severity:
				 	#   debug5
					#   debug4
					#   debug3
					#   debug2
					#   debug1
				 	#   info
					#   notice
					#   warning
					#   error
					#   fatal
					#   panic (effectively off)

#log_min_duration_statement = -1	# -1 is disabled, 0 logs all statements
					# and their durations.

#silent_mode = off			# DO NOT USE without syslog or 
					# redirect_stderr
					# (change requires restart)

# - What to Log -

#debug_print_parse = off
#debug_print_rewritten = off
#debug_print_plan = off
#debug_pretty_print = off
#log_connections = off
#log_disconnections = off
#log_duration = off
log_line_prefix = '%t '			# Special values:
					#   %u = user name
					#   %d = database name
					#   %r = remote host and port
					#   %h = remote host
					#   %p = PID
					#   %t = timestamp (no milliseconds)
					#   %m = timestamp with milliseconds
					#   %i = command tag
					#   %c = session id
					#   %l = session line number
					#   %s = session start timestamp
					#   %x = transaction id
					#   %q = stop here in non-session 
					#        processes
					#   %% = '%'
					# e.g. '<%u%%%d> '
#log_statement = 'none'			# none, ddl, mod, all
#log_hostname = off


#---------------------------------------------------------------------------
# RUNTIME STATISTICS
#---------------------------------------------------------------------------

# - Query/Index Statistics Collector -

#stats_command_string = on
#update_process_title = on

#stats_start_collector = on		# needed for block or row stats
					# (change requires restart)
#stats_block_level = off
stats_row_level = on
#stats_reset_on_server_start = off	# (change requires restart)


# - Statistics Monitoring -

#log_parser_stats = off
#log_planner_stats = off
#log_executor_stats = off
#log_statement_stats = off


#---------------------------------------------------------------------------
# AUTOVACUUM PARAMETERS
#---------------------------------------------------------------------------

autovacuum = on			# enable autovacuum subprocess?
					# 'on' requires stats_start_collector
					# and stats_row_level to also be on
#autovacuum_naptime = 1min		# time between autovacuum runs
#autovacuum_vacuum_threshold = 500	# min # of tuple updates before
					# vacuum
#autovacuum_analyze_threshold = 250	# min # of tuple updates before 
					# analyze
#autovacuum_vacuum_scale_factor = 0.2	# fraction of rel size before 
					# vacuum
#autovacuum_analyze_scale_factor = 0.1	# fraction of rel size before 
					# analyze
#autovacuum_freeze_max_age = 200000000	# maximum XID age before forced vacuum
					# (change requires restart)
#autovacuum_vacuum_cost_delay = -1	# default vacuum cost delay for 
					# autovacuum, -1 means use 
					# vacuum_cost_delay
#autovacuum_vacuum_cost_limit = -1	# default vacuum cost limit for 
					# autovacuum, -1 means use
					# vacuum_cost_limit


#---------------------------------------------------------------------------
# CLIENT CONNECTION DEFAULTS
#---------------------------------------------------------------------------

# - Statement Behavior -

#search_path = '"$user",public'		# schema names
#default_tablespace = ''		# a tablespace name, '' uses
					# the default
#check_function_bodies = on
#default_transaction_isolation = 'read committed'
#default_transaction_read_only = off
#statement_timeout = 0			# 0 is disabled
#vacuum_freeze_min_age = 100000000

# - Locale and Formatting -

datestyle = 'iso, mdy'
#timezone = unknown			# actually, defaults to TZ 
					# environment setting
#timezone_abbreviations = 'Default'     # select the set of available timezone
					# abbreviations. Currently, there are
					#   Default
					#   Australia
					#   India
					# However you can also create your own
					# file in share/timezonesets/.
#extra_float_digits = 0			# min -15, max 2
#client_encoding = sql_ascii		# actually, defaults to database
					# encoding

# These settings are initialized by initdb -- they might be changed
lc_messages = 'en_US.UTF-8'			# locale for system error message 
					# strings
lc_monetary = 'en_US.UTF-8'			# locale for monetary formatting
lc_numeric = 'en_US.UTF-8'			# locale for number formatting
lc_time = 'en_US.UTF-8'				# locale for time formatting

# - Other Defaults -

#explain_pretty_print = on
#dynamic_library_path = '$libdir'
#local_preload_libraries = ''


#---------------------------------------------------------------------------
# LOCK MANAGEMENT
#---------------------------------------------------------------------------

#deadlock_timeout = 1s
#max_locks_per_transaction = 64		# min 10
					# (change requires restart)
# Note: each lock table slot uses ~270 bytes of shared memory, and there are
# max_locks_per_transaction * (max_connections + max_prepared_transactions)
# lock table slots.


#---------------------------------------------------------------------------
# VERSION/PLATFORM COMPATIBILITY
#---------------------------------------------------------------------------

# - Previous Postgres Versions -

#add_missing_from = off
#array_nulls = on
#backslash_quote = safe_encoding	# on, off, or safe_encoding
#default_with_oids = off
#escape_string_warning = on
#standard_conforming_strings = off
#regex_flavor = advanced		# advanced, extended, or basic
#sql_inheritance = on

# - Other Platforms & Clients -

#transform_null_equals = off


#---------------------------------------------------------------------------
# CUSTOMIZED OPTIONS
#---------------------------------------------------------------------------

#custom_variable_classes = ''		# list of custom variable class names
-------------- next part --------------
              name               |                 setting                  |                                                          description                                                          
---------------------------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------
 add_missing_from                | off                                      | Automatically adds missing table references to FROM clauses.
 allow_system_table_mods         | off                                      | Allows modifications of the structure of system tables.
 archive_command                 | (disabled)                               | Sets the shell command that will be called to archive a WAL file.
 archive_mode                    | off                                      | Allows archiving of WAL files using archive_command.
 archive_timeout                 | 0                                        | Forces a switch to the next xlog file if a new file has not been started within N seconds.
 array_nulls                     | on                                       | Enable input of NULL elements in arrays.
 authentication_timeout          | 1min                                     | Sets the maximum allowed time to complete client authentication.
 autovacuum                      | on                                       | Starts the autovacuum subprocess.
 autovacuum_analyze_scale_factor | 0.1                                      | Number of tuple inserts, updates or deletes prior to analyze as a fraction of reltuples.
 autovacuum_analyze_threshold    | 50                                       | Minimum number of tuple inserts, updates or deletes prior to analyze.
 autovacuum_freeze_max_age       | 200000000                                | Age at which to autovacuum a table to prevent transaction ID wraparound.
 autovacuum_max_workers          | 3                                        | Sets the maximum number of simultaneously running autovacuum worker processes.
 autovacuum_naptime              | 1min                                     | Time to sleep between autovacuum runs.
 autovacuum_vacuum_cost_delay    | 20ms                                     | Vacuum cost delay in milliseconds, for autovacuum.
 autovacuum_vacuum_cost_limit    | -1                                       | Vacuum cost amount available before napping, for autovacuum.
 autovacuum_vacuum_scale_factor  | 0.2                                      | Number of tuple updates or deletes prior to vacuum as a fraction of reltuples.
 autovacuum_vacuum_threshold     | 50                                       | Minimum number of tuple updates or deletes prior to vacuum.
 backslash_quote                 | safe_encoding                            | Sets whether "\'" is allowed in string literals.
 bgwriter_delay                  | 200ms                                    | Background writer sleep time between rounds.
 bgwriter_lru_maxpages           | 100                                      | Background writer maximum number of LRU pages to flush per round.
 bgwriter_lru_multiplier         | 2                                        | Background writer multiplier on average buffers to scan per round.
 block_size                      | 8192                                     | Shows the size of a disk block.
 bonjour_name                    |                                          | Sets the Bonjour broadcast service name.
 check_function_bodies           | on                                       | Check function bodies during CREATE FUNCTION.
 checkpoint_completion_target    | 0.5                                      | Time spent flushing dirty buffers during checkpoint, as fraction of checkpoint interval.
 checkpoint_segments             | 3                                        | Sets the maximum distance in log segments between automatic WAL checkpoints.
 checkpoint_timeout              | 5min                                     | Sets the maximum time between automatic WAL checkpoints.
 checkpoint_warning              | 30s                                      | Enables warnings if checkpoint segments are filled more frequently than this.
 client_encoding                 | SQL_ASCII                                | Sets the client's character set encoding.
 client_min_messages             | notice                                   | Sets the message levels that are sent to the client.
 commit_delay                    | 0                                        | Sets the delay in microseconds between transaction commit and flushing WAL to disk.
 commit_siblings                 | 5                                        | Sets the minimum concurrent open transactions before performing commit_delay.
 config_file                     | /etc/postgresql/8.3/main/postgresql.conf | Sets the server's main configuration file.
 constraint_exclusion            | off                                      | Enables the planner to use constraints to optimize queries.
 cpu_index_tuple_cost            | 0.005                                    | Sets the planner's estimate of the cost of processing each index entry during an index scan.
 cpu_operator_cost               | 0.0025                                   | Sets the planner's estimate of the cost of processing each operator or function call.
 cpu_tuple_cost                  | 0.01                                     | Sets the planner's estimate of the cost of processing each tuple (row).
 custom_variable_classes         |                                          | Sets the list of known custom variable classes.
 data_directory                  | /var/lib/postgresql/8.3/main             | Sets the server's data directory.
 DateStyle                       | ISO, MDY                                 | Sets the display format for date and time values.
 db_user_namespace               | off                                      | Enables per-database user names.
 deadlock_timeout                | 1s                                       | Sets the time to wait on a lock before checking for deadlock.
 debug_assertions                | off                                      | Turns on various assertion checks.
 debug_pretty_print              | off                                      | Indents parse and plan tree displays.
 debug_print_parse               | off                                      | Prints the parse tree to the server log.
 debug_print_plan                | off                                      | Prints the execution plan to server log.
 debug_print_rewritten           | off                                      | Prints the parse tree after rewriting to server log.
 default_statistics_target       | 10                                       | Sets the default statistics target.
 default_tablespace              |                                          | Sets the default tablespace to create tables and indexes in.
 default_text_search_config      | pg_catalog.english                       | Sets default text search configuration.
 default_transaction_isolation   | read committed                           | Sets the transaction isolation level of each new transaction.
 default_transaction_read_only   | off                                      | Sets the default read-only status of new transactions.
 default_with_oids               | off                                      | Create new tables with OIDs by default.
 dynamic_library_path            | $libdir                                  | Sets the path for dynamically loadable modules.
 effective_cache_size            | 128MB                                    | Sets the planner's assumption about the size of the disk cache.
 enable_bitmapscan               | on                                       | Enables the planner's use of bitmap-scan plans.
 enable_hashagg                  | on                                       | Enables the planner's use of hashed aggregation plans.
 enable_hashjoin                 | on                                       | Enables the planner's use of hash join plans.
 enable_indexscan                | on                                       | Enables the planner's use of index-scan plans.
 enable_mergejoin                | on                                       | Enables the planner's use of merge join plans.
 enable_nestloop                 | on                                       | Enables the planner's use of nested-loop join plans.
 enable_seqscan                  | on                                       | Enables the planner's use of sequential-scan plans.
 enable_sort                     | on                                       | Enables the planner's use of explicit sort steps.
 enable_tidscan                  | on                                       | Enables the planner's use of TID scan plans.
 escape_string_warning           | on                                       | Warn about backslash escapes in ordinary string literals.
 explain_pretty_print            | on                                       | Uses the indented output format for EXPLAIN VERBOSE.
 external_pid_file               | /var/run/postgresql/8.3-main.pid         | Writes the postmaster PID to the specified file.
 extra_float_digits              | 0                                        | Sets the number of digits displayed for floating-point values.
 from_collapse_limit             | 8                                        | Sets the FROM-list size beyond which subqueries are not collapsed.
 fsync                           | on                                       | Forces synchronization of updates to disk.
 full_page_writes                | on                                       | Writes full pages to WAL when first modified after a checkpoint.
 geqo                            | on                                       | Enables genetic query optimization.
 geqo_effort                     | 5                                        | GEQO: effort is used to set the default for other GEQO parameters.
 geqo_generations                | 0                                        | GEQO: number of iterations of the algorithm.
 geqo_pool_size                  | 0                                        | GEQO: number of individuals in the population.
 geqo_selection_bias             | 2                                        | GEQO: selective pressure within the population.
 geqo_threshold                  | 12                                       | Sets the threshold of FROM items beyond which GEQO is used.
 gin_fuzzy_search_limit          | 0                                        | Sets the maximum allowed result for exact search by GIN.
 hba_file                        | /etc/postgresql/8.3/main/pg_hba.conf     | Sets the server's "hba" configuration file.
 ident_file                      | /etc/postgresql/8.3/main/pg_ident.conf   | Sets the server's "ident" configuration file.
 ignore_system_indexes           | off                                      | Disables reading from system indexes.
 integer_datetimes               | on                                       | Datetimes are integer based.
 join_collapse_limit             | 8                                        | Sets the FROM-list size beyond which JOIN constructs are not flattened.
 krb_caseins_users               | off                                      | Sets whether Kerberos and GSSAPI user names should be treated as case-insensitive.
 krb_realm                       |                                          | Sets realm to match Kerberos and GSSAPI users against.
 krb_server_hostname             |                                          | Sets the hostname of the Kerberos server.
 krb_server_keyfile              | FILE:/etc/postgresql-common/krb5.keytab  | Sets the location of the Kerberos server key file.
 krb_srvname                     | postgres                                 | Sets the name of the Kerberos service.
 lc_collate                      | C                                        | Shows the collation order locale.
 lc_ctype                        | C                                        | Shows the character classification and case conversion locale.
 lc_messages                     | C                                        | Sets the language in which messages are displayed.
 lc_monetary                     | C                                        | Sets the locale for formatting monetary amounts.
 lc_numeric                      | C                                        | Sets the locale for formatting numbers.
 lc_time                         | C                                        | Sets the locale for formatting date and time values.
 listen_addresses                | localhost                                | Sets the host name or IP address(es) to listen to.
 local_preload_libraries         |                                          | Lists shared libraries to preload into each backend.
 log_autovacuum_min_duration     | -1                                       | Sets the minimum execution time above which autovacuum actions will be logged.
 log_checkpoints                 | off                                      | Logs each checkpoint.
 log_connections                 | off                                      | Logs each successful connection.
 log_destination                 | stderr                                   | Sets the destination for server log output.
 log_directory                   | pg_log                                   | Sets the destination directory for log files.
 log_disconnections              | off                                      | Logs end of a session, including duration.
 log_duration                    | off                                      | Logs the duration of each completed SQL statement.
 log_error_verbosity             | default                                  | Sets the verbosity of logged messages.
 log_executor_stats              | off                                      | Writes executor performance statistics to the server log.
 log_filename                    | postgresql-%Y-%m-%d_%H%M%S.log           | Sets the file name pattern for log files.
 log_hostname                    | off                                      | Logs the host name in the connection logs.
 log_line_prefix                 | %t                                       | Controls information prefixed to each log line.
 log_lock_waits                  | off                                      | Logs long lock waits.
 log_min_duration_statement      | -1                                       | Sets the minimum execution time above which statements will be logged.
 log_min_error_statement         | error                                    | Causes all statements generating error at or above this level to be logged.
 log_min_messages                | notice                                   | Sets the message levels that are logged.
 log_parser_stats                | off                                      | Writes parser performance statistics to the server log.
 log_planner_stats               | off                                      | Writes planner performance statistics to the server log.
 log_rotation_age                | 1d                                       | Automatic log file rotation will occur after N minutes.
 log_rotation_size               | 10MB                                     | Automatic log file rotation will occur after N kilobytes.
 log_statement                   | none                                     | Sets the type of statements logged.
 log_statement_stats             | off                                      | Writes cumulative performance statistics to the server log.
 log_temp_files                  | -1                                       | Log the use of temporary files larger than this number of kilobytes.
 log_timezone                    | Portugal                                 | Sets the time zone to use in log messages.
 log_truncate_on_rotation        | off                                      | Truncate existing log files of same name during log rotation.
 logging_collector               | off                                      | Start a subprocess to capture stderr output and/or csvlogs into log files.
 maintenance_work_mem            | 16MB                                     | Sets the maximum memory to be used for maintenance operations.
 max_connections                 | 100                                      | Sets the maximum number of concurrent connections.
 max_files_per_process           | 1000                                     | Sets the maximum number of simultaneously open files for each server process.
 max_fsm_pages                   | 153600                                   | Sets the maximum number of disk pages for which free space is tracked.
 max_fsm_relations               | 1000                                     | Sets the maximum number of tables and indexes for which free space is tracked.
 max_function_args               | 100                                      | Shows the maximum number of function arguments.
 max_identifier_length           | 63                                       | Shows the maximum identifier length.
 max_index_keys                  | 32                                       | Shows the maximum number of index keys.
 max_locks_per_transaction       | 64                                       | Sets the maximum number of locks per transaction.
 max_prepared_transactions       | 5                                        | Sets the maximum number of simultaneously prepared transactions.
 max_stack_depth                 | 2MB                                      | Sets the maximum stack depth, in kilobytes.
 password_encryption             | on                                       | Encrypt passwords.
 port                            | 5432                                     | Sets the TCP port the server listens on.
 post_auth_delay                 | 0                                        | Waits N seconds on connection startup after authentication.
 pre_auth_delay                  | 0                                        | Waits N seconds on connection startup before authentication.
 random_page_cost                | 4                                        | Sets the planner's estimate of the cost of a nonsequentially fetched disk page.
 regex_flavor                    | advanced                                 | Sets the regular expression "flavor".
 search_path                     | "$user",public                           | Sets the schema search order for names that are not schema-qualified.
 seq_page_cost                   | 1                                        | Sets the planner's estimate of the cost of a sequentially fetched disk page.
 server_encoding                 | SQL_ASCII                                | Sets the server (database) character set encoding.
 server_version                  | 8.3.3                                    | Shows the server version.
 server_version_num              | 80303                                    | Shows the server version as an integer.
 session_replication_role        | origin                                   | Sets the session's behavior for triggers and rewrite rules.
 shared_buffers                  | 24MB                                     | Sets the number of shared memory buffers used by the server.
 shared_preload_libraries        |                                          | Lists shared libraries to preload into server.
 silent_mode                     | off                                      | Runs the server silently.
 sql_inheritance                 | on                                       | Causes subtables to be included by default in various commands.
 ssl                             | on                                       | Enables SSL connections.
 ssl_ciphers                     | ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH        | Sets the list of allowed SSL ciphers.
 standard_conforming_strings     | off                                      | Causes '...' strings to treat backslashes literally.
 statement_timeout               | 0                                        | Sets the maximum allowed duration of any statement.
 superuser_reserved_connections  | 3                                        | Sets the number of connection slots reserved for superusers.
 synchronize_seqscans            | on                                       | Enable synchronized sequential scans.
 synchronous_commit              | on                                       | Sets immediate fsync at commit.
 syslog_facility                 | LOCAL0                                   | Sets the syslog "facility" to be used when syslog enabled.
 syslog_ident                    | postgres                                 | Sets the program name used to identify PostgreSQL messages in syslog.
 tcp_keepalives_count            | 0                                        | Maximum number of TCP keepalive retransmits.
 tcp_keepalives_idle             | 0                                        | Time between issuing TCP keepalives.
 tcp_keepalives_interval         | 0                                        | Time between TCP keepalive retransmits.
 temp_buffers                    | 1024                                     | Sets the maximum number of temporary buffers used by each session.
 temp_tablespaces                |                                          | Sets the tablespace(s) to use for temporary tables and sort files.
 TimeZone                        | Portugal                                 | Sets the time zone for displaying and interpreting time stamps.
 timezone_abbreviations          | Default                                  | Selects a file of time zone abbreviations.
 trace_notify                    | off                                      | Generates debugging output for LISTEN and NOTIFY.
 trace_sort                      | off                                      | Emit information about resource usage in sorting.
 track_activities                | on                                       | Collects information about executing commands.
 track_counts                    | on                                       | Collects statistics on database activity.
 transaction_isolation           | read committed                           | Sets the current transaction's isolation level.
 transaction_read_only           | off                                      | Sets the current transaction's read-only status.
 transform_null_equals           | off                                      | Treats "expr=NULL" as "expr IS NULL".
 unix_socket_directory           | /var/run/postgresql                      | Sets the directory where the Unix-domain socket will be created.
 unix_socket_group               |                                          | Sets the owning group of the Unix-domain socket.
 unix_socket_permissions         | 511                                      | Sets the access permissions of the Unix-domain socket.
 update_process_title            | on                                       | Updates the process title to show the active SQL command.
 vacuum_cost_delay               | 0                                        | Vacuum cost delay in milliseconds.
 vacuum_cost_limit               | 200                                      | Vacuum cost amount available before napping.
 vacuum_cost_page_dirty          | 20                                       | Vacuum cost for a page dirtied by vacuum.
 vacuum_cost_page_hit            | 1                                        | Vacuum cost for a page found in the buffer cache.
 vacuum_cost_page_miss           | 10                                       | Vacuum cost for a page not found in the buffer cache.
 vacuum_freeze_min_age           | 100000000                                | Minimum age at which VACUUM should freeze a table row.
 wal_buffers                     | 64kB                                     | Sets the number of disk-page buffers in shared memory for WAL.
 wal_sync_method                 | fdatasync                                | Selects the method used for forcing WAL updates to disk.
 wal_writer_delay                | 200ms                                    | WAL writer sleep time between WAL flushes.
 work_mem                        | 1MB                                      | Sets the maximum memory to be used for query workspaces.
 xmlbinary                       | base64                                   | Sets how binary values are to be encoded in XML.
 xmloption                       | content                                  | Sets whether XML data in implicit parsing and serialization operations is to be considered as documents or content fragments.
 zero_damaged_pages              | off                                      | Continues processing past damaged page headers.
(189 rows)

-------------- next part --------------
# -----------------------------
# PostgreSQL configuration file
# -----------------------------
#
# This file consists of lines of the form:
#
#   name = value
#
# (The "=" is optional.)  Whitespace may be used.  Comments are introduced with
# "#" anywhere on a line.  The complete list of parameter names and allowed
# values can be found in the PostgreSQL documentation.
#
# The commented-out settings shown in this file represent the default values.
# Re-commenting a setting is NOT sufficient to revert it to the default value;
# you need to reload the server.
#
# This file is read on server startup and when the server receives a SIGHUP
# signal.  If you edit the file on a running system, you have to SIGHUP the
# server for the changes to take effect, or use "pg_ctl reload".  Some
# parameters, which are marked below, require a server shutdown and restart to
# take effect.
#
# Any parameter can also be given as a command-line option to the server, e.g.,
# "postgres -c log_connections=on".  Some paramters can be changed at run time
# with the "SET" SQL command.
#
# Memory units:  kB = kilobytes MB = megabytes GB = gigabytes
# Time units:    ms = milliseconds s = seconds min = minutes h = hours d = days


#------------------------------------------------------------------------------
# FILE LOCATIONS
#------------------------------------------------------------------------------

# The default values of these variables are driven from the -D command-line
# option or PGDATA environment variable, represented here as ConfigDir.

data_directory = '/var/lib/postgresql/8.3/main'		# use data in another directory
					# (change requires restart)
hba_file = '/etc/postgresql/8.3/main/pg_hba.conf'	# host-based authentication file
					# (change requires restart)
ident_file = '/etc/postgresql/8.3/main/pg_ident.conf'	# ident configuration file
					# (change requires restart)

# If external_pid_file is not explicitly set, no extra PID file is written.
external_pid_file = '/var/run/postgresql/8.3-main.pid'		# write an extra PID file
					# (change requires restart)


#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

#listen_addresses = 'localhost'		# what IP address(es) to listen on;
					# comma-separated list of addresses;
					# defaults to 'localhost', '*' = all
					# (change requires restart)
port = 5432				# (change requires restart)
max_connections = 100			# (change requires restart)
# Note:  Increasing max_connections costs ~400 bytes of shared memory per 
# connection slot, plus lock space (see max_locks_per_transaction).  You might
# also need to raise shared_buffers to support more connections.
#superuser_reserved_connections = 3	# (change requires restart)
unix_socket_directory = '/var/run/postgresql'		# (change requires restart)
#unix_socket_group = ''			# (change requires restart)
#unix_socket_permissions = 0777		# begin with 0 to use octal notation
					# (change requires restart)
#bonjour_name = ''			# defaults to the computer name
					# (change requires restart)

# - Security and Authentication -

#authentication_timeout = 1min		# 1s-600s
ssl = true				# (change requires restart)
#ssl_ciphers = 'ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH'	# allowed SSL ciphers
					# (change requires restart)
#password_encryption = on
#db_user_namespace = off

# Kerberos and GSSAPI
#krb_server_keyfile = ''		# (change requires restart)
#krb_srvname = 'postgres'		# (change requires restart, Kerberos only)
#krb_server_hostname = ''		# empty string matches any keytab entry
					# (change requires restart, Kerberos only)
#krb_caseins_users = off		# (change requires restart)
#krb_realm = ''           		# (change requires restart)

# - TCP Keepalives -
# see "man 7 tcp" for details

#tcp_keepalives_idle = 0		# TCP_KEEPIDLE, in seconds;
					# 0 selects the system default
#tcp_keepalives_interval = 0		# TCP_KEEPINTVL, in seconds;
					# 0 selects the system default
#tcp_keepalives_count = 0		# TCP_KEEPCNT;
					# 0 selects the system default


#------------------------------------------------------------------------------
# RESOURCE USAGE (except WAL)
#------------------------------------------------------------------------------

# - Memory -

shared_buffers = 24MB			# min 128kB or max_connections*16kB
					# (change requires restart)
#temp_buffers = 8MB			# min 800kB
#max_prepared_transactions = 5		# can be 0 or more
					# (change requires restart)
# Note:  Increasing max_prepared_transactions costs ~600 bytes of shared memory
# per transaction slot, plus lock space (see max_locks_per_transaction).
#work_mem = 1MB				# min 64kB
#maintenance_work_mem = 16MB		# min 1MB
#max_stack_depth = 2MB			# min 100kB

# - Free Space Map -

max_fsm_pages = 153600			# min max_fsm_relations*16, 6 bytes each
					# (change requires restart)
#max_fsm_relations = 1000		# min 100, ~70 bytes each
					# (change requires restart)

# - Kernel Resource Usage -

#max_files_per_process = 1000		# min 25
					# (change requires restart)
#shared_preload_libraries = ''		# (change requires restart)

# - Cost-Based Vacuum Delay -

#vacuum_cost_delay = 0			# 0-1000 milliseconds
#vacuum_cost_page_hit = 1		# 0-10000 credits
#vacuum_cost_page_miss = 10		# 0-10000 credits
#vacuum_cost_page_dirty = 20		# 0-10000 credits
#vacuum_cost_limit = 200		# 1-10000 credits

# - Background Writer -

#bgwriter_delay = 200ms			# 10-10000ms between rounds
#bgwriter_lru_maxpages = 100		# 0-1000 max buffers written/round
#bgwriter_lru_multiplier = 2.0		# 0-10.0 multipler on buffers scanned/round


#------------------------------------------------------------------------------
# WRITE AHEAD LOG
#------------------------------------------------------------------------------

# - Settings -

#fsync = on				# turns forced synchronization on or off
#synchronous_commit = on		# immediate fsync at commit
#wal_sync_method = fsync		# the default is the first option 
					# supported by the operating system:
					#   open_datasync
					#   fdatasync
					#   fsync
					#   fsync_writethrough
					#   open_sync
#full_page_writes = on			# recover from partial page writes
#wal_buffers = 64kB			# min 32kB
					# (change requires restart)
#wal_writer_delay = 200ms		# 1-10000 milliseconds

#commit_delay = 0			# range 0-100000, in microseconds
#commit_siblings = 5			# range 1-1000

# - Checkpoints -

#checkpoint_segments = 3		# in logfile segments, min 1, 16MB each
#checkpoint_timeout = 5min		# range 30s-1h
#checkpoint_completion_target = 0.5	# checkpoint target duration, 0.0 - 1.0
#checkpoint_warning = 30s		# 0 is off

# - Archiving -

#archive_mode = off		# allows archiving to be done
				# (change requires restart)
#archive_command = ''		# command to use to archive a logfile segment
#archive_timeout = 0		# force a logfile segment switch after this
				# time; 0 is off


#------------------------------------------------------------------------------
# QUERY TUNING
#------------------------------------------------------------------------------

# - Planner Method Configuration -

#enable_bitmapscan = on
#enable_hashagg = on
#enable_hashjoin = on
#enable_indexscan = on
#enable_mergejoin = on
#enable_nestloop = on
#enable_seqscan = on
#enable_sort = on
#enable_tidscan = on

# - Planner Cost Constants -

#seq_page_cost = 1.0			# measured on an arbitrary scale
#random_page_cost = 4.0			# same scale as above
#cpu_tuple_cost = 0.01			# same scale as above
#cpu_index_tuple_cost = 0.005		# same scale as above
#cpu_operator_cost = 0.0025		# same scale as above
#effective_cache_size = 128MB

# - Genetic Query Optimizer -

#geqo = on
#geqo_threshold = 12
#geqo_effort = 5			# range 1-10
#geqo_pool_size = 0			# selects default based on effort
#geqo_generations = 0			# selects default based on effort
#geqo_selection_bias = 2.0		# range 1.5-2.0

# - Other Planner Options -

#default_statistics_target = 10		# range 1-1000
#constraint_exclusion = off
#from_collapse_limit = 8
#join_collapse_limit = 8		# 1 disables collapsing of explicit 
					# JOIN clauses


#------------------------------------------------------------------------------
# ERROR REPORTING AND LOGGING
#------------------------------------------------------------------------------

# - Where to Log -

#log_destination = 'stderr'		# Valid values are combinations of
					# stderr, csvlog, syslog and eventlog,
					# depending on platform.  csvlog
					# requires logging_collector to be on.

# This is used when logging to stderr:
#logging_collector = off		# Enable capturing of stderr and csvlog
					# into log files. Required to be on for
					# csvlogs.
					# (change requires restart)

# These are only used if logging_collector is on:
#log_directory = 'pg_log'		# directory where log files are written,
					# can be absolute or relative to PGDATA
#log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'	# log file name pattern,
					# can include strftime() escapes
#log_truncate_on_rotation = off		# If on, an existing log file of the
					# same name as the new log file will be
					# truncated rather than appended to.
					# But such truncation only occurs on
					# time-driven rotation, not on restarts
					# or size-driven rotation.  Default is
					# off, meaning append to existing files
					# in all cases.
#log_rotation_age = 1d			# Automatic rotation of logfiles will
					# happen after that time.  0 to disable.
#log_rotation_size = 10MB		# Automatic rotation of logfiles will 
					# happen after that much log output.
					# 0 to disable.

# These are relevant when logging to syslog:
#syslog_facility = 'LOCAL0'
#syslog_ident = 'postgres'


# - When to Log -

#client_min_messages = notice		# values in order of decreasing detail:
					#   debug5
					#   debug4
					#   debug3
					#   debug2
					#   debug1
					#   log
					#   notice
					#   warning
					#   error

#log_min_messages = notice		# values in order of decreasing detail:
					#   debug5
					#   debug4
					#   debug3
					#   debug2
					#   debug1
					#   info
					#   notice
					#   warning
					#   error
					#   log
					#   fatal
					#   panic

#log_error_verbosity = default		# terse, default, or verbose messages

#log_min_error_statement = error	# values in order of decreasing detail:
				 	#   debug5
					#   debug4
					#   debug3
					#   debug2
					#   debug1
				 	#   info
					#   notice
					#   warning
					#   error
					#   log
					#   fatal
					#   panic (effectively off)

#log_min_duration_statement = -1	# -1 is disabled, 0 logs all statements
					# and their durations, > 0 logs only
					# statements running at least this time.

#silent_mode = off			# DO NOT USE without syslog or
					# logging_collector
					# (change requires restart)

# - What to Log -

#debug_print_parse = off
#debug_print_rewritten = off
#debug_print_plan = off
#debug_pretty_print = off
#log_checkpoints = off
#log_connections = off
#log_disconnections = off
#log_duration = off
#log_hostname = off
log_line_prefix = '%t '			# special values:
					#   %u = user name
					#   %d = database name
					#   %r = remote host and port
					#   %h = remote host
					#   %p = process ID
					#   %t = timestamp without milliseconds
					#   %m = timestamp with milliseconds
					#   %i = command tag
					#   %c = session ID
					#   %l = session line number
					#   %s = session start timestamp
					#   %v = virtual transaction ID
					#   %x = transaction ID (0 if none)
					#   %q = stop here in non-session
					#        processes
					#   %% = '%'
					# e.g. '<%u%%%d> '
#log_lock_waits = off			# log lock waits >= deadlock_timeout
#log_statement = 'none'			# none, ddl, mod, all
#log_temp_files = -1			# log temporary files equal or larger
					# than specified size;
					# -1 disables, 0 logs all temp files
#log_timezone = unknown			# actually, defaults to TZ environment
					# setting


#------------------------------------------------------------------------------
# RUNTIME STATISTICS
#------------------------------------------------------------------------------

# - Query/Index Statistics Collector -

#track_activities = on
track_counts = on
#update_process_title = on


# - Statistics Monitoring -

#log_parser_stats = off
#log_planner_stats = off
#log_executor_stats = off
#log_statement_stats = off


#------------------------------------------------------------------------------
# AUTOVACUUM PARAMETERS
#------------------------------------------------------------------------------

autovacuum = on			# Enable autovacuum subprocess?  'on' 
					# requires track_counts to also be on.
#log_autovacuum_min_duration = -1	# -1 disables, 0 logs all actions and
					# their durations, > 0 logs only
					# actions running at least that time.
#autovacuum_max_workers = 3		# max number of autovacuum subprocesses
#autovacuum_naptime = 1min		# time between autovacuum runs
#autovacuum_vacuum_threshold = 50	# min number of row updates before
					# vacuum
#autovacuum_analyze_threshold = 50	# min number of row updates before 
					# analyze
#autovacuum_vacuum_scale_factor = 0.2	# fraction of table size before vacuum
#autovacuum_analyze_scale_factor = 0.1	# fraction of table size before analyze
#autovacuum_freeze_max_age = 200000000	# maximum XID age before forced vacuum
					# (change requires restart)
#autovacuum_vacuum_cost_delay = 20	# default vacuum cost delay for
					# autovacuum, -1 means use
					# vacuum_cost_delay
#autovacuum_vacuum_cost_limit = -1	# default vacuum cost limit for
					# autovacuum, -1 means use
					# vacuum_cost_limit


#------------------------------------------------------------------------------
# CLIENT CONNECTION DEFAULTS
#------------------------------------------------------------------------------

# - Statement Behavior -

#search_path = '"$user",public'		# schema names
#default_tablespace = ''		# a tablespace name, '' uses the default
#temp_tablespaces = ''			# a list of tablespace names, '' uses
					# only default tablespace
#check_function_bodies = on
#default_transaction_isolation = 'read committed'
#default_transaction_read_only = off
#session_replication_role = 'origin'
#statement_timeout = 0			# 0 is disabled
#vacuum_freeze_min_age = 100000000
#xmlbinary = 'base64'
#xmloption = 'content'

# - Locale and Formatting -

datestyle = 'iso, mdy'
#timezone = unknown			# actually, defaults to TZ environment
					# setting
#timezone_abbreviations = 'Default'     # Select the set of available time zone
					# abbreviations.  Currently, there are
					#   Default
					#   Australia
					#   India
					# You can create your own file in
					# share/timezonesets/.
#extra_float_digits = 0			# min -15, max 2
#client_encoding = sql_ascii		# actually, defaults to database
					# encoding

# These settings are initialized by initdb, but they can be changed.
lc_messages = 'C'			# locale for system error message
					# strings
lc_monetary = 'C'			# locale for monetary formatting
lc_numeric = 'C'			# locale for number formatting
lc_time = 'C'				# locale for time formatting

# default configuration for text search
default_text_search_config = 'pg_catalog.english'

# - Other Defaults -

#explain_pretty_print = on
#dynamic_library_path = '$libdir'
#local_preload_libraries = ''


#------------------------------------------------------------------------------
# LOCK MANAGEMENT
#------------------------------------------------------------------------------

#deadlock_timeout = 1s
#max_locks_per_transaction = 64		# min 10
					# (change requires restart)
# Note:  Each lock table slot uses ~270 bytes of shared memory, and there are
# max_locks_per_transaction * (max_connections + max_prepared_transactions)
# lock table slots.


#------------------------------------------------------------------------------
# VERSION/PLATFORM COMPATIBILITY
#------------------------------------------------------------------------------

# - Previous PostgreSQL Versions -

#add_missing_from = off
#array_nulls = on
#backslash_quote = safe_encoding	# on, off, or safe_encoding
#default_with_oids = off
#escape_string_warning = on
#regex_flavor = advanced		# advanced, extended, or basic
#sql_inheritance = on
#standard_conforming_strings = off
#synchronize_seqscans = on

# - Other Platforms and Clients -

#transform_null_equals = off


#------------------------------------------------------------------------------
# CUSTOMIZED OPTIONS
#------------------------------------------------------------------------------

#custom_variable_classes = ''		# list of custom variable class names