AddRasterConstraints — Aggiunge vincoli raster a una tabella raster caricata per una colonna specifica che vincola il rif spaziale, la scala, la dimensione del blocco, l'allineamento, le bande, il tipo di banda e un flag per indicare se la colonna raster è regolarmente bloccata. La tabella deve essere caricata con i dati per poter dedurre i vincoli. Restituisce true se l'impostazione dei vincoli è stata eseguita, altrimenti emette un avviso.
boolean AddRasterConstraints(name  rasttable, name  rastcolumn, boolean  srid=true, boolean  scale_x=true, boolean  scale_y=true, boolean  blocksize_x=true, boolean  blocksize_y=true, boolean  same_alignment=true, boolean  regular_blocking=false, boolean  num_bands=true , boolean  pixel_types=true , boolean  nodata_values=true , boolean  out_db=true , boolean  extent=true );
boolean AddRasterConstraints(name  rasttable, name  rastcolumn, text[]  VARIADIC constraints);
boolean AddRasterConstraints(name  rastschema, name  rasttable, name  rastcolumn, text[]  VARIADIC constraints);
boolean AddRasterConstraints(name  rastschema, name  rasttable, name  rastcolumn, boolean  srid=true, boolean  scale_x=true, boolean  scale_y=true, boolean  blocksize_x=true, boolean  blocksize_y=true, boolean  same_alignment=true, boolean  regular_blocking=false, boolean  num_bands=true, boolean  pixel_types=true, boolean  nodata_values=true , boolean  out_db=true , boolean  extent=true );
Genera vincoli su una colonna raster che vengono utilizzati per visualizzare le informazioni nel catalogo raster raster_columns.  rastschema è il nome dello schema della tabella in cui risiede la tabella.  srid deve essere un valore intero di riferimento a una voce della tabella SPATIAL_REF_SYS.
raster2pgsql loader utilizza questa funzione per registrare le tabelle raster
Nomi di vincoli validi da inserire: fare riferimento a Section 10.2.1, “Catalogo delle colonne raster” per maggiori dettagli.
blocksize imposta sia la dimensione del blocco X che Y
blocksize_x imposta il riquadro X (larghezza in pixel di ogni riquadro)
blocksize_y imposta il riquadro Y (altezza in pixel di ogni riquadro)
extent calcola l'estensione dell'intera tabella e applica il vincolo che tutti i raster devono rientrare in tale estensione
num_bands numero di bande
pixel_types legge l'array di tipi di pixel per ogni banda, assicurando che tutte le bande n abbiano lo stesso tipo di pixel
regular_blocking imposta i vincoli di unicità spaziale (non ci sono due raster uguali dal punto di vista spaziale) e di copertura (il raster è allineato a una copertura)
same_alignment assicura che tutte le tessere abbiano lo stesso allineamento, il che significa che ogni due tessere confrontate restituiranno true. Fare riferimento a ST_SameAlignment.
srid assicura che tutti abbiano lo stesso srid
Altro -- tutti quelli elencati come input delle funzioni precedenti
                 
               | 
              |
| 
                 Questa funzione infonde i vincoli dai dati già presenti nella tabella. Per questo motivo, affinché funzioni, è necessario creare prima la colonna raster e poi caricarla con i dati.  | 
            
                 
               | 
              |
| 
                 Se è necessario caricare altri dati nelle tabelle dopo aver applicato i vincoli, è possibile eseguire DropRasterConstraints se l'estensione dei dati è cambiata.  | 
            
Disponibilità: 2.0.0
CREATE TABLE myrasters(rid SERIAL primary key, rast raster);
INSERT INTO myrasters(rast)
SELECT ST_AddBand(ST_MakeEmptyRaster(1000, 1000, 0.3, -0.3, 2, 2, 0, 0,4326), 1, '8BSI'::text, -129, NULL);
SELECT AddRasterConstraints('myrasters'::name, 'rast'::name);
-- verify if registered correctly in the raster_columns view --
SELECT srid, scale_x, scale_y, blocksize_x, blocksize_y, num_bands, pixel_types, nodata_values
    FROM raster_columns
    WHERE r_table_name = 'myrasters';
 srid | scale_x | scale_y | blocksize_x | blocksize_y | num_bands | pixel_types| nodata_values
------+---------+---------+-------------+-------------+-----------+-------------+---------------
 4326 |       2 |       2 |        1000 |        1000 |         1 | {8BSI}      | {0}
        
      CREATE TABLE public.myrasters2(rid SERIAL primary key, rast raster);
INSERT INTO myrasters2(rast)
SELECT ST_AddBand(ST_MakeEmptyRaster(1000, 1000, 0.3, -0.3, 2, 2, 0, 0,4326), 1, '8BSI'::text, -129, NULL);
SELECT AddRasterConstraints('public'::name, 'myrasters2'::name, 'rast'::name,'regular_blocking', 'blocksize');
-- get notice--
NOTICE:  Adding regular blocking constraint
NOTICE:  Adding blocksize-X constraint
NOTICE:  Adding blocksize-Y constraint