Thread: Record type and ROW type in pl/pgsql functions
SGVsbG8sDQogSSdtIHJ1bm5pbmlnIGxhdGVzdCB2ZXJzaW9uICg3LjQuMikg b2YgcG9zdGdyZXNxbCBvbiBPcGVuQlNEIDMuNC4NCg0KIEkgY3JlYXRlZCB0 YWJsZQ0KDQpDUkVBVEUgVEFCTEUgImJpbGxpbmciLiJtYWlsX3JlbGF5aG9z dHMiICgNCiAgImlkIiBTRVJJQUwsIA0KICAiaG9zdHMiIENJRFIsIA0KICAi ZGVzY3JpcHRpb24iIFZBUkNIQVIoMjU1KSwgDQogIENPTlNUUkFJTlQgIm1h aWxfcmVsYXlob3N0c19wa2V5IiBQUklNQVJZIEtFWSgiaWQiKQ0KKTsNCg0K YW5kIG1hZGUgcGwvcGdzcWwgZnVuY3Rpb246DQoNCkNSRUFURSBPUiBSRVBM QUNFIEZVTkNUSU9OICJiaWxsaW5nIi4ibWFpbF9nZXRfcmVsYXlob3N0cyIg KCkgUkVUVVJOUyB2YXJjaGFyIEFTJw0KZGVjbGFyZQ0KaG9zdHNfc3RyIG1h aWxfcmVsYXlob3N0cyVST1dUWVBFOw0KaHN0IHZhcmNoYXIoMjU2KTsNCmJl Z2luDQpoc3Q6PScnMTI3LjAuMC4xJyc7DQpGT1IgaG9zdHNfc3RyIElOICBT RUxFQ1QgaG9zdHMgZnJvbSBtYWlsX3JlbGF5aG9zdHMgTE9PUA0KaHN0Oj1o c3R8fCcnOicnfHx0ZXh0KGhvc3RzX3N0ci5ob3N0cyk7DQpFTkQgTE9PUDsN CnJldHVybiBoc3Q6OnZhcmNoYXI7DQplbmQ7DQonTEFOR1VBR0UgJ3BscGdz cWwnIFZPTEFUSUxFIENBTExFRCBPTiBOVUxMIElOUFVUIFNFQ1VSSVRZIElO Vk9LRVI7DQoNCndoZW4gSSBjYWxsIHRoaXMgZmluY3Rpb24gSSBnZXQgZXJy b3I6DQogRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgaW50ZWdl cjogIjIxNy4yMy4xODQuMC8yNCINCiBBY3R1YWxseSB0aGVyZSBpcyBhIHJl Y29yZCBpbiBtYWlsX3JlbGF5aG9zdHMuDQoNCiBidXQgaWYgbWFrZSBmdW5j dGlvbiBsaWtlIHRoaXM6DQoNCkNSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9O ICJiaWxsaW5nIi4ibWFpbF9nZXRfcmVsYXlob3N0cyIgKCkgUkVUVVJOUyB2 YXJjaGFyIEFTJw0KZGVjbGFyZQ0KaG9zdHNfc3RyIFJFQ09SRDsNCmhzdCB2 YXJjaGFyKDI1Nik7DQpiZWdpbg0KaHN0Oj0nJzEyNy4wLjAuMScnOw0KRk9S IGhvc3RzX3N0ciBJTiAgU0VMRUNUIGhvc3RzIGZyb20gbWFpbF9yZWxheWhv c3RzIExPT1ANCmhzdDo9aHN0fHwnJzonJ3x8dGV4dChob3N0c19zdHIuaG9z dHMpOw0KRU5EIExPT1A7DQpyZXR1cm4gaHN0Ojp2YXJjaGFyOw0KZW5kOw0K J0xBTkdVQUdFICdwbHBnc3FsJyBWT0xBVElMRSBDQUxMRUQgT04gTlVMTCBJ TlBVVCBTRUNVUklUWSBJTlZPS0VSOyANCg0KDQpldmVyeXRoaW5nIHdvcmtz IGZpbmUuIElzIHRoZXJlIGFueSBkaWZmZXJlbmNlIGJldHdlZW4gcm93dHlw ZSBhbmQNCnJlY29yZD8NCkkgdW5kZXJzdGFuZCByb3d0eXBlIGhhcyBwcmVk ZWZpbmVkIHN0cnVjdHVyZSwgdGhhdCByZWNvcmQNCmhhcyBub3QuDQpCdXQg YnkgbWFudWFsIGRlc2NyaXB0aW9uIGluIExvb3BpbmcgVGhyb3VnaCBRdWVy eSBSZXN1bHRzDQphcyB2YXJpYWJsZXMgY2FuIGJlIHRha2VuIGJvdGggb2Yg dGhlbToNCkZPUiByZWNvcmRfb3Jfcm93IElOIHF1ZXJ5IExPT1ANCiAgICBz dGF0ZW1lbnRzDQpFTkQgTE9PUDsNCg0KQnV0IGluIHByYWN0aWNlIG9ubHkg cmVjb3JkIHR5cGUgY2FuIGJlIHRha2VuLg0KSXMgaXQgYnVnIG9yIEkndmUg c29tZXRoaW5nIG1pc3NlZD8NCg0KQmVzdCByZWdhcmRzLCBEaW5hciBUYWxp cG92DQoNCg0KDQoNCg0KDQoNCg==
dinar@yantel.ru writes: > declare > hosts_str mail_relayhosts%ROWTYPE; > ... > FOR hosts_str IN SELECT hosts from mail_relayhosts LOOP You would need SELECT * FROM here, if you're selecting the whole row. This is going to try to stuff "hosts" into the first column of the rowtype variable, which is the wrong datatype. (I think it would then complain about too few columns supplied, but it's not getting that far.) regards, tom lane