#include "bacula.h"
#include "cats.h"
-#if HAVE_MYSQL | HAVE_SQLITE
+#if HAVE_MYSQL || HAVE_SQLITE || HAVE_POSTGRESQL
-#ifdef HAVE_MYSQL
-char catalog_db[] = "MySQL";
-#else
-char catalog_db[] = "SQLite";
-#endif
+uint32_t bacula_db_version = 0;
/* Forward referenced subroutines */
void print_dashes(B_DB *mdb);
{
uint32_t *val = (uint32_t *)ctx;
+ Dmsg1(50, "int_handler starts with row pointing at %x\n", row);
+
if (row[0]) {
+ Dmsg1(50, "int_handler finds '%s'\n", row[0]);
*val = atoi(row[0]);
} else {
+ Dmsg0(50, "int_handler finds zero\n");
*val = 0;
}
+ Dmsg0(50, "int_handler finishes\n");
return 0;
}
*/
/* Check that the tables correspond to the version we want */
-int check_tables_version(void *jcr, B_DB *mdb)
+int check_tables_version(JCR *jcr, B_DB *mdb)
{
- uint32_t version;
char *query = "SELECT VersionId FROM Version";
- version = 0;
- db_sql_query(mdb, query, int_handler, (void *)&version);
- if (version != BDB_VERSION) {
+ bacula_db_version = 0;
+ db_sql_query(mdb, query, int_handler, (void *)&bacula_db_version);
+ if (bacula_db_version != BDB_VERSION) {
Mmsg(&mdb->errmsg, "Version error for database \"%s\". Wanted %d, got %d\n",
- mdb->db_name, BDB_VERSION, version);
+ mdb->db_name, BDB_VERSION, bacula_db_version);
Jmsg(jcr, M_FATAL, 0, "%s", mdb->errmsg);
return 0;
}
/* Utility routine for queries. The database MUST be locked before calling here. */
int
-QueryDB(char *file, int line, void *jcr, B_DB *mdb, char *cmd)
+QueryDB(char *file, int line, JCR *jcr, B_DB *mdb, char *cmd)
{
int status;
if ((status=sql_query(mdb, cmd)) != 0) {
* 1 on success
*/
int
-InsertDB(char *file, int line, void *jcr, B_DB *mdb, char *cmd)
+InsertDB(char *file, int line, JCR *jcr, B_DB *mdb, char *cmd)
{
if (sql_query(mdb, cmd)) {
m_msg(file, line, &mdb->errmsg, _("insert %s failed:\n%s\n"), cmd, sql_strerror(mdb));
* 1 on success
*/
int
-UpdateDB(char *file, int line, void *jcr, B_DB *mdb, char *cmd)
+UpdateDB(char *file, int line, JCR *jcr, B_DB *mdb, char *cmd)
{
if (sql_query(mdb, cmd)) {
* n number of rows affected
*/
int
-DeleteDB(char *file, int line, void *jcr, B_DB *mdb, char *cmd)
+DeleteDB(char *file, int line, JCR *jcr, B_DB *mdb, char *cmd)
{
if (sql_query(mdb, cmd)) {
* Returns: -1 on failure
* count on success
*/
-int get_sql_record_max(void *jcr, B_DB *mdb)
+int get_sql_record_max(JCR *jcr, B_DB *mdb)
{
SQL_ROW row;
int stat = 0;
* much more efficient. Usually started when inserting
* file attributes.
*/
-void db_start_transaction(void *jcr, B_DB *mdb)
+void db_start_transaction(JCR *jcr, B_DB *mdb)
{
#ifdef xAVE_SQLITE
db_lock(mdb);
}
-void db_end_transaction(void *jcr, B_DB *mdb)
+void db_end_transaction(JCR *jcr, B_DB *mdb)
{
#ifdef xAVE_SQLITE
db_lock(mdb);
* and filename parts. They are returned in pool memory
* in the mdb structure.
*/
-void split_path_and_filename(void *jcr, B_DB *mdb, char *fname)
+void split_path_and_filename(JCR *jcr, B_DB *mdb, char *fname)
{
char *p, *f;
Dmsg2(100, "sllit path=%s file=%s\n", mdb->path, mdb->fname);
}
-#endif /* HAVE_MYSQL | HAVE_SQLITE */
+#endif /* HAVE_MYSQL || HAVE_SQLITE || HAVE_POSTGRESQL */