diff options
| author | Joseph Fernandes <josferna@redhat.com> | 2015-11-30 16:51:35 +0530 | 
|---|---|---|
| committer | Dan Lambright <dlambrig@redhat.com> | 2015-12-02 19:42:52 -0800 | 
| commit | bdfd087d76cbf6336805c6c55c0e0935dfd29a9d (patch) | |
| tree | 1ec384c2fd2fcc45812e24effb458c551fc13f4d /libglusterfs | |
| parent | 9c378026e9561595586a817fee0b439e2c863a22 (diff) | |
tier/libgfdb/sql: Correcting logic in sql query for read
Correcting query in the  where clause
from "a & b | c"
to "a & (b | c)"
where "a" is the condition to join the gf_file_tb and gf_flink_tb
through gfids
"b" is the condition for the write heat
and "c" is the condition for read heat
Change-Id: I99226d82b0efb68fbef3a40f02b215bb2b4370d6
BUG: 1286656
Signed-off-by: Joseph Fernandes <josferna@redhat.com>
Signed-off-by: Dan Lambright <dlambrig@redhat.com>
Reviewed-on: http://review.gluster.org/12823
Tested-by: NetBSD Build System <jenkins@build.gluster.org>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Diffstat (limited to 'libglusterfs')
| -rw-r--r-- | libglusterfs/src/gfdb/gfdb_sqlite3.c | 16 | 
1 files changed, 8 insertions, 8 deletions
diff --git a/libglusterfs/src/gfdb/gfdb_sqlite3.c b/libglusterfs/src/gfdb/gfdb_sqlite3.c index e45a21d66c8..d43911830ed 100644 --- a/libglusterfs/src/gfdb/gfdb_sqlite3.c +++ b/libglusterfs/src/gfdb/gfdb_sqlite3.c @@ -709,12 +709,12 @@ gf_sqlite3_find_recently_changed_files(void *db_conn,          ret = gf_asprintf (&query_str, "%s AND"                  /*First condition: For writes*/ -                "((" GF_COL_TB_WSEC " * " TOSTRING(GFDB_MICROSEC) " + " +                "( ((" GF_COL_TB_WSEC " * " TOSTRING(GFDB_MICROSEC) " + "                  GF_COL_TB_WMSEC ") >= ? )"                  " OR "                  /*Second condition: For reads*/                  "((" GF_COL_TB_RWSEC " * " TOSTRING(GFDB_MICROSEC) " + " -                GF_COL_TB_RWMSEC ") >= ?)", base_query_str); +                GF_COL_TB_RWMSEC ") >= ?) )", base_query_str);          if (ret < 0) {                  gf_msg (GFDB_STR_SQLITE3, GF_LOG_ERROR, 0, LG_MSG_QUERY_FAILED, @@ -805,12 +805,12 @@ gf_sqlite3_find_unchanged_for_time (void *db_conn,          ret = gf_asprintf (&query_str, "%s AND "                  /*First condition: For writes*/ -                "((" GF_COL_TB_WSEC " * " TOSTRING(GFDB_MICROSEC) " + " +                "( ((" GF_COL_TB_WSEC " * " TOSTRING(GFDB_MICROSEC) " + "                  GF_COL_TB_WMSEC ") <= ? )"                  " AND "                  /*Second condition: For reads*/                  "((" GF_COL_TB_RWSEC " * " TOSTRING(GFDB_MICROSEC) " + " -                GF_COL_TB_RWMSEC ") <= ?)", base_query_str); +                GF_COL_TB_RWMSEC ") <= ?) )", base_query_str);          if (ret < 0) {                  gf_msg (GFDB_STR_SQLITE3, GF_LOG_ERROR, 0, LG_MSG_QUERY_FAILED, @@ -910,14 +910,14 @@ gf_sqlite3_find_recently_changed_files_freq (void *db_conn,          }          ret = gf_asprintf (&query_str, "%s AND "                  /*First condition: For Writes*/ -                "( ((" GF_COL_TB_WSEC " * " TOSTRING(GFDB_MICROSEC) " + " +                "( ( ((" GF_COL_TB_WSEC " * " TOSTRING(GFDB_MICROSEC) " + "                  GF_COL_TB_WMSEC ") >= ? )"                  " AND "" (" GF_COL_TB_WFC " >= ? ) )"                  " OR "                  /*Second condition: For Reads */                  "( ((" GF_COL_TB_RWSEC " * " TOSTRING(GFDB_MICROSEC) " + "                  GF_COL_TB_RWMSEC ") >= ?)" -                " AND "" (" GF_COL_TB_RFC " >= ? ) )", base_query_str); +                " AND "" (" GF_COL_TB_RFC " >= ? ) ) )", base_query_str);          if (ret < 0) {                  gf_msg (GFDB_STR_SQLITE3, GF_LOG_ERROR, 0, LG_MSG_QUERY_FAILED, @@ -1055,7 +1055,7 @@ gf_sqlite3_find_unchanged_for_time_freq (void *db_conn,                   * OR                   * File that have write wind time greater than for_time,                   * but write_frequency less than freq_write_cnt*/ -                "( ((" GF_COL_TB_WSEC " * " TOSTRING(GFDB_MICROSEC) " + " +                "( ( ((" GF_COL_TB_WSEC " * " TOSTRING(GFDB_MICROSEC) " + "                  GF_COL_TB_WMSEC ") < ? )"                  " OR "                  "( (" GF_COL_TB_WFC " < ? ) AND" @@ -1072,7 +1072,7 @@ gf_sqlite3_find_unchanged_for_time_freq (void *db_conn,                  " OR "                  "( (" GF_COL_TB_RFC " < ? ) AND"                  "((" GF_COL_TB_RWSEC " * " TOSTRING(GFDB_MICROSEC) " + " -                GF_COL_TB_RWMSEC ") >= ? ) ) )", base_query_str); +                GF_COL_TB_RWMSEC ") >= ? ) ) ) )", base_query_str);          if (ret < 0) {                  gf_msg (GFDB_STR_SQLITE3, GF_LOG_ERROR, 0, LG_MSG_QUERY_FAILED,  | 
