Documentazione di PostgreSQL 9.0 > Il linguaggio SQL > Tipi di Dato > Pseudo-tipi
PrecedenteTipi identificatori di oggettoFunzioni e OperatoriSuccessivo

8.17. Pseudo-tipi

I tipi sistema di PostgreSQL™ contengono un numero di elementi per usi speciali che sono collettivamente chiamati pseudo-tipi. Un pseudo-tipo non può essere usato come un tipo di dato di colonna, ma può essere usato per dichiarare un'argomento di funzione o il tipo di un risultato. Ugnuno degli pseudo-tipi disponibili è utile in situazioni dove il comportamento di una funzione non corrisponde semplicemente a prendere o restituire un valore di uno specifico tipo di dato SQL. La Tabella 8.24, «Pseudo-tipi» elenca gli pseudo-tipi esistenti.

Tabella 8.24. Pseudo-tipi

NomeDescrizione
anyIndica che una funzione accetta ogni input di qualsiasi tipo dato.
anyarrayIndica che una funzione accetta ogni tipo dato array (vedere Sezione 35.2.5, «Tipi polimorfici»).
anyelementIndica che una funzione accetta ogni tipo dato (vedere Sezione 35.2.5, «Tipi polimorfici»).
anyenumIndica che una funzione accetta ogni tipo dato enum (vedere Sezione 35.2.5, «Tipi polimorfici» e Sezione 8.7, «Tipi enumerati»).
anynonarrayIndica che una funzione accetta ogni tipo dato non-array (vedere Sezione 35.2.5, «Tipi polimorfici»).
cstringIndica che una funzione accetta o restituisce una stringa C terminata con null.
internalIndica che una funzione accetta o restituisce un tipo dato interno al server.
language_handlerViene dichiarato un gestore di chiamata al linguaggio procedurale per restituire un language_handler.
recordIdentifica una funzione che restituisce un tipo riga non specificato.
triggerViene dichiarata una funzione trigger per restituire un trigger.
voidIndica che una funzione non restituisce nessun valore.
opaqueUn nome tipo obsoleto che serviva in precedenza per tutti gli usi di cui sopra.

Funzioni codificate in C (sia incorporate che caricate dinamicamente) possono essere dichiarate per accettare o restituire ognuno di questi specifici pseudo tipi di dati. Spetta all'autore della funzione il compito di garantire che la funzione si comporti in sicurezza quando viene usato un pseudo-tipo come tipo di argomento.

Funzioni codificate in linguaggi procedurali possono usare pseudo-tipi solo come consentito dal loro linguaggio di implementazione. Al momento tutti i linguaggi procedurali proibiscono l'uso di un pseudo-tipo come tipo di argomento, e consentono solo void e record come tipo di risultato (più trigger quando la funzione viene utilizzata come un trigger). Alcuni supportano anche funzioni polimorfiche utilizzando i tipi anyarray, anyelement, anyenum, e anynonarray.

Lo pseudo-tipo internal è usato per dichiarare funzioni che sono intese solo per essere chiamate internamente al sistema di database, e non da chiamate dirette in una query SQL. Se una funzione ha almeno un argomento tipo internal allora non può essere chiamata da SQL. Per preservare la sicurezza di tipo di questa restrizione è importante seguire questa regola di codificazione: non creare nessuna funzione che viene dichiarata per restituire internal a meno che non abbia almeno un argomento internal.

Documentazione di PostgreSQL 9.0 > Il linguaggio SQL > Tipi di Dato > Pseudo-tipi
PrecedenteTipi identificatori di oggettoFunzioni e OperatoriSuccessivo