On Tue, Aug 20, 2013 at 7:58 PM, Tom Lane <tgl@xxxxxxxxxxxxx> wrote:
--
Well, I think you did it wrong, or else you're using a PG version that
predates some necessary fix, because it works for me.
To debug, you might try looking in pg_extension to see if the extconfig
entry for your extension includes the OID of the sequence. If not, you
messed up somehow in updating the extension. If so, you must need a
newer version of pg_dump (you did not answer the question what version
you're using).
Sorry for the delayed response. I am using postgres 9.1.4 with pg_dump of the same version.
I did basically the same thing as you, and it didn't work for me:
I created a simple extension myext as follows:
CREATE SEQUENCE sq_pk_myitem;CREATE TABLE tb_myitem(myitem integer primary key default nextval('sq_pk_myitem'),data text);SELECT pg_catalog.pg_extension_config_dump('tb_myitem', '');SELECT pg_catalog.pg_extension_config_dump('sq_pk_myitem', '');
Then I created a database for it and installed it:
postgres@moshe=>devmain:postgres=# create database mydb;CREATE DATABASEpostgres@moshe=>devmain:postgres=# \c mydbYou are now connected to database "mydb" as user "postgres".postgres@moshe=>devmain:mydb=# create extension myext;CREATE EXTENSIONpostgres@moshe=>devmain:mydb=# \d tb_myitemTable "public.tb_myitem"Column | Type | Modifiers--------+---------+----------------------------------------------------myitem | integer | not null default nextval('sq_pk_myitem'::regclass)data | text |Indexes:"tb_myitem_pkey" PRIMARY KEY, btree (myitem)postgres@moshe=>devmain:mydb=# \dx+ myextObjects in extension "myext"Object Description-----------------------sequence sq_pk_myitemtable tb_myitem(2 rows)postgres@moshe=>devmain:mydb=# \q
Then I tried to pg_dump it:
(0)(0j)[jehsom@moshe ~]$ pg_dump -U postgres mydb---- PostgreSQL database dump--
SET statement_timeout = 0;SET client_encoding = 'UTF8';SET standard_conforming_strings = on;SET check_function_bodies = false;SET client_min_messages = warning;---- Name: plpgsql; Type: EXTENSION; Schema: -; Owner:--
CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;---- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner:--
COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
---- Name: hstore; Type: EXTENSION; Schema: -; Owner:--
CREATE EXTENSION IF NOT EXISTS hstore WITH SCHEMA public;---- Name: EXTENSION hstore; Type: COMMENT; Schema: -; Owner:--
COMMENT ON EXTENSION hstore IS 'data type for storing sets of (key, value) pairs';
---- Name: myext; Type: EXTENSION; Schema: -; Owner:--
CREATE EXTENSION IF NOT EXISTS myext WITH SCHEMA public;---- Name: EXTENSION myext; Type: COMMENT; Schema: -; Owner:--
COMMENT ON EXTENSION myext IS 'my extension';SET search_path = public, pg_catalog;---- Data for Name: sq_pk_myitem; Type: TABLE DATA; Schema: public; Owner: postgres--COPY sq_pk_myitem FROM stdin;pg_dump: SQL command failedpg_dump: Error message from server: ERROR: cannot copy from sequence "sq_pk_myitem"pg_dump: The command was: COPY public.sq_pk_myitem TO stdout;(1)(0j)[jehsom@moshe ~]$
And I got the error here. I'm not sure why this happens because it doesn't happen on another server here. Any help would be appreciated.
Thanks!
Moshe Jacobson
Nead Werx, Inc. | Manager of Systems Engineering
Nead Werx, Inc. | Manager of Systems Engineering
2323 Cumberland Parkway, Suite 201 | Atlanta, GA 30339
moshe@xxxxxxxxxxxx | www.neadwerx.com
moshe@xxxxxxxxxxxx | www.neadwerx.com
"Quality is not an act, it is a habit." -- Aristotle