LANGUAGE 'sql' VOLATILE STRICT
COST 100;
+CREATE OR REPLACE FUNCTION _raster_constraint_info_index(rastschema name, rasttable name, rastcolumn name)
+ RETURNS boolean AS $$
+ SELECT
+ TRUE
+ FROM pg_catalog.pg_class c
+ JOIN pg_catalog.pg_index i
+ ON i.indexrelid = c.oid
+ JOIN pg_catalog.pg_class c2
+ ON i.indrelid = c2.oid
+ JOIN pg_catalog.pg_namespace n
+ ON n.oid = c.relnamespace
+ JOIN pg_am am
+ ON c.relam = am.oid
+ JOIN pg_attribute att
+ ON att.attrelid = c2.oid
+ AND pg_catalog.format_type(att.atttypid, att.atttypmod) = 'raster'
+ WHERE c.relkind IN ('i')
+ AND n.nspname = $1
+ AND c2.relname = $2
+ AND att.attname = $3
+ AND am.amname = 'gist'
+ AND strpos(pg_catalog.pg_get_expr(i.indexprs, i.indrelid), att.attname) > 0;
+ $$ LANGUAGE sql STABLE STRICT
+ COST 100;
+
------------------------------------------------------------------------------
-- AddRasterConstraints
------------------------------------------------------------------------------
_raster_constraint_info_pixel_types(n.nspname, c.relname, a.attname) AS pixel_types,
_raster_constraint_info_nodata_values(n.nspname, c.relname, a.attname) AS nodata_values,
_raster_constraint_info_out_db(n.nspname, c.relname, a.attname) AS out_db,
- _raster_constraint_info_extent(n.nspname, c.relname, a.attname) AS extent
+ _raster_constraint_info_extent(n.nspname, c.relname, a.attname) AS extent,
+ COALESCE(_raster_constraint_info_index(n.nspname, c.relname, a.attname), FALSE) AS spatial_index
FROM
pg_class c,
pg_attribute a,
-- $Id$
--
-- Copyright (c) 2010 Mateusz Loskot <mateusz@loskot.net>
--- Copyright (C) 2011 Regents of the University of California
+-- Copyright (C) 2011 - 2013 Regents of the University of California
-- <bkpark@ucdavis.edu>
--
-- This is free software; you can redistribute and/or modify it under
SELECT DropRasterConstraints(current_schema(), 'test_raster_columns', 'rast'::name, 'regular_blocking');
SELECT r_table_name, r_raster_column, srid, scale_x, scale_y, blocksize_x, blocksize_y, same_alignment, regular_blocking, num_bands, pixel_types, nodata_values, ST_AsEWKT(extent) FROM raster_columns WHERE r_table_name = 'test_raster_columns';
+-- check spatial_index
+SELECT
+ CASE
+ WHEN spatial_index IS FALSE
+ THEN NULL
+ ELSE FALSE
+ END
+FROM raster_columns WHERE r_table_name = 'test_raster_columns';
+CREATE INDEX test_raster_columns_rast_gist
+ ON test_raster_columns
+ USING gist
+ (st_convexhull(rast));
+SELECT
+ CASE
+ WHEN spatial_index IS FALSE
+ THEN FALSE
+ ELSE NULL
+ END
+FROM raster_columns WHERE r_table_name = 'test_raster_columns';
+
-- ticket #2215
CREATE TABLE test_raster_columns_2 AS
SELECT rid, rast FROM test_raster_columns;