bdr_apply_config = bdr_connection_configs[bdr_apply_worker->connection_config_idx];
Assert(bdr_apply_config != NULL);
- bdr_worker_init(NameStr(bdr_apply_config->dbname));
+ bdr_worker_init(bdr_apply_config->dbname);
CurrentResourceOwner = ResourceOwnerCreate(NULL, "bdr apply top-level resource owner");
bdr_saved_resowner = CurrentResourceOwner;
elog(DEBUG1, "%s initialized on %s",
- MyBgworkerEntry->bgw_name, NameStr(bdr_apply_config->dbname));
+ MyBgworkerEntry->bgw_name, bdr_apply_config->dbname);
streamConn = bdr_establish_connection_and_slot(
bdr_apply_config, &slot_name, &origin_sysid,
opts->is_valid = false;
*out_config = opts;
- strncpy(NameStr(opts->name), name, NAMEDATALEN);
- NameStr(opts->name)[NAMEDATALEN-1] = '\0';
+ opts->name = pstrdup(name);
sprintf(optname_dsn, "bdr.%s_dsn", name);
DefineCustomStringVariable(optname_dsn,
(errcode(ERRCODE_CONFIG_FILE_ERROR),
errmsg("bdr %s: no dbname set", name)));
- strncpy(NameStr(opts->dbname), cur_option->val,
- NAMEDATALEN);
- NameStr(opts->dbname)[NAMEDATALEN-1] = '\0';
- elog(DEBUG2, "bdr %s: dbname=%s", name, NameStr(opts->dbname));
+ opts->dbname = pstrdup(cur_option->val);
+ elog(DEBUG2, "bdr %s: dbname=%s", name, opts->dbname);
}
if (cur_option->val != NULL)
*/
for (off = 0; off < *num_used_databases; off++)
{
- if (strcmp(NameStr(opts->dbname), used_databases[off]) == 0)
+ if (strcmp(opts->dbname, used_databases[off]) == 0)
break;
}
{
/* Didn't find a match, add new db name */
used_databases[(*num_used_databases)++] =
- pstrdup(NameStr(opts->dbname));
+ pstrdup(opts->dbname);
elog(DEBUG2, "bdr %s: Saw new database %s, now %i known dbs",
- name, NameStr(opts->dbname), (int)(*num_used_databases));
+ name, opts->dbname, (int)(*num_used_databases));
}
/*
BdrConnectionConfig *cfg =
bdr_connection_configs[con->connection_config_idx];
Assert(cfg != NULL);
- if ( strcmp(NameStr(cfg->dbname), dbname) == 0 )
+ if ( strcmp(cfg->dbname, dbname) == 0 )
{
/* It's an apply worker for our DB; register it */
BackgroundWorkerHandle *bgw_handle;
continue;
snprintf(apply_worker.bgw_name, BGW_MAXLEN,
- "bdr apply: %s", NameStr(cfg->name));
+ "bdr apply: %s", cfg->name);
apply_worker.bgw_main_arg = Int32GetDatum(i);
if (!RegisterDynamicBackgroundWorker(&apply_worker,
ereport(ERROR,
(errmsg("bdr: Failed to register background worker"
" %s, see previous log messages",
- NameStr(cfg->name))));
+ cfg->name)));
}
/* We've launched this one, don't do it again */
con->bgw_is_registered = true;
aw = &BdrWorkerCtl->slots[off].worker_data.apply_worker;
cfg = bdr_connection_configs[aw->connection_config_idx];
- if ((strcmp(NameStr(cfg->dbname), NameStr(*dbname)) == 0)
+ if ((strcmp(cfg->dbname, NameStr(*dbname)) == 0)
&& cfg->init_replica)
{
return &BdrWorkerCtl->slots[off];
char *sqlstate;
elog(DEBUG1, "bdr %s: Dropping slot and local ident from connection %s",
- NameStr(cfg->dbname), NameStr(cfg->name));
+ cfg->dbname, cfg->name);
snprintf(conninfo_repl, sizeof(conninfo_repl),
"%s replication=database fallback_application_name=bdr",
{
/* Local replication identifier exists and must be dropped. */
elog(DEBUG2, "bdr %s: Deleting local replication identifier %hu",
- NameStr(cfg->dbname), replication_identifier);
+ cfg->dbname, replication_identifier);
bdr_delete_replication_identifier(replication_identifier);
}
else
{
elog(DEBUG2, "bdr %s: No local replication identifier to delete",
- NameStr(cfg->dbname));
+ cfg->dbname);
}
/*
if (PQresultStatus(res) == PGRES_COMMAND_OK)
{
elog(DEBUG2, "bdr %s: remote replication slot %s deleted",
- NameStr(cfg->dbname), NameStr(slot_name));
+ cfg->dbname, NameStr(slot_name));
}
else
{
{
ereport(ERROR,
(errmsg("'DROP_REPLICATION_SLOT %s' on bdr connection %s failed with sqlstate %s: %s",
- NameStr(slot_name), NameStr(cfg->name),
+ NameStr(slot_name), cfg->name,
sqlstate,PQresultErrorMessage(res))));
}
else
{
- elog(DEBUG2, "bdr %s: No slot to delete", NameStr(cfg->dbname));
+ elog(DEBUG2, "bdr %s: No slot to delete", cfg->dbname);
}
}
CommitTransactionCommand();
init_replica_config = bdr_connection_configs
[init_replica_worker->worker_data.apply_worker.connection_config_idx];
elog(DEBUG2, "bdr %s: bdr_init_replica init from connection %s",
- NameStr(*dbname), NameStr(init_replica_config->name));
+ NameStr(*dbname), init_replica_config->name);
/*
* Test to see if there's an entry in the remote's bdr.bdr_nodes for our
[worker->worker_data.apply_worker.connection_config_idx];
if (worker->worker_type == BDR_WORKER_APPLY
- && strcmp(NameStr(cfg->dbname), NameStr(*dbname)) == 0)
+ && strcmp(cfg->dbname, NameStr(*dbname)) == 0)
my_conn_idxs[n_conns++] = off;
}
LWLockRelease(BdrWorkerCtl->lock);
[w->worker_data.apply_worker.connection_config_idx];
elog(DEBUG1, "bdr %s: checking/creating slot for %s",
- NameStr(*dbname), NameStr(cfg->name));
+ NameStr(*dbname), cfg->name);
/*
* Create the slot on the remote. The returned remote sysid and
* timeline, the slot name, and the local replication identifier
* copied over.
*/
elog(DEBUG1, "bdr %s: creating and restoring dump for %s",
- NameStr(*dbname), NameStr(init_replica_config->name));
+ NameStr(*dbname), init_replica_config->name);
bdr_exec_init_replica(init_replica_config, init_snapshot);
PQfinish(init_repl_conn);
Assert(cfg->init_replica);
elog(DEBUG1, "Registering bdr apply catchup worker %s for db %s to lsn %X/%X",
- NameStr(cfg->name), NameStr(cfg->dbname),
+ cfg->name, cfg->dbname,
(uint32)(target_lsn>>32), (uint32)target_lsn);
/* Create the shmem entry for the catchup worker */
snprintf(bgw.bgw_name, BGW_MAXLEN,
"bdr %s: catchup apply to %X/%X on %s",
- NameStr(cfg->dbname),
+ cfg->dbname,
(uint32)(target_lsn >> 32), (uint32)target_lsn,
- NameStr(cfg->name));
+ cfg->name);
bgw.bgw_name[BGW_MAXLEN-1] = '\0';
/* Launch the catchup worker and wait for it to start */
/* Worker must've died before it finished */
elog(ERROR,
"bdr %s: catchup worker exited before catching up to target LSN %X/%X",
- NameStr(cfg->dbname),
+ cfg->dbname,
(uint32)(target_lsn>>32), (uint32)target_lsn);
}
else
{
elog(DEBUG1, "bdr %s: catchup worker caught up to target LSN",
- NameStr(cfg->dbname));
+ cfg->dbname);
}
}
PG_END_ENSURE_ERROR_CLEANUP(bdr_catchup_to_lsn_cleanup,