Controllo delle dipendenze prima di rilasciare gli UDX
Le dipendenze dalle UDX sono tracciate. Cioè, se una tabella, una vista o un altro UDX fa riferimento a un UDX che si vuole eliminare, non è possibile eliminarlo finché la dipendenza non viene rimossa.
SELECT * FROM _v_depend;
REFERENCING | REFERENCED | ...| SCHEMA | SCHEMAID
-----------------------------+------------------------------+----+--------+--------
table PROD..CUSTOMERS col(1) | function FILEUPDATE(INTEGER) | | TEST1 | 581383
view TOTAL_VW | aggregate MYSUM(INTEGER) | | TEST1 | 581383
function MYFUNC(INTEGER) | library MYMATHLIB | | MATH2 | 581356
(3 rows)fileupdate utilizzata in una tabella denominata 'CUSTOMERS, viene restituito un errore simile al seguente:DEV(USER1)=> DROP FUNCTION fileupdate(int4);
ERROR: Can't delete function FILEUPDATE - table CUSTOMERS (col 1)
depends on itL'errore riporta la tabella e la colonna specifica che si riferisce alla funzione che si desidera eliminare. Per gli oggetti in database e schemi diversi, il messaggio di errore fornisce un nome completamente qualificato per identificare l'oggetto.
TOTAL_VW, viene restituito un errore simile al seguente:DEV(MYUSER)=> DROP AGGREGATE mysumint4); ERRORE: Impossibile eliminare l'aggregato MYSUM - la vista TOTAL_VW dipende da esso
Per risolvere questi messaggi di errore e abbandonare l'UDX, è necessario modificare il valore predefinito di ogni riga della tabella che fa riferimento alle UDF, modificando la clausola del valore predefinito con i comandi ALTER [ COLUMN ] column { SET DEFAULT value | DROP DEFAULT }. Per le viste, è necessario utilizzare il comando CREATE OR REPLACE VIEW per rimuovere l'UDX dalla definizione della vista.
DEV(MYUSER)=> DROP LIBRARY mymathlib;
ERROR: Can't delete library mymathlib - function MYFUNC(integer)
depends on it
Se si tenta di eliminare un database che contiene oggetti a cui fanno riferimento oggetti di altri database, il comando DROP DATABASE visualizza errori ed esce. Questo controllo e questo errore possono verificarsi anche se si tenta di abbandonare uno schema su un sistema che supporta più schemi. I messaggi di errore visualizzano fino a 5 dipendenze di oggetti, oltre al numero totale di dipendenze che devono essere risolte. È necessario risolvere tutti i problemi di dipendenza prima di poter abbandonare il database o lo schema.