[GrantFu] roles = pgq_writer, pgq_admin, pgq_reader, public [1.public.fns] on.functions = %(pgq_node_public_fns)s public = execute # cascaded consumer, target side [2.consumer.fns] on.functions = %(pgq_node_consumer_fns)s pgq_writer = execute pgq_admin = execute # cascaded worker, target side [3.worker.fns] on.functions = %(pgq_node_worker_fns)s pgq_admin = execute # cascaded consumer/worker, source side [4.remote.fns] on.functions = %(pgq_node_remote_fns)s pgq_reader = execute pgq_writer = execute pgq_admin = execute # called by ticker, upgrade script [4.admin.fns] on.functions = %(pgq_node_admin_fns)s pgq_admin = execute [5.tables] pgq_reader = select pgq_writer = select pgq_admin = select, insert, update, delete on.tables = pgq_node.node_location, pgq_node.node_info, pgq_node.local_state, pgq_node.subscriber_info # define various groups of functions [DEFAULT] pgq_node_remote_fns = pgq_node.get_consumer_info(text), pgq_node.get_consumer_state(text, text), pgq_node.get_queue_locations(text), pgq_node.get_node_info(text), pgq_node.get_subscriber_info(text), pgq_node.register_subscriber(text, text, text, int8), pgq_node.unregister_subscriber(text, text), pgq_node.set_subscriber_watermark(text, text, bigint) pgq_node_public_fns = pgq_node.is_root_node(text), pgq_node.is_leaf_node(text), pgq_node.version() pgq_node_admin_fns = pgq_node.register_location(text, text, text, boolean), pgq_node.unregister_location(text, text), pgq_node.upgrade_schema(), pgq_node.maint_watermark(text) pgq_node_consumer_fns = pgq_node.register_consumer(text, text, text, int8), pgq_node.unregister_consumer(text, text), pgq_node.change_consumer_provider(text, text, text), pgq_node.set_consumer_uptodate(text, text, boolean), pgq_node.set_consumer_paused(text, text, boolean), pgq_node.set_consumer_completed(text, text, int8), pgq_node.set_consumer_error(text, text, text) pgq_node_worker_fns = pgq_node.create_node(text, text, text, text, text, bigint, text), pgq_node.drop_node(text, text), pgq_node.demote_root(text, int4, text), pgq_node.promote_branch(text), pgq_node.set_node_attrs(text, text), pgq_node.get_worker_state(text), pgq_node.set_global_watermark(text, bigint), pgq_node.set_partition_watermark(text, text, bigint)