1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
|
[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)
|