Domyślnie dostępne są: PL/pgSQL, podobny do proceduralnego języka PL/SQL w bazie Oracle; PL/Python; PL/Perl; PL/Tcl; język SQL (procedura to ciąg parametryzowanych instrukcji SQL).
Dodatkowo można zainstalować rozszerzenia udostępniające: języki skryptowe: PL/Lua, plPHP, PL/Ruby, PL/sh, PL/Scheme, PL/LOLCODE; języki kompilowane: C, C++ oraz Java (jako PL/Java); język statystyczny R jako PL/R.
Indeksy W PostgreSQL zaimplementowano obsługę wielu typów indeksów, do których należą: B-drzewo, Hash, używany tylko przy korzystaniu z operatora =, GiST, obsługuje różne strategie indeksowania dla różnych danych np. zamiennik indeksu R-drzewo dla danych geometrycznych, SP-GiST, BRIN, GIN, stosowany do indeksowania wielu danych przetrzymywanych w jednej kolumnie. Indeksy można utworzyć zarówno na kolumnie, lub kolumnach tabeli, jak i widoku zmaterializowanego. Indeksy posiadają dodatkowe możliwości: