Documentazione di PostgreSQL 9.0 > Amministrazione del server > Configurazione del server > Valori predefiniti della connessione del client
PrecedenteAutomatic VacuumingLock ManagementSuccessivo

18.10. Valori predefiniti della connessione del client

18.10.1. Comportamento delle dichiarazioni

search_path (string)

Questa variabile specifica l'ordine in cui gli schemi vengono cercati quando un oggetto (tabella, tipo di dato, funzione, ecc.) è referenziato da un nome semplice senza specificare uno schema. Quando ci sono oggetti con nomi identici in schemi diversi, viene usato il primo trovato nel percorso di ricerca. Un oggetto che non è in nessun schema nel percorso di ricerca può essere referenziato solo specificando il suo schema contenente con un nome qualificato (puntato).

Il valore per search_path deve essere un elenco separato da virgole di nomi di schemi. Se una delle voci dell'elenco è il valore speciale $user, allora lo schema avente il nome ritornato da SESSION_USER viene sostituito, se c'è tale schema. (Se non esiste, $user viene ignorato).

Lo schema catalogo di sistema, pg_catalog, è sempre cercato, se è menzionato nel percorso o no. Se è menzionato nel percorso allora sarà cercato nell'ordine specificato. Se pg_catalog non è nel percorso allora sarà cercato prima di cercare uno quallsiasi degli elementi del percorso.

Ugualmente, lo schema di tabelle temporanee della sessione corrente, pg_temp_nnn, viene cercato sempre se esiste. Può essere elencato esplicitamente nel percorso usando l'alias pg_temp. Se non è elencato nel percorso allora viene cercato per primo (prima anche di pg_catalog). Comunque, lo schema temporaneo viene cercato solo per nomi di relazioni (tabella, vista, sequenza, ecc.) e tipi di dato. Non vengono mai cercati nomi di funzioni o operatori.

Quando gli oggetti vengono creati senza specificare uno schema particolare, saranno posizionati nel primo schema elencato nel percorso di ricerca. Viene riportato un errore se il percorso di ricerca è vuoto.

