Обсуждение: BUG #14325: backup restore inherited constraint

Поиск
Список
Период
Сортировка

BUG #14325: backup restore inherited constraint

От
vbv256@yandex.ru
Дата:
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=

Re: BUG #14325: backup restore inherited constraint

От
Michael Paquier
Дата:
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

Re: [BUGS] BUG #14325: backup restore inherited constraint

От
Nikolay Samokhvalov
Дата:
On Tue, Sep 20, 2016 at 1:14 AM, Michael Paquier <michael.paquier@gmail.com> wrote:
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.