VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

取消正在处理的查询

客户端应用可以使用本节描述的函数,要求取消一个仍在被服务器处理的命令。

PQgetCancel

功能描述

创建一个数据结构,其中包含取消通过特定数据库连接发出的命令所需的信息。

原型

PGcancel *PQgetCancel(PGconn *conn);

参数

表7-47 PQgetCancel参数

关键字 参数说明
conn 指向包含链接信息的对象指针。

返回值

PGcancel:指向包含cancel信息对象的指针。

注意事项

PQgetCancel创建一个给定PGconn连接对象的PGcancel对象。如果给定的conn是NULL或无效连接,它将返回NULL。PGcancel对象是一个不透明的结构,应用程序不能直接访问它;它只能传递给PQcancel或PQfreeCancel。

示例

请参见7.3.5示例章节。

PQfreeCancel

功能描述

释放PQgetCancel创建的数据结构。

原型

void PQfreeCancel(PGcancel *cancel);

参数

表7-48 PQfreeCancel参数

关键字 参数说明
cancel 指向包含cancel信息的对象指针。

注意事项

PQfreeCancel释放一个由前面的PQgetCancel创建的数据对象。

示例

请参见7.3.5示例章节。

PQcancel

功能描述

要求服务器放弃处理当前命令。

原型

int PQcancel(PGcancel *cancel, char *errbuf, int errbufsize);

参数

表7-49 PQcancel参数

关键字 参数说明
cancel 指向包含cancel信息的对象指针。
errbuf 出错保存错误信息的buffer。
errbufsize 保存错误信息的buffer大小。

返回值

int:执行结果为1表示成功,0表示失败,失败原因存到errbuf中。

注意事项

  • 成功发送并不保证请求将产生任何效果。如果取消有效,当前命令将提前终止并返回错误结果。如果取消失败(例如,因为服务器已经处理完命令),无返回结果。

  • 如果errbuf是信号处理程序中的局部变量,则可以安全地从信号处理程序中调用PQcancel。就PQcancel而言,PGcancel对象是只读的,因此它也可以从一个线程中调用,这个线程与操作PGconn对象线程是分离的。

示例

请参见7.3.5示例章节。