Subject: CREATE EXTENSION: documenting prereqs

From: Josh Kupershmidt <[email-masked]>
Date: Tue, 12 Apr 2011 18:52:12 -0400

Hi all,

I think users of 9.1 will be interested in quickly seeing what
extensions are all about. Looking at the CREATE EXTENSION page[2],
there's a brief example showing the command:
|  CREATE EXTENSION hstore;

When I try this, I see something like:
|   ERROR:  could not open extension control file
"/Users/josh/runtime/share/postgresql/extension/hstore.control": No
such file or directory

Well, obviously I need to go into ./contrib/hstore/ and run make &&
make install (or install the appropriate -contrib package if I were
using a packaged build of Postgres). I think it'd be nice to give
users some hint about this prerequisite. Appendix F [1] discusses
this, but there's currently no link from [2] to [1]. The way the
CREATE EXTENSION page reads right now, I could forgive a new user
thinking he shouldn't need to install any dependencies.

A complementary approach would be to add an errhint to the "could not
open extension control file..." error suggesting that the user install
the contrib package himself, though I'm not sure offhand about the
wording, especially since a user might be trying to install
who-knows-what extension.

A possible patch for the CREATE EXTENSION page is attached.

Josh

--
[1] http://developer.postgresql.org/pgdocs/postgres/contrib.html
[2] http://developer.postgresql.org/pgdocs/postgres/sql-createextension.html
diff --git a/doc/src/sgml/ref/create_extension.sgml b/doc/src/sgml/ref/create_extension.sgml
index 818bc0c..e862c7f 100644
*** a/doc/src/sgml/ref/create_extension.sgml
--- b/doc/src/sgml/ref/create_extension.sgml
*************** CREATE EXTENSION hstore;
*** 153,158 ****
--- 153,169 ----
  </programlisting>
    </para>
  
+   <note>
+    <para>
+     For more information on how to use
+     <command>CREATE EXTENSION</command> to install modules
+     found in <productname>PostgreSQL</productname>'s
+     <literal>contrib</literal> directory, such as the hstore
+     extension, please see
+     <link linkend="contrib">Additional Supplied Modules</link>.
+    </para>
+   </note>
+ 
    <para>
     Update a pre-9.1 installation of <literal>hstore</> into
     extension style:

---

From: Tom Lane <[email-masked]>
Date: Wed, 13 Apr 2011 03:00:03 -0400

> thinking he shouldn't need to install any dependencies.

On reflection there are a couple other cross-references that would
be useful here, too.  I've committed a modified version of this.

> who-knows-what extension.

Yeah, I'm not sure how to do anything useful in one-or-so-lines there.

			regards, tom lane

---

From: Josh Kupershmidt <[email-masked]>
Date: Thu, 14 Apr 2011 20:52:15 -0400

> be useful here, too.  I've committed a modified version of this.

Thanks, that looks much improved.

Josh