Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
node-sqlite3
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
俞永鹏
node-sqlite3
Commits
baf8e81d
Commit
baf8e81d
authored
Mar 02, 2011
by
Konstantin Käfer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fixes gh-12: make > 32 bit integers work for integer columns
parent
ed09d6cd
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
47 additions
and
4 deletions
+47
-4
statement.cc
src/statement.cc
+2
-2
statement.h
src/statement.h
+2
-2
other_objects.test.js
test/other_objects.test.js
+43
-0
No files found.
src/statement.cc
View file @
baf8e81d
...
@@ -761,7 +761,7 @@ Local<Object> Statement::RowToJS(Row* row) {
...
@@ -761,7 +761,7 @@ Local<Object> Statement::RowToJS(Row* row) {
switch
(
field
->
type
)
{
switch
(
field
->
type
)
{
case
SQLITE_INTEGER
:
{
case
SQLITE_INTEGER
:
{
value
=
Local
<
Value
>
(
Integ
er
::
New
(((
Values
::
Integer
*
)
field
)
->
value
));
value
=
Local
<
Value
>
(
Numb
er
::
New
(((
Values
::
Integer
*
)
field
)
->
value
));
}
break
;
}
break
;
case
SQLITE_FLOAT
:
{
case
SQLITE_FLOAT
:
{
value
=
Local
<
Value
>
(
Number
::
New
(((
Values
::
Float
*
)
field
)
->
value
));
value
=
Local
<
Value
>
(
Number
::
New
(((
Values
::
Float
*
)
field
)
->
value
));
...
@@ -799,7 +799,7 @@ void Statement::GetRow(Row* row, sqlite3_stmt* stmt) {
...
@@ -799,7 +799,7 @@ void Statement::GetRow(Row* row, sqlite3_stmt* stmt) {
const
char
*
name
=
sqlite3_column_name
(
stmt
,
i
);
const
char
*
name
=
sqlite3_column_name
(
stmt
,
i
);
switch
(
type
)
{
switch
(
type
)
{
case
SQLITE_INTEGER
:
{
case
SQLITE_INTEGER
:
{
row
->
push_back
(
new
Values
::
Integer
(
name
,
sqlite3_column_int
(
stmt
,
i
)));
row
->
push_back
(
new
Values
::
Integer
(
name
,
sqlite3_column_int
64
(
stmt
,
i
)));
}
break
;
}
break
;
case
SQLITE_FLOAT
:
{
case
SQLITE_FLOAT
:
{
row
->
push_back
(
new
Values
::
Float
(
name
,
sqlite3_column_double
(
stmt
,
i
)));
row
->
push_back
(
new
Values
::
Float
(
name
,
sqlite3_column_double
(
stmt
,
i
)));
...
...
src/statement.h
View file @
baf8e81d
...
@@ -33,9 +33,9 @@ namespace Values {
...
@@ -33,9 +33,9 @@ namespace Values {
};
};
struct
Integer
:
Field
{
struct
Integer
:
Field
{
template
<
class
T
>
inline
Integer
(
T
_name
,
int
val
)
:
template
<
class
T
>
inline
Integer
(
T
_name
,
int
64_t
val
)
:
Field
(
_name
,
SQLITE_INTEGER
),
value
(
val
)
{}
Field
(
_name
,
SQLITE_INTEGER
),
value
(
val
)
{}
int
value
;
int
64_t
value
;
};
};
struct
Float
:
Field
{
struct
Float
:
Field
{
...
...
test/other_objects.test.js
View file @
baf8e81d
...
@@ -34,6 +34,7 @@ exports['test large floats'] = function(beforeExit) {
...
@@ -34,6 +34,7 @@ exports['test large floats'] = function(beforeExit) {
4294967296.249
,
4294967296.249
,
Math
.
PI
,
Math
.
PI
,
3924729304762836.5
,
3924729304762836.5
,
new
Date
().
valueOf
(),
912667.394828365
,
912667.394828365
,
2.3948728634826374
e
+
83
,
2.3948728634826374
e
+
83
,
9.293476892934982
e
+
300
,
9.293476892934982
e
+
300
,
...
@@ -67,3 +68,45 @@ exports['test large floats'] = function(beforeExit) {
...
@@ -67,3 +68,45 @@ exports['test large floats'] = function(beforeExit) {
assert
.
ok
(
retrieved
);
assert
.
ok
(
retrieved
);
});
});
};
};
exports
[
'test large integers'
]
=
function
(
beforeExit
)
{
var
db
=
new
sqlite3
.
Database
(
':memory:'
);
var
retrieved
=
false
;
var
numbers
=
[
4294967299
,
3924729304762836
,
new
Date
().
valueOf
(),
2.3948728634826374
e
+
83
,
9.293476892934982
e
+
300
,
Infinity
,
-
9.293476892934982
e
+
300
,
-
2.3948728634826374
e
+
83
,
-
Infinity
];
db
.
serialize
(
function
()
{
db
.
run
(
"CREATE TABLE foo (id INT, num INTEGER)"
);
var
stmt
=
db
.
prepare
(
"INSERT INTO foo VALUES(?, ?)"
);
for
(
var
i
=
0
;
i
<
numbers
.
length
;
i
++
)
{
stmt
.
run
(
i
,
numbers
[
i
]);
}
stmt
.
finalize
();
db
.
all
(
"SELECT num FROM foo ORDER BY id"
,
function
(
err
,
rows
)
{
if
(
err
)
throw
err
;
for
(
var
i
=
0
;
i
<
rows
.
length
;
i
++
)
{
assert
.
equal
(
numbers
[
i
],
rows
[
i
].
num
);
}
retrieved
=
true
;
})
});
beforeExit
(
function
()
{
assert
.
ok
(
retrieved
);
});
};
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment