Can't use uuid and create an extension to use it

27.3k views Asked by At

I want to use uuid in Postgresql 9.2 on Ubuntu 13. So when I tried to check whether is available or not, I did:

select uuid_generate_v4() as one;

And it gave me ERROR: function uuid_generate_v4() does not exist

Then I did CREATE EXTENSION "uuid-ossp";

ERROR:  could not open extension control file "/usr/share/postgresql/9.2/extension/uuid-ossp.control": No such file or directory

Well, what do I do next?

By the way, SELECT * FROM pg_available_extensions; returns plpsql (1.0) only.

4

There are 4 answers

1
Peter Eisentraut On BEST ANSWER

The operating system package that contains the extension is not installed. To install it:

apt-get install postgresql-contrib-9.2
1
user456584 On

For anyone using the asdf version manager with the asdf-postgres plugin, installing postgres versions as follows fixes this issue:

POSTGRES_EXTRA_CONFIGURE_OPTIONS=--with-uuid=e2fs asdf install postgres <VERSION>
0
Anron Galaburda On

For you guys, who installed postgres using postgres rpm repo on Fedora or similar distro:

sudo dnf install postgresql-contrib

installs a package from default fedora repo, which conflicts with postgres, like:

/usr/pgsql-12/lib/libpq.so.5: no version information available (required by psql)

Right way is

sudo dnf install postgresql12-contrib

You can double check it during install, it has to be from pgdg12, same as postgresql-server

(you have insert your postgres version instead of '12')

0
Mohamed Dernoun On

If you still get the error, try to run manually the two SQL files inside /usr/share/postgresql/9.X/extension/uuid-ossp*.sql into your database