Skip to content

Commit

Permalink
cats: Use JOIN USING() instead of JOIN ON()
Browse files Browse the repository at this point in the history
Try using as much as possible the JOIN USING() SQL syntax and only the
JOIN ON() SQL syntax when we JOIN tables not on an unique fieldname or
when the query becomes unambiguous.
  • Loading branch information
Marco van Wieringen committed Sep 1, 2016
1 parent bbf4d09 commit baaa236
Show file tree
Hide file tree
Showing 6 changed files with 53 additions and 53 deletions.
2 changes: 1 addition & 1 deletion src/cats/bvfs.c
Expand Up @@ -283,7 +283,7 @@ bool B_DB::update_path_hierarchy_cache(JCR *jcr, pathid_cache &ppathid_cache, Jo
"JOIN PathVisibility AS p ON (h.PathId=p.PathId) "
"WHERE p.JobId=%s) AS a "
"LEFT JOIN PathVisibility AS b "
"ON (b.JobId=%s and a.PathId = b.PathId) "
"ON (b.JobId=%s AND a.PathId = b.PathId) "
"WHERE b.PathId IS NULL",
jobid, jobid, jobid);
}
Expand Down
80 changes: 40 additions & 40 deletions src/cats/sql_cmds.c
Expand Up @@ -86,10 +86,10 @@ const char *list_jobs =
"SELECT DISTINCT Job.JobId,Job.Name, Client.Name as Client, "
"Job.StartTime,Job.Type,Job.Level,Job.JobFiles,Job.JobBytes,Job.JobStatus "
"FROM Job "
"LEFT JOIN Client ON Client.ClientId=Job.ClientId "
"LEFT JOIN JobMedia ON JobMedia.JobId=Job.JobId "
"LEFT JOIN Media ON JobMedia.MediaId=Media.MediaId "
"LEFT JOIN FileSet ON FileSet.FileSetId=Job.FileSetId "
"LEFT JOIN Client USING(ClientId) "
"LEFT JOIN JobMedia USING(JobId) "
"LEFT JOIN Media USING(MediaId) "
"LEFT JOIN FileSet USING(FileSetId) "
"WHERE Job.JobId > 0 "
"%s "
"ORDER BY StartTime%s";
Expand All @@ -98,18 +98,18 @@ const char *list_jobs_last =
"SELECT DISTINCT Job.JobId,Job.Name, Client.Name as Client, "
"Job.StartTime,Job.Type,Job.Level,Job.JobFiles,Job.JobBytes,Job.JobStatus "
"FROM Job "
"LEFT JOIN Client ON Client.ClientId=Job.ClientId "
"LEFT JOIN JobMedia ON JobMedia.JobId=Job.JobId "
"LEFT JOIN Media ON JobMedia.MediaId=Media.MediaId "
"LEFT JOIN FileSet ON FileSet.FileSetId=Job.FileSetId "
"LEFT JOIN Client USING(ClientId) "
"LEFT JOIN JobMedia USING(JobId) "
"LEFT JOIN Media USING(MediaId) "
"LEFT JOIN FileSet USING(FileSetId) "
"INNER JOIN ( "
"SELECT MAX(Job.JobId) as MaxJobId "
"FROM Job "
"LEFT JOIN Client ON Client.ClientId=Job.ClientId "
"LEFT JOIN Pool ON Pool.PoolId=Job.PoolId "
"LEFT JOIN JobMedia ON JobMedia.JobId=Job.JobId "
"LEFT JOIN Media ON JobMedia.MediaId=Media.MediaId "
"LEFT JOIN FileSet ON FileSet.FileSetId=Job.FileSetId "
"LEFT JOIN Client USING(ClientId) "
"LEFT JOIN Pool USING(PoolId) "
"LEFT JOIN JobMedia USING(JobId) "
"LEFT JOIN Media USING(MediaId) "
"LEFT JOIN FileSet USING(FileSetId) "
"WHERE Job.JobId > 0 "
"%s "
"GROUP BY Job.Name "
Expand All @@ -120,10 +120,10 @@ const char *list_jobs_last =
const char *list_jobs_count =
"SELECT DISTINCT COUNT(DISTINCT Job.JobId) as count "
"FROM Job "
"LEFT JOIN Client ON Client.ClientId=Job.ClientId "
"LEFT JOIN JobMedia ON JobMedia.JobId=Job.JobId "
"LEFT JOIN Media ON JobMedia.MediaId=Media.MediaId "
"LEFT JOIN FileSet ON FileSet.FileSetId=Job.FileSetId "
"LEFT JOIN Client USING(ClientId) "
"LEFT JOIN JobMedia USING(JobId) "
"LEFT JOIN Media USING(MediaId) "
"LEFT JOIN FileSet USING(FileSetId) "
"WHERE Job.JobId > 0 "
"%s "
"%s";
Expand All @@ -135,11 +135,11 @@ const char *list_jobs_long =
"Job.JobFiles, Job.JobBytes, Job.JobErrors, Job.JobMissingFiles, Job.PoolId, "
"Pool.Name as PoolName, Job.PriorJobId, Job.FileSetId, FileSet.FileSet "
"FROM Job "
"LEFT JOIN Client ON Client.ClientId=Job.ClientId "
"LEFT JOIN Pool ON Pool.PoolId=Job.PoolId "
"LEFT JOIN JobMedia ON JobMedia.JobId=Job.JobId "
"LEFT JOIN Media ON JobMedia.MediaId=Media.MediaId "
"LEFT JOIN FileSet ON FileSet.FileSetId=Job.FileSetId "
"LEFT JOIN Client USING(ClientId) "
"LEFT JOIN Pool USING(PoolId) "
"LEFT JOIN JobMedia USING(JobId) "
"LEFT JOIN Media USING(MediaId) "
"LEFT JOIN FileSet USING(FileSetId) "
"WHERE Job.JobId > 0 "
"%s "
"ORDER BY StartTime%s";
Expand All @@ -151,19 +151,19 @@ const char *list_jobs_long_last =
"Job.JobFiles, Job.JobBytes, Job.JobErrors, Job.JobMissingFiles, Job.PoolId, "
"Pool.Name as PoolName, Job.PriorJobId, Job.FileSetId, FileSet.FileSet "
"FROM Job "
"LEFT JOIN Client ON Client.ClientId=Job.ClientId "
"LEFT JOIN Pool ON Pool.PoolId=Job.PoolId "
"LEFT JOIN JobMedia ON JobMedia.JobId=Job.JobId "
"LEFT JOIN Media ON JobMedia.MediaId=Media.MediaId "
"LEFT JOIN FileSet ON FileSet.FileSetId=Job.FileSetId "
"LEFT JOIN Client USING(ClientId) "
"LEFT JOIN Pool USING(PoolId) "
"LEFT JOIN JobMedia USING(JobId) "
"LEFT JOIN Media USING(MediaId) "
"LEFT JOIN FileSet USING(FileSetId) "
"INNER JOIN ( "
"SELECT MAX(Job.JobId) as MaxJobId "
"FROM Job "
"LEFT JOIN Client ON Client.ClientId=Job.ClientId "
"LEFT JOIN Pool ON Pool.PoolId=Job.PoolId "
"LEFT JOIN JobMedia ON JobMedia.JobId=Job.JobId "
"LEFT JOIN Media ON JobMedia.MediaId=Media.MediaId "
"LEFT JOIN FileSet ON FileSet.FileSetId=Job.FileSetId "
"LEFT JOIN Client USING(ClientId) "
"LEFT JOIN Pool USING(PoolId) "
"LEFT JOIN JobMedia USING(JobId) "
"LEFT JOIN Media USING(MediaId) "
"LEFT JOIN FileSet USING(FileSetId) "
"WHERE Job.JobId > 0 "
"%s "
"GROUP BY Job.Name "
Expand Down Expand Up @@ -627,8 +627,8 @@ const char *create_temp_new_basefile[] = {
"Temp.JobId AS JobId, Temp.LStat AS LStat, Temp.FileId AS FileId, "
"Temp.MD5 AS MD5 "
"FROM ( %s ) AS Temp "
"JOIN Filename ON (Filename.FilenameId = Temp.FilenameId) "
"JOIN Path ON (Path.PathId = Temp.PathId) "
"JOIN Filename USING(FilenameId) "
"JOIN Path USING(PathId) "
"WHERE Temp.FileIndex > 0",

/* Postgresql */
Expand All @@ -637,8 +637,8 @@ const char *create_temp_new_basefile[] = {
"Temp.JobId AS JobId, Temp.LStat AS LStat, Temp.FileId AS FileId, "
"Temp.MD5 AS MD5 "
"FROM ( %s ) AS Temp "
"JOIN Filename ON (Filename.FilenameId = Temp.FilenameId) "
"JOIN Path ON (Path.PathId = Temp.PathId) "
"JOIN Filename USING(FilenameId) "
"JOIN Path USING(PathId) "
"WHERE Temp.FileIndex > 0",

/* SQLite3 */
Expand All @@ -647,8 +647,8 @@ const char *create_temp_new_basefile[] = {
"Temp.JobId AS JobId, Temp.LStat AS LStat, Temp.FileId AS FileId, "
"Temp.MD5 AS MD5 "
"FROM ( %s ) AS Temp "
"JOIN Filename ON (Filename.FilenameId = Temp.FilenameId) "
"JOIN Path ON (Path.PathId = Temp.PathId) "
"JOIN Filename USING(FilenameId) "
"JOIN Path USING(PathId) "
"WHERE Temp.FileIndex > 0",

/* Ingres */
Expand All @@ -657,8 +657,8 @@ const char *create_temp_new_basefile[] = {
"Temp.JobId AS JobId, Temp.LStat AS LStat, Temp.FileId AS FileId, "
"Temp.MD5 AS MD5 "
"FROM ( %s ) AS Temp "
"JOIN Filename ON (Filename.FilenameId = Temp.FilenameId) "
"JOIN Path ON (Path.PathId = Temp.PathId) "
"JOIN Filename USING(FilenameId) "
"JOIN Path USING(PathId) "
"WHERE Temp.FileIndex > 0 "
"ON COMMIT PRESERVE ROWS WITH NORECOVERY"
};
Expand Down
4 changes: 2 additions & 2 deletions src/cats/sql_get.c
Expand Up @@ -1256,8 +1256,8 @@ bool B_DB::get_file_list(JCR *jcr, char *jobids, bool use_md5, bool use_delta,
Mmsg(query,
"SELECT Path.Path, Filename.Name, T1.FileIndex, T1.JobId, LStat, DeltaSeq, MD5 "
"FROM ( %s ) AS T1 "
"JOIN Filename ON (Filename.FilenameId = T1.FilenameId) "
"JOIN Path ON (Path.PathId = T1.PathId) "
"JOIN Filename USING(FilenameId) "
"JOIN Path USING(PathId) "
"WHERE FileIndex > 0 "
"ORDER BY T1.JobTDate, FileIndex ASC",/* Return sorted by JobTDate */
/* FileIndex for restore code */
Expand Down
4 changes: 2 additions & 2 deletions src/cats/sql_list.c
Expand Up @@ -86,13 +86,13 @@ void B_DB::list_pool_records(JCR *jcr, POOL_DBR *pdbr, OUTPUT_FORMATTER *sendit,
"AcceptAnyVolume,VolRetention,VolUseDuration,MaxVolJobs,MaxVolBytes,"
"AutoPrune,Recycle,PoolType,LabelFormat,Enabled,ScratchPoolId,"
"RecyclePoolId,LabelType "
" FROM Pool WHERE Name='%s'", esc);
"FROM Pool WHERE Name='%s'", esc);
} else {
Mmsg(cmd, "SELECT PoolId,Name,NumVols,MaxVols,UseOnce,UseCatalog,"
"AcceptAnyVolume,VolRetention,VolUseDuration,MaxVolJobs,MaxVolBytes,"
"AutoPrune,Recycle,PoolType,LabelFormat,Enabled,ScratchPoolId,"
"RecyclePoolId,LabelType "
" FROM Pool ORDER BY PoolId");
"FROM Pool ORDER BY PoolId");
}
} else {
if (pdbr->Name[0] != 0) {
Expand Down
14 changes: 7 additions & 7 deletions src/dird/dbcheck.c
Expand Up @@ -818,7 +818,7 @@ static void eliminate_duplicate_paths()
static void eliminate_orphaned_jobmedia_records()
{
const char *query = "SELECT JobMedia.JobMediaId,Job.JobId FROM JobMedia "
"LEFT OUTER JOIN Job ON (JobMedia.JobId=Job.JobId) "
"LEFT OUTER JOIN Job USING(JobId) "
"WHERE Job.JobId IS NULL LIMIT 300000";

printf(_("Checking for orphaned JobMedia entries.\n"));
Expand Down Expand Up @@ -861,7 +861,7 @@ static void eliminate_orphaned_jobmedia_records()
static void eliminate_orphaned_file_records()
{
const char *query = "SELECT File.FileId,Job.JobId FROM File "
"LEFT OUTER JOIN Job ON (File.JobId=Job.JobId) "
"LEFT OUTER JOIN Job USING (JobId) "
"WHERE Job.JobId IS NULL LIMIT 300000";

printf(_("Checking for orphaned File entries. This may take some time!\n"));
Expand Down Expand Up @@ -928,7 +928,7 @@ static void eliminate_orphaned_path_records()
}

const char *query = "SELECT DISTINCT Path.PathId,File.PathId FROM Path "
"LEFT OUTER JOIN File ON (Path.PathId=File.PathId) "
"LEFT OUTER JOIN File USING(PathId) "
"WHERE File.PathId IS NULL LIMIT 300000";

printf(_("Checking for orphaned Path entries. This may take some time!\n"));
Expand Down Expand Up @@ -986,7 +986,7 @@ static void eliminate_orphaned_filename_records()
}

const char *query = "SELECT Filename.FilenameId,File.FilenameId FROM Filename "
"LEFT OUTER JOIN File ON (Filename.FilenameId=File.FilenameId) "
"LEFT OUTER JOIN File USING(FilenameId) "
"WHERE File.FilenameId IS NULL LIMIT 300000";

printf(_("Checking for orphaned Filename entries. This may take some time!\n"));
Expand Down Expand Up @@ -1035,7 +1035,7 @@ static void eliminate_orphaned_fileset_records()

printf(_("Checking for orphaned FileSet entries. This takes some time!\n"));
query = "SELECT FileSet.FileSetId,Job.FileSetId FROM FileSet "
"LEFT OUTER JOIN Job ON (FileSet.FileSetId=Job.FileSetId) "
"LEFT OUTER JOIN Job USING(FileSetId) "
"WHERE Job.FileSetId IS NULL";
if (verbose > 1) {
printf("%s\n", query);
Expand Down Expand Up @@ -1077,7 +1077,7 @@ static void eliminate_orphaned_client_records()
* i.e. Job.Client is NULL
*/
query = "SELECT Client.ClientId,Client.Name FROM Client "
"LEFT OUTER JOIN Job ON (Client.ClientId=Job.ClientId) "
"LEFT OUTER JOIN Job USING(ClientId) "
"WHERE Job.ClientId IS NULL";
if (verbose > 1) {
printf("%s\n", query);
Expand Down Expand Up @@ -1119,7 +1119,7 @@ static void eliminate_orphaned_job_records()
* i.e. Client.Name is NULL
*/
query = "SELECT Job.JobId,Job.Name FROM Job "
"LEFT OUTER JOIN Client ON (Job.ClientId=Client.ClientId) "
"LEFT OUTER JOIN Client USING(ClientId) "
"WHERE Client.Name IS NULL";
if (verbose > 1) {
printf("%s\n", query);
Expand Down
2 changes: 1 addition & 1 deletion src/dird/ua_prune.c
Expand Up @@ -433,7 +433,7 @@ static bool prune_set_filter(UAContext *ua, CLIENTRES *client,
Mmsg(tmp, " AND Pool.Name = '%s' ", ed2);
pm_strcat(*add_where, tmp.c_str());
/* Use ON() instead of USING for some old SQLite */
pm_strcat(*add_from, " JOIN Pool ON (Job.PoolId = Pool.PoolId) ");
pm_strcat(*add_from, " JOIN Pool USING(PoolId) ");
}
Dmsg2(150, "f=%s w=%s\n", add_from->c_str(), add_where->c_str());
db_unlock(ua->db);
Expand Down

0 comments on commit baaa236

Please sign in to comment.