In pg_upgrade, check there are no prepared transactions.
This commit is contained in:
parent
8cfd59dd65
commit
07d17a73ec
@ -16,6 +16,7 @@ static void check_old_cluster_has_new_cluster_dbs(void);
|
||||
static void check_locale_and_encoding(ControlData *oldctrl,
|
||||
ControlData *newctrl);
|
||||
static void check_is_super_user(ClusterInfo *cluster);
|
||||
static void check_for_prepared_transactions(ClusterInfo *cluster);
|
||||
static void check_for_isn_and_int8_passing_mismatch(ClusterInfo *cluster);
|
||||
static void check_for_reg_data_type_usage(ClusterInfo *cluster);
|
||||
|
||||
@ -65,6 +66,7 @@ check_old_cluster(bool live_check,
|
||||
* Check for various failure cases
|
||||
*/
|
||||
check_is_super_user(&old_cluster);
|
||||
check_for_prepared_transactions(&old_cluster);
|
||||
check_for_reg_data_type_usage(&old_cluster);
|
||||
check_for_isn_and_int8_passing_mismatch(&old_cluster);
|
||||
|
||||
@ -117,6 +119,7 @@ check_new_cluster(void)
|
||||
get_db_and_rel_infos(&new_cluster);
|
||||
|
||||
check_new_cluster_is_empty();
|
||||
check_for_prepared_transactions(&new_cluster);
|
||||
check_old_cluster_has_new_cluster_dbs();
|
||||
|
||||
check_loadable_libraries();
|
||||
@ -506,6 +509,36 @@ check_is_super_user(ClusterInfo *cluster)
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* check_for_prepared_transactions()
|
||||
*
|
||||
* Make sure there are no prepared transactions because the storage format
|
||||
* might have changed.
|
||||
*/
|
||||
static void
|
||||
check_for_prepared_transactions(ClusterInfo *cluster)
|
||||
{
|
||||
PGresult *res;
|
||||
PGconn *conn = connectToServer(cluster, "template1");
|
||||
|
||||
prep_status("Checking for prepared transactions");
|
||||
|
||||
res = executeQueryOrDie(conn,
|
||||
"SELECT * "
|
||||
"FROM pg_catalog.pg_prepared_xact()");
|
||||
|
||||
if (PQntuples(res) != 0)
|
||||
pg_log(PG_FATAL, "The %s cluster contains prepared transactions\n",
|
||||
CLUSTER_NAME(cluster));
|
||||
|
||||
PQclear(res);
|
||||
|
||||
PQfinish(conn);
|
||||
|
||||
check_ok();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* check_for_isn_and_int8_passing_mismatch()
|
||||
*
|
||||
|
Loading…
x
Reference in New Issue
Block a user