Just in case this hits you too when you use CITEXT fields that were originally defined in a Postgres before version 9.1.

ProgrammingError: could not determine which collation to use for string comparison
HINT:  Use the COLLATE clause to set the collation explicitly.

This can happen if you use something like:


WHERE name='peter'

when field name is a case insensitive text field.

After some googling around and shooting in the dark I found the the only way to crack this is to run this command:


CREATE EXTENSION citext FROM unpackaged;

Hope that helps some poor schmuck with the same problem.

UPDATE

If you have problems applying this to new tables in Postgres 9.1 you might need to run this instead:


CREATE EXTENSION citext WITH SCHEMA public ;

Comments

Dallas G.

A very sincere THANKS from a very "poor schmuck".

P.S. Maybe its implied (I'm still a very green DBA), but the only thing I would add is a note stating that you'll need to create the extension on every database which contains citext values.

Your email will never ever be published.

Previous:
Secs sell! How I cache my entire pages (server-side) May 10, 2012 Python, Django
Next:
How I deal with deferred image loading in Javascript June 8, 2012 Web development, JavaScript
Related by category:
Testing out vite 8 on SPA: Vite 8 is 5x faster December 6, 2025 Web development
From @monaco-editor/react to prism-react-editor September 25, 2025 Web development
Bot traffic hitting my blog July 9, 2025 Web development
How to get all of MDN Web Docs running locally June 9, 2021 Web development
Related by keyword:
Adding client-to-server sync to PissueTracker March 20, 2025 React, JavaScript, Bun
Connecting with psycopg2 without a username and password February 24, 2011 Python
How I performance test PostgreSQL locally on macOS December 10, 2018 Web development, PostgreSQL, macOS
When Docker is too slow, use your host January 11, 2018 Web development, Django, Docker, macOS