Changeset View
Changeset View
Standalone View
Standalone View
src/resultset.cpp
Show First 20 Lines • Show All 173 Lines • ▼ Show 20 Line(s) | 115 | public: | |||
---|---|---|---|---|---|
174 | 174 | | |||
175 | QString mimetypeClause(const QString &mimetype) const | 175 | QString mimetypeClause(const QString &mimetype) const | ||
176 | { | 176 | { | ||
177 | if (mimetype == QLatin1String(":any") || mimetype == QLatin1String("*")) return QStringLiteral("1"); | 177 | if (mimetype == QLatin1String(":any") || mimetype == QLatin1String("*")) return QStringLiteral("1"); | ||
178 | 178 | | |||
179 | return QStringLiteral("mimetype LIKE '") + Common::starPatternToLike(mimetype) + QStringLiteral("' ESCAPE '\\'"); | 179 | return QStringLiteral("mimetype LIKE '") + Common::starPatternToLike(mimetype) + QStringLiteral("' ESCAPE '\\'"); | ||
180 | } | 180 | } | ||
181 | 181 | | |||
182 | QString dateClause(QDate date) const { | 182 | QString dateClause(QDate start, QDate end) const { | ||
183 | if (end.isNull()) { | ||||
184 | // only date filtering | ||||
183 | return QStringLiteral("DATE(re.start, 'unixepoch') = '") + | 185 | return QStringLiteral("DATE(re.start, 'unixepoch') = '") + | ||
184 | date.toString(Qt::ISODate) + QStringLiteral("' "); | 186 | start.toString(Qt::ISODate) + QStringLiteral("' "); | ||
187 | } else { | ||||
188 | // date range filtering | ||||
189 | return QStringLiteral("DATE(re.start, 'unixepoch') >= '") + | ||||
190 | start.toString(Qt::ISODate) + QStringLiteral("' AND DATE(re.start, 'unixepoch') <= '") + | ||||
191 | end.toString(Qt::ISODate) + QStringLiteral("' "); | ||||
192 | } | ||||
185 | } | 193 | } | ||
186 | 194 | | |||
187 | QString resourceEventJoinClause() const { | 195 | QString resourceEventJoinClause() const { | ||
188 | return QStringLiteral(R"sql( | 196 | return QStringLiteral(R"sql( | ||
189 | LEFT JOIN | 197 | LEFT JOIN | ||
190 | ResourceEvent re | 198 | ResourceEvent re | ||
191 | ON from_table.targettedResource = re.targettedResource | 199 | ON from_table.targettedResource = re.targettedResource | ||
192 | AND from_table.usedActivity = re.usedActivity | 200 | AND from_table.usedActivity = re.usedActivity | ||
▲ Show 20 Lines • Show All 61 Lines • ▼ Show 20 Line(s) | 261 | QStringList urlFilter = transformedList( | |||
254 | queryDefinition.urlFilters(), &ResultSetPrivate::urlFilterClause); | 262 | queryDefinition.urlFilters(), &ResultSetPrivate::urlFilterClause); | ||
255 | 263 | | |||
256 | // WHERE clause for filtering on resource mime | 264 | // WHERE clause for filtering on resource mime | ||
257 | QStringList mimetypeFilter = transformedList( | 265 | QStringList mimetypeFilter = transformedList( | ||
258 | queryDefinition.types(), &ResultSetPrivate::mimetypeClause); | 266 | queryDefinition.types(), &ResultSetPrivate::mimetypeClause); | ||
259 | 267 | | |||
260 | QString dateColumn = QStringLiteral("1"), resourceEventJoin; | 268 | QString dateColumn = QStringLiteral("1"), resourceEventJoin; | ||
261 | // WHERE clause for access date filtering and ResourceEvent table Join | 269 | // WHERE clause for access date filtering and ResourceEvent table Join | ||
262 | if (!queryDefinition.date().isNull()) { | 270 | if (!queryDefinition.dateStart().isNull()) { | ||
263 | dateColumn = dateClause(queryDefinition.date()); | 271 | dateColumn = dateClause(queryDefinition.dateStart(), queryDefinition.dateEnd()); | ||
264 | 272 | | |||
265 | resourceEventJoin = resourceEventJoinClause(); | 273 | resourceEventJoin = resourceEventJoinClause(); | ||
266 | } | 274 | } | ||
267 | 275 | | |||
268 | auto queryString = _query; | 276 | auto queryString = _query; | ||
269 | 277 | | |||
270 | queryString.replace(QStringLiteral("ORDER_BY_CLAUSE"), QStringLiteral("ORDER BY $orderingColumn resource ASC")) | 278 | queryString.replace(QStringLiteral("ORDER_BY_CLAUSE"), QStringLiteral("ORDER BY $orderingColumn resource ASC")) | ||
271 | .replace(QStringLiteral("LIMIT_CLAUSE"), limitOffsetSuffix()); | 279 | .replace(QStringLiteral("LIMIT_CLAUSE"), limitOffsetSuffix()); | ||
▲ Show 20 Lines • Show All 293 Lines • Show Last 20 Lines |