If you are referring to my patch, Bruce - that does not fix it. Mine
only addresses psql.
I don't think that pg_dump uses pg_get_constraintdef(). It's probably a
side effect of switching from using consrc to conbin.
Chris
Bruce Momjian wrote:
> I have a fix for this in the patch queue and it will be applied in 24
> hours. If you want to try it, it is at:
>
> http://momjian.postgresql.org/cgi-bin/pgpatches
>
>
>
> ---------------------------------------------------------------------------
>
> Bruno Wolff III wrote:
>
>>If you have a check constraint that tests if a boolean column is not
>>false by just using the column name, pg_dump doesn't include parens
>>around the check constraint which causes a syntax error when reloading
>>the database.
>>
>>Using the following to create a table:
>>create table test (col1 boolean constraint test check (col1));
>>
>>pg_dump -c produced the following:
>>--
>>-- PostgreSQL database dump
>>--
>>
>>SET SESSION AUTHORIZATION 'postgres';
>>
>>SET SESSION AUTHORIZATION 'bruno';
>>
>>SET search_path = public, pg_catalog;
>>
>>DROP TABLE public.test;
>>SET SESSION AUTHORIZATION 'postgres';
>>
>>--
>>-- TOC entry 3 (OID 2200)
>>-- Name: public; Type: ACL; Schema: -; Owner: postgres
>>--
>>
>>REVOKE ALL ON SCHEMA public FROM PUBLIC;
>>GRANT ALL ON SCHEMA public TO PUBLIC;
>>
>>
>>SET SESSION AUTHORIZATION 'bruno';
>>
>>--
>>-- TOC entry 4 (OID 605016)
>>-- Name: test; Type: TABLE; Schema: public; Owner: bruno
>>--
>>
>>CREATE TABLE test (
>> col1 boolean,
>> CONSTRAINT test CHECK col1
>>);
>>
>>
>>--
>>-- Data for TOC entry 5 (OID 605016)
>>-- Name: test; Type: TABLE DATA; Schema: public; Owner: bruno
>>--
>>
>>COPY test (col1) FROM stdin;
>>\.
>>
>>
>>SET SESSION AUTHORIZATION 'postgres';
>>
>>--
>>-- TOC entry 2 (OID 2200)
>>-- Name: SCHEMA public; Type: COMMENT; Schema: -; Owner: postgres
>>--
>>
>>COMMENT ON SCHEMA public IS 'Standard public schema';
>>
>>
>>
>>---------------------------(end of broadcast)---------------------------
>>TIP 8: explain analyze is your friend
>>
>
>