Thread: BUG #14439: Trigger function fails with internal error after upgrade to 9.6

BUG #14439: Trigger function fails with internal error after upgrade to 9.6

From
max.valjanski@gmail.com
Date:
VGhlIGZvbGxvd2luZyBidWcgaGFzIGJlZW4gbG9nZ2VkIG9uIHRoZSB3ZWJz
aXRlOgoKQnVnIHJlZmVyZW5jZTogICAgICAxNDQzOQpMb2dnZWQgYnk6ICAg
ICAgICAgIE1heGltIFZhbHlhbnNraXkKRW1haWwgYWRkcmVzczogICAgICBt
YXgudmFsamFuc2tpQGdtYWlsLmNvbQpQb3N0Z3JlU1FMIHZlcnNpb246IDku
Ni4xCk9wZXJhdGluZyBzeXN0ZW06ICAgQ2VudE9TIDYuOApEZXNjcmlwdGlv
bjogICAgICAgIAoKVHJpZ2dlciBmdW5jdGlvbiBzdG9wcGVkIHdvcmtpbmcg
YWZ0ZXIgdXBncmFkZSBmcm9tIDkuNSB0byA5LjYuIFVwZ3JhZGUgd2FzCnBl
cmZvcm1lZCB2aWEgcGdfdXBncmFkZS4NCg0KVGhpcyBpcyB0aGF0IGVycm9y
IG91dHB1dDoNCg0KIyB1cGRhdGUgYWJfZ3JvdXAgc2V0IG5hbWU9J0RvbWFp
biBDb250cm9sbGVyeicgd2hlcmUgaWQ9NDY2Ow0KRVJST1I6ICB0YWJsZSBy
b3cgdHlwZSBhbmQgcXVlcnktc3BlY2lmaWVkIHJvdyB0eXBlIGRvIG5vdCBt
YXRjaA0K0J/QntCU0KDQntCR0J3QntCh0KLQmDogIFF1ZXJ5IHByb3ZpZGVz
IGEgdmFsdWUgZm9yIGEgZHJvcHBlZCBjb2x1bW4gYXQgb3JkaW5hbApwb3Np
dGlvbiA2Lg0K0JrQntCd0KLQldCa0KHQojogIFNRTCBzdGF0ZW1lbnQgIlVQ
REFURSBhYl9ncm91cCBTRVQgbmFtZV9naW4gPQp0b190c3ZlY3Rvcignc2lt
cGxlJywgTkVXLm5hbWUpIFdIRVJFIGlkID0gTkVXLmlkIEFORCBORVcubmFt
ZSA8PgpPTEQubmFtZSINClBML3BnU1FMIGZ1bmN0aW9uIHVwZGF0ZV9ncm91
cF9uYW1lX2dpbigpIGxpbmUgNCBhdCBTUUwgc3RhdGVtZW50DQoNCkkgdHJp
ZWQgdG8gcmVjcmVhdGUgZnVuY3Rpb24sIG1hZGUgVkFDVVVNIEZVTEwgYW5k
IENMVVNURVIgZm9yIHRoYXQgdGFibGUKYW5kIGl0IGRpZCBub3QgZml4IHRo
ZSBwcm9ibGVtLg0KDQpIZXJlIGlzIHNvdXJjZSBjb2RlIGZvciB0aGF0IGZ1
bmN0aW9uOg0KDQpDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBwdWJsaWMu
dXBkYXRlX2dyb3VwX25hbWVfZ2luKCkNCiBSRVRVUk5TIHRyaWdnZXINCiBM
QU5HVUFHRSBwbHBnc3FsDQpBUyAkZnVuY3Rpb24kDQogICAgICAgICAgICBC
RUdJTg0KICAgICAgICAgICAgICAgIElGIChUR19PUCA9ICdVUERBVEUnKSBU
SEVODQogICAgICAgICAgICAgICAgICAgIFVQREFURSBhYl9ncm91cCBTRVQg
bmFtZV9naW4gPSB0b190c3ZlY3Rvcignc2ltcGxlJywKTkVXLm5hbWUpIFdI
RVJFIGlkID0gTkVXLmlkIEFORCBORVcubmFtZSA8PiBPTEQubmFtZTsNCiAg
ICAgICAgICAgICAgICAgICAgUkVUVVJOIE5FVzsNCiAgICAgICAgICAgICAg
ICBFTFNJRiAoVEdfT1AgPSAnSU5TRVJUJykgVEhFTg0KICAgICAgICAgICAg
ICAgICAgICBVUERBVEUgYWJfZ3JvdXAgU0VUIG5hbWVfZ2luID0gdG9fdHN2
ZWN0b3IoJ3NpbXBsZScsCk5FVy5uYW1lKSBXSEVSRSBpZCA9IE5FVy5pZDsN
CiAgICAgICAgICAgICAgICBFTkQgSUY7DQogICAgICAgICAgICAgICAgUkVU
VVJOIE5VTEw7DQogICAgICAgICAgICBFTkQ7DQogICAgICAgICRmdW5jdGlv
biQNCiAKCg==
max.valjanski@gmail.com writes:
> # update ab_group set name=3D'Domain Controllerz' where id=3D466;
> ERROR:  table row type and query-specified row type do not match
> =D0=9F=D0=9E=D0=94=D0=A0=D0=9E=D0=91=D0=9D=D0=9E=D0=A1=D0=A2=D0=98:  Que=
ry provides a value for a dropped column at ordinal
> position 6.
> =D0=9A=D0=9E=D0=9D=D0=A2=D0=95=D0=9A=D0=A1=D0=A2:  SQL statement "UPDATE=
 ab_group SET name_gin =3D
> to_tsvector('simple', NEW.name) WHERE id =3D NEW.id AND NEW.name <>
> OLD.name"
> PL/pgSQL function update_group_name_gin() line 4 at SQL statement

Wait a minute ... the trigger is issuing another UPDATE on its
own table?  Aren't you risking an infinite recursion?

Could we see the result of

select attname,atttypid,attnum,attisdropped from pg_attribute
where attrelid =3D 'ab_group'::regclass order by attnum;

Also the exact definitions of all triggers and rules for that table.

            regards, tom lane
max.valjanski@gmail.com writes:
> Trigger function stopped working after upgrade from 9.5 to 9.6. Upgrade was
> performed via pg_upgrade.

After further thought I suspect this is the same issue discovered earlier
this month:

https://www.postgresql.org/message-id/flat/83shraampf.fsf%40is-it.eu

There's a patch here:

https://git.postgresql.org/gitweb/?p=postgresql.git&a=commitdiff&h=f4d865f22

If you're not prepared to rebuild with the patch, I think the only
short-term workaround is to recreate the table without a dropped
column.

            regards, tom lane