/*
check if a database exists
*/
-static int db_exists(struct ctdb_context *ctdb, const char *db_name)
+static int db_exists(struct ctdb_context *ctdb, const char *db_name, bool *persistent)
{
int i, ret;
struct ctdb_dbid_map *dbmap=NULL;
ctdb_ctrl_getdbname(ctdb, TIMELIMIT(), options.pnn, dbmap->dbs[i].dbid, ctdb, &name);
if (!strcmp(name, db_name)) {
+ if (persistent) {
+ *persistent = dbmap->dbs[i].persistent;
+ }
return 0;
}
}
const char *db_name;
struct ctdb_db_context *ctdb_db;
int ret;
+ bool persistent;
if (argc < 1) {
usage();
db_name = argv[0];
- if (db_exists(ctdb, db_name)) {
+ if (db_exists(ctdb, db_name, &persistent)) {
DEBUG(DEBUG_ERR,("Database '%s' does not exist\n", db_name));
return -1;
}
- ctdb_db = ctdb_attach(ctdb, db_name, false, 0);
+ ctdb_db = ctdb_attach(ctdb, db_name, persistent, 0);
if (ctdb_db == NULL) {
DEBUG(DEBUG_ERR,("Unable to attach to database '%s'\n", db_name));
db_name = argv[0];
- if (db_exists(ctdb, db_name)) {
+ if (db_exists(ctdb, db_name, NULL)) {
DEBUG(DEBUG_ERR,("Database '%s' does not exist\n", db_name));
talloc_free(tmp_ctx);
return -1;