In PostgreSQL 9.2.3 I am trying to create this simplified table:

    CREATE TABLE test (
        user_id INTEGER,
        startend TSTZRANGE,
        EXCLUDE USING gist (user_id WITH =, startend WITH &&)
    );

But I get this error:

    ERROR:  data type integer has no default operator class for access method "gist"
    HINT:  You must specify an operator class for the index or define a default operator class for the data type.

The PostgreSQL docs use these this example, which does not work for me (http://www.postgresql.org/docs/9.2/static/rangetypes.html):

    CREATE TABLE room_reservation (
        room text,
        during tsrange,
        EXCLUDE USING gist (room WITH =, during WITH &&)
    );
    ERROR:  data type integer has no default operator class for access method "gist"
    HINT:  You must specify an operator class for the index or define a default operator class for the data type.

And this one, which does not work for me either (http://www.postgresql.org/docs/9.2/static/btree-gist.html):

    CREATE TABLE zoo (
        cage   INTEGER,
        animal TEXT,
        EXCLUDE USING gist (cage WITH =, animal WITH <>)
    );
    ERROR:  data type text has no default operator class for access method "gist"
    HINT:  You must specify an operator class for the index or define a default operator class for the data type.

I am able to create this able without any problem:

    CREATE TABLE test (
        user_id INTEGER,
        startend TSTZRANGE,
        EXCLUDE USING gist (startend WITH &&)
    );

and this:

    CREATE TABLE test (
        user_id INTEGER,
        startend TSTZRANGE,
        EXCLUDE USING btree (user_id WITH =)
    );

I've spent quite a bit of time searching for hints about figuring out how to make this work, or figuring out why it won't work. Any ideas?