stablekernel / postgresql-dart

Dart PostgreSQL driver: supports extended query format, binary protocol and statement reuse.
https://www.dartdocs.org/documentation/postgres/latest
BSD 3-Clause "New" or "Revised" License
129 stars 32 forks source link

listen to notification #147

Open saqib556612 opened 3 years ago

saqib556612 commented 3 years ago

Hello i am using postgress on cloud and i created triggerfunction and trigger in pgAdmin. Here is my trigger function

CREATE FUNCTION public.row_notifiy_n() RETURNS trigger LANGUAGE 'plpgsql' COST 100 VOLATILE NOT LEAKPROOF AS $BODY$ BEGIN PERFORM pg_notify( 'rowChanged', json_build_object( 'operation', TG_OP, 'record', row_to_json(new) )::text ); Return new; END; $BODY$;

ALTER FUNCTION public.row_notifiy_n() OWNER TO "abc";

and trigger is

CREATE TRIGGER notify AFTER INSERT OR DELETE OR UPDATE ON public."Logs" FOR EACH ROW EXECUTE PROCEDURE public.row_notifiy_n();

ALTER TABLE public."Logs" ENABLE ALWAYS TRIGGER notify;

How i can listen this in flutter

IsemicolonI commented 7 months ago

Apparently, in old versions, you could listen to notifications with connection.notifications.listen(), but with the replacement of Connection with PostgreSQLConnection, this feature no longer exists in created connection and no document exist for notification listening. I also filed this issue and am waiting for help

isoos commented 7 months ago

Not sure: are you looking for notification listeners? https://pub.dev/documentation/postgres/latest/postgres/Connection/channels.html https://pub.dev/documentation/postgres/latest/postgres/Channels-class.html

IsemicolonI commented 7 months ago

I read the source code almost 1 hour ago and realized how to do this, but it is better to put an example in Example so that there is no need to read the API reference or source code.