O que é um índice por expressão (Expression Index / Functional Index) no PostgreSQL? Quais são as sobrecargas nas operações de escrita (INSERT/UPDATE) que ele implica e por que o planejador pode recusar-se a usá-lo se os tipos de dados na expressão da consulta não coincidirem?