-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpgq_event_publishing.go
65 lines (59 loc) · 2.02 KB
/
pgq_event_publishing.go
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
package pgq
// Insert a event into queue.
// Parameters
// queue_name Name of the queue
// ev_type User-specified type for the event
// ev_data User data for the event
// Returns
// Event ID Calls: pgq.insert_event(7)
func (h *PGQHandle) InsertEvent3(queue_name, ev_type, ev_data string) (out int, err error) {
err = h.q.QueryRow(
"SELECT pgq.insert_event($1, $2, $3)",
queue_name,
ev_type,
ev_data,
).Scan(&out)
return
}
// Insert a event into queue with all the extra fields.
// Parameters
// queue_name Name of the queue
// ev_type User-specified type for the event
// ev_data User data for the event
// ev_extra1 Extra data field for the event
// ev_extra2 Extra data field for the event
// ev_extra3 Extra data field for the event
// ev_extra4 Extra data field for the event
// Returns
// Event ID Calls: pgq.insert_event_raw(11)
// Tables directly manipulated:
// insert - pgq.insert_event_raw(11), a C function, inserts into current event_N_M table
func (h *PGQHandle) InsertEvent7(queue_name, ev_type, ev_data, ev_extra1, ev_extra2, ev_extra3, ev_extra4 string) (out int, err error) {
err = h.q.QueryRow(
"SELECT pgq.insert_event($1, $2, $3, $4, $5, $6, $7)",
queue_name,
ev_type,
ev_data,
ev_extra1,
ev_extra2,
ev_extra3,
ev_extra4,
).Scan(&out)
return
}
// Return active event table for particular queue. Event can be added to it without going via functions, e.g. by COPY.
// If queue is disabled and GUC session_replication_role <> ‘replica’ then raises exception.
// or expressed in a different way an even table of a disabled queue is returned only on replica
// Note
// The result is valid only during current transaction.
// Permissions
// Actual insertion requires superuser access.
// Parameters
// x_queue_name Queue name.
func (h *PGQHandle) CurrentEventTable(queue_name string) (out string, err error) {
err = h.q.QueryRow(
"SELECT pgq.current_event_table($1)",
queue_name,
).Scan(&out)
return
}