Listen/Notify payload and interfaces
This one is for the maintainers of the various postgresql interfaces:
With the new listen/notify implementation we can send a payload along
with the notification. This has been in the protocol already since
years and there is no change needed for libpq. However we need to
adapt the various interfaces to allow a payload to be sent and
received.
A notification is sent via SQL:
http://developer.postgresql.org/pgdocs/postgres/sql-notify.html
and received via the libpq call PQnotifies:
http://developer.postgresql.org/pgdocs/postgres/libpq-notify.html
Joachim
-----BEGIN PGP SIGNED MESSAGE-----
Hash: RIPEMD160
With the new listen/notify implementation we can send a payload along
with the notification. This has been in the protocol already since
years and there is no change needed for libpq. However we need to
adapt the various interfaces to allow a payload to be sent and
received.
DBD::Pg has been ready since 2008, if you need something to test with. :)
Usage is:
while (my $notify = $dbh->pg_notifies) {
my ($name, $pid, $payload) = @$notify;
print qq{I received notice "$name" from PID $pid, payload was "$payload"\n};
}
Not sure what you mean by adapting interfaces to send payloads, I imagine
most if not all simply require a NOTIFY to be sent via PQexec.
- --
Greg Sabino Mullane greg@turnstep.com
End Point Corporation http://www.endpoint.com/
PGP Key: 0x14964AC8 201002171302
http://biglumber.com/x/web?pk=2529DF6AB8F79407E94445B4BC9B906714964AC8
-----BEGIN PGP SIGNATURE-----
iEYEAREDAAYFAkt8L3oACgkQvJuQZxSWSsik0wCfZexc8ZU2/zo4JZQ47YblKend
yEMAoLdG4IS3pc163UVSpQ11/de+xzUT
=dx6+
-----END PGP SIGNATURE-----
On Feb 17, 2010, at 10:04 AM, Greg Sabino Mullane wrote:
while (my $notify = $dbh->pg_notifies) {
my ($name, $pid, $payload) = @$notify;
print qq{I received notice "$name" from PID $pid, payload was "$payload"\n};
}Not sure what you mean by adapting interfaces to send payloads, I imagine
most if not all simply require a NOTIFY to be sent via PQexec.
Is the payload decoded to utf8 when pg_enable_utf8 is true?
Best,
David
-----BEGIN PGP SIGNED MESSAGE-----
Hash: RIPEMD160
Is the payload decoded to utf8 when pg_enable_utf8 is true?
No - there's a note in the code to look into that at some point. So
stick to ASCII for the moment. I'm sure the great DBD::Pg utf-8
overhaul (where we get rid of the pg_enable_utf8 hack) will encompass
payloads as well.
- --
Greg Sabino Mullane greg@turnstep.com
End Point Corporation http://www.endpoint.com/
PGP Key: 0x14964AC8 201002181600
http://biglumber.com/x/web?pk=2529DF6AB8F79407E94445B4BC9B906714964AC8
-----BEGIN PGP SIGNATURE-----
iEYEAREDAAYFAkt9qn4ACgkQvJuQZxSWSsiM0ACgnjJAfKJOfIFzHBvBmXI3j/ZT
lEMAoIV6KwN186oOKqMYa6IQjYPHprzC
=AwK+
-----END PGP SIGNATURE-----
On Feb 18, 2010, at 1:01 PM, Greg Sabino Mullane wrote:
Is the payload decoded to utf8 when pg_enable_utf8 is true?
No - there's a note in the code to look into that at some point. So
stick to ASCII for the moment. I'm sure the great DBD::Pg utf-8
overhaul (where we get rid of the pg_enable_utf8 hack) will encompass
payloads as well.
Is that immanent?
Best,
David
-----BEGIN PGP SIGNED MESSAGE-----
Hash: RIPEMD160
No - there's a note in the code to look into that at some point. So
stick to ASCII for the moment. I'm sure the great DBD::Pg utf-8
overhaul (where we get rid of the pg_enable_utf8 hack) will encompass
payloads as well.
Is that immanent?
Barring sudden free time, funding, and/or a client request, no.
- --
Greg Sabino Mullane greg@turnstep.com
End Point Corporation http://www.endpoint.com/
PGP Key: 0x14964AC8 201002181711
http://biglumber.com/x/web?pk=2529DF6AB8F79407E94445B4BC9B906714964AC8
-----BEGIN PGP SIGNATURE-----
iEYEAREDAAYFAkt9u0AACgkQvJuQZxSWSsj/8wCcD6qwNvnRoQ+UJWzDuAIM1vh/
7pQAn1yRdO1bKL1qLpX8OeggS4iCl+1j
=sOJR
-----END PGP SIGNATURE-----