mirror of
https://github.com/postgres/postgres.git
synced 2026-03-23 10:55:21 -04:00
pg_dump: Preserve NO INHERIT on NOT NULL on inheritance children
When the constraint is printed without the column, we were not printing the NO INHERIT flag. Author: Jian He <jian.universality@gmail.com> Backpatch-through: 18 Discussion: https://postgr.es/m/CACJufxEDEOO09G+OQFr=HmFr9ZDLZbRoV7+pj58h3_WeJ_K5UQ@mail.gmail.com
This commit is contained in:
parent
0163951b78
commit
d0833fdae7
2 changed files with 40 additions and 0 deletions
|
|
@ -17421,6 +17421,9 @@ dumpTableSchema(Archive *fout, const TableInfo *tbinfo)
|
|||
appendPQExpBuffer(q, "CONSTRAINT %s NOT NULL %s",
|
||||
tbinfo->notnull_constrs[j],
|
||||
fmtId(tbinfo->attnames[j]));
|
||||
|
||||
if (tbinfo->notnull_noinh[j])
|
||||
appendPQExpBufferStr(q, " NO INHERIT");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1070,6 +1070,43 @@ my %tests = (
|
|||
},
|
||||
},
|
||||
|
||||
'CONSTRAINT NOT NULL / NO INHERIT' => {
|
||||
create_sql => 'CREATE TABLE dump_test.test_table_nonn (
|
||||
col1 int NOT NULL NO INHERIT,
|
||||
col2 int);
|
||||
CREATE TABLE dump_test.test_table_nonn_chld1 (
|
||||
CONSTRAINT nn NOT NULL col2 NO INHERIT)
|
||||
INHERITS (dump_test.test_table_nonn); ',
|
||||
regexp => qr/^
|
||||
\QCREATE TABLE dump_test.test_table_nonn (\E \n^\s+
|
||||
\Qcol1 integer NOT NULL NO INHERIT\E
|
||||
/xm,
|
||||
like => {
|
||||
%full_runs, %dump_test_schema_runs,
|
||||
section_pre_data => 1,
|
||||
binary_upgrade => 1,
|
||||
},
|
||||
unlike => {
|
||||
exclude_dump_test_schema => 1,
|
||||
only_dump_measurement => 1,
|
||||
},
|
||||
},
|
||||
|
||||
'CONSTRAINT NOT NULL / NO INHERIT (child1)' => {
|
||||
regexp => qr/^
|
||||
\QCREATE TABLE dump_test.test_table_nonn_chld1 (\E \n^\s+
|
||||
\QCONSTRAINT nn NOT NULL col2 NO INHERIT\E
|
||||
/xm,
|
||||
like => {
|
||||
%full_runs, %dump_test_schema_runs, section_pre_data => 1,
|
||||
},
|
||||
unlike => {
|
||||
exclude_dump_test_schema => 1,
|
||||
only_dump_measurement => 1,
|
||||
binary_upgrade => 1,
|
||||
},
|
||||
},
|
||||
|
||||
'CONSTRAINT PRIMARY KEY / WITHOUT OVERLAPS' => {
|
||||
create_sql => 'CREATE TABLE dump_test.test_table_tpk (
|
||||
col1 int4range,
|
||||
|
|
|
|||
Loading…
Reference in a new issue