Hackfut Security File Manager
Current Path:
/opt/td-agent/embedded/share/man/man7
opt
/
td-agent
/
embedded
/
share
/
man
/
man7
/
📁
..
📄
ABORT.7
(2.17 KB)
📄
ALTER_AGGREGATE.7
(4.97 KB)
📄
ALTER_COLLATION.7
(2.8 KB)
📄
ALTER_CONVERSION.7
(2.89 KB)
📄
ALTER_DATABASE.7
(5.71 KB)
📄
ALTER_DEFAULT_PRIVILEGES.7
(6.34 KB)
📄
ALTER_DOMAIN.7
(6.96 KB)
📄
ALTER_EVENT_TRIGGER.7
(2.42 KB)
📄
ALTER_EXTENSION.7
(6.89 KB)
📄
ALTER_FOREIGN_DATA_WRAPPER.7
(4.56 KB)
📄
ALTER_FOREIGN_TABLE.7
(12.8 KB)
📄
ALTER_FUNCTION.7
(8.26 KB)
📄
ALTER_GROUP.7
(3.08 KB)
📄
ALTER_INDEX.7
(5.59 KB)
📄
ALTER_LANGUAGE.7
(2.1 KB)
📄
ALTER_LARGE_OBJECT.7
(1.97 KB)
📄
ALTER_MATERIALIZED_VIEW.7
(4.66 KB)
📄
ALTER_OPERATOR.7
(3.67 KB)
📄
ALTER_OPERATOR_CLASS.7
(2.86 KB)
📄
ALTER_OPERATOR_FAMILY.7
(9.12 KB)
📄
ALTER_POLICY.7
(2.88 KB)
📄
ALTER_ROLE.7
(9.04 KB)
📄
ALTER_RULE.7
(2.21 KB)
📄
ALTER_SCHEMA.7
(2.31 KB)
📄
ALTER_SEQUENCE.7
(7.53 KB)
📄
ALTER_SERVER.7
(3.41 KB)
📄
ALTER_SYSTEM.7
(3.8 KB)
📄
ALTER_TABLE.7
(35.2 KB)
📄
ALTER_TABLESPACE.7
(3.35 KB)
📄
ALTER_TEXT_SEARCH_CONFIGURATION.7
(4.79 KB)
📄
ALTER_TEXT_SEARCH_DICTIONARY.7
(4.02 KB)
📄
ALTER_TEXT_SEARCH_PARSER.7
(2.23 KB)
📄
ALTER_TEXT_SEARCH_TEMPLATE.7
(2.26 KB)
📄
ALTER_TRIGGER.7
(2.98 KB)
📄
ALTER_TYPE.7
(7.15 KB)
📄
ALTER_USER.7
(2.66 KB)
📄
ALTER_USER_MAPPING.7
(3.26 KB)
📄
ALTER_VIEW.7
(4.67 KB)
📄
ANALYZE.7
(7.67 KB)
📄
BEGIN.7
(4.06 KB)
📄
CHECKPOINT.7
(2.29 KB)
📄
CLOSE.7
(2.72 KB)
📄
CLUSTER.7
(6.23 KB)
📄
COMMENT.7
(10.2 KB)
📄
COMMIT.7
(2.1 KB)
📄
COMMIT_PREPARED.7
(2.58 KB)
📄
COPY.7
(29.88 KB)
📄
CREATE_ACCESS_METHOD.7
(2.9 KB)
📄
CREATE_AGGREGATE.7
(23.35 KB)
📄
CREATE_CAST.7
(13.55 KB)
📄
CREATE_COLLATION.7
(3.97 KB)
📄
CREATE_CONVERSION.7
(3.78 KB)
📄
CREATE_DATABASE.7
(8.48 KB)
📄
CREATE_DOMAIN.7
(6.52 KB)
📄
CREATE_EVENT_TRIGGER.7
(3.74 KB)
📄
CREATE_EXTENSION.7
(6.57 KB)
📄
CREATE_FOREIGN_DATA_WRAPPER.7
(4.96 KB)
📄
CREATE_FOREIGN_TABLE.7
(9 KB)
📄
CREATE_FUNCTION.7
(24.73 KB)
📄
CREATE_GROUP.7
(2.11 KB)
📄
CREATE_INDEX.7
(19.56 KB)
📄
CREATE_LANGUAGE.7
(9.83 KB)
📄
CREATE_MATERIALIZED_VIEW.7
(4.21 KB)
📄
CREATE_OPERATOR.7
(6.88 KB)
📄
CREATE_OPERATOR_CLASS.7
(8.52 KB)
📄
CREATE_OPERATOR_FAMILY.7
(3.6 KB)
📄
CREATE_POLICY.7
(15.92 KB)
📄
CREATE_ROLE.7
(12.69 KB)
📄
CREATE_RULE.7
(8.63 KB)
📄
CREATE_SCHEMA.7
(6.15 KB)
📄
CREATE_SEQUENCE.7
(9.79 KB)
📄
CREATE_SERVER.7
(3.63 KB)
📄
CREATE_TABLE.7
(42.1 KB)
📄
CREATE_TABLESPACE.7
(4.47 KB)
📄
CREATE_TABLE_AS.7
(7.8 KB)
📄
CREATE_TEXT_SEARCH_CONFIGURATION.7
(3.19 KB)
📄
CREATE_TEXT_SEARCH_DICTIONARY.7
(3.34 KB)
📄
CREATE_TEXT_SEARCH_PARSER.7
(3.56 KB)
📄
CREATE_TEXT_SEARCH_TEMPLATE.7
(3.38 KB)
📄
CREATE_TRANSFORM.7
(5.79 KB)
📄
CREATE_TRIGGER.7
(16.3 KB)
📄
CREATE_TYPE.7
(28.96 KB)
📄
CREATE_USER.7
(2.45 KB)
📄
CREATE_USER_MAPPING.7
(3.27 KB)
📄
CREATE_VIEW.7
(14.63 KB)
📄
DEALLOCATE.7
(1.98 KB)
📄
DECLARE.7
(10.22 KB)
📄
DELETE.7
(7.36 KB)
📄
DISCARD.7
(2.81 KB)
📄
DO.7
(3.08 KB)
📄
DROP_ACCESS_METHOD.7
(2.35 KB)
📄
DROP_AGGREGATE.7
(3.8 KB)
📄
DROP_CAST.7
(2.26 KB)
📄
DROP_COLLATION.7
(2.42 KB)
📄
DROP_CONVERSION.7
(2.36 KB)
📄
DROP_DATABASE.7
(2.38 KB)
📄
DROP_DOMAIN.7
(2.34 KB)
📄
DROP_EVENT_TRIGGER.7
(2.38 KB)
📄
DROP_EXTENSION.7
(2.73 KB)
📄
DROP_FOREIGN_DATA_WRAPPER.7
(2.61 KB)
📄
DROP_FOREIGN_TABLE.7
(2.59 KB)
📄
DROP_FUNCTION.7
(3.35 KB)
📄
DROP_GROUP.7
(1.57 KB)
📄
DROP_INDEX.7
(3.08 KB)
📄
DROP_LANGUAGE.7
(2.86 KB)
📄
DROP_MATERIALIZED_VIEW.7
(2.64 KB)
📄
DROP_OPERATOR.7
(3.01 KB)
📄
DROP_OPERATOR_CLASS.7
(3.48 KB)
📄
DROP_OPERATOR_FAMILY.7
(3.24 KB)
📄
DROP_OWNED.7
(3.14 KB)
📄
DROP_POLICY.7
(2.53 KB)
📄
DROP_ROLE.7
(3.05 KB)
📄
DROP_RULE.7
(2.35 KB)
📄
DROP_SCHEMA.7
(2.76 KB)
📄
DROP_SEQUENCE.7
(2.46 KB)
📄
DROP_SERVER.7
(2.39 KB)
📄
DROP_TABLE.7
(2.97 KB)
📄
DROP_TABLESPACE.7
(2.48 KB)
📄
DROP_TEXT_SEARCH_CONFIGURATION.7
(2.83 KB)
📄
DROP_TEXT_SEARCH_DICTIONARY.7
(2.75 KB)
📄
DROP_TEXT_SEARCH_PARSER.7
(2.66 KB)
📄
DROP_TEXT_SEARCH_TEMPLATE.7
(2.69 KB)
📄
DROP_TRANSFORM.7
(2.59 KB)
📄
DROP_TRIGGER.7
(2.6 KB)
📄
DROP_TYPE.7
(2.53 KB)
📄
DROP_USER.7
(1.65 KB)
📄
DROP_USER_MAPPING.7
(2.56 KB)
📄
DROP_VIEW.7
(2.43 KB)
📄
END.7
(2.19 KB)
📄
EXECUTE.7
(2.9 KB)
📄
EXPLAIN.7
(13.03 KB)
📄
FETCH.7
(8.48 KB)
📄
GRANT.7
(21.29 KB)
📄
IMPORT_FOREIGN_SCHEMA.7
(3.98 KB)
📄
INSERT.7
(19.61 KB)
📄
LISTEN.7
(3.51 KB)
📄
LOAD.7
(2.54 KB)
📄
LOCK.7
(8.01 KB)
📄
MOVE.7
(2.92 KB)
📄
NOTIFY.7
(8.21 KB)
📄
PREPARE.7
(8.2 KB)
📄
PREPARE_TRANSACTION.7
(5.74 KB)
📄
REASSIGN_OWNED.7
(3.01 KB)
📄
REFRESH_MATERIALIZED_VIEW.7
(3.92 KB)
📄
REINDEX.7
(7.69 KB)
📄
RELEASE_SAVEPOINT.7
(3 KB)
📄
RESET.7
(2.93 KB)
📄
REVOKE.7
(10.44 KB)
📄
ROLLBACK.7
(2.09 KB)
📄
ROLLBACK_PREPARED.7
(2.6 KB)
📄
ROLLBACK_TO_SAVEPOINT.7
(3.94 KB)
📄
SAVEPOINT.7
(3.5 KB)
📄
SECURITY_LABEL.7
(5.39 KB)
📄
SELECT.7
(63.33 KB)
📄
SELECT_INTO.7
(4.37 KB)
📄
SET.7
(7.57 KB)
📄
SET_CONSTRAINTS.7
(4.48 KB)
📄
SET_ROLE.7
(4.36 KB)
📄
SET_SESSION_AUTHORIZATION.7
(3.88 KB)
📄
SET_TRANSACTION.7
(8.27 KB)
📄
SHOW.7
(4.22 KB)
📄
START_TRANSACTION.7
(2.9 KB)
📄
TABLE.7
(18 B)
📄
TRUNCATE.7
(6.39 KB)
📄
UNLISTEN.7
(2.75 KB)
📄
UPDATE.7
(12.26 KB)
📄
VACUUM.7
(7.92 KB)
📄
VALUES.7
(6.94 KB)
📄
WITH.7
(18 B)
Editing: NOTIFY.7
'\" t .\" Title: NOTIFY .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Date: 2018 .\" Manual: PostgreSQL 9.6.9 Documentation .\" Source: PostgreSQL 9.6.9 .\" Language: English .\" .TH "NOTIFY" "7" "2018" "PostgreSQL 9.6.9" "PostgreSQL 9.6.9 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" NOTIFY \- generate a notification .SH "SYNOPSIS" .sp .nf NOTIFY \fIchannel\fR [ , \fIpayload\fR ] .fi .SH "DESCRIPTION" .PP The \fBNOTIFY\fR command sends a notification event together with an optional \(lqpayload\(rq string to each client application that has previously executed \fBLISTEN \fR\fB\fIchannel\fR\fR for the specified channel name in the current database\&. Notifications are visible to all users\&. .PP \fBNOTIFY\fR provides a simple interprocess communication mechanism for a collection of processes accessing the same PostgreSQL database\&. A payload string can be sent along with the notification, and higher\-level mechanisms for passing structured data can be built by using tables in the database to pass additional data from notifier to listener(s)\&. .PP The information passed to the client for a notification event includes the notification channel name, the notifying session\*(Aqs server process PID, and the payload string, which is an empty string if it has not been specified\&. .PP It is up to the database designer to define the channel names that will be used in a given database and what each one means\&. Commonly, the channel name is the same as the name of some table in the database, and the notify event essentially means, \(lqI changed this table, take a look at it to see what\*(Aqs new\(rq\&. But no such association is enforced by the \fBNOTIFY\fR and \fBLISTEN\fR commands\&. For example, a database designer could use several different channel names to signal different sorts of changes to a single table\&. Alternatively, the payload string could be used to differentiate various cases\&. .PP When \fBNOTIFY\fR is used to signal the occurrence of changes to a particular table, a useful programming technique is to put the \fBNOTIFY\fR in a statement trigger that is triggered by table updates\&. In this way, notification happens automatically when the table is changed, and the application programmer cannot accidentally forget to do it\&. .PP \fBNOTIFY\fR interacts with SQL transactions in some important ways\&. Firstly, if a \fBNOTIFY\fR is executed inside a transaction, the notify events are not delivered until and unless the transaction is committed\&. This is appropriate, since if the transaction is aborted, all the commands within it have had no effect, including \fBNOTIFY\fR\&. But it can be disconcerting if one is expecting the notification events to be delivered immediately\&. Secondly, if a listening session receives a notification signal while it is within a transaction, the notification event will not be delivered to its connected client until just after the transaction is completed (either committed or aborted)\&. Again, the reasoning is that if a notification were delivered within a transaction that was later aborted, one would want the notification to be undone somehow \(em but the server cannot \(lqtake back\(rq a notification once it has sent it to the client\&. So notification events are only delivered between transactions\&. The upshot of this is that applications using \fBNOTIFY\fR for real\-time signaling should try to keep their transactions short\&. .PP If the same channel name is signaled multiple times from the same transaction with identical payload strings, the database server can decide to deliver a single notification only\&. On the other hand, notifications with distinct payload strings will always be delivered as distinct notifications\&. Similarly, notifications from different transactions will never get folded into one notification\&. Except for dropping later instances of duplicate notifications, \fBNOTIFY\fR guarantees that notifications from the same transaction get delivered in the order they were sent\&. It is also guaranteed that messages from different transactions are delivered in the order in which the transactions committed\&. .PP It is common for a client that executes \fBNOTIFY\fR to be listening on the same notification channel itself\&. In that case it will get back a notification event, just like all the other listening sessions\&. Depending on the application logic, this could result in useless work, for example, reading a database table to find the same updates that that session just wrote out\&. It is possible to avoid such extra work by noticing whether the notifying session\*(Aqs server process PID (supplied in the notification event message) is the same as one\*(Aqs own session\*(Aqs PID (available from libpq)\&. When they are the same, the notification event is one\*(Aqs own work bouncing back, and can be ignored\&. .SH "PARAMETERS" .PP \fIchannel\fR .RS 4 Name of the notification channel to be signaled (any identifier)\&. .RE .PP \fIpayload\fR .RS 4 The \(lqpayload\(rq string to be communicated along with the notification\&. This must be specified as a simple string literal\&. In the default configuration it must be shorter than 8000 bytes\&. (If binary data or large amounts of information need to be communicated, it\*(Aqs best to put it in a database table and send the key of the record\&.) .RE .SH "NOTES" .PP There is a queue that holds notifications that have been sent but not yet processed by all listening sessions\&. If this queue becomes full, transactions calling \fBNOTIFY\fR will fail at commit\&. The queue is quite large (8GB in a standard installation) and should be sufficiently sized for almost every use case\&. However, no cleanup can take place if a session executes \fBLISTEN\fR and then enters a transaction for a very long time\&. Once the queue is half full you will see warnings in the log file pointing you to the session that is preventing cleanup\&. In this case you should make sure that this session ends its current transaction so that cleanup can proceed\&. .PP The function \fBpg_notification_queue_usage\fR returns the fraction of the queue that is currently occupied by pending notifications\&. See Section 9.25, \(lqSystem Information Functions\(rq, in the documentation for more information\&. .PP A transaction that has executed \fBNOTIFY\fR cannot be prepared for two\-phase commit\&. .SS "pg_notify" .PP To send a notification you can also use the function \fBpg_notify\fR(text, text)\&. The function takes the channel name as the first argument and the payload as the second\&. The function is much easier to use than the \fBNOTIFY\fR command if you need to work with non\-constant channel names and payloads\&. .SH "EXAMPLES" .PP Configure and execute a listen/notify sequence from psql: .sp .if n \{\ .RS 4 .\} .nf LISTEN virtual; NOTIFY virtual; Asynchronous notification "virtual" received from server process with PID 8448\&. NOTIFY virtual, \*(AqThis is the payload\*(Aq; Asynchronous notification "virtual" with payload "This is the payload" received from server process with PID 8448\&. LISTEN foo; SELECT pg_notify(\*(Aqfo\*(Aq || \*(Aqo\*(Aq, \*(Aqpay\*(Aq || \*(Aqload\*(Aq); Asynchronous notification "foo" with payload "payload" received from server process with PID 14728\&. .fi .if n \{\ .RE .\} .SH "COMPATIBILITY" .PP There is no \fBNOTIFY\fR statement in the SQL standard\&. .SH "SEE ALSO" \fBLISTEN\fR(7), \fBUNLISTEN\fR(7)
Upload File
Create Folder