Use SQLite text data type for integers longer than 15 characters
This commit is contained in:
parent
d5eacdcbc6
commit
dd776bbb70
1 changed files with 8 additions and 2 deletions
|
@ -262,6 +262,13 @@ Zotero.Utilities.prototype.isInt = function(x) {
|
|||
Zotero.Utilities.prototype.getSQLDataType = function(value) {
|
||||
var strVal = value + '';
|
||||
if (strVal.match(/^[1-9]+[0-9]*$/)) {
|
||||
// 2^53 (9007199254740992) is JS's upper-bound for decimal integers,
|
||||
// but since integer comparisons above that won't work,
|
||||
// we use a string past 15 digits
|
||||
if (strVal.length > 15) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// These upper bounds also specified in Zotero.DB
|
||||
//
|
||||
// Store as 32-bit signed integer
|
||||
|
@ -269,8 +276,7 @@ Zotero.Utilities.prototype.getSQLDataType = function(value) {
|
|||
return 32;
|
||||
}
|
||||
// Store as 64-bit signed integer
|
||||
// 2^53 is JS's upper-bound for decimal integers
|
||||
else if (value < 9007199254740992) {
|
||||
else {
|
||||
return 64;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue