/* This is used too early to call GncDbiProvider::get_table_list(). */ static bool save_may_clobber_data (dbi_conn conn, const std::string& dbname) { /* Data may be clobbered iff the number of tables != 0 */ auto result = dbi_conn_get_table_list (conn, dbname.c_str(), nullptr); bool retval = false; if (result) { retval = dbi_result_get_numrows (result) > 0; dbi_result_free (result); } return retval; }
static StrVec conn_get_table_list (dbi_conn conn, const std::string& dbname, const std::string& table) { StrVec retval; const char* tableptr = (table.empty() ? nullptr : table.c_str()); auto tables = dbi_conn_get_table_list (conn, dbname.c_str(), tableptr); while (dbi_result_next_row (tables) != 0) { std::string table_name {dbi_result_get_string_idx (tables, 1)}; retval.push_back(table_name); } dbi_result_free (tables); return retval; }