Documentazione di PostgreSQL 9.0 > Programmazione del server > PL/pgSQL - Linguaggio procedurale SQL > Espressioni
PrecedenteDichiarazioniIstruzioni di baseSuccessivo

39.4. Espressioni

Tutte le espressioni usate in istruzioni PL/pgSQL sono elaborate usando l'esecutore SQL principale del server. Per esempio, quando si scrive un'istruzione PL/pgSQL tipo

IF expression THEN ...

PL/pgSQL valuterà l'espressione fornendo una query tipo

SELECT expression

al motore SQL principale. Mentre forma il comando SELECT, qualsiasi occorrenza di nomi di bariabile PL/pgSQL viene sostituita da parametri, come discusso in dettaglio in Sezione 39.10.1, «Sostituzione di variabili». Questo permette al pianificatore di query per la SELECT di essere preparata sono una volta e quindi riusata per successive valutazioni con valori diversi delle variabili. Così, quello che realmente accade al primo utilizzo di una espressione è essenzialmente un comando PREPARE. Per esempio, se si sono dichiarate due variabili intere x e y, e si scrive

IF x < y THEN ...

Quello che succede dietro le quinte è equivalente a

PREPARE statement_name(integer, integer) AS SELECT $1 < $2;

quindi questa istruzione preparata viene eseguita (EXECUTE) per ogni esecuzione dell'istruzione IF, con i valori correnti delle variabili PL/pgSQL forniti come valori dei parametri. Il piano di query preparato in questo modo viene salvato per la durata della connessione al database, come descritto in Sezione 39.10.2, «Cache del piano». Normalmente, questi dettagli non sono importanti per un utente PL/pgSQL, ma sono utili da sapere quando si tenta di diagnosticare un problema.

Documentazione di PostgreSQL 9.0 > Programmazione del server > PL/pgSQL - Linguaggio procedurale SQL > Espressioni
PrecedenteDichiarazioniIstruzioni di baseSuccessivo