Il valore predefinito per questo parametro è '"$user", public' (dove la seconda parte sarà ignorato se non c'è uno schema chiamato public). Questo supporta l'uso condiviso di un database (dovew gli utenti non hanno schemi privati, e tutti condividono l'uso di public), schemi privati per utente e combinazioni di questi. Altri effetti possono essere ottenuti modificando l'impostazione del percorso di ricerca predefinito, o globalmente o per ogni utente.

Il valore corrente effettivo del percorso di ricerca può essere esaminato attraverso la funzione SQL current_schemas(). Questo non è lo stesso di esaminare il valore di search_path, dato che current_schemas() mostra come gli elementi appaiono in search_path furono risolti.

Per maggiori informazioni sulla gestione degli schemi, si veda Sezione 5.7, «Schemi».

default_tablespace (string)

Questa variabile specifica il tablespace predefinito in cui creare gli oggetti (tabelle e indici) quando un comando CREATE non specifica esplicitamente un tablespace.

Il valore è o il nome di un tablespace, o una stringa vuota per specificare di usare il tablespace predefinito del database corrente. Se il valore non corrisponde al nome di qualsiasi tablespace esistente, PostgreSQL™ userà automaticamente il tablespace predefinito del database corrente. Se viene specificato un tablespace non predefinito, l'utente deve avere il privilegio CREATE per esso, o il tentativo di creazione fallirà.

Questa variabile non viene usata per tabelle temporanee; per loro, viene invece consultato temp_tablespaces.

Per maggiori informazioni sui tablesace, si veda Sezione 21.6, «Tablespace».

temp_tablespaces (string)

Questa variabile specifica i tablespace nei quali creare gli oggetti temporanei (tabelle temporanee e indici su tabelle temporanee) quando un comando CREATE non spicifica esplicitamente un tablespace. Anche i file temporanei per scopi tipo l'ordinamento di grandi insiemi di dati sono creati in questi tablespace.

Il valore è un elenco di nomi di tablespace. Quando c'è più di un nome nell'elenco, PostgreSQL™ sceglie un membro casuale dell'elenco ogni volta che un oggetto temporaneo dev'essere creato; ad eccezione che all'interno di una transazione, gli oggetti temporanei creati successivamente sono posizionati in tablespace dall'elenco. Se l'elemento selezionato dell'elenco è una stringa vuota, PostgreSQL™ invece userà automaticamente il tablespace predefinito del database corrente.

Quando temp_tablespaces è impostato interattivamente, specificare un tablespace non esistente è un errore, come specificare un tablespace per il quale l'utente non ha il privilegio CREATE. Comunque, quando si usa un valore impostato precedentemente, i tablespace non esistenti sono ignorati, come lo sono i tablespace per i quali l'utente non ha il privilegio CREATE. In particolare, questa regola si applica quando si usa un valore impostato in postgresql.conf.

Il valore predefinito è una stringa vuota, che risulta nella creazione di tutti gli oggetti temporanei nel tablespace predefinito del database corrente.

Si veda anche default_tablespace.

check_function_bodies (boolean)

Questo parametro normalmente è attivo. Quando impostato a off, disabilita la validazione del corpo della funzione durante CREATE FUNCTION(7). Disabilitare la validazione è utile occaionalmente per evitare problemi come riferimenti in avanti quando si ripristinano definizioni di funzione da un dump.

default_transaction_isolation (enum)

Ogni transazione SQL ha un livello di isolamento, che può essere o «read uncommitted», «read committed», «repeatable read» o «serializable». Questo parametro controlla il livello di isolamento predefinito di ogni nuova transazione. Il valore predefinito è «read committed».

Consultare Capitolo 13, Controllo concorrente e SET TRANSACTION(7) per maggiori infomazioni.

default_transaction_read_only (boolean)

Una transazione SQL in sola lettura non può modificare tabelle non temporanee. Questo parametro controlla lo stato predefinito di sola lettura di ogni nuova transazione. Il valore predefinito è off (read/write).

Consultare SET TRANSACTION(7) per maggiori informazioni.

session_replication_role (enum)

Controlla l'attivazione di trigger relative alla replica e regole per la sessione corrente. Impostare questa variabile richiede privilegi di superutente e risulta nello scartare qualsiasi piano di query messo in cache precedentemente. I valori possibili sono origin (il predefinito), replica e local. Si veda ALTER TABLE(7) per maggiori informazioni.

statement_timeout (integer)

Annulla qualsiasi istruzione che ci mette più dello specificato numero di millisecondi, partendo dal tempo in cui il comando arriva al server dal client. Se log_min_error_statement è impostato a ERROR o più basso, saranno messe nel log anche le istruzioni che sono andate in timeout. Un valore di zero (il predefinito) disabilita questo.

Impostare statement_timeout in postgresql.confnon è raccomandato perchè ha effetto su tutte le sessioni.

vacuum_freeze_table_age (integer)

VACUUM performs a whole-table scan if the table's pg_class.relfrozenxid field has reached the age specified by this setting. The default is 150 million transactions. Although users can set this value anywhere from zero to one billion, VACUUM will silently limit the effective value to 95% of autovacuum_freeze_max_age, so that a periodical manual VACUUM has a chance to run before an anti-wraparound autovacuum is launched for the table. For more information see Sezione 23.1.4, «Preventing Transaction ID Wraparound Failures».

vacuum_freeze_min_age (integer)

Specifies the cutoff age (in transactions) that VACUUM should use to decide whether to replace transaction IDs with FrozenXID while scanning a table. Il valore predefinito è 50 milioni di transazioni. Sebbene gli utenti possano impostare questo valore da zero a un bilione, VACUUM limiterà silenziosamente l'effettivo valore a metà del valore di autovacuum_freeze_max_age, così che non ci sia un tempo esageratamente breve tra autovacuum forzati. Per maggiori informazioni si veda Sezione 23.1.4, «Preventing Transaction ID Wraparound Failures».

bytea_output (enum)

Imposta il formato di output per valori di tipo bytea. Valori validi sono hex (predefinito) e escape (il formato tradizionale di PostgreSQL). Si veda Sezione 8.4, «Tipi di dato binari» per maggiori informazioni. Il tipo bytea accetta sempre entrambi i formati in input, malgrado quest'impostazione.

xmlbinary (enum)

Imposta come devono essere codificati i valori binari in XML. Questo di applica per esempio quando i valori bytea sono convertiti in XMLdalla funzione xmlelement o xmlforest. I valori possibili sono base64 e hex, che sono entrambi definiti nello standard XML Schema. Il valore predefinito è base64. Per informazioni sulle funzioni XML correlate, si veda Sezione 9.14, «Funzioni XML».

La scelta effettiva qui è una questione di gusti, vincolata solo da possibili restrizioni nelle applicazioni client. Entrambi i metodi supportano tutti i possibili valori, benchè la codifica hex sarà in qualche modo più grande rispetto alla codifica base64.

xmloption (enum)

Imposta se DOCUMENT o CONTENT sono impliciti quando si converte tra XML e valori stringa di caratteri. Si veda Sezione 8.13, «Tipo XML» per una descrizione. Valori validi sono DOCUMENT e CONTENT. Il valore predefinito è CONTENT.

In conformità allo standard SQL, il comando per impostare quest'opzione è

SET XML OPTION { DOCUMENT | CONTENT };

This syntax is also available in PostgreSQL.

18.10.2. Locale e formattazione

DateStyle (string)

Impostare il formato per la visualizzazione dei valori di data e tempo, così come le regole per l'interpretazione di valori di date in input ambigue. Per ragioni storiche, questa variabile contiene due componenti indipendenti: la specificazione del formato di output (ISO, Postgres, SQL, o German) e la specifica di input/output per l'ordine di anno/mese/giorno (DMY, MDY o YMD). Questi possono essere impostati separatamente o insieme. Le parole chiave Euro e European sono sinonimi per DMY; le parole chiave US, NonEuro e NonEuropean sono sinonimi per MDY. Si veda Sezione 8.5, «Tipi di Data/Orario» per maggiori informazioni. Il valore incorporato predefinito è ISO, MDY, ma initdb inizializzerà il file di configurazione con un'impostazione che corrisponde al comportamento del locale scelto con lc_time.

IntervalStyle (enum)

Imposta il formato di visualizzazione per valori di intervallo. Il valore sql_standard produrrà corrispondente allo standard SQL per gli intervalli. The value postgres (which is the default) will produce Il valore postgres (che è il predefinito) produrrà output matching PostgreSQL™ releases prior to 8.4 when the DateStyle parameter was set to ISO. The value postgres_verbose will produce output matching PostgreSQL™ releases prior to 8.4 when the DateStyle parameter was set to non-ISO output. The value iso_8601 will produce output matching the time interval «format with designators» defined in section 4.4.3.2 of ISO 8601.

The IntervalStyle parameter also affects the interpretation of ambiguous interval input. See Sezione 8.5.4, «Input di Intervalli» for more information.

timezone (string)

Sets the time zone for displaying and interpreting time stamps. The default is unknown, which means to use whatever the system environment specifies as the time zone. See Sezione 8.5.3, «Fusi OrarioTime Zones» for more information.

timezone_abbreviations (string)

Sets the collection of time zone abbreviations that will be accepted by the server for datetime input. The default is 'Default', which is a collection that works in most of the world; there are also 'Australia' and 'India', and other collections can be defined for a particular installation. See Appendice B, Supporto di data e orario for more information.

extra_float_digits (integer)

This parameter adjusts the number of digits displayed for floating-point values, including float4, float8, and geometric data types. The parameter value is added to the standard number of digits (FLT_DIG or DBL_DIG as appropriate). The value can be set as high as 3, to include partially-significant digits; this is especially useful for dumping float data that needs to be restored exactly. Or it can be set negative to suppress unwanted digits.

client_encoding (string)

Sets the client-side encoding (character set). The default is to use the database encoding.

lc_messages (string)

Sets the language in which messages are displayed. Acceptable values are system-dependent; see Sezione 22.1, «Locale Support» for more information. If this variable is set to the empty string (which is the default) then the value is inherited from the execution environment of the server in a system-dependent way.

On some systems, this locale category does not exist. Setting this variable will still work, but there will be no effect. Also, there is a chance that no translated messages for the desired language exist. In that case you will continue to see the English messages.

Only superusers can change this setting, because it affects the messages sent to the server log as well as to the client, and an improper value might obscure the readability of the server logs.

lc_monetary (string)

Sets the locale to use for formatting monetary amounts, for example with the to_char family of functions. Acceptable values are system-dependent; see Sezione 22.1, «Locale Support» for more information. If this variable is set to the empty string (which is the default) then the value is inherited from the execution environment of the server in a system-dependent way.

lc_numeric (string)

Sets the locale to use for formatting numbers, for example with the to_char family of functions. Acceptable values are system-dependent; see Sezione 22.1, «Locale Support» for more information. If this variable is set to the empty string (which is the default) then the value is inherited from the execution environment of the server in a system-dependent way.

lc_time (string)

Sets the locale to use for formatting dates and times, for example with the to_char family of functions. Acceptable values are system-dependent; see Sezione 22.1, «Locale Support» for more information. If this variable is set to the empty string (which is the default) then the value is inherited from the execution environment of the server in a system-dependent way.

default_text_search_config (string)

Selects the text search configuration that is used by those variants of the text search functions that do not have an explicit argument specifying the configuration. See Capitolo 12, Full Text Search for further information. The built-in default is pg_catalog.simple, but initdb will initialize the configuration file with a setting that corresponds to the chosen lc_ctype locale, if a configuration matching that locale can be identified.

18.10.3. Other Defaults

dynamic_library_path (string)

If a dynamically loadable module needs to be opened and the file name specified in the CREATE FUNCTION or LOAD command does not have a directory component (i.e., the name does not contain a slash), the system will search this path for the required file.

The value for dynamic_library_path must be a list of absolute directory paths separated by colons (or semi-colons on Windows). If a list element starts with the special string $libdir, the compiled-in PostgreSQL™ package library directory is substituted for $libdir; this is where the modules provided by the standard PostgreSQL™ distribution are installed. (Use pg_config --pkglibdir to find out the name of this directory.) For example:

dynamic_library_path = '/usr/local/lib/postgresql:/home/my_project/lib:$libdir'

or, in a Windows environment:

dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir'

The default value for this parameter is '$libdir'. If the value is set to an empty string, the automatic path search is turned off.

This parameter can be changed at run time by superusers, but a setting done that way will only persist until the end of the client connection, so this method should be reserved for development purposes. The recommended way to set this parameter is in the postgresql.conf configuration file.

gin_fuzzy_search_limit (integer)

Soft upper limit of the size of the set returned by gin index scans. For more information see Sezione 53.4, «gin tips and tricks».

local_preload_libraries (string)

This variable specifies one or more shared libraries that are to be preloaded at connection start. If more than one library is to be loaded, separate their names with commas. All library names are converted to lower case unless double-quoted. This parameter cannot be changed after the start of a particular session.

Because this is not a superuser-only option, the libraries that can be loaded are restricted to those appearing in the plugins subdirectory of the installation's standard library directory. (It is the database administrator's responsibility to ensure that only «safe» libraries are installed there.) Entries in local_preload_libraries can specify this directory explicitly, for example $libdir/plugins/mylib, or just specify the library name -- mylib would have the same effect as $libdir/plugins/mylib.

Unlike local_preload_libraries, there is no performance advantage to loading a library at session start rather than when it is first used. Rather, the intent of this feature is to allow debugging or performance-measurement libraries to be loaded into specific sessions without an explicit LOAD command being given. For example, debugging could be enabled for all sessions under a given user name by setting this parameter with ALTER USER SET.

If a specified library is not found, the connection attempt will fail.

Every PostgreSQL-supported library has a «magic block» that is checked to guarantee compatibility. For this reason, non-PostgreSQL libraries cannot be loaded in this way.

Documentazione di PostgreSQL 9.0 > Amministrazione del server > Configurazione del server > Valori predefiniti della connessione del client
PrecedenteAutomatic VacuumingLock ManagementSuccessivo