Bug 1569217 - Use single quoted literals in IFNULL, NULLIF, COALESCE. r=RyanVM

Differential Revision: https://phabricator.services.mozilla.com/D39514

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Marco Bonardo 2019-07-26 15:53:55 +00:00
parent 68ff8b6963
commit 44ccf4da4e
12 changed files with 48 additions and 48 deletions

View File

@ -341,7 +341,7 @@ this.PersonalityProvider = class PersonalityProvider {
WHERE last_visit_date >= ${beginTimeSecs * 1000000}
AND last_visit_date < ${endTimeSecs * 1000000}`;
columns.forEach(requiredColumn => {
sql += ` AND IFNULL(${requiredColumn}, "") <> ""`;
sql += ` AND IFNULL(${requiredColumn}, '') <> ''`;
});
sql += " LIMIT 30000";

View File

@ -411,7 +411,7 @@ describe("Personality Provider", () => {
const history = await instance.fetchHistory(["requiredColumn"], 1, 1);
assert.equal(
history.sql,
`SELECT url, title, visit_count, frecency, last_visit_date, description\n FROM moz_places\n WHERE last_visit_date >= 1000000\n AND last_visit_date < 1000000 AND IFNULL(requiredColumn, "") <> "" LIMIT 30000`
`SELECT url, title, visit_count, frecency, last_visit_date, description\n FROM moz_places\n WHERE last_visit_date >= 1000000\n AND last_visit_date < 1000000 AND IFNULL(requiredColumn, '') <> '' LIMIT 30000`
);
assert.equal(history.options.columns.length, 1);
assert.equal(Object.keys(history.options.params).length, 0);

View File

@ -1865,7 +1865,7 @@ async function updateBookmark(
if (info.hasOwnProperty("title")) {
tuples.set("title", {
value: info.title,
fragment: `title = NULLIF(:title, "")`,
fragment: `title = NULLIF(:title, '')`,
});
}
if (info.hasOwnProperty("dateAdded")) {
@ -2113,7 +2113,7 @@ function insertBookmark(item, parent) {
dateAdded, lastModified, guid,
syncChangeCounter, syncStatus)
VALUES (CASE WHEN :url ISNULL THEN NULL ELSE (SELECT id FROM moz_places WHERE url_hash = hash(:url) AND url = :url) END,
:type, :parent, :index, NULLIF(:title, ""), :date_added,
:type, :parent, :index, NULLIF(:title, ''), :date_added,
:last_modified, :guid, :syncChangeCounter, :syncStatus)
`,
{
@ -2211,7 +2211,7 @@ function insertBookmarkTree(items, source, parent, urls, lastAddedForParent) {
VALUES (CASE WHEN :url ISNULL THEN NULL ELSE (SELECT id FROM moz_places WHERE url_hash = hash(:url) AND url = :url) END, :type,
(SELECT id FROM moz_bookmarks WHERE guid = :parentGuid),
IFNULL(:index, (SELECT count(*) FROM moz_bookmarks WHERE parent = :rootId)),
NULLIF(:title, ""), :date_added, :last_modified, :guid,
NULLIF(:title, ''), :date_added, :last_modified, :guid,
:syncChangeCounter, :syncStatus)`,
items
);
@ -2336,9 +2336,9 @@ async function queryBookmarks(info) {
// are required to be in the result by the converting function
// hence setting them to NULL
let rows = await db.executeCached(
`SELECT b.guid, IFNULL(p.guid, "") AS parentGuid, b.position AS 'index',
`SELECT b.guid, IFNULL(p.guid, '') AS parentGuid, b.position AS 'index',
b.dateAdded, b.lastModified, b.type,
IFNULL(b.title, "") AS title, h.url AS url, b.parent, p.parent,
IFNULL(b.title, '') AS title, h.url AS url, b.parent, p.parent,
NULL AS _id,
NULL AS _childCount,
NULL AS _grandParentId,
@ -2374,8 +2374,8 @@ async function queryBookmarks(info) {
async function fetchBookmark(info, options = {}) {
let query = async function(db) {
let rows = await db.executeCached(
`SELECT b.guid, IFNULL(p.guid, "") AS parentGuid, b.position AS 'index',
b.dateAdded, b.lastModified, b.type, IFNULL(b.title, "") AS title,
`SELECT b.guid, IFNULL(p.guid, '') AS parentGuid, b.position AS 'index',
b.dateAdded, b.lastModified, b.type, IFNULL(b.title, '') AS title,
h.url AS url, b.id AS _id, b.parent AS _parentId,
(SELECT count(*) FROM moz_bookmarks WHERE parent = b.id) AS _childCount,
p.parent AS _grandParentId, b.syncStatus AS _syncStatus
@ -2408,8 +2408,8 @@ async function fetchBookmarkByPosition(info, options = {}) {
let query = async function(db) {
let index = info.index == Bookmarks.DEFAULT_INDEX ? null : info.index;
let rows = await db.executeCached(
`SELECT b.guid, IFNULL(p.guid, "") AS parentGuid, b.position AS 'index',
b.dateAdded, b.lastModified, b.type, IFNULL(b.title, "") AS title,
`SELECT b.guid, IFNULL(p.guid, '') AS parentGuid, b.position AS 'index',
b.dateAdded, b.lastModified, b.type, IFNULL(b.title, '') AS title,
h.url AS url, b.id AS _id, b.parent AS _parentId,
(SELECT count(*) FROM moz_bookmarks WHERE parent = b.id) AS _childCount,
p.parent AS _grandParentId, b.syncStatus AS _syncStatus
@ -2439,8 +2439,8 @@ async function fetchBookmarkByPosition(info, options = {}) {
async function fetchBookmarksByTags(info, options = {}) {
let query = async function(db) {
let rows = await db.executeCached(
`SELECT b.guid, IFNULL(p.guid, "") AS parentGuid, b.position AS 'index',
b.dateAdded, b.lastModified, b.type, IFNULL(b.title, "") AS title,
`SELECT b.guid, IFNULL(p.guid, '') AS parentGuid, b.position AS 'index',
b.dateAdded, b.lastModified, b.type, IFNULL(b.title, '') AS title,
h.url AS url, b.id AS _id, b.parent AS _parentId,
NULL AS _childCount,
p.parent AS _grandParentId, b.syncStatus AS _syncStatus
@ -2481,8 +2481,8 @@ async function fetchBookmarksByTags(info, options = {}) {
async function fetchBookmarksByGUIDPrefix(info, options = {}) {
let query = async function(db) {
let rows = await db.executeCached(
`SELECT b.guid, IFNULL(p.guid, "") AS parentGuid, b.position AS 'index',
b.dateAdded, b.lastModified, b.type, IFNULL(b.title, "") AS title,
`SELECT b.guid, IFNULL(p.guid, '') AS parentGuid, b.position AS 'index',
b.dateAdded, b.lastModified, b.type, IFNULL(b.title, '') AS title,
h.url AS url, b.id AS _id, b.parent AS _parentId,
NULL AS _childCount,
p.parent AS _grandParentId, b.syncStatus AS _syncStatus
@ -2513,8 +2513,8 @@ async function fetchBookmarksByURL(info, options = {}) {
let tagsFolderId = await promiseTagsFolderId();
let rows = await db.executeCached(
`/* do not warn (bug no): not worth to add an index */
SELECT b.guid, IFNULL(p.guid, "") AS parentGuid, b.position AS 'index',
b.dateAdded, b.lastModified, b.type, IFNULL(b.title, "") AS title,
SELECT b.guid, IFNULL(p.guid, '') AS parentGuid, b.position AS 'index',
b.dateAdded, b.lastModified, b.type, IFNULL(b.title, '') AS title,
h.url AS url, b.id AS _id, b.parent AS _parentId,
NULL AS _childCount, /* Unused for now */
p.parent AS _grandParentId, b.syncStatus AS _syncStatus
@ -2547,9 +2547,9 @@ function fetchRecentBookmarks(numberOfItems) {
async function(db) {
let tagsFolderId = await promiseTagsFolderId();
let rows = await db.executeCached(
`SELECT b.guid, IFNULL(p.guid, "") AS parentGuid, b.position AS 'index',
`SELECT b.guid, IFNULL(p.guid, '') AS parentGuid, b.position AS 'index',
b.dateAdded, b.lastModified, b.type,
IFNULL(b.title, "") AS title, h.url AS url, NULL AS _id,
IFNULL(b.title, '') AS title, h.url AS url, NULL AS _id,
NULL AS _parentId, NULL AS _childCount, NULL AS _grandParentId,
NULL AS _syncStatus
FROM moz_bookmarks b
@ -2576,8 +2576,8 @@ function fetchRecentBookmarks(numberOfItems) {
async function fetchBookmarksByParent(db, info) {
let rows = await db.executeCached(
`SELECT b.guid, IFNULL(p.guid, "") AS parentGuid, b.position AS 'index',
b.dateAdded, b.lastModified, b.type, IFNULL(b.title, "") AS title,
`SELECT b.guid, IFNULL(p.guid, '') AS parentGuid, b.position AS 'index',
b.dateAdded, b.lastModified, b.type, IFNULL(b.title, '') AS title,
h.url AS url, b.id AS _id, b.parent AS _parentId,
(SELECT count(*) FROM moz_bookmarks WHERE parent = b.id) AS _childCount,
p.parent AS _grandParentId, b.syncStatus AS _syncStatus
@ -3170,7 +3170,7 @@ var removeFoldersContents = async function(db, folderGuids, options) {
)
SELECT b.id AS _id, b.parent AS _parentId, b.position AS 'index',
b.type, url, b.guid, p.guid AS parentGuid, b.dateAdded,
b.lastModified, IFNULL(b.title, "") AS title,
b.lastModified, IFNULL(b.title, '') AS title,
p.parent AS _grandParentId, NULL AS _childCount,
b.syncStatus AS _syncStatus
FROM descendants

View File

@ -1607,7 +1607,7 @@ var update = async function(db, pageInfo) {
SET ${updateFragments.map(v => `${v} = :${v}`).join(", ")}
WHERE id = :id
AND (${updateFragments
.map(v => `IFNULL(${v}, "") <> IFNULL(:${v}, "")`)
.map(v => `IFNULL(${v}, '') <> IFNULL(:${v}, '')`)
.join(" OR ")})
`,
{ id, ...params }

View File

@ -359,7 +359,7 @@ const HistorySyncUtils = (PlacesSyncUtils.history = Object.freeze({
let db = await PlacesUtils.promiseDBConnection();
let rows = await db.executeCached(
`
SELECT url, IFNULL(title, "") AS title, frecency
SELECT url, IFNULL(title, '') AS title, frecency
FROM moz_places
WHERE guid = :guid`,
{ guid }

View File

@ -1788,7 +1788,7 @@ var PlacesUtils = {
FROM moz_bookmarks b2
JOIN descendants ON b2.parent = descendants.id AND b2.id <> :tags_folder)
SELECT d.level, d.id, d.guid, d.parent, d.parentGuid, d.type,
d.position AS [index], IFNULL(d.title, "") AS title, d.dateAdded,
d.position AS [index], IFNULL(d.title, '') AS title, d.dateAdded,
d.lastModified, h.url, (SELECT icon_url FROM moz_icons i
JOIN moz_icons_to_pages ON icon_id = i.id
JOIN moz_pages_w_icons pi ON page_id = pi.id

View File

@ -857,7 +857,7 @@ class SyncedBookmarksMirror {
dateAdded, title, keyword, validity,
urlId)
VALUES(:guid, :parentGuid, :serverModified, :needsMerge, :kind,
:dateAdded, NULLIF(:title, ""), :keyword, :validity,
:dateAdded, NULLIF(:title, ''), :keyword, :validity,
(SELECT id FROM urls
WHERE hash = hash(:url) AND
url = :url))`,
@ -955,7 +955,7 @@ class SyncedBookmarksMirror {
urlId,
validity)
VALUES(:guid, :parentGuid, :serverModified, :needsMerge, :kind,
:dateAdded, NULLIF(:title, ""),
:dateAdded, NULLIF(:title, ''),
(SELECT id FROM urls
WHERE hash = hash(:url) AND
url = :url),
@ -986,7 +986,7 @@ class SyncedBookmarksMirror {
REPLACE INTO items(guid, parentGuid, serverModified, needsMerge, kind,
dateAdded, title)
VALUES(:guid, :parentGuid, :serverModified, :needsMerge, :kind,
:dateAdded, NULLIF(:title, ""))`,
:dateAdded, NULLIF(:title, ''))`,
{
guid,
parentGuid,
@ -1041,7 +1041,7 @@ class SyncedBookmarksMirror {
REPLACE INTO items(guid, parentGuid, serverModified, needsMerge, kind,
dateAdded, title, feedURL, siteURL, validity)
VALUES(:guid, :parentGuid, :serverModified, :needsMerge, :kind,
:dateAdded, NULLIF(:title, ""), :feedURL, :siteURL, :validity)`,
:dateAdded, NULLIF(:title, ''), :feedURL, :siteURL, :validity)`,
{
guid,
parentGuid,
@ -1215,9 +1215,9 @@ class SyncedBookmarksMirror {
let itemRows = await this.db.execute(`
SELECT id, syncChangeCounter, guid, isDeleted, type, isQuery,
tagFolderName, keyword, url, IFNULL(title, "") AS title,
tagFolderName, keyword, url, IFNULL(title, '') AS title,
position, parentGuid,
IFNULL(parentTitle, "") AS parentTitle, dateAdded
IFNULL(parentTitle, '') AS parentTitle, dateAdded
FROM itemsToUpload`);
await Async.yieldingForEach(
@ -2324,7 +2324,7 @@ class BookmarkObserverRecorder {
MirrorLog.trace("Recording observer notifications for new items");
let newItemRows = await this.db.execute(`
SELECT b.id, p.id AS parentId, b.position, b.type, h.url,
IFNULL(b.title, "") AS title, b.dateAdded, b.guid,
IFNULL(b.title, '') AS title, b.dateAdded, b.guid,
p.guid AS parentGuid, n.isTagging
FROM itemsAdded n
JOIN moz_bookmarks b ON b.guid = n.guid
@ -2384,8 +2384,8 @@ class BookmarkObserverRecorder {
MirrorLog.trace("Recording observer notifications for changed items");
let changedItemRows = await this.db.execute(`
SELECT b.id, b.guid, b.lastModified, b.type,
IFNULL(b.title, "") AS newTitle,
IFNULL(c.oldTitle, "") AS oldTitle,
IFNULL(b.title, '') AS newTitle,
IFNULL(c.oldTitle, '') AS oldTitle,
h.url AS newURL, i.url AS oldURL,
p.id AS parentId, p.guid AS parentGuid
FROM itemsChanged c

View File

@ -159,9 +159,9 @@ const SQL_AUTOFILL_WITH = `
WITH
frecency_stats(count, sum, squares) AS (
SELECT
CAST((SELECT IFNULL(value, 0.0) FROM moz_meta WHERE key = "origin_frecency_count") AS REAL),
CAST((SELECT IFNULL(value, 0.0) FROM moz_meta WHERE key = "origin_frecency_sum") AS REAL),
CAST((SELECT IFNULL(value, 0.0) FROM moz_meta WHERE key = "origin_frecency_sum_of_squares") AS REAL)
CAST((SELECT IFNULL(value, 0.0) FROM moz_meta WHERE key = 'origin_frecency_count') AS REAL),
CAST((SELECT IFNULL(value, 0.0) FROM moz_meta WHERE key = 'origin_frecency_sum') AS REAL),
CAST((SELECT IFNULL(value, 0.0) FROM moz_meta WHERE key = 'origin_frecency_sum_of_squares') AS REAL)
),
autofill_frecency_threshold(value) AS (
SELECT

View File

@ -184,7 +184,7 @@ impl<'s> dogear::Store<Error> for Store<'s> {
let mut contents = HashMap::new();
let mut statement = self.db.prepare(
r#"SELECT b.guid, b.type, IFNULL(b.title, "") AS title, h.url,
r#"SELECT b.guid, b.type, IFNULL(b.title, '') AS title, h.url,
b.position
FROM moz_bookmarks b
JOIN moz_bookmarks p ON p.id = b.parent
@ -301,7 +301,7 @@ impl<'s> dogear::Store<Error> for Store<'s> {
let mut contents = HashMap::new();
let mut statement = self.db.prepare(
r#"SELECT v.guid, v.kind, IFNULL(v.title, "") AS title, u.url,
r#"SELECT v.guid, v.kind, IFNULL(v.title, '') AS title, u.url,
IFNULL(s.position, -1) AS position
FROM items v
LEFT JOIN urls u ON u.id = v.urlId

View File

@ -2464,9 +2464,9 @@ tests.push({
let db = await PlacesUtils.promiseDBConnection();
let rows = await db.execute(`
SELECT
IFNULL((SELECT value FROM moz_meta WHERE key = "origin_frecency_count"), 0),
IFNULL((SELECT value FROM moz_meta WHERE key = "origin_frecency_sum"), 0),
IFNULL((SELECT value FROM moz_meta WHERE key = "origin_frecency_sum_of_squares"), 0)
IFNULL((SELECT value FROM moz_meta WHERE key = 'origin_frecency_count'), 0),
IFNULL((SELECT value FROM moz_meta WHERE key = 'origin_frecency_sum'), 0),
IFNULL((SELECT value FROM moz_meta WHERE key = 'origin_frecency_sum_of_squares'), 0)
`);
return {
count: rows[0].getResultByIndex(0),

View File

@ -1346,9 +1346,9 @@ async function getOriginFrecencyStats() {
let db = await PlacesUtils.promiseDBConnection();
let rows = await db.execute(`
SELECT
IFNULL((SELECT value FROM moz_meta WHERE key = "origin_frecency_count"), 0),
IFNULL((SELECT value FROM moz_meta WHERE key = "origin_frecency_sum"), 0),
IFNULL((SELECT value FROM moz_meta WHERE key = "origin_frecency_sum_of_squares"), 0)
IFNULL((SELECT value FROM moz_meta WHERE key = 'origin_frecency_count'), 0),
IFNULL((SELECT value FROM moz_meta WHERE key = 'origin_frecency_sum'), 0),
IFNULL((SELECT value FROM moz_meta WHERE key = 'origin_frecency_sum_of_squares'), 0)
`);
let count = rows[0].getResultByIndex(0);
let sum = rows[0].getResultByIndex(1);

View File

@ -1088,9 +1088,9 @@ async function promiseStats() {
let db = await PlacesUtils.promiseDBConnection();
let rows = await db.execute(`
SELECT
IFNULL((SELECT value FROM moz_meta WHERE key = "origin_frecency_count"), 0),
IFNULL((SELECT value FROM moz_meta WHERE key = "origin_frecency_sum"), 0),
IFNULL((SELECT value FROM moz_meta WHERE key = "origin_frecency_sum_of_squares"), 0)
IFNULL((SELECT value FROM moz_meta WHERE key = 'origin_frecency_count'), 0),
IFNULL((SELECT value FROM moz_meta WHERE key = 'origin_frecency_sum'), 0),
IFNULL((SELECT value FROM moz_meta WHERE key = 'origin_frecency_sum_of_squares'), 0)
`);
return {
count: rows[0].getResultByIndex(0),