#include "bacula.h"
#include "cats.h"
-#if HAVE_MYSQL || HAVE_SQLITE
+#if HAVE_MYSQL || HAVE_SQLITE || HAVE_POSTGRESQL
/* -----------------------------------------------------------------------
*
*/
/* Imported subroutines */
-extern void list_result(B_DB *mdb, DB_LIST_HANDLER *sendit, void *ctx, int full_list);
-extern int QueryDB(char *file, int line, void *jcr, B_DB *db, char *select_cmd);
+extern void list_result(B_DB *mdb, DB_LIST_HANDLER *sendit, void *ctx, e_list_type type);
+extern int QueryDB(char *file, int line, JCR *jcr, B_DB *db, char *select_cmd);
/*
* Submit general SQL query
*/
-int db_list_sql_query(void *jcr, B_DB *mdb, char *query, DB_LIST_HANDLER *sendit,
- void *ctx, int verbose, int full)
+int db_list_sql_query(JCR *jcr, B_DB *mdb, char *query, DB_LIST_HANDLER *sendit,
+ void *ctx, int verbose, e_list_type type)
{
db_lock(mdb);
if (sql_query(mdb, query) != 0) {
mdb->result = sql_store_result(mdb);
if (mdb->result) {
- list_result(mdb, sendit, ctx, full);
+ list_result(mdb, sendit, ctx, type);
sql_free_result(mdb);
}
db_unlock(mdb);
}
void
-db_list_pool_records(void *jcr, B_DB *mdb, DB_LIST_HANDLER *sendit, void *ctx, int full)
+db_list_pool_records(JCR *jcr, B_DB *mdb, DB_LIST_HANDLER *sendit, void *ctx, e_list_type type)
{
db_lock(mdb);
- if (full) {
+ if (type == VERT_LIST) {
Mmsg(&mdb->cmd, "SELECT PoolId,Name,NumVols,MaxVols,UseOnce,UseCatalog,"
"AcceptAnyVolume,VolRetention,VolUseDuration,MaxVolJobs,MaxVolBytes,"
"AutoPrune,Recycle,PoolType,LabelFormat "
return;
}
- list_result(mdb, sendit, ctx, full);
+ list_result(mdb, sendit, ctx, type);
sql_free_result(mdb);
db_unlock(mdb);
}
void
-db_list_client_records(void *jcr, B_DB *mdb, DB_LIST_HANDLER *sendit, void *ctx, int full)
+db_list_client_records(JCR *jcr, B_DB *mdb, DB_LIST_HANDLER *sendit, void *ctx, e_list_type type)
{
db_lock(mdb);
- if (full) {
+ if (type == VERT_LIST) {
Mmsg(&mdb->cmd, "SELECT ClientId,Name,Uname,AutoPrune,FileRetention,"
"FileRetention,JobRetention "
"FROM Client ORDER BY ClientId");
return;
}
- list_result(mdb, sendit, ctx, full);
+ list_result(mdb, sendit, ctx, type);
sql_free_result(mdb);
db_unlock(mdb);
* otherwise, list the Volumes in the Pool specified by PoolId
*/
void
-db_list_media_records(void *jcr, B_DB *mdb, MEDIA_DBR *mdbr,
- DB_LIST_HANDLER *sendit, void *ctx, int full)
+db_list_media_records(JCR *jcr, B_DB *mdb, MEDIA_DBR *mdbr,
+ DB_LIST_HANDLER *sendit, void *ctx, e_list_type type)
{
db_lock(mdb);
- if (full) {
+ if (type == VERT_LIST) {
if (mdbr->VolumeName[0] != 0) {
Mmsg(&mdb->cmd, "SELECT MediaId,VolumeName,Slot,PoolId,"
"MediaType,FirstWritten,LastWritten,LabelDate,VolJobs,"
"VolFiles,VolBlocks,VolMounts,VolBytes,VolErrors,VolWrites,"
"VolCapacityBytes,VolStatus,Recycle,VolRetention,"
- "VolUseDuration,MaxVolJobs,MaxVolFiles,MaxVolBytes "
+ "VolUseDuration,MaxVolJobs,MaxVolFiles,MaxVolBytes,InChanger "
"FROM Media WHERE Media.VolumeName='%s'", mdbr->VolumeName);
} else {
Mmsg(&mdb->cmd, "SELECT MediaId,VolumeName,Slot,PoolId,"
"MediaType,FirstWritten,LastWritten,LabelDate,VolJobs,"
"VolFiles,VolBlocks,VolMounts,VolBytes,VolErrors,VolWrites,"
"VolCapacityBytes,VolStatus,Recycle,VolRetention,"
- "VolUseDuration,MaxVolJobs,MaxVolFiles,MaxVolBytes "
+ "VolUseDuration,MaxVolJobs,MaxVolFiles,MaxVolBytes,InChanger "
"FROM Media WHERE Media.PoolId=%u ORDER BY MediaId", mdbr->PoolId);
}
} else {
if (mdbr->VolumeName[0] != 0) {
- Mmsg(&mdb->cmd, "SELECT MediaId,VolumeName,MediaType,VolStatus,"
- "VolBytes,LastWritten,VolRetention,Recycle,Slot "
+ Mmsg(&mdb->cmd, "SELECT MediaId,VolumeName,VolStatus,"
+ "VolBytes,VolFiles,VolRetention,Recycle,Slot,MediaType,LastWritten "
"FROM Media WHERE Media.VolumeName='%s'", mdbr->VolumeName);
} else {
- Mmsg(&mdb->cmd, "SELECT MediaId,VolumeName,MediaType,VolStatus,"
- "VolBytes,LastWritten,VolRetention,Recycle,Slot "
+ Mmsg(&mdb->cmd, "SELECT MediaId,VolumeName,VolStatus,"
+ "VolBytes,VolFiles,VolRetention,Recycle,Slot,MediaType,LastWritten "
"FROM Media WHERE Media.PoolId=%u ORDER BY MediaId", mdbr->PoolId);
}
}
return;
}
- list_result(mdb, sendit, ctx, full);
+ list_result(mdb, sendit, ctx, type);
sql_free_result(mdb);
db_unlock(mdb);
}
-void db_list_jobmedia_records(void *jcr, B_DB *mdb, uint32_t JobId,
- DB_LIST_HANDLER *sendit, void *ctx, int full)
+void db_list_jobmedia_records(JCR *jcr, B_DB *mdb, uint32_t JobId,
+ DB_LIST_HANDLER *sendit, void *ctx, e_list_type type)
{
db_lock(mdb);
- if (full) {
+ if (type == VERT_LIST) {
if (JobId > 0) { /* do by JobId */
Mmsg(&mdb->cmd, "SELECT JobMediaId,JobId,MediaId,Media.VolumeName,"
"FirstIndex,LastIndex,StartFile,EndFile,StartBlock,EndBlock "
} else {
if (JobId > 0) { /* do by JobId */
- Mmsg(&mdb->cmd, "SELECT JobId,Media.VolumeName,FirstIndex,LastIndex"
+ Mmsg(&mdb->cmd, "SELECT JobId,Media.VolumeName,FirstIndex,LastIndex "
"FROM JobMedia,Media WHERE Media.MediaId=JobMedia.MediaId "
"AND JobMedia.JobId=%u", JobId);
} else {
return;
}
- list_result(mdb, sendit, ctx, full);
+ list_result(mdb, sendit, ctx, type);
sql_free_result(mdb);
db_unlock(mdb);
* only the job with the specified id.
*/
void
-db_list_job_records(void *jcr, B_DB *mdb, JOB_DBR *jr, DB_LIST_HANDLER *sendit,
- void *ctx, int full)
+db_list_job_records(JCR *jcr, B_DB *mdb, JOB_DBR *jr, DB_LIST_HANDLER *sendit,
+ void *ctx, e_list_type type)
{
db_lock(mdb);
- if (full) {
+ if (type == VERT_LIST) {
if (jr->JobId == 0 && jr->Job[0] == 0) {
Mmsg(&mdb->cmd,
"SELECT JobId,Job,Job.Name,PurgedFiles,Type,Level,"
db_unlock(mdb);
return;
}
- list_result(mdb, sendit, ctx, full);
+ list_result(mdb, sendit, ctx, type);
sql_free_result(mdb);
db_unlock(mdb);
*
*/
void
-db_list_job_totals(void *jcr, B_DB *mdb, JOB_DBR *jr, DB_LIST_HANDLER *sendit, void *ctx)
+db_list_job_totals(JCR *jcr, B_DB *mdb, JOB_DBR *jr, DB_LIST_HANDLER *sendit, void *ctx)
{
db_lock(mdb);
return;
}
- list_result(mdb, sendit, ctx, 0);
+ list_result(mdb, sendit, ctx, HORZ_LIST);
sql_free_result(mdb);
return;
}
- list_result(mdb, sendit, ctx, 0);
+ list_result(mdb, sendit, ctx, HORZ_LIST);
sql_free_result(mdb);
db_unlock(mdb);
void
-db_list_files_for_job(void *jcr, B_DB *mdb, uint32_t jobid, DB_LIST_HANDLER *sendit, void *ctx)
+db_list_files_for_job(JCR *jcr, B_DB *mdb, uint32_t jobid, DB_LIST_HANDLER *sendit, void *ctx)
{
db_lock(mdb);
return;
}
- list_result(mdb, sendit, ctx, 0);
+ list_result(mdb, sendit, ctx, HORZ_LIST);
sql_free_result(mdb);
db_unlock(mdb);
}
-#endif /* HAVE_MYSQL || HAVE_SQLITE */
+#endif /* HAVE_MYSQL || HAVE_SQLITE || HAVE_POSTGRESQL */