CREATE VIEW sys.spatial_indexes AS
SELECT i.id AS object_id,
i.name AS name,
i.indid AS index_id,
i.type,
n.name AS type_desc,
sysconv(bit, i.status & 0x8) AS is_unique, -- IS_IND_UNIQUE
i.dataspace AS data_space_id,
sysconv(bit, i.status & 0x4) AS ignore_dup_key, -- IS_IND_DPKEYS
sysconv(bit, i.status & 0x20) AS is_primary_key, -- IS_IND_PRIMARY
sysconv(bit, i.status & 0x40) AS is_unique_constraint, -- IS_IND_UNIQUE_CO
i.fillfact AS fill_factor,
sysconv(bit, i.status & 0x10) AS is_padded, -- IS_IND_PADINDEX
sysconv(bit, i.status & 0x80) AS is_disabled, -- IS_IND_OFFLINE
sysconv(bit, i.status & 0x100) AS is_hypothetical, -- IS_IND_ITWINDEX
sysconv(bit, 1 - (i.status & 512)/512) AS allow_row_locks, -- IS_IND_NO_ROWLOCK
sysconv(bit, 1 - (i.status & 1024)/1024) AS allow_page_locks, -- IS_IND_NO_PAGELOCK
i.intprop AS spatial_index_type,
ei.name AS spatial_index_type_desc,
tes.name AS tessellation_scheme,
sysconv(bit, 0) AS has_filter,
convert(nvarchar(max), NULL) AS filter_definition
FROM sys.sysidxstats i
LEFT JOIN sys.syspalvalues n ON n.class = 'IDXT' and n.value = i.type
LEFT JOIN sys.syspalvalues ei ON ei.class = 'EITP' and ei.value = i.intprop
LEFT JOIN sys.syspalvalues tes ON tes.class = 'EISP' and tes.value = i.intprop
WHERE i.indid >= 384000
AND has_access('CO', i.id) = 1