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
---------------------------(end of broadcast)--------------------------- TIP 4: Don't 'kill -9' the postmaster