本文整理汇总了C++中PQcancel函数的典型用法代码示例。如果您正苦于以下问题:C++ PQcancel函数的具体用法?C++ PQcancel怎么用?C++ PQcancel使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了PQcancel函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: MultiClientCancel
/* MultiClientCancel cancels the running query on the given connection. */
bool
MultiClientCancel(int32 connectionId)
{
PGconn *connection = NULL;
PGcancel *cancelObject = NULL;
int cancelSent = 0;
bool canceled = true;
char errorBuffer[STRING_BUFFER_SIZE];
Assert(connectionId != INVALID_CONNECTION_ID);
connection = ClientConnectionArray[connectionId];
Assert(connection != NULL);
cancelObject = PQgetCancel(connection);
cancelSent = PQcancel(cancelObject, errorBuffer, sizeof(errorBuffer));
if (cancelSent == 0)
{
ereport(WARNING, (errmsg("could not issue cancel request"),
errdetail("Client error: %s", errorBuffer)));
canceled = false;
}
PQfreeCancel(cancelObject);
return canceled;
}
开发者ID:amosbird,项目名称:citus,代码行数:29,代码来源:multi_client_executor.c
示例2: handle_sigint
static void
handle_sigint(SIGNAL_ARGS)
{
int save_errno = errno;
char errbuf[256];
/* if we are waiting for input, longjmp out of it */
if (sigint_interrupt_enabled)
{
sigint_interrupt_enabled = false;
siglongjmp(sigint_interrupt_jmp, 1);
}
/* else, set cancel flag to stop any long-running loops */
cancel_pressed = true;
/* and send QueryCancel if we are processing a database query */
if (cancelConn != NULL)
{
if (PQcancel(cancelConn, errbuf, sizeof(errbuf)))
write_stderr("Cancel request sent\n");
else
{
write_stderr("Could not send cancel request: ");
write_stderr(errbuf);
}
}
errno = save_errno; /* just in case the write changed it */
}
开发者ID:GisKook,项目名称:Gis,代码行数:30,代码来源:common.c
示例3: consoleHandler
/*
* Console control handler for Win32. Note that the control handler will
* execute on a *different thread* than the main one, so we need to do
* proper locking around those structures.
*/
static BOOL WINAPI
consoleHandler(DWORD dwCtrlType)
{
char errbuf[256];
if (dwCtrlType == CTRL_C_EVENT ||
dwCtrlType == CTRL_BREAK_EVENT)
{
/* Send QueryCancel if we are processing a database query */
EnterCriticalSection(&cancelConnLock);
if (cancelConn != NULL)
{
if (PQcancel(cancelConn, errbuf, sizeof(errbuf)))
fprintf(stderr, _("Cancel request sent\n"));
else
fprintf(stderr, _("Could not send cancel request: %s"), errbuf);
}
LeaveCriticalSection(&cancelConnLock);
return TRUE;
}
else
/* Return FALSE for any signals not being handled */
return FALSE;
}
开发者ID:LittleForker,项目名称:postgres,代码行数:30,代码来源:common.c
示例4: psyco_conn_cancel
static PyObject *
psyco_conn_cancel(connectionObject *self, PyObject *args)
{
char errbuf[256];
EXC_IF_CONN_CLOSED(self);
EXC_IF_TPC_PREPARED(self, cancel);
/* do not allow cancellation while the connection is being built */
Dprintf("psyco_conn_cancel: cancelling with key %p", self->cancel);
if (self->status != CONN_STATUS_READY &&
self->status != CONN_STATUS_BEGIN) {
PyErr_SetString(OperationalError,
"asynchronous connection attempt underway");
return NULL;
}
if (PQcancel(self->cancel, errbuf, sizeof(errbuf)) == 0) {
Dprintf("psyco_conn_cancel: cancelling failed: %s", errbuf);
PyErr_SetString(OperationalError, errbuf);
return NULL;
}
Py_INCREF(Py_None);
return Py_None;
}
开发者ID:Instagram,项目名称:psycopg2,代码行数:25,代码来源:connection_type.c
示例5: consoleHandler
static BOOL WINAPI
consoleHandler(DWORD dwCtrlType)
{
char errbuf[256];
if (dwCtrlType == CTRL_C_EVENT ||
dwCtrlType == CTRL_BREAK_EVENT)
{
/*
* Can't longjmp here, because we are in wrong thread :-(
*/
/* set cancel flag to stop any long-running loops */
cancel_pressed = true;
/* and send QueryCancel if we are processing a database query */
EnterCriticalSection(&cancelConnLock);
if (cancelConn != NULL)
{
if (PQcancel(cancelConn, errbuf, sizeof(errbuf)))
write_stderr("Cancel request sent\n");
else
{
write_stderr("Could not send cancel request: ");
write_stderr(errbuf);
}
}
LeaveCriticalSection(&cancelConnLock);
return TRUE;
}
else
/* Return FALSE for any signals not being handled */
return FALSE;
}
开发者ID:GisKook,项目名称:Gis,代码行数:35,代码来源:common.c
示例6: CancelQuery
bool
CancelQuery(PGconn *conn, int timeout)
{
char errbuf[ERRBUFF_SIZE];
PGcancel *pgcancel;
if (wait_connection_availability(conn, timeout) != 1)
return false;
pgcancel = PQgetCancel(conn);
if (pgcancel != NULL)
{
/*
* PQcancel can only return 0 if socket()/connect()/send()
* fails, in any of those cases we can assume something
* bad happened to the connection
*/
if (PQcancel(pgcancel, errbuf, ERRBUFF_SIZE) == 0)
{
log_warning(_("Can't stop current query: %s\n"), errbuf);
PQfreeCancel(pgcancel);
return false;
}
PQfreeCancel(pgcancel);
}
return true;
}
开发者ID:chrisroberts,项目名称:repmgr,代码行数:30,代码来源:dbutils.c
示例7: on_interrupt
/*
* Handle interrupt signals by cancelling the current command.
*/
static void
on_interrupt(void)
{
pgutConn *c;
int save_errno = errno;
/* Set interruped flag */
interrupted = true;
if (in_cleanup)
return;
/* Send QueryCancel if we are processing a database query */
pgut_conn_lock();
for (c = pgut_connections; c; c = c->next)
{
char buf[256];
if (c->cancel != NULL && PQcancel(c->cancel, buf, sizeof(buf)))
elog(WARNING, "Cancel request sent");
}
pgut_conn_unlock();
errno = save_errno; /* just in case the write changed it */
}
开发者ID:dvarrazzo,项目名称:pg_reorg,代码行数:28,代码来源:pgut.c
示例8: pgsql_cursor_stop
GSQLCursorState
pgsql_cursor_stop (GSQLCursor *cursor)
{
GSQL_TRACE_FUNC;
GSQLSession *session;
GSQLEPGSQLSession *spec_session;
GSQLEPGSQLCursor *spec_cursor;
PGcancel *cancel = NULL;
gchar buff[256];
g_return_val_if_fail (GSQL_IS_CURSOR (cursor), GSQL_CURSOR_STATE_ERROR);
session = cursor->session;
g_return_val_if_fail (GSQL_IS_SESSION (session),
GSQL_CURSOR_STATE_ERROR);
spec_session = session->spec;
spec_cursor = cursor->spec;
cancel = PQgetCancel (spec_session->pgconn);
if ( ! PQcancel (cancel, buff, 256) ) {
pgsql_session_workspace_info (session, buff);
PQfreeCancel (cancel);
return GSQL_CURSOR_STATE_ERROR;
}
PQfreeCancel (cancel);
return GSQL_CURSOR_STATE_STOP;
}
开发者ID:antono,项目名称:gsql,代码行数:29,代码来源:pgsql_cursor.c
示例9: PQgetCancel
void dbgPgConn::Cancel()
{
// Attempt to cancel any ongoing query
if (m_pgConn)
{
PGcancel *cancel = PQgetCancel(m_pgConn);
char errbuf[256];
PQcancel(cancel, errbuf, sizeof(errbuf));
PQfreeCancel(cancel);
}
}
开发者ID:KrisShannon,项目名称:pgadmin3,代码行数:11,代码来源:dbgPgConn.cpp
示例10: CancelQuery
static void
CancelQuery(void)
{
char errbuf[256];
PGcancel *pgcancel;
pgcancel = PQgetCancel(primaryConn);
if (!pgcancel || PQcancel(pgcancel, errbuf, 256) == 0)
fprintf(stderr, "Can't stop current query: %s", errbuf);
PQfreeCancel(pgcancel);
}
开发者ID:gbartolini,项目名称:repmgr,代码行数:13,代码来源:repmgrd.c
示例11: CancelQuery
static void
CancelQuery(void)
{
char errbuf[ERRBUFF_SIZE];
PGcancel *pgcancel;
pgcancel = PQgetCancel(primaryConn);
if (!pgcancel || PQcancel(pgcancel, errbuf, ERRBUFF_SIZE) == 0)
log_warning("Can't stop current query: %s\n", errbuf);
PQfreeCancel(pgcancel);
}
开发者ID:charles-dyfis-net,项目名称:repmgr,代码行数:13,代码来源:repmgrd.c
示例12: CancelQuery
void
CancelQuery(PGconn *conn)
{
char errbuf[ERRBUFF_SIZE];
PGcancel *pgcancel;
pgcancel = PQgetCancel(conn);
if (!pgcancel || PQcancel(pgcancel, errbuf, ERRBUFF_SIZE) == 0)
log_warning(_("Can't stop current query: %s\n"), errbuf);
PQfreeCancel(pgcancel);
}
开发者ID:gsorbara,项目名称:repmgr,代码行数:13,代码来源:dbutils.c
示例13: PQCancel_stub
CAMLprim value PQCancel_stub(value v_conn)
{
CAMLparam1(v_conn);
PGconn *conn = get_conn(v_conn);
if (conn == NULL) CAMLreturn(v_None);
else {
PGcancel *cancel = get_cancel_obj(v_conn);
char errbuf[256];
int res;
caml_enter_blocking_section();
res = PQcancel(cancel, errbuf, 256);
caml_leave_blocking_section();
if (res == 0) CAMLreturn(v_None);
else CAMLreturn(make_some(caml_copy_string(errbuf)));
}
}
开发者ID:Nevor,项目名称:postgresql-ocaml,代码行数:16,代码来源:postgresql_stubs.c
示例14: handle_sigint
/*
* Handle interrupt signals by cancelling the current command,
* if it's being executed through executeMaintenanceCommand(),
* and thus has a cancelConn set.
*/
static void
handle_sigint(SIGNAL_ARGS)
{
int save_errno = errno;
char errbuf[256];
/* Send QueryCancel if we are processing a database query */
if (cancelConn != NULL)
{
if (PQcancel(cancelConn, errbuf, sizeof(errbuf)))
fprintf(stderr, _("Cancel request sent\n"));
else
fprintf(stderr, _("Could not send cancel request: %s"), errbuf);
}
errno = save_errno; /* just in case the write changed it */
}
开发者ID:LittleForker,项目名称:postgres,代码行数:22,代码来源:common.c
示例15: on_interrupt
/*
* Handle interrupt signals by cancelling the current command.
*/
static void
on_interrupt(void)
{
int save_errno = errno;
char errbuf[256];
/* Set interrupted flag */
interrupted = true;
/* Send QueryCancel if we are processing a database query */
if (!in_cleanup && cancel_conn != NULL &&
PQcancel(cancel_conn, errbuf, sizeof(errbuf)))
{
elog(WARNING, "cancel request was sent");
}
errno = save_errno; /* just in case the write changed it */
}
开发者ID:jamexu98918,项目名称:pg_rman,代码行数:21,代码来源:pgut.c
示例16: lock
void pgConn::CancelExecution(void)
{
char errbuf[256];
wxMutexLocker lock(m_cancelConnMutex);
if (m_cancelConn)
{
PGcancel *cancelConn = m_cancelConn;
m_cancelConn = NULL;
if (PQcancel(cancelConn, errbuf, sizeof(errbuf)))
{
SetLastResultError(NULL, wxT("Cancel request sent"));
}
else
{
SetLastResultError(NULL, wxString::Format(wxT("Could not send cancel request:\n%s"), errbuf));
}
PQfreeCancel(cancelConn);
}
}
开发者ID:AnnaSkawinska,项目名称:pgadmin3,代码行数:21,代码来源:pgConn.cpp
示例17: PQgetCancel
void toQPSqlConnectionSub::nativeCancel()
{
QVariant v = Connection.driver()->handle();
if (v.isValid() && v.typeName() == QString("PGconn*"))
{
#ifdef LIBPQ_DECL_CANCEL
PGconn *handle = *static_cast<PGconn **>(v.data());
if (!handle)
return;
PGcancel *cancel = PQgetCancel(handle);
if (!cancel)
return;
char *errbuf = new char[1024];
PQcancel(cancel, errbuf, 1024);
PQfreeCancel(cancel);
delete[] errbuf;
#endif
}
}
开发者ID:ShadowKyogre,项目名称:tora,代码行数:21,代码来源:toqpsqlconnection.cpp
示例18: sigint_handler
/*
* sigint_handler() - Interupt handler to cancel active queries
*/
static void sigint_handler(SIGNAL_ARGS)
{
char errbuf[256];
/* Once we accept an interupt it's best to simply disable the handler */
signal(SIGINT, SIG_IGN);
signal(SIGHUP, SIG_IGN);
signal(SIGTERM, SIG_IGN);
if (cancelConn != NULL)
{
if (PQcancel(cancelConn, errbuf, sizeof(errbuf)))
fprintf(stderr, "Cancel request sent\n");
else
{
fprintf(stderr, "Could not send cancel request: ");
fprintf(stderr, "%s", errbuf);
}
}
XRAISE(USER_INTERUPT, "SIGINT");
}
开发者ID:AnLingm,项目名称:gpdb,代码行数:25,代码来源:main.c
示例19: DisconnectDatabase
/*
* DisconnectDatabase
* Disconnect the connection associated with the given slot
*/
static void
DisconnectDatabase(ParallelSlot *slot)
{
char errbuf[256];
if (!slot->connection)
return;
if (PQtransactionStatus(slot->connection) == PQTRANS_ACTIVE)
{
PGcancel *cancel;
if ((cancel = PQgetCancel(slot->connection)))
{
PQcancel(cancel, errbuf, sizeof(errbuf));
PQfreeCancel(cancel);
}
}
PQfinish(slot->connection);
slot->connection = NULL;
}
开发者ID:liuhb86,项目名称:postgres,代码行数:26,代码来源:vacuumdb.c
示例20: DisconnectDatabase
/*
* Close the connection to the database and also cancel off the query if we
* have one running.
*/
void
DisconnectDatabase(Archive *AHX)
{
ArchiveHandle *AH = (ArchiveHandle *) AHX;
PGcancel *cancel;
char errbuf[1];
if (!AH->connection)
return;
if (PQtransactionStatus(AH->connection) == PQTRANS_ACTIVE)
{
if ((cancel = PQgetCancel(AH->connection)))
{
PQcancel(cancel, errbuf, sizeof(errbuf));
PQfreeCancel(cancel);
}
}
PQfinish(AH->connection);
AH->connection = NULL;
}
开发者ID:jarulraj,项目名称:postgres-cpp,代码行数:26,代码来源:pg_backup_db.c
注:本文中的PQcancel函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论