*/
/*
- Copyright (C) 2002-2003 Kern Sibbald and John Walker
+ Copyright (C) 2002-2004 Kern Sibbald and John Walker
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
* -----------------------------------------------------------------------
*/
-extern char *working_directory;
+extern const char *working_directory;
/* List of open databases */
static BQUEUE db_list = {&db_list, &db_list};
static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
-int QueryDB(char *file, int line, JCR *jcr, B_DB *db, char *select_cmd);
+int QueryDB(const char *file, int line, JCR *jcr, B_DB *db, char *select_cmd);
/*
* never have errors, or it is really fatal.
*/
B_DB *
-db_init_database(JCR *jcr, char *db_name, char *db_user, char *db_password,
- char *db_address, int db_port, char *db_socket)
+db_init_database(JCR *jcr, const char *db_name, const char *db_user, const char *db_password,
+ const char *db_address, int db_port, const char *db_socket)
{
B_DB *mdb;
/* Look to see if DB already open */
for (mdb=NULL; (mdb=(B_DB *)qnext(&db_list, &mdb->bq)); ) {
if (strcmp(mdb->db_name, db_name) == 0) {
- Dmsg2(100, "DB REopen %d %s\n", mdb->ref_count, db_name);
+ Dmsg2(300, "DB REopen %d %s\n", mdb->ref_count, db_name);
mdb->ref_count++;
V(mutex);
return mdb; /* already open */
}
}
- Dmsg0(100, "db_open first time\n");
+ Dmsg0(300, "db_open first time\n");
mdb = (B_DB *) malloc(sizeof(B_DB));
memset(mdb, 0, sizeof(B_DB));
mdb->db_name = bstrdup(db_name);
644, /* mode */
&mdb->sqlite_errmsg); /* error message */
- Dmsg0(50, "sqlite_open\n");
+ Dmsg0(300, "sqlite_open\n");
if (mdb->db == NULL) {
Mmsg2(&mdb->errmsg, _("Unable to open Database=%s. ERR=%s\n"),
db_lock(mdb);
- Mmsg(&mdb->cmd,
+ Mmsg(mdb->cmd,
"SELECT id FROM NextId WHERE TableName=\"%s\"", table);
if (!QUERY_DB(jcr, mdb, mdb->cmd)) {
- Mmsg(&mdb->errmsg, _("next_index query error: ERR=%s\n"), sql_strerror(mdb));
+ Mmsg(mdb->errmsg, _("next_index query error: ERR=%s\n"), sql_strerror(mdb));
db_unlock(mdb);
return 0;
}
if ((row = sql_fetch_row(mdb)) == NULL) {
- Mmsg(&mdb->errmsg, _("Error fetching index: ERR=%s\n"), sql_strerror(mdb));
+ Mmsg(mdb->errmsg, _("Error fetching index: ERR=%s\n"), sql_strerror(mdb));
db_unlock(mdb);
return 0;
}
bstrncpy(index, row[0], 28);
sql_free_result(mdb);
- Mmsg(&mdb->cmd,
+ Mmsg(mdb->cmd,
"UPDATE NextId SET id=id+1 WHERE TableName=\"%s\"", table);
if (!QUERY_DB(jcr, mdb, mdb->cmd)) {
- Mmsg(&mdb->errmsg, _("next_index update error: ERR=%s\n"), sql_strerror(mdb));
+ Mmsg(mdb->errmsg, _("next_index update error: ERR=%s\n"), sql_strerror(mdb));
db_unlock(mdb);
return 0;
}
* Submit a general SQL command (cmd), and for each row returned,
* the sqlite_handler is called with the ctx.
*/
-int db_sql_query(B_DB *mdb, char *query, DB_RESULT_HANDLER *result_handler, void *ctx)
+int db_sql_query(B_DB *mdb, const char *query, DB_RESULT_HANDLER *result_handler, void *ctx)
{
struct rh_data rh_data;
int stat;
rh_data.ctx = ctx;
stat = sqlite_exec(mdb->db, query, sqlite_result, (void *)&rh_data, &mdb->sqlite_errmsg);
if (stat != 0) {
- Mmsg(&mdb->errmsg, _("Query failed: %s: ERR=%s\n"), query, sql_strerror(mdb));
+ Mmsg(mdb->errmsg, _("Query failed: %s: ERR=%s\n"), query, sql_strerror(mdb));
db_unlock(mdb);
return 0;
}
free(mdb->fields[i]);
}
free(mdb->fields);
- mdb->fields_defined = FALSE;
+ mdb->fields_defined = false;
}
sqlite_free_table(mdb->result);
mdb->nrow = mdb->ncolumn = 0;