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
e16b8bc7
Commit
e16b8bc7
authored
Feb 22, 2011
by
Konstantin Käfer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add tests for large numbers
parent
e436fca5
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
118 additions
and
3 deletions
+118
-3
statement.cc
src/statement.cc
+3
-3
each.test.js
test/each.test.js
+20
-0
other_objects.test.js
test/other_objects.test.js
+67
-0
createdb.js
test/support/createdb.js
+28
-0
No files found.
src/statement.cc
View file @
e16b8bc7
...
...
@@ -173,14 +173,14 @@ template <class T> T* Statement::Bind(const Arguments& args, int start) {
T
*
baton
=
new
T
(
this
,
callback
);
for
(
int
i
=
start
;
i
<
last
;
i
++
)
{
if
(
args
[
i
]
->
IsString
())
{
if
(
args
[
i
]
->
IsString
()
||
args
[
i
]
->
IsRegExp
()
)
{
String
::
Utf8Value
val
(
args
[
i
]
->
ToString
());
baton
->
parameters
.
push_back
(
new
Data
::
Text
(
val
.
length
(),
*
val
));
}
else
if
(
args
[
i
]
->
IsInt32
()
||
args
[
i
]
->
IsUint32
()
)
{
else
if
(
args
[
i
]
->
IsInt32
())
{
baton
->
parameters
.
push_back
(
new
Data
::
Integer
(
args
[
i
]
->
Int32Value
()));
}
else
if
(
args
[
i
]
->
IsNumber
())
{
else
if
(
args
[
i
]
->
IsNumber
()
||
args
[
i
]
->
IsDate
()
)
{
baton
->
parameters
.
push_back
(
new
Data
::
Float
(
args
[
i
]
->
NumberValue
()));
}
else
if
(
args
[
i
]
->
IsBoolean
())
{
...
...
test/each.test.js
0 → 100644
View file @
e16b8bc7
var
sqlite3
=
require
(
'sqlite3'
);
var
assert
=
require
(
'assert'
);
var
util
=
require
(
'util'
);
exports
[
'test Statement#each'
]
=
function
(
beforeExit
)
{
var
db
=
new
sqlite3
.
Database
(
'test/support/big.db'
,
sqlite3
.
OPEN_READONLY
);
var
total
=
100000
;
var
retrieved
=
0
;
db
.
each
(
'SELECT id, txt FROM foo LIMIT 0, ?'
,
total
,
function
(
err
,
row
)
{
if
(
err
)
throw
err
;
retrieved
++
;
});
beforeExit
(
function
()
{
assert
.
equal
(
retrieved
,
total
,
"Only retrieved "
+
retrieved
+
" out of "
+
total
+
" rows."
);
});
};
\ No newline at end of file
test/other_objects.test.js
0 → 100644
View file @
e16b8bc7
var
sqlite3
=
require
(
'sqlite3'
);
var
assert
=
require
(
'assert'
);
exports
[
'test Date() and RegExp() serialization'
]
=
function
(
beforeExit
)
{
var
db
=
new
sqlite3
.
Database
(
':memory:'
);
var
retrieved
=
false
;
var
date
=
new
Date
();
db
.
serialize
(
function
()
{
db
.
run
(
"CREATE TABLE foo (txt TEXT, num FLOAT)"
);
db
.
run
(
"INSERT INTO foo VALUES(?, ?)"
,
(
/^f
\n
oo/
),
date
);
db
.
get
(
"SELECT txt, num FROM foo"
,
function
(
err
,
row
)
{
if
(
err
)
throw
err
;
assert
.
equal
(
row
[
0
],
'/^f
\\
noo/'
);
assert
.
equal
(
row
[
1
],
+
date
);
retrieved
=
true
;
})
});
beforeExit
(
function
()
{
assert
.
ok
(
retrieved
);
});
};
exports
[
'test large floats'
]
=
function
(
beforeExit
)
{
var
db
=
new
sqlite3
.
Database
(
':memory:'
);
var
retrieved
=
false
;
var
numbers
=
[
4294967296.249
,
Math
.
PI
,
3924729304762836.5
,
912667.394828365
,
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 FLOAT)"
);
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
][
0
]);
}
retrieved
=
true
;
})
});
beforeExit
(
function
()
{
assert
.
ok
(
retrieved
);
});
};
test/support/createdb.js
0 → 100644
View file @
e16b8bc7
#!/bin/sh
var
sqlite3
=
require
(
'../../lib/sqlite3'
);
function
randomString
()
{
var
str
=
''
;
var
chars
=
'abcdefghijklmnopqrstuvwxzyABCDEFGHIJKLMNOPQRSTUVWXZY0123456789 '
;
for
(
var
i
=
Math
.
random
()
*
100
;
i
>
0
;
i
--
)
{
str
+=
chars
[
Math
.
floor
(
Math
.
random
()
*
chars
.
length
)];
}
return
str
;
};
var
db
=
new
sqlite3
.
Database
(
'big.db'
);
var
count
=
10000000
;
db
.
serialize
(
function
()
{
db
.
run
(
"CREATE TABLE foo (id INT, txt TEXT)"
);
db
.
run
(
"BEGIN TRANSACTION"
);
var
stmt
=
db
.
prepare
(
"INSERT INTO foo VALUES(?, ?)"
);
for
(
var
i
=
0
;
i
<
count
;
i
++
)
{
stmt
.
run
(
i
,
randomString
());
}
stmt
.
finalize
();
db
.
run
(
"COMMIT TRANSACTION"
);
});
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