13#include "catalog/pg_language_d.h"
89 query =
psprintf(
"SELECT DISTINCT probin "
90 "FROM pg_catalog.pg_proc "
91 "WHERE prolang = %u AND "
92 "probin IS NOT NULL AND "
171 prep_status(
"Checking for presence of required libraries");
207 fprintf(script,
_(
"could not load library \"%s\": %s"),
218 fprintf(script,
_(
"In database: %s\n"),
228 pg_fatal(
"Your installation references loadable libraries that are missing from the\n"
229 "new installation. You can add these libraries to the new installation,\n"
230 "or remove the functions using them from the old installation. A list of\n"
231 "problem libraries is in the file:\n"
#define fprintf(file, fmt, msg)
void PQfinish(PGconn *conn)
char * PQerrorMessage(const PGconn *conn)
size_t PQescapeStringConn(PGconn *conn, char *to, const char *from, size_t length, int *error)
PGresult * PQexec(PGconn *conn, const char *query)
void * pg_malloc(size_t size)
char * pg_strdup(const char *in)
void check_loadable_libraries(void)
static void process_loadable_libraries(DbInfo *dbinfo, PGresult *res, void *arg)
static int library_name_compare(const void *p1, const void *p2)
void get_loadable_libraries(void)
int count_old_cluster_logical_slots(void)
static void check_ok(void)
static int pg_cmp_s32(int32 a, int32 b)
static int pg_cmp_size(size_t a, size_t b)
UpgradeTask * upgrade_task_create(void)
PGconn * connectToServer(ClusterInfo *cluster, const char *db_name)
void upgrade_task_run(const UpgradeTask *task, const ClusterInfo *cluster)
void void pg_log(eLogType type, const char *fmt,...) pg_attribute_printf(2
void upgrade_task_free(UpgradeTask *task)
#define fopen_priv(path, mode)
void prep_status(const char *fmt,...) pg_attribute_printf(1
void upgrade_task_add_step(UpgradeTask *task, const char *query, UpgradeTaskProcessCB process_cb, bool free_result, void *arg)
#define qsort(a, b, c, d)
char * psprintf(const char *fmt,...)
static int cmp(const chr *x, const chr *y, size_t len)
LogicalSlotInfoArr slot_arr
#define FirstNormalObjectId