void create_table(MYSQL &mysql) { if (try_create_table(mysql)) { if (mysql_errno(&mysql) != ER_TABLE_EXISTS_ERROR) MYSQLERROR(mysql); std::cout << "MySQL Cluster already has example table: api_blob_ndbrecord. " << "Dropping it..." << std::endl; /****************** * Recreate table * ******************/ drop_table(mysql); if (try_create_table(mysql)) MYSQLERROR(mysql); } }
static void exec_query_with_try_create_table (sqlite3 *db, const char *sql, int (*callback)(void*,int,char**,char**), void *argument) { char *error = 0; gboolean try_create = TRUE; try_exec: if (sqlite3_exec (db, sql, callback, argument, &error)) { if (try_create) { try_create = FALSE; try_create_table (db); sqlite3_free (error); goto try_exec; } else { g_warning ("Failed to execute query: %s", error); sqlite3_free (error); } } }