Обсуждение: BUG #14325: backup restore inherited constraint
VGhlIGZvbGxvd2luZyBidWcgaGFzIGJlZW4gbG9nZ2VkIG9uIHRoZSB3ZWJz aXRlOgoKQnVnIHJlZmVyZW5jZTogICAgICAxNDMyNQpMb2dnZWQgYnk6ICAg ICAgICAgIEJvcmlzIFZ1a3MKRW1haWwgYWRkcmVzczogICAgICB2YnYyNTZA eWFuZGV4LnJ1ClBvc3RncmVTUUwgdmVyc2lvbjogOS41LjQKT3BlcmF0aW5n IHN5c3RlbTogICBTbGFja3dhcmU2NC4gQnVpbGQgZnJvbSBzb3VyY2UuIApE ZXNjcmlwdGlvbjogICAgICAgIAoKSW5jb3JyZWN0IGR1bXBpbmcgaW5oZXJp dGVkIHRhYmxlIGNvbnN0cmFpbnQuDQoNCklmIGNoaWxkIHRhYmxlIGhhcyBm aWVsZCB3aXRoIHJlbW92ZWQgaW5oZXJpdCBjb25zdHJhaW50Lg0KSW4gZHVt cCBmaWxlIHRoaXMgY29uc3RyYWludCBub3QgcmVtb3ZlZCBhbmQgZGF0YSBu b3QgcmVzdG9yZWQgY29ycmVjdGx5Lg0KUHJvYmxlbSBhbHNvIGV4aXN0IGlu IFBvc3RncmVTUUwgOS4xLiBCZWZvcmUgdGhpcyB2ZXJzaW9uIGFwcHJvcHJp YXRlCmNvbnN0cnVjdGlvbiBub3QgdXNlZCBieSBtZS4NCg0KLS0gLS0tIHRv IHJlcHJvZHVjZSBwcm9ibGVtIC0tLS0tLS0tLS0NCmJhc2gkIHBzcWwgdGVt cGxhdGUxDQp0ZW1wbGF0ZTE9IyBjcmVhdGUgZGF0YWJhc2UgdGVzdDsNCnRl bXBsYXRlMT0jIFxjIHRlc3QNCg0KdGVzdD0jIGNyZWF0ZSB0YWJsZSB0ZXN0 X3BhcmVudCgNCiAgICBmaWVsZDEgaW50LA0KICAgIGZpZWxkMiBpbnQgbm90 IG51bGwNCik7DQoNCnRlc3Q9IyBjcmVhdGUgdGFibGUgdGVzdCgNCilpbmhl cml0cyh0ZXN0X3BhcmVudCk7DQoNCnRlc3Q9IyBhbHRlciB0YWJsZSB0ZXN0 IGFsdGVyIENPTFVNTiBmaWVsZDIgZHJvcCBub3QgbnVsbDsNCg0KdGVzdD0j IGluc2VydCBpbnRvIHRlc3QoZmllbGQxLCBmaWVsZDIpDQogICAgICAgICAg ICAgIHZhbHVlcygxLDEpLA0KICAgICAgICAgICAgICAgICAgICAoMSxudWxs KTsNCg0KdGVzdD0jIFxkIHRlc3QNCiAgICAgVGFibGUgInB1YmxpYy50ZXN0 Ig0KIENvbHVtbiB8ICBUeXBlICAgfCBNb2RpZmllcnMgDQotLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0NCiBmaWVsZDEgfCBpbnRlZ2VyIHwgDQog ZmllbGQyIHwgaW50ZWdlciB8IA0KSW5oZXJpdHM6IHRlc3RfcGFyZW50DQoN Ci0tIC4uLi4uIENPTU1FTlQ6IG1vZGlmaWVycyBvZiBmaWVsZDIgaXMgZW1w dHkuLi4uLi4uDQp0ZXN0PSMgXHENCg0KYmFzaCQgcGdfZHVtcCAtQyB0ZXN0 ID4gdGVzdC5zcWwNCmJhc2gkIHBzcWwgdGVtcGxhdGUxDQp0ZW1wbGF0ZTE9 IyBkcm9wIGRhdGFiYXNlIHRlc3Q7DQp0ZW1wbGF0ZTE9IyBccQ0KDQpiYXNo JCBwc3FsIHRlbXBsYXRlMSA8IHRlc3Quc3FsDQouLi4uLi4NCkVSUk9SOiAg bnVsbCB2YWx1ZSBpbiBjb2x1bW4gImZpZWxkMiIgdmlvbGF0ZXMgbm90LW51 bGwgY29uc3RyYWludA0KREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMg KDEsIG51bGwpLg0KQ09OVEVYVDogIENPUFkgdGVzdCwgbGluZSAyOiAiMSBc TiINCkNPUFkgMA0KLi4uLi4uLg0KDQpiYXNoJCBwc3FsIHRlc3QNCnRlc3Q9 IyBcZCB0ZXN0DQogICAgIFRhYmxlICJwdWJsaWMudGVzdCINCiBDb2x1bW4g fCAgVHlwZSAgIHwgTW9kaWZpZXJzIA0KLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tDQogZmllbGQxIHwgaW50ZWdlciB8IA0KIGZpZWxkMiB8IGlu dGVnZXIgfCBub3QgbnVsbA0KSW5oZXJpdHM6IHRlc3RfcGFyZW50DQoNCi0t IC4uLi4uIENPTU1FTlQ6IG1vZGlmaWVycyBvZiBmaWVsZDIgaXMgbm90IGVt cHR5IC4uLi4uLi4NCg0KXHENCg0KLS0gLS0tLS0tLS0tLWVuZCAtLS0tLS0t LS0tLS0tLS0tDQppbiByZXN1bHQgdGFibGUgdGVzdCBoYXMgZmllbGQyIHdp dGggY29uc3RyYWludCBOT1QgTlVMTCA6KA0KDQoNClNvcnJ5IGZvciBteSBi YWQgZW5nbGlzaC4NCg0KUFM6IFN5c3RlbSBEZXRhaWw6DQojIHVuYW1lIC1h IA0KTGludXggdiA0LjcuMCAjMSBTTVAgTW9uIEF1ZyAxIDAzOjU5OjM1IEVF U1QgMjAxNiB4ODZfNjQgSW50ZWwoUikgQ29yZShUTSkyClF1YWQgQ1BVICAg IFE4MzAwICBAIDIuNTBHSHogR2VudWluZUludGVsIEdOVS9MaW51eA0KDQpQ b3N0Z3JlU1FMIGNvbmZpZ3VyZSBsaW5lOg0KLi9jb25maWd1cmUgXA0KICAg LS1wcmVmaXg9L3VzciBcDQogICAtLWxpYmRpcj0vdXNyL2xpYjY0IFwNCiAg IC0td2l0aC1wZXJsIFwNCiAgIC0td2l0aC1weXRob24gXA0KICAgLS13aXRo LW9wZW5zc2wgXA0KICAgLS13aXRoLWxpYnhtbCBcDQogICAtLXdpdGgtbGli eHNsdA0KDQpQUzE6IEN1cnJlbnRseSBJIHNvbHZlIHRoaXMgcHJvYmxlbSB1 c2UgbW9kaWZ5IGR1bXAgd2l0aCAnc2VkJyBieSBhZGRpbmcKQUxURVIgZm9y IHJlbW92ZSBjb25zdHJhaW50IGZyb20gZmllbGQgaW4gdGhpcyBjYXNlIGZv ciB0YWJsZSAndGVzdCcuDQoNClBTMjogSSdhbSB1bmRlc3RhbmQgbG9naWNh bCBpbmNvcnJlY3Rpb24gdGhpcyBjb25zdHJ1Y3Rpb24uIA0KSWYgcGFyZW50 IHJlcXVyZSBmaWVsZCB2YWx1ZSwgdGhlbiBjaGlsZCBzaG91bGQgbm90IHJl bW92ZSB0aGlzIGNvbnN0cmFpbnQuCg0KCgo=
On Fri, Sep 16, 2016 at 3:27 PM, <vbv256@yandex.ru> wrote: > If child table has field with removed inherit constraint. > In dump file this constraint not removed and data not restored correctly. > Problem also exist in PostgreSQL 9.1. Before this version appropriate > construction not used by me. > > -- --- to reproduce problem ---------- > bash$ psql template1 > template1=# create database test; > template1=# \c test > > [... test ...] What we ought to do here is forbid DROP NOT NULL on the table test. See here for example: https://www.postgresql.org/message-id/21633.1448383428@sss.pgh.pa.us So this is a known limiration, and there have been some discussions about removing this limitation in the backend, like here: https://www.postgresql.org/message-id/CAKOSWNkN6HSyatuys8xZxzRCR-KL1OkHS5-b9qd9bf1Rad3PLA@mail.gmail.com But there is no concrete patch lately. I don't think it would be *that* complicated to get a rebased and polished version of what has been proposed. It just needs care and time. > Sorry for my bad english. I think that's fine! And I am no native speaker either. -- Michael
On Tue, Sep 20, 2016 at 1:14 AM, Michael Paquier <michael.paquier@gmail.com> wrote:
+1 for this approach. Just encountered with the same behavior.
On Fri, Sep 16, 2016 at 3:27 PM, <vbv256@yandex.ru> wrote:
> If child table has field with removed inherit constraint.
> In dump file this constraint not removed and data not restored correctly.
> Problem also exist in PostgreSQL 9.1. Before this version appropriate
> construction not used by me.
>
> -- --- to reproduce problem ----------
> bash$ psql template1
> template1=# create database test;
> template1=# \c test
>
> [... test ...]
What we ought to do here is forbid DROP NOT NULL on the table test.
+1 for this approach. Just encountered with the same behavior.