INTERRUPT_STATEMENT
Interrupts the specified statement in a user session, rolls back the current transaction, and writes a success or failure message to the log file.
Sessions can be interrupted during statement execution. Only statements run by user sessions can be interrupted.
Syntax
INTERRUPT_STATEMENT( 'session‑id', statement‑id )
Parameters
session‑id |
Identifies the session to interrupt. This identifier is unique within the cluster at any point in time. |
statement‑id |
Identifies the statement to interrupt. If the statement‑id is valid, the statement can be interrupted and |
Privileges
Superuser
Messages
The following list describes messages you might encounter:
Message | Meaning |
---|---|
Statement interrupt sent. Check SESSIONS for progress. |
This message indicates success. |
Session <id> could not be successfully interrupted: session not found. |
The session ID argument to the interrupt command does not match a running session. |
Session <id> could not be successfully interrupted: statement not found. |
The statement ID does not match (or no longer matches) the ID of a running statement (if any). |
No interruptible statement running |
The statement is DDL or otherwise non-interruptible. |
Internal (system) sessions cannot be interrupted. |
The session is internal, and only statements run by external sessions can be interrupted. |
Examples
Two user sessions are open. RECORD 1 shows user session running SELECT FROM SESSION
, and RECORD 2 shows user session running COPY DIRECT
:
=> SELECT * FROM SESSIONS; -[ RECORD 1 ]--------------+---------------------------------------------------- node_name | v_vmartdb_node0001 user_name | dbadmin client_hostname | 127.0.0.1:52110 client_pid | 4554 login_timestamp | 2011-01-03 14:05:40.252625-05 session_id | stress04-4325:0x14 client_label | transaction_start | 2011-01-03 14:05:44.325781 transaction_id | 45035996273728326 transaction_description | user dbadmin (select * from sessions;) statement_start | 2011-01-03 15:36:13.896288 statement_id | 10 last_statement_duration_us | 14978 current_statement | select * from sessions; ssl_state | None authentication_method | Trust -[ RECORD 2 ]--------------+---------------------------------------------------- node_name | v_vmartdb_node0003 user_name | dbadmin client_hostname | 127.0.0.1:56367 client_pid | 1191 login_timestamp | 2011-01-03 15:31:44.939302-05 session_id | stress06-25663:0xbec client_label | transaction_start | 2011-01-03 15:34:51.05939 transaction_id | 54043195528458775 transaction_description | user dbadmin (COPY Mart_Fact FROM '/data/Mart_Fact.tbl' DELIMITER '|' NULL '\\n' DIRECT;) statement_start | 2011-01-03 15:35:46.436748 statement_id | 5 last_statement_duration_us | 1591403 current_statement | COPY Mart_Fact FROM '/data/Mart_Fact.tbl' DELIMITER '|' NULL '\\n' DIRECT; ssl_state | None authentication_method | Trust
Interrupt the COPY DIRECT
statement running in session stress06-25663:0xbec
:
=> \x Expanded display is off. => SELECT INTERRUPT_STATEMENT('stress06-25663:0x1537', 5); interrupt_statement ------------------------------------------------------------------ Statement interrupt sent. Check v_monitor.sessions for progress. (1 row)
Verify that the interrupted statement is no longer active by looking at the current_statement
column in the SESSIONS
system table. This column becomes blank when the statement is interrupted:
=> SELECT * FROM SESSIONS;
-[ RECORD 1 ]--------------+----------------------------------------------------
node_name | v_vmartdb_node0001
user_name | dbadmin
client_hostname | 127.0.0.1:52110
client_pid | 4554
login_timestamp | 2011-01-03 14:05:40.252625-05
session_id | stress04-4325:0x14
client_label |
transaction_start | 2011-01-03 14:05:44.325781
transaction_id | 45035996273728326
transaction_description | user dbadmin (select * from sessions;)
statement_start | 2011-01-03 15:36:13.896288
statement_id | 10
last_statement_duration_us | 14978
current_statement | select * from sessions;
ssl_state | None
authentication_method | Trust
-[ RECORD 2 ]--------------+----------------------------------------------------
node_name | v_vmartdb_node0003
user_name | dbadmin
client_hostname | 127.0.0.1:56367
client_pid | 1191
login_timestamp | 2011-01-03 15:31:44.939302-05
session_id | stress06-25663:0xbec
client_label |
transaction_start | 2011-01-03 15:34:51.05939
transaction_id | 54043195528458775
transaction_description | user dbadmin (COPY Mart_Fact FROM '/data/Mart_Fact.tbl'
DELIMITER '|' NULL '\\n' DIRECT;)
statement_start | 2011-01-03 15:35:46.436748
statement_id | 5
last_statement_duration_us | 1591403
current_statement
|
ssl_state | None
authentication_method | Trust