I'm not sure if I use the index for a case-insensitive search the right way. It is a table with about 45000 records, pers_id is the primary key, pers_nachname is a character varying which should have an case-insensitive index.
EXPLAIN SELECT * FROM kundepersonhc WHERE pers_id=42612; says that the index for the primary key is used
EXPLAIN SELECT * FROM kundepersonhc WHERE UPPER(pers_nachname) LIKE UPPER('me%'); says that a seq scan is done.
I used this statement to define the index: CREATE INDEX kundepersonhc_upper_pers_nachname ON kundepersonhc (UPPER(pers_nachname));