From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | fcs1(at)poczta(dot)onet(dot)pl |
Cc: | pgsql-bugs(at)postgresql(dot)org |
Subject: | Re: BUG #12259: Bug in restore Serial definition |
Date: | 2014-12-17 17:46:23 |
Message-ID: | 4094.1418838383@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
fcs1(at)poczta(dot)onet(dot)pl writes:
> I have two schemas: public and blob01.
> In blob01 schema I have only one table "blob" with primary index ID defined
> as
> nextval('blob01.osr_blob_id_seq'::regclass)
> After restoring by PG_restore the definition is changed to
> nextval('osr_blob_id_seq'::regclass), the schema definition is dropped.
> Due to this the sequence is not accessible because it is in blob01 schema,
> not in public schema.
This report doesn't prove there's anything wrong. A regclass constant is
not ordinarily displayed with a schema unless the target object wouldn't
be found in the current search path. For example:
regression=# create schema blob01;
CREATE SCHEMA
regression=# create sequence blob01.osr_blob_id_seq;
CREATE SEQUENCE
regression=# create table blob01.blob(f1 int default nextval('blob01.osr_blob_id_seq'));
CREATE TABLE
regression=# \d blob01.blob
Table "blob01.blob"
Column | Type | Modifiers
--------+---------+-----------------------------------------------------
f1 | integer | default nextval('blob01.osr_blob_id_seq'::regclass)
regression=# set search_path = blob01;
SET
regression=# \d blob01.blob
Table "blob01.blob"
Column | Type | Modifiers
--------+---------+----------------------------------------------
f1 | integer | default nextval('osr_blob_id_seq'::regclass)
When I pg_dump this, I get output like
SET search_path = blob01, pg_catalog;
--
-- Name: osr_blob_id_seq; Type: SEQUENCE; Schema: blob01; Owner: postgres
--
CREATE SEQUENCE osr_blob_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE osr_blob_id_seq OWNER TO postgres;
--
-- Name: blob; Type: TABLE; Schema: blob01; Owner: postgres; Tablespace:
--
CREATE TABLE blob (
f1 integer DEFAULT nextval('osr_blob_id_seq'::regclass)
);
ALTER TABLE blob OWNER TO postgres;
which will work just fine because of the search_path setting.
There may indeed be some bug in this vicinity, but you'll need to provide
a complete self-contained test case to prove it.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Mark Kirkwood | 2014-12-17 20:52:12 | Re: BUG #12258: run php file |
Previous Message | David G Johnston | 2014-12-17 16:21:57 | Re: BUG #12257: Cause for: Exception 0xC0000005 |