Обсуждение: BUG #14147: Restore of MatView of Foreign Data Table fails

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

BUG #14147: Restore of MatView of Foreign Data Table fails

От
lalbin@scharp.org
Дата:
VGhlIGZvbGxvd2luZyBidWcgaGFzIGJlZW4gbG9nZ2VkIG9uIHRoZSB3ZWJz
aXRlOgoKQnVnIHJlZmVyZW5jZTogICAgICAxNDE0NwpMb2dnZWQgYnk6ICAg
ICAgICAgIExsb3lkIEFsYmluCkVtYWlsIGFkZHJlc3M6ICAgICAgbGFsYmlu
QHNjaGFycC5vcmcKUG9zdGdyZVNRTCB2ZXJzaW9uOiA5LjUuMwpPcGVyYXRp
bmcgc3lzdGVtOiAgIFNVU0UgTGludXggKDY0LWJpdCkKRGVzY3JpcHRpb246
ICAgICAgICAKCkkgaGF2ZSBmb3VuZCB0aGF0IHJlc3RvcmF0aW9uIG9mIE1h
dGVyaWFsaXplZCBWaWV3cyBvZiBGb3JlaWduIERhdGEgVGFibGVzCndoZXJl
IHVzZXIgcG9zdGdyZXMgZG9lcyBub3QgaGF2ZSBhIHVzZXIgbWFwcGluZyB3
aWxsIGZhaWwuIEl0IHNlZW1zIHRoYXQgaXQKaXMgdHJ5aW5nIHRvIGV4ZWN1
dGUgdGhlIEZvcmVpZ24gRGF0YSBUYWJsZSBpbiBzb21lIHdheSBpbnN0ZWFk
IG9mIHJlYWRpbmcKdGhlIEZvcmVpZ24gVGFibGUgRGVmaW5pdGlvbi4NCg0K
VGhlIG9ubHkgd29ya2Fyb3VuZCB0aGF0IEkgaGF2ZSBmb3VuZCBpcyB0byBj
cmVhdGUgYSB1c2VyIG1hcHBpbmcgZm9yIHVzZXIKcG9zdGdyZXMgZm9yIGV2
ZXJ5IGZvcmVpZ24gZGF0YSBjb25uZWN0aW9uLiANCg0KRXhhbXBsZToNCg0K
Q1JFQVRFIERBVEFCQVNFIGRiX2ENCiAgV0lUSCBFTkNPRElORyA9ICdVVEY4
Jw0KICAgIFRFTVBMQVRFID0gdGVtcGxhdGUxOw0KDQpDUkVBVEUgUk9MRSBq
b2UgTE9HSU4gUEFTU1dPUkQgJ3h4eCc7DQoNClNFVCBST0xFIGpvZTsNCgkN
CkNSRUFURSBUQUJMRSBwdWJsaWMudGVzdCAoDQogIGlkIFNFUklBTCwNCiAg
diBURVhULA0KICBQUklNQVJZIEtFWShpZCkNCikgDQpXSVRIIChvaWRzID0g
ZmFsc2UpOw0KDQpTRVQgUk9MRSBwb3N0Z3JlczsNCgkNCkNSRUFURSBEQVRB
QkFTRSBkYl9iDQogIFdJVEggRU5DT0RJTkcgPSAnVVRGOCcNCiAgICBURU1Q
TEFURSA9IHRlbXBsYXRlMTsJDQoNCkNSRUFURSBFWFRFTlNJT04gcG9zdGdy
ZXNfZmR3Ow0KDQpHUkFOVCBVU0FHRQ0KICBPTiBGT1JFSUdOIERBVEEgV1JB
UFBFUiBwb3N0Z3Jlc19mZHcgVE8gam9lOw0KDQpDUkVBVEUgU0VSVkVSIGRi
X2ENCiAgRk9SRUlHTiBEQVRBIFdSQVBQRVIgcG9zdGdyZXNfZmR3DQogIE9Q
VElPTlMgKA0KICAgIGhvc3QgJ2xvY2FsaG9zdCcsDQogICAgcG9ydCAnNTQz
MicsDQogICAgZGJuYW1lICdkYl9hJyk7DQoNCkNSRUFURSBVU0VSIE1BUFBJ
TkcgRk9SIGpvZQ0KICBTRVJWRVIgZGJfYQ0KICBPUFRJT05TICgNCiAgICB1
c2VyICdqb2UnLA0KICAgIHBhc3N3b3JkICd4eHgnKTsNCg0KQ1JFQVRFIEZP
UkVJR04gVEFCTEUgcHVibGljLiJ0ZXN0IiAoDQogIGlkIElOVEVHRVIgTk9U
IE5VTEwsDQogIHYgVEVYVA0KKSANClNFUlZFUiBkYl9hDQpPUFRJT05TICgN
CiAgc2NoZW1hX25hbWUgJ3B1YmxpYycsDQogIHRhYmxlX25hbWUgJ3Rlc3Qn
KTsNCg0KQ1JFQVRFIE1BVEVSSUFMSVpFRCBWSUVXIHB1YmxpYy5tdl90ZXN0
IEFTIFNFTEVDVCAqIEZST00gcHVibGljLnRlc3Q7DQogIA0KQ1JFQVRFIERB
VEFCQVNFIGRiX2MNCiAgV0lUSCBFTkNPRElORyA9ICdVVEY4Jw0KICAgIFRF
TVBMQVRFID0gdGVtcGxhdGUxOw0KDQpwZ19kdW1wIC1oIGxvY2FsaG9zdCAt
VSBwb3N0Z3JlcyAtRmMgZGJfYiA+IGRiX2IucGdkdW1wDQoNCnBnX3Jlc3Rv
cmUgLWggbG9jYWxob3N0IC1VIHBvc3RncmVzIC1kIGRiX2MgZGJfYi5wZ2R1
bXAJDQoNCnBnX3Jlc3RvcmU6IFthcmNoaXZlciAoZGIpXSBFcnJvciB3aGls
ZSBQUk9DRVNTSU5HIFRPQzoNCnBnX3Jlc3RvcmU6IFthcmNoaXZlciAoZGIp
XSBFcnJvciBmcm9tIFRPQyBlbnRyeSAxODM7IDEyNTkgMTY0MzAKTUFURVJJ
QUxJWkVEIFZJDQpFVyBtdl90ZXN0IGpvZQ0KcGdfcmVzdG9yZTogW2FyY2hp
dmVyIChkYildIGNvdWxkIG5vdCBleGVjdXRlIHF1ZXJ5OiBFUlJPUjogIHVz
ZXIgbWFwcGluZwpub3QgZm8NCnVuZCBmb3IgInBvc3RncmVzIg0KICAgIENv
bW1hbmQgd2FzOiBDUkVBVEUgTUFURVJJQUxJWkVEIFZJRVcgbXZfdGVzdCBB
Uw0KIFNFTEVDVCB0ZXN0LmlkLA0KICAgIHRlc3Qudg0KICAgRlJPTSB0ZXN0
DQogIFdJVEggTk8gREFUQTsNCg0KDQoNCnBnX3Jlc3RvcmU6IFthcmNoaXZl
ciAoZGIpXSBjb3VsZCBub3QgZXhlY3V0ZSBxdWVyeTogRVJST1I6ICByZWxh
dGlvbgoibXZfdGVzdCINCmRvZXMgbm90IGV4aXN0DQogICAgQ29tbWFuZCB3
YXM6IEFMVEVSIFRBQkxFIG12X3Rlc3QgT1dORVIgVE8gam9lOw0KDQoNCnBn
X3Jlc3RvcmU6IFthcmNoaXZlciAoZGIpXSBFcnJvciBmcm9tIFRPQyBlbnRy
eSAyMTA0OyAwIDE2NDMwIE1BVEVSSUFMSVpFRApWSUVXDQogREFUQSBtdl90
ZXN0IGpvZQ0KcGdfcmVzdG9yZTogW2FyY2hpdmVyIChkYildIGNvdWxkIG5v
dCBleGVjdXRlIHF1ZXJ5OiBFUlJPUjogIHJlbGF0aW9uCiJtdl90ZXN0Ig0K
ZG9lcyBub3QgZXhpc3QNCiAgICBDb21tYW5kIHdhczogUkVGUkVTSCBNQVRF
UklBTElaRUQgVklFVyBtdl90ZXN0Ow0KDQoNCg0KV0FSTklORzogZXJyb3Jz
IGlnbm9yZWQgb24gcmVzdG9yZTogMw0KCgo=

