]> begriffs open source - ai-pg/blob - full-docs/txt/runtime-config-client.txt
Convert HTML docs to more streamlined TXT
[ai-pg] / full-docs / txt / runtime-config-client.txt
1
2 19.11. Client Connection Defaults #
3
4    19.11.1. Statement Behavior
5    19.11.2. Locale and Formatting
6    19.11.3. Shared Library Preloading
7    19.11.4. Other Defaults
8
9 19.11.1. Statement Behavior #
10
11    client_min_messages (enum) #
12           Controls which message levels are sent to the client. Valid
13           values are DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, LOG, NOTICE,
14           WARNING, and ERROR. Each level includes all the levels that
15           follow it. The later the level, the fewer messages are sent. The
16           default is NOTICE. Note that LOG has a different rank here than
17           in log_min_messages.
18
19           INFO level messages are always sent to the client.
20
21    search_path (string) #
22           This variable specifies the order in which schemas are searched
23           when an object (table, data type, function, etc.) is referenced
24           by a simple name with no schema specified. When there are
25           objects of identical names in different schemas, the one found
26           first in the search path is used. An object that is not in any
27           of the schemas in the search path can only be referenced by
28           specifying its containing schema with a qualified (dotted) name.
29
30           The value for search_path must be a comma-separated list of
31           schema names. Any name that is not an existing schema, or is a
32           schema for which the user does not have USAGE permission, is
33           silently ignored.
34
35           If one of the list items is the special name $user, then the
36           schema having the name returned by CURRENT_USER is substituted,
37           if there is such a schema and the user has USAGE permission for
38           it. (If not, $user is ignored.)
39
40           The system catalog schema, pg_catalog, is always searched,
41           whether it is mentioned in the path or not. If it is mentioned
42           in the path then it will be searched in the specified order. If
43           pg_catalog is not in the path then it will be searched before
44           searching any of the path items.
45
46           Likewise, the current session's temporary-table schema,
47           pg_temp_nnn, is always searched if it exists. It can be
48           explicitly listed in the path by using the alias pg_temp. If it
49           is not listed in the path then it is searched first (even before
50           pg_catalog). However, the temporary schema is only searched for
51           relation (table, view, sequence, etc.) and data type names. It
52           is never searched for function or operator names.
53
54           When objects are created without specifying a particular target
55           schema, they will be placed in the first valid schema named in
56           search_path. An error is reported if the search path is empty.
57
58           The default value for this parameter is "$user", public. This
59           setting supports shared use of a database (where no users have
60           private schemas, and all share use of public), private per-user
61           schemas, and combinations of these. Other effects can be
62           obtained by altering the default search path setting, either
63           globally or per-user.
64
65           For more information on schema handling, see Section 5.10. In
66           particular, the default configuration is suitable only when the
67           database has a single user or a few mutually-trusting users.
68
69           The current effective value of the search path can be examined
70           via the SQL function current_schemas (see Section 9.27). This is
71           not quite the same as examining the value of search_path, since
72           current_schemas shows how the items appearing in search_path
73           were resolved.
74
75    row_security (boolean) #
76           This variable controls whether to raise an error in lieu of
77           applying a row security policy. When set to on, policies apply
78           normally. When set to off, queries fail which would otherwise
79           apply at least one policy. The default is on. Change to off
80           where limited row visibility could cause incorrect results; for
81           example, pg_dump makes that change by default. This variable has
82           no effect on roles which bypass every row security policy, to
83           wit, superusers and roles with the BYPASSRLS attribute.
84
85           For more information on row security policies, see CREATE
86           POLICY.
87
88    default_table_access_method (string) #
89           This parameter specifies the default table access method to use
90           when creating tables or materialized views if the CREATE command
91           does not explicitly specify an access method, or when SELECT ...
92           INTO is used, which does not allow specifying a table access
93           method. The default is heap.
94
95    default_tablespace (string) #
96           This variable specifies the default tablespace in which to
97           create objects (tables and indexes) when a CREATE command does
98           not explicitly specify a tablespace.
99
100           The value is either the name of a tablespace, or an empty string
101           to specify using the default tablespace of the current database.
102           If the value does not match the name of any existing tablespace,
103           PostgreSQL will automatically use the default tablespace of the
104           current database. If a nondefault tablespace is specified, the
105           user must have CREATE privilege for it, or creation attempts
106           will fail.
107
108           This variable is not used for temporary tables; for them,
109           temp_tablespaces is consulted instead.
110
111           This variable is also not used when creating databases. By
112           default, a new database inherits its tablespace setting from the
113           template database it is copied from.
114
115           If this parameter is set to a value other than the empty string
116           when a partitioned table is created, the partitioned table's
117           tablespace will be set to that value, which will be used as the
118           default tablespace for partitions created in the future, even if
119           default_tablespace has changed since then.
120
121           For more information on tablespaces, see Section 22.6.
122
123    default_toast_compression (enum) #
124           This variable sets the default TOAST compression method for
125           values of compressible columns. (This can be overridden for
126           individual columns by setting the COMPRESSION column option in
127           CREATE TABLE or ALTER TABLE.) The supported compression methods
128           are pglz and (if PostgreSQL was compiled with --with-lz4) lz4.
129           The default is pglz.
130
131    temp_tablespaces (string) #
132           This variable specifies tablespaces in which to create temporary
133           objects (temp tables and indexes on temp tables) when a CREATE
134           command does not explicitly specify a tablespace. Temporary
135           files for purposes such as sorting large data sets are also
136           created in these tablespaces.
137
138           The value is a list of names of tablespaces. When there is more
139           than one name in the list, PostgreSQL chooses a random member of
140           the list each time a temporary object is to be created; except
141           that within a transaction, successively created temporary
142           objects are placed in successive tablespaces from the list. If
143           the selected element of the list is an empty string, PostgreSQL
144           will automatically use the default tablespace of the current
145           database instead.
146
147           When temp_tablespaces is set interactively, specifying a
148           nonexistent tablespace is an error, as is specifying a
149           tablespace for which the user does not have CREATE privilege.
150           However, when using a previously set value, nonexistent
151           tablespaces are ignored, as are tablespaces for which the user
152           lacks CREATE privilege. In particular, this rule applies when
153           using a value set in postgresql.conf.
154
155           The default value is an empty string, which results in all
156           temporary objects being created in the default tablespace of the
157           current database.
158
159           See also default_tablespace.
160
161    check_function_bodies (boolean) #
162           This parameter is normally on. When set to off, it disables
163           validation of the routine body string during CREATE FUNCTION and
164           CREATE PROCEDURE. Disabling validation avoids side effects of
165           the validation process, in particular preventing false positives
166           due to problems such as forward references. Set this parameter
167           to off before loading functions on behalf of other users;
168           pg_dump does so automatically.
169
170    default_transaction_isolation (enum) #
171           Each SQL transaction has an isolation level, which can be either
172           “read uncommitted”, “read committed”, “repeatable read”, or
173           “serializable”. This parameter controls the default isolation
174           level of each new transaction. The default is “read committed”.
175
176           Consult Chapter 13 and SET TRANSACTION for more information.
177
178    default_transaction_read_only (boolean) #
179           A read-only SQL transaction cannot alter non-temporary tables.
180           This parameter controls the default read-only status of each new
181           transaction. The default is off (read/write).
182
183           Consult SET TRANSACTION for more information.
184
185    default_transaction_deferrable (boolean) #
186           When running at the serializable isolation level, a deferrable
187           read-only SQL transaction may be delayed before it is allowed to
188           proceed. However, once it begins executing it does not incur any
189           of the overhead required to ensure serializability; so
190           serialization code will have no reason to force it to abort
191           because of concurrent updates, making this option suitable for
192           long-running read-only transactions.
193
194           This parameter controls the default deferrable status of each
195           new transaction. It currently has no effect on read-write
196           transactions or those operating at isolation levels lower than
197           serializable. The default is off.
198
199           Consult SET TRANSACTION for more information.
200
201    transaction_isolation (enum) #
202           This parameter reflects the current transaction's isolation
203           level. At the beginning of each transaction, it is set to the
204           current value of default_transaction_isolation. Any subsequent
205           attempt to change it is equivalent to a SET TRANSACTION command.
206
207    transaction_read_only (boolean) #
208           This parameter reflects the current transaction's read-only
209           status. At the beginning of each transaction, it is set to the
210           current value of default_transaction_read_only. Any subsequent
211           attempt to change it is equivalent to a SET TRANSACTION command.
212
213    transaction_deferrable (boolean) #
214           This parameter reflects the current transaction's deferrability
215           status. At the beginning of each transaction, it is set to the
216           current value of default_transaction_deferrable. Any subsequent
217           attempt to change it is equivalent to a SET TRANSACTION command.
218
219    session_replication_role (enum) #
220           Controls firing of replication-related triggers and rules for
221           the current session. Possible values are origin (the default),
222           replica and local. Setting this parameter results in discarding
223           any previously cached query plans. Only superusers and users
224           with the appropriate SET privilege can change this setting.
225
226           The intended use of this setting is that logical replication
227           systems set it to replica when they are applying replicated
228           changes. The effect of that will be that triggers and rules
229           (that have not been altered from their default configuration)
230           will not fire on the replica. See the ALTER TABLE clauses ENABLE
231           TRIGGER and ENABLE RULE for more information.
232
233           PostgreSQL treats the settings origin and local the same
234           internally. Third-party replication systems may use these two
235           values for their internal purposes, for example using local to
236           designate a session whose changes should not be replicated.
237
238           Since foreign keys are implemented as triggers, setting this
239           parameter to replica also disables all foreign key checks, which
240           can leave data in an inconsistent state if improperly used.
241
242    statement_timeout (integer) #
243           Abort any statement that takes more than the specified amount of
244           time. If log_min_error_statement is set to ERROR or lower, the
245           statement that timed out will also be logged. If this value is
246           specified without units, it is taken as milliseconds. A value of
247           zero (the default) disables the timeout.
248
249           The timeout is measured from the time a command arrives at the
250           server until it is completed by the server. If multiple SQL
251           statements appear in a single simple-query message, the timeout
252           is applied to each statement separately. (PostgreSQL versions
253           before 13 usually treated the timeout as applying to the whole
254           query string.) In extended query protocol, the timeout starts
255           running when any query-related message (Parse, Bind, Execute,
256           Describe) arrives, and it is canceled by completion of an
257           Execute or Sync message.
258
259           Setting statement_timeout in postgresql.conf is not recommended
260           because it would affect all sessions.
261
262    transaction_timeout (integer) #
263           Terminate any session that spans longer than the specified
264           amount of time in a transaction. The limit applies both to
265           explicit transactions (started with BEGIN) and to an implicitly
266           started transaction corresponding to a single statement. If this
267           value is specified without units, it is taken as milliseconds. A
268           value of zero (the default) disables the timeout.
269
270           If transaction_timeout is shorter or equal to
271           idle_in_transaction_session_timeout or statement_timeout then
272           the longer timeout is ignored.
273
274           Setting transaction_timeout in postgresql.conf is not
275           recommended because it would affect all sessions.
276
277 Note
278
279           Prepared transactions are not subject to this timeout.
280
281    lock_timeout (integer) #
282           Abort any statement that waits longer than the specified amount
283           of time while attempting to acquire a lock on a table, index,
284           row, or other database object. The time limit applies separately
285           to each lock acquisition attempt. The limit applies both to
286           explicit locking requests (such as LOCK TABLE, or SELECT FOR
287           UPDATE without NOWAIT) and to implicitly-acquired locks. If this
288           value is specified without units, it is taken as milliseconds. A
289           value of zero (the default) disables the timeout.
290
291           Unlike statement_timeout, this timeout can only occur while
292           waiting for locks. Note that if statement_timeout is nonzero, it
293           is rather pointless to set lock_timeout to the same or larger
294           value, since the statement timeout would always trigger first.
295           If log_min_error_statement is set to ERROR or lower, the
296           statement that timed out will be logged.
297
298           Setting lock_timeout in postgresql.conf is not recommended
299           because it would affect all sessions.
300
301    idle_in_transaction_session_timeout (integer) #
302           Terminate any session that has been idle (that is, waiting for a
303           client query) within an open transaction for longer than the
304           specified amount of time. If this value is specified without
305           units, it is taken as milliseconds. A value of zero (the
306           default) disables the timeout.
307
308           This option can be used to ensure that idle sessions do not hold
309           locks for an unreasonable amount of time. Even when no
310           significant locks are held, an open transaction prevents
311           vacuuming away recently-dead tuples that may be visible only to
312           this transaction; so remaining idle for a long time can
313           contribute to table bloat. See Section 24.1 for more details.
314
315    idle_session_timeout (integer) #
316           Terminate any session that has been idle (that is, waiting for a
317           client query), but not within an open transaction, for longer
318           than the specified amount of time. If this value is specified
319           without units, it is taken as milliseconds. A value of zero (the
320           default) disables the timeout.
321
322           Unlike the case with an open transaction, an idle session
323           without a transaction imposes no large costs on the server, so
324           there is less need to enable this timeout than
325           idle_in_transaction_session_timeout.
326
327           Be wary of enforcing this timeout on connections made through
328           connection-pooling software or other middleware, as such a layer
329           may not react well to unexpected connection closure. It may be
330           helpful to enable this timeout only for interactive sessions,
331           perhaps by applying it only to particular users.
332
333    bytea_output (enum) #
334           Sets the output format for values of type bytea. Valid values
335           are hex (the default) and escape (the traditional PostgreSQL
336           format). See Section 8.4 for more information. The bytea type
337           always accepts both formats on input, regardless of this
338           setting.
339
340    xmlbinary (enum) #
341           Sets how binary values are to be encoded in XML. This applies
342           for example when bytea values are converted to XML by the
343           functions xmlelement or xmlforest. Possible values are base64
344           and hex, which are both defined in the XML Schema standard. The
345           default is base64. For further information about XML-related
346           functions, see Section 9.15.
347
348           The actual choice here is mostly a matter of taste, constrained
349           only by possible restrictions in client applications. Both
350           methods support all possible values, although the hex encoding
351           will be somewhat larger than the base64 encoding.
352
353    xmloption (enum) #
354           Sets whether DOCUMENT or CONTENT is implicit when converting
355           between XML and character string values. See Section 8.13 for a
356           description of this. Valid values are DOCUMENT and CONTENT. The
357           default is CONTENT.
358
359           According to the SQL standard, the command to set this option is
360
361 SET XML OPTION { DOCUMENT | CONTENT };
362
363           This syntax is also available in PostgreSQL.
364
365    gin_pending_list_limit (integer) #
366           Sets the maximum size of a GIN index's pending list, which is
367           used when fastupdate is enabled. If the list grows larger than
368           this maximum size, it is cleaned up by moving the entries in it
369           to the index's main GIN data structure in bulk. If this value is
370           specified without units, it is taken as kilobytes. The default
371           is four megabytes (4MB). This setting can be overridden for
372           individual GIN indexes by changing index storage parameters. See
373           Section 65.4.4.1 and Section 65.4.5 for more information.
374
375    createrole_self_grant (string) #
376           If a user who has CREATEROLE but not SUPERUSER creates a role,
377           and if this is set to a non-empty value, the newly-created role
378           will be granted to the creating user with the options specified.
379           The value must be set, inherit, or a comma-separated list of
380           these. The default value is an empty string, which disables the
381           feature.
382
383           The purpose of this option is to allow a CREATEROLE user who is
384           not a superuser to automatically inherit, or automatically gain
385           the ability to SET ROLE to, any created users. Since a
386           CREATEROLE user is always implicitly granted ADMIN OPTION on
387           created roles, that user could always execute a GRANT statement
388           that would achieve the same effect as this setting. However, it
389           can be convenient for usability reasons if the grant happens
390           automatically. A superuser automatically inherits the privileges
391           of every role and can always SET ROLE to any role, and this
392           setting can be used to produce a similar behavior for CREATEROLE
393           users for users which they create.
394
395    event_triggers (boolean) #
396           Allow temporarily disabling execution of event triggers in order
397           to troubleshoot and repair faulty event triggers. All event
398           triggers will be disabled by setting it to false. Setting the
399           value to true allows all event triggers to fire, this is the
400           default value. Only superusers and users with the appropriate
401           SET privilege can change this setting.
402
403    restrict_nonsystem_relation_kind (string) #
404           Set relation kinds for which access to non-system relations is
405           prohibited. The value takes the form of a comma-separated list
406           of relation kinds. Currently, the supported relation kinds are
407           view and foreign-table.
408
409 19.11.2. Locale and Formatting #
410
411    DateStyle (string) #
412           Sets the display format for date and time values, as well as the
413           rules for interpreting ambiguous date input values. For
414           historical reasons, this variable contains two independent
415           components: the output format specification (ISO, Postgres, SQL,
416           or German) and the input/output specification for year/month/day
417           ordering (DMY, MDY, or YMD). These can be set separately or
418           together. The keywords Euro and European are synonyms for DMY;
419           the keywords US, NonEuro, and NonEuropean are synonyms for MDY.
420           See Section 8.5 for more information. The built-in default is
421           ISO, MDY, but initdb will initialize the configuration file with
422           a setting that corresponds to the behavior of the chosen lc_time
423           locale.
424
425    IntervalStyle (enum) #
426           Sets the display format for interval values. The value
427           sql_standard will produce output matching SQL standard interval
428           literals. The value postgres (which is the default) will produce
429           output matching PostgreSQL releases prior to 8.4 when the
430           DateStyle parameter was set to ISO. The value postgres_verbose
431           will produce output matching PostgreSQL releases prior to 8.4
432           when the DateStyle parameter was set to non-ISO output. The
433           value iso_8601 will produce output matching the time interval
434           “format with designators” defined in section 4.4.3.2 of ISO
435           8601.
436
437           The IntervalStyle parameter also affects the interpretation of
438           ambiguous interval input. See Section 8.5.4 for more
439           information.
440
441    TimeZone (string) #
442           Sets the time zone for displaying and interpreting time stamps.
443           The built-in default is GMT, but that is typically overridden in
444           postgresql.conf; initdb will install a setting there
445           corresponding to its system environment. See Section 8.5.3 for
446           more information.
447
448    timezone_abbreviations (string) #
449           Sets the collection of additional time zone abbreviations that
450           will be accepted by the server for datetime input (beyond any
451           abbreviations defined by the current TimeZone setting). The
452           default is 'Default', which is a collection that works in most
453           of the world; there are also 'Australia' and 'India', and other
454           collections can be defined for a particular installation. See
455           Section B.4 for more information.
456
457    extra_float_digits (integer) #
458           This parameter adjusts the number of digits used for textual
459           output of floating-point values, including float4, float8, and
460           geometric data types.
461
462           If the value is 1 (the default) or above, float values are
463           output in shortest-precise format; see Section 8.1.3. The actual
464           number of digits generated depends only on the value being
465           output, not on the value of this parameter. At most 17 digits
466           are required for float8 values, and 9 for float4 values. This
467           format is both fast and precise, preserving the original binary
468           float value exactly when correctly read. For historical
469           compatibility, values up to 3 are permitted.
470
471           If the value is zero or negative, then the output is rounded to
472           a given decimal precision. The precision used is the standard
473           number of digits for the type (FLT_DIG or DBL_DIG as
474           appropriate) reduced according to the value of this parameter.
475           (For example, specifying -1 will cause float4 values to be
476           output rounded to 5 significant digits, and float8 values
477           rounded to 14 digits.) This format is slower and does not
478           preserve all the bits of the binary float value, but may be more
479           human-readable.
480
481 Note
482
483           The meaning of this parameter, and its default value, changed in
484           PostgreSQL 12; see Section 8.1.3 for further discussion.
485
486    client_encoding (string) #
487           Sets the client-side encoding (character set). The default is to
488           use the database encoding. The character sets supported by the
489           PostgreSQL server are described in Section 23.3.1.
490
491    lc_messages (string) #
492           Sets the language in which messages are displayed. Acceptable
493           values are system-dependent; see Section 23.1 for more
494           information. If this variable is set to the empty string (which
495           is the default) then the value is inherited from the execution
496           environment of the server in a system-dependent way.
497
498           On some systems, this locale category does not exist. Setting
499           this variable will still work, but there will be no effect.
500           Also, there is a chance that no translated messages for the
501           desired language exist. In that case you will continue to see
502           the English messages.
503
504           Only superusers and users with the appropriate SET privilege can
505           change this setting.
506
507    lc_monetary (string) #
508           Sets the locale to use for formatting monetary amounts, for
509           example with the to_char family of functions. Acceptable values
510           are system-dependent; see Section 23.1 for more information. If
511           this variable is set to the empty string (which is the default)
512           then the value is inherited from the execution environment of
513           the server in a system-dependent way.
514
515    lc_numeric (string) #
516           Sets the locale to use for formatting numbers, for example with
517           the to_char family of functions. Acceptable values are
518           system-dependent; see Section 23.1 for more information. If this
519           variable is set to the empty string (which is the default) then
520           the value is inherited from the execution environment of the
521           server in a system-dependent way.
522
523    lc_time (string) #
524           Sets the locale to use for formatting dates and times, for
525           example with the to_char family of functions. Acceptable values
526           are system-dependent; see Section 23.1 for more information. If
527           this variable is set to the empty string (which is the default)
528           then the value is inherited from the execution environment of
529           the server in a system-dependent way.
530
531    icu_validation_level (enum) #
532           When ICU locale validation problems are encountered, controls
533           which message level is used to report the problem. Valid values
534           are DISABLED, DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, INFO,
535           NOTICE, WARNING, ERROR, and LOG.
536
537           If set to DISABLED, does not report validation problems at all.
538           Otherwise reports problems at the given message level. The
539           default is WARNING.
540
541    default_text_search_config (string) #
542           Selects the text search configuration that is used by those
543           variants of the text search functions that do not have an
544           explicit argument specifying the configuration. See Chapter 12
545           for further information. The built-in default is
546           pg_catalog.simple, but initdb will initialize the configuration
547           file with a setting that corresponds to the chosen lc_ctype
548           locale, if a configuration matching that locale can be
549           identified.
550
551 19.11.3. Shared Library Preloading #
552
553    Several settings are available for preloading shared libraries into the
554    server, in order to load additional functionality or achieve
555    performance benefits. For example, a setting of '$libdir/mylib' would
556    cause mylib.so (or on some platforms, mylib.sl) to be preloaded from
557    the installation's standard library directory. The differences between
558    the settings are when they take effect and what privileges are required
559    to change them.
560
561    PostgreSQL procedural language libraries can be preloaded in this way,
562    typically by using the syntax '$libdir/plXXX' where XXX is pgsql, perl,
563    tcl, or python.
564
565    Only shared libraries specifically intended to be used with PostgreSQL
566    can be loaded this way. Every PostgreSQL-supported library has a “magic
567    block” that is checked to guarantee compatibility. For this reason,
568    non-PostgreSQL libraries cannot be loaded in this way. You might be
569    able to use operating-system facilities such as LD_PRELOAD for that.
570
571    In general, refer to the documentation of a specific module for the
572    recommended way to load that module.
573
574    local_preload_libraries (string) #
575           This variable specifies one or more shared libraries that are to
576           be preloaded at connection start. It contains a comma-separated
577           list of library names, where each name is interpreted as for the
578           LOAD command. Whitespace between entries is ignored; surround a
579           library name with double quotes if you need to include
580           whitespace or commas in the name. The parameter value only takes
581           effect at the start of the connection. Subsequent changes have
582           no effect. If a specified library is not found, the connection
583           attempt will fail.
584
585           This option can be set by any user. Because of that, the
586           libraries that can be loaded are restricted to those appearing
587           in the plugins subdirectory of the installation's standard
588           library directory. (It is the database administrator's
589           responsibility to ensure that only “safe” libraries are
590           installed there.) Entries in local_preload_libraries can specify
591           this directory explicitly, for example $libdir/plugins/mylib, or
592           just specify the library name — mylib would have the same effect
593           as $libdir/plugins/mylib.
594
595           The intent of this feature is to allow unprivileged users to
596           load debugging or performance-measurement libraries into
597           specific sessions without requiring an explicit LOAD command. To
598           that end, it would be typical to set this parameter using the
599           PGOPTIONS environment variable on the client or by using ALTER
600           ROLE SET.
601
602           However, unless a module is specifically designed to be used in
603           this way by non-superusers, this is usually not the right
604           setting to use. Look at session_preload_libraries instead.
605
606    session_preload_libraries (string) #
607           This variable specifies one or more shared libraries that are to
608           be preloaded at connection start. It contains a comma-separated
609           list of library names, where each name is interpreted as for the
610           LOAD command. Whitespace between entries is ignored; surround a
611           library name with double quotes if you need to include
612           whitespace or commas in the name. The parameter value only takes
613           effect at the start of the connection. Subsequent changes have
614           no effect. If a specified library is not found, the connection
615           attempt will fail. Only superusers and users with the
616           appropriate SET privilege can change this setting.
617
618           The intent of this feature is to allow debugging or
619           performance-measurement libraries to be loaded into specific
620           sessions without an explicit LOAD command being given. For
621           example, auto_explain could be enabled for all sessions under a
622           given user name by setting this parameter with ALTER ROLE SET.
623           Also, this parameter can be changed without restarting the
624           server (but changes only take effect when a new session is
625           started), so it is easier to add new modules this way, even if
626           they should apply to all sessions.
627
628           Unlike shared_preload_libraries, there is no large performance
629           advantage to loading a library at session start rather than when
630           it is first used. There is some advantage, however, when
631           connection pooling is used.
632
633    shared_preload_libraries (string) #
634           This variable specifies one or more shared libraries to be
635           preloaded at server start. It contains a comma-separated list of
636           library names, where each name is interpreted as for the LOAD
637           command. Whitespace between entries is ignored; surround a
638           library name with double quotes if you need to include
639           whitespace or commas in the name. This parameter can only be set
640           at server start. If a specified library is not found, the server
641           will fail to start.
642
643           Some libraries need to perform certain operations that can only
644           take place at postmaster start, such as allocating shared
645           memory, reserving light-weight locks, or starting background
646           workers. Those libraries must be loaded at server start through
647           this parameter. See the documentation of each library for
648           details.
649
650           Other libraries can also be preloaded. By preloading a shared
651           library, the library startup time is avoided when the library is
652           first used. However, the time to start each new server process
653           might increase slightly, even if that process never uses the
654           library. So this parameter is recommended only for libraries
655           that will be used in most sessions. Also, changing this
656           parameter requires a server restart, so this is not the right
657           setting to use for short-term debugging tasks, say. Use
658           session_preload_libraries for that instead.
659
660 Note
661
662           On Windows hosts, preloading a library at server start will not
663           reduce the time required to start each new server process; each
664           server process will re-load all preload libraries. However,
665           shared_preload_libraries is still useful on Windows hosts for
666           libraries that need to perform operations at postmaster start
667           time.
668
669    jit_provider (string) #
670           This variable is the name of the JIT provider library to be used
671           (see Section 30.4.2). The default is llvmjit. This parameter can
672           only be set at server start.
673
674           If set to a non-existent library, JIT will not be available, but
675           no error will be raised. This allows JIT support to be installed
676           separately from the main PostgreSQL package.
677
678 19.11.4. Other Defaults #
679
680    dynamic_library_path (string) #
681           If a dynamically loadable module needs to be opened and the file
682           name specified in the CREATE FUNCTION or LOAD command does not
683           have a directory component (i.e., the name does not contain a
684           slash), the system will search this path for the required file.
685
686           The value for dynamic_library_path must be a list of absolute
687           directory paths separated by colons (or semi-colons on Windows).
688           If a list element starts with the special string $libdir, the
689           compiled-in PostgreSQL package library directory is substituted
690           for $libdir; this is where the modules provided by the standard
691           PostgreSQL distribution are installed. (Use pg_config
692           --pkglibdir to find out the name of this directory.) For
693           example:
694
695 dynamic_library_path = '/usr/local/lib/postgresql:/home/my_project/lib:$libdir'
696
697           or, in a Windows environment:
698
699 dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir'
700
701           The default value for this parameter is '$libdir'. If the value
702           is set to an empty string, the automatic path search is turned
703           off.
704
705           This parameter can be changed at run time by superusers and
706           users with the appropriate SET privilege, but a setting done
707           that way will only persist until the end of the client
708           connection, so this method should be reserved for development
709           purposes. The recommended way to set this parameter is in the
710           postgresql.conf configuration file.
711
712    extension_control_path (string) #
713           A path to search for extensions, specifically extension control
714           files (name.control). The remaining extension script and
715           secondary control files are then loaded from the same directory
716           where the primary control file was found. See Section 36.17.1
717           for details.
718
719           The value for extension_control_path must be a list of absolute
720           directory paths separated by colons (or semi-colons on Windows).
721           If a list element starts with the special string $system, the
722           compiled-in PostgreSQL extension directory is substituted for
723           $system; this is where the extensions provided by the standard
724           PostgreSQL distribution are installed. (Use pg_config --sharedir
725           to find out the name of this directory.) For example:
726
727 extension_control_path = '/usr/local/share/postgresql:/home/my_project/share:$sy
728 stem'
729
730           or, in a Windows environment:
731
732 extension_control_path = 'C:\tools\postgresql;H:\my_project\share;$system'
733
734           Note that the specified paths elements are expected to have a
735           subdirectory extension which will contain the .control and .sql
736           files; the extension suffix is automatically appended to each
737           path element.
738
739           The default value for this parameter is '$system'. If the value
740           is set to an empty string, the default '$system' is also
741           assumed.
742
743           If extensions with equal names are present in multiple
744           directories in the configured path, only the instance found
745           first in the path will be used.
746
747           This parameter can be changed at run time by superusers and
748           users with the appropriate SET privilege, but a setting done
749           that way will only persist until the end of the client
750           connection, so this method should be reserved for development
751           purposes. The recommended way to set this parameter is in the
752           postgresql.conf configuration file.
753
754           Note that if you set this parameter to be able to load
755           extensions from nonstandard locations, you will most likely also
756           need to set dynamic_library_path to a correspondent location,
757           for example,
758
759 extension_control_path = '/usr/local/share/postgresql:$system'
760 dynamic_library_path = '/usr/local/lib/postgresql:$libdir'
761
762    gin_fuzzy_search_limit (integer) #
763           Soft upper limit of the size of the set returned by GIN index
764           scans. For more information see Section 65.4.5.