162 new_step->free_result = free_result;
224 (*process_cb) (dbinfo, res, steps->
arg);
372 for (
int i = 0;
i < numslots;
i++)
394 if (slots[
i].sock < 0)
404 pg_fatal(
"%s() failed: %m",
"select");
409 for (
int i = 0;
i < numslots;
i++)
430 for (
int i = 0;
i < jobs;
i++)
431 slots[
i].ready =
true;
435 for (
int i = 0;
i < jobs;
i++)
void cluster(ParseState *pstate, ClusterStmt *stmt, bool isTopLevel)
#define ALWAYS_SECURE_SEARCH_PATH_SQL
PostgresPollingStatusType PQconnectPoll(PGconn *conn)
ConnStatusType PQstatus(const PGconn *conn)
PGconn * PQconnectStart(const char *conninfo)
void PQfinish(PGconn *conn)
char * PQerrorMessage(const PGconn *conn)
int PQsocket(const PGconn *conn)
int PQconsumeInput(PGconn *conn)
int PQsendQuery(PGconn *conn, const char *query)
int PQisBusy(PGconn *conn)
void * pg_malloc0(size_t size)
void * pg_realloc(void *ptr, size_t size)
PostgresPollingStatusType
void(* UpgradeTaskProcessCB)(DbInfo *dbinfo, PGresult *res, void *arg)
PQExpBuffer createPQExpBuffer(void)
void initPQExpBuffer(PQExpBuffer str)
void appendPQExpBuffer(PQExpBuffer str, const char *fmt,...)
void destroyPQExpBuffer(PQExpBuffer str)
void appendPQExpBufferStr(PQExpBuffer str, const char *data)
void termPQExpBuffer(PQExpBuffer str)
void appendConnStrVal(PQExpBuffer buf, const char *str)
UpgradeTaskSlotState state
UpgradeTaskProcessCB process_cb
static int dbs_processing
UpgradeTask * upgrade_task_create(void)
static void wait_on_slots(UpgradeTaskSlot *slots, int numslots)
void upgrade_task_run(const UpgradeTask *task, const ClusterInfo *cluster)
static void process_slot(const ClusterInfo *cluster, UpgradeTaskSlot *slot, const UpgradeTask *task)
static void start_conn(const ClusterInfo *cluster, UpgradeTaskSlot *slot)
static int select_loop(int maxFd, fd_set *input, fd_set *output)
void upgrade_task_free(UpgradeTask *task)
static void process_query_result(const ClusterInfo *cluster, UpgradeTaskSlot *slot, const UpgradeTask *task)
void upgrade_task_add_step(UpgradeTask *task, const char *query, UpgradeTaskProcessCB process_cb, bool free_result, void *arg)
#define select(n, r, w, e, timeout)