Commit 81f2e514 authored by Heikki Linnakangas's avatar Heikki Linnakangas

Fix query cancellation.

In commit fe0a0b59, the datatype used for MyCancelKey and other variables
that store cancel keys were changed from long to uint32, but I missed this
one. That broke query cancellation on platforms where long is wider than 32
bits.

Report by Andres Freund, fix by Michael Paquier.
parent 9790b87f
...@@ -2216,7 +2216,7 @@ processCancelRequest(Port *port, void *pkt) ...@@ -2216,7 +2216,7 @@ processCancelRequest(Port *port, void *pkt)
{ {
CancelRequestPacket *canc = (CancelRequestPacket *) pkt; CancelRequestPacket *canc = (CancelRequestPacket *) pkt;
int backendPID; int backendPID;
long cancelAuthCode; int32 cancelAuthCode;
Backend *bp; Backend *bp;
#ifndef EXEC_BACKEND #ifndef EXEC_BACKEND
...@@ -2226,7 +2226,7 @@ processCancelRequest(Port *port, void *pkt) ...@@ -2226,7 +2226,7 @@ processCancelRequest(Port *port, void *pkt)
#endif #endif
backendPID = (int) ntohl(canc->backendPID); backendPID = (int) ntohl(canc->backendPID);
cancelAuthCode = (long) ntohl(canc->cancelAuthCode); cancelAuthCode = (int32) ntohl(canc->cancelAuthCode);
/* /*
* See if we have a matching backend. In the EXEC_BACKEND case, we can no * See if we have a matching backend. In the EXEC_BACKEND case, we can no
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment