115 lines
5.9 KiB
Diff
115 lines
5.9 KiB
Diff
diff -up firefox-71.0/dom/indexedDB/ActorsParent.cpp.gcc-workaround firefox-71.0/dom/indexedDB/ActorsParent.cpp
|
|
--- firefox-71.0/dom/indexedDB/ActorsParent.cpp.gcc-workaround 2019-12-02 13:22:58.000000000 +0100
|
|
+++ firefox-71.0/dom/indexedDB/ActorsParent.cpp 2019-12-08 21:52:54.449199120 +0100
|
|
@@ -24311,11 +24311,11 @@ nsresult ObjectStoreAddOrPutRequestOp::D
|
|
// if we allow overwrite or not. By not allowing overwrite we raise
|
|
// detectable errors rather than corrupting data.
|
|
DatabaseConnection::CachedStatement stmt;
|
|
- const auto& optReplaceDirective = (!mOverwrite || keyUnset)
|
|
- ? NS_LITERAL_CSTRING("")
|
|
- : NS_LITERAL_CSTRING("OR REPLACE ");
|
|
rv = aConnection->GetCachedStatement(
|
|
- NS_LITERAL_CSTRING("INSERT ") + optReplaceDirective +
|
|
+ NS_LITERAL_CSTRING("INSERT ") +
|
|
+ ((!mOverwrite || keyUnset)
|
|
+ ? NS_LITERAL_CSTRING("")
|
|
+ : NS_LITERAL_CSTRING("OR REPLACE ")) +
|
|
NS_LITERAL_CSTRING("INTO object_data "
|
|
"(object_store_id, key, file_ids, data) "
|
|
"VALUES (:") +
|
|
@@ -25869,11 +25869,8 @@ void Cursor::OpenOp::PrepareIndexKeyCond
|
|
}
|
|
}
|
|
|
|
- const auto& comparisonChar =
|
|
- isIncreasingOrder ? NS_LITERAL_CSTRING(">") : NS_LITERAL_CSTRING("<");
|
|
-
|
|
mCursor->mContinueToQuery =
|
|
- aQueryStart + NS_LITERAL_CSTRING(" AND sort_column ") + comparisonChar +
|
|
+ aQueryStart + NS_LITERAL_CSTRING(" AND sort_column ") + (isIncreasingOrder ? NS_LITERAL_CSTRING(">") : NS_LITERAL_CSTRING("<")) +
|
|
NS_LITERAL_CSTRING("= :") + kStmtParamNameCurrentKey;
|
|
|
|
switch (mCursor->mDirection) {
|
|
@@ -25881,11 +25878,11 @@ void Cursor::OpenOp::PrepareIndexKeyCond
|
|
case IDBCursor::PREV:
|
|
mCursor->mContinueQuery =
|
|
aQueryStart + NS_LITERAL_CSTRING(" AND sort_column ") +
|
|
- comparisonChar + NS_LITERAL_CSTRING("= :") +
|
|
+ (isIncreasingOrder ? NS_LITERAL_CSTRING(">") : NS_LITERAL_CSTRING("<")) + NS_LITERAL_CSTRING("= :") +
|
|
kStmtParamNameCurrentKey + NS_LITERAL_CSTRING(" AND ( sort_column ") +
|
|
- comparisonChar + NS_LITERAL_CSTRING(" :") + kStmtParamNameCurrentKey +
|
|
+ (isIncreasingOrder ? NS_LITERAL_CSTRING(">") : NS_LITERAL_CSTRING("<")) + NS_LITERAL_CSTRING(" :") + kStmtParamNameCurrentKey +
|
|
NS_LITERAL_CSTRING(" OR ") + aObjectDataKeyPrefix +
|
|
- NS_LITERAL_CSTRING("object_data_key ") + comparisonChar +
|
|
+ NS_LITERAL_CSTRING("object_data_key ") + (isIncreasingOrder ? NS_LITERAL_CSTRING(">") : NS_LITERAL_CSTRING("<")) +
|
|
NS_LITERAL_CSTRING(" :") + kStmtParamNameObjectStorePosition +
|
|
NS_LITERAL_CSTRING(" ) ");
|
|
|
|
@@ -25896,12 +25893,12 @@ void Cursor::OpenOp::PrepareIndexKeyCond
|
|
"(sort_column == :") +
|
|
kStmtParamNameCurrentKey + NS_LITERAL_CSTRING(" AND ") +
|
|
aObjectDataKeyPrefix + NS_LITERAL_CSTRING("object_data_key ") +
|
|
- comparisonChar + NS_LITERAL_CSTRING("= :") +
|
|
+ (isIncreasingOrder ? NS_LITERAL_CSTRING(">") : NS_LITERAL_CSTRING("<")) + NS_LITERAL_CSTRING("= :") +
|
|
kStmtParamNameObjectStorePosition +
|
|
NS_LITERAL_CSTRING(
|
|
") OR "
|
|
"sort_column ") +
|
|
- comparisonChar + NS_LITERAL_CSTRING(" :") + kStmtParamNameCurrentKey +
|
|
+ (isIncreasingOrder ? NS_LITERAL_CSTRING(">") : NS_LITERAL_CSTRING("<")) + NS_LITERAL_CSTRING(" :") + kStmtParamNameCurrentKey +
|
|
NS_LITERAL_CSTRING(")");
|
|
break;
|
|
|
|
@@ -25909,7 +25906,7 @@ void Cursor::OpenOp::PrepareIndexKeyCond
|
|
case IDBCursor::PREV_UNIQUE:
|
|
mCursor->mContinueQuery =
|
|
aQueryStart + NS_LITERAL_CSTRING(" AND sort_column ") +
|
|
- comparisonChar + NS_LITERAL_CSTRING(" :") + kStmtParamNameCurrentKey;
|
|
+ (isIncreasingOrder ? NS_LITERAL_CSTRING(">") : NS_LITERAL_CSTRING("<")) + NS_LITERAL_CSTRING(" :") + kStmtParamNameCurrentKey;
|
|
break;
|
|
|
|
default:
|
|
@@ -26076,9 +26073,6 @@ nsresult Cursor::OpenOp::DoIndexDatabase
|
|
|
|
const bool usingKeyRange = mOptionalKeyRange.isSome();
|
|
|
|
- const auto& indexTable = mCursor->mUniqueIndex
|
|
- ? NS_LITERAL_CSTRING("unique_index_data")
|
|
- : NS_LITERAL_CSTRING("index_data");
|
|
|
|
NS_NAMED_LITERAL_CSTRING(sortColumn, "sort_column");
|
|
|
|
@@ -26099,7 +26093,9 @@ nsresult Cursor::OpenOp::DoIndexDatabase
|
|
"object_data.file_ids, "
|
|
"object_data.data "
|
|
"FROM ") +
|
|
- indexTable +
|
|
+ (mCursor->mUniqueIndex
|
|
+ ? NS_LITERAL_CSTRING("unique_index_data")
|
|
+ : NS_LITERAL_CSTRING("index_data")) +
|
|
NS_LITERAL_CSTRING(
|
|
" AS index_table "
|
|
"JOIN object_data "
|
|
@@ -26198,9 +26194,6 @@ nsresult Cursor::OpenOp::DoIndexKeyDatab
|
|
|
|
const bool usingKeyRange = mOptionalKeyRange.isSome();
|
|
|
|
- const auto& table = mCursor->mUniqueIndex
|
|
- ? NS_LITERAL_CSTRING("unique_index_data")
|
|
- : NS_LITERAL_CSTRING("index_data");
|
|
|
|
NS_NAMED_LITERAL_CSTRING(sortColumn, "sort_column");
|
|
|
|
@@ -26218,7 +26211,10 @@ nsresult Cursor::OpenOp::DoIndexKeyDatab
|
|
NS_LITERAL_CSTRING(
|
|
"object_data_key "
|
|
" FROM ") +
|
|
- table + NS_LITERAL_CSTRING(" WHERE index_id = :") +
|
|
+ (mCursor->mUniqueIndex
|
|
+ ? NS_LITERAL_CSTRING("unique_index_data")
|
|
+ : NS_LITERAL_CSTRING("index_data")) +
|
|
+ NS_LITERAL_CSTRING(" WHERE index_id = :") +
|
|
kStmtParamNameId;
|
|
|
|
const auto keyRangeClause =
|