Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unable to use crosstab in Postgres

Postgres 9.2.1 on OSX 10.9.2.

If I run the following crosstab example query:

CREATE EXTENSION tablefunc; 

CREATE TABLE ct(id SERIAL, rowid TEXT, attribute TEXT, value TEXT);
INSERT INTO ct(rowid, attribute, value) VALUES('test1','att1','val1');

SELECT *
FROM crosstab(
  'select rowid, attribute, value
   from ct
   where attribute = ''att2'' or attribute = ''att3''
   order by 1,2')
AS ct(row_name text, category_1 text, category_2 text, category_3 text);

I get: ERROR: extension "tablefunc" already exists

But if I comment out CREATE EXTENSION

I get: ERROR: function crosstab(unknown) does not exist

How can I get out of this vicious circle? Is it a known issue?

like image 669
Black Avatar asked Apr 15 '14 01:04

Black


1 Answers

You can change the first line into:

CREATE EXTENSION IF NOT EXISTS tablefunc;
like image 169
akbarbin Avatar answered Oct 21 '22 16:10

akbarbin