««« | »»»
PostgreSQL 9: le novità
Sta per arrivare la nuova versione di PostgreSQL, la 9 1. Come in passato, anche se più sinteticamente, faccio una carrellata delle principali novità.
Binary replication
La novità più importante è l’aggiunta di una soluzione di replica utilizzabile da subito, senza componenti aggiuntive. La versione “di sistema” offre la possibilità di replicare attraverso l’invio del WAL 2 ai nodi secondari, che possono essere configurati in modalità Hot 3 o Warm 4 Standby.
Nel caso del Warm Standby il nodo principale spedisce ai secondari un intero segmento di WAL alla volta, mentre nel caso dell’Hot Standby la granularità dell’invio scende al livello del record, riducendo ulteriormente la finestra di scopertura.
Funzioni, programmazione
È stato aggiunto il supporto per le funzioni anonime. Non c’è molto da aggiungere in questo caso, perché l’uso è veramente semplice5.
È possibile usare i nomi dei parametri delle funzioni anche nell’invocazione, rendendo più chiaro il codice nel caso in cui ce ne siano molti 6.
Dettaglio carino e utile: adesso è possibile settare la variabile application_name.
SQL
Ora possiamo restringere l’esecuzione dei trigger a una singola colonna. 7. Inoltre, possiamo specificare la clausola when per restringere la loro attivazione solo nei casi realmente necessari 8.
Adesso è possibile creare dei constraint che vadano al di là della semplice verifica di unicità, specificando l’operatore usato per il predicato di confronto fra due valori. L’esempio riportato nella documentazione è quello che specifica il divieto di avere due circonferenze che si intersecano 9. Sempre a proposito dei vincoli di unicità, adesso possono essere specificati come deferrable.
- Note di rilascio ↩
- Il Write Ahead Log ↩
- Per Hot Standby si intende invece la possibilità di connettersi a un nodo in modalità di ripristino e sottomettere delle query di sola lettura, per poi passare successivamente alla modalità normale in modo trasparente rispetto agli utenti connessi. ↩
- Il Warm Standby, o log shipping, è definito come la capacità di raggiungere l’alta disponibilità attraverso l’uso di uno o più nodi in standby, pronti ad entrare in azione nel caso in cui il nodo primario sia disattivo. ↩
- Do statement ↩
- Named parameters ↩
- per-column triggers. Questa possibilità è limita ai trigger in UPDATE. ↩
- Conditional Triggers ↩
- Exclusion Constraints ↩
Per proseguire
Commenti e trackback sono disabilitati.