summaryrefslogtreecommitdiff
path: root/sql/pgq_node/structure/grants.ini
blob: 39a012653c134c18e58948859f6aed93dfe57435 (plain)
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)