Re: BUG #14147: Restore of MatView of Foreign Data Table fails

От
Tom Lane
Дата:
lalbin@scharp.org writes:
> I have found that restoration of Materialized Views of Foreign Data Tables
> where user postgres does not have a user mapping will fail. It seems that it
> is trying to execute the Foreign Data Table in some way instead of reading
> the Foreign Table Definition.

This is another variant of a problem that's been complained of multiple
times before: CREATE MATERIALIZED VIEW ... WITH NO DATA runs planning and
even does ExecutorStart for the view's query, causing issues such as lack
of permissions to be exposed.  This breaks assorted assumptions in pg_dump
and probably other places.  We need to refactor things so that that does
not happen.  Kevin, are you planning to fix that anytime soon?

            regards, tom lane

Re: BUG #14147: Restore of MatView of Foreign Data Table fails

От
Kevin Grittner
Дата:
On Mon, May 23, 2016 at 2:07 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> lalbin@scharp.org writes:
>> I have found that restoration of Materialized Views of Foreign Data Tables
>> where user postgres does not have a user mapping will fail. It seems that it
>> is trying to execute the Foreign Data Table in some way instead of reading
>> the Foreign Table Definition.
>
> This is another variant of a problem that's been complained of multiple
> times before: CREATE MATERIALIZED VIEW ... WITH NO DATA runs planning and
> even does ExecutorStart for the view's query, causing issues such as lack
> of permissions to be exposed.  This breaks assorted assumptions in pg_dump
> and probably other places.  We need to refactor things so that that does
> not happen.  Kevin, are you planning to fix that anytime soon?

I'll move this to the top of my list after dealing with any 9.6 issues
that come up.

--
Kevin Grittner
EDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company