From f35daef9d85ee8dd171ee9c7c01899dbd989286e Mon Sep 17 00:00:00 2001 From: Eric Bollengier Date: Mon, 23 May 2022 18:45:00 +0200 Subject: [PATCH] Fix some SQL filters for MySQL The ILIKE operator doesn't exist for MySQL. We replace it by lower(a) LIKE ('str') --- bacula/src/cats/sql_list.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bacula/src/cats/sql_list.c b/bacula/src/cats/sql_list.c index 61b17d247..a47f906d1 100644 --- a/bacula/src/cats/sql_list.c +++ b/bacula/src/cats/sql_list.c @@ -111,7 +111,7 @@ bool BDB::bdb_search_job_records(JCR *jcr, JOB_DBR *jr, Mmsg(cmd, "SELECT Job " "FROM Job " - " %s WHERE Job.Job ILIKE '%%%s%%' %s", join, esc, where_tmp); + " %s WHERE lower(Job.Job) LIKE lower('%%%s%%') %s", join, esc, where_tmp); if (jr->limit > 0) { char ed1[50]; @@ -140,7 +140,7 @@ bool BDB::bdb_search_client_records(JCR *jcr, CLIENT_DBR *rec, DB_RESULT_HANDLER where_tmp = get_acls(DB_ACL_BIT(DB_ACL_CLIENT), 0); Mmsg(cmd, "SELECT Name " - "FROM Client WHERE Name ILIKE '%%%s%%' %s", + "FROM Client WHERE lower(Name) LIKE lower('%%%s%%') %s", esc, where_tmp); if (rec->limit > 0) { @@ -443,7 +443,7 @@ bool BDB::bdb_search_media_records(JCR *jcr, MEDIA_DBR *mdbr, mdbr->limit = 50; } - Mmsg(cmd, "SELECT VolumeName FROM Media %s WHERE Media.VolumeName ILIKE '%%%s%%' %s LIMIT %u", + Mmsg(cmd, "SELECT VolumeName FROM Media %s WHERE lower(Media.VolumeName) LIKE lower('%%%s%%') %s LIMIT %u", join, esc, where, @@ -811,7 +811,7 @@ void BDB::bdb_list_joblog_records(JCR *jcr, uint32_t JobId, const char *pattern, POOL_MEM esc; esc.check_size(strlen(pattern) * 2 + 1); bdb_escape_string(jcr, esc.c_str(), pattern, strlen(pattern)); - Mmsg(tmp, "Log.LogText ILIKE '%%%s%%' ", esc.c_str()); + Mmsg(tmp, "lower(Log.LogText) LIKE lower('%%%s%%') ", esc.c_str()); append_filter(where2.handle(), tmp.c_str()); } -- 2.47.3