SELECT
A.RDB$INDEX_NAME AS INDICE_1,
B.RDB$INDEX_NAME AS INDICE_2
FROM RDB$INDICES A
INNER JOIN RDB$INDICES B ON
A.RDB$RELATION_NAME = B.RDB$RELATION_NAME AND
A.RDB$INDEX_NAME < B.RDB$INDEX_NAME
WHERE
A.RDB$SEGMENT_COUNT = B.RDB$SEGMENT_COUNT AND
COALESCE(A.RDB$UNIQUE_FLAG, 0) = COALESCE(B.RDB$UNIQUE_FLAG, 0) AND
COALESCE(A.RDB$INDEX_TYPE, 0) = COALESCE(B.RDB$INDEX_TYPE, 0) AND
( A.RDB$EXPRESSION_BLR=B.RDB$EXPRESSION_BLR
OR
A.RDB$SEGMENT_COUNT = ( SELECT
COUNT(*)
FROM RDB$INDEX_SEGMENTS AA
INNER JOIN RDB$INDEX_SEGMENTS BB ON
AA.RDB$FIELD_POSITION=BB.RDB$FIELD_POSITION AND
AA.RDB$FIELD_NAME=BB.RDB$FIELD_NAME AND
AA.RDB$INDEX_NAME=A.RDB$INDEX_NAME AND
BB.RDB$INDEX_NAME=B.RDB$INDEX_NAME
)
)
Comments