Thread: 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-----