Commit d8a2589e by Orlando Vazquez

fix a subtle bug in tests

parent 911cd8d9
......@@ -834,7 +834,6 @@ protected:
if (!column_count_) return;
for (int i = 0; i < column_count_; i++) {
switch (column_types_[i]) {
// XXX why does using String::New make v8 croak here?
case SQLITE_INTEGER:
free(column_data_[i]);
break;
......@@ -948,10 +947,8 @@ protected:
}
else if (rc == SQLITE_DONE) {
// nothing to do in this case
printf("done\n");
}
else {
printf("error\n");
sto->error_ = true;
}
......
var sqlite = require('../sqlite3_bindings');
var sys = require('sys');
var puts = sys.puts;
var inspect = sys.inspect;
var db = new sqlite.Database();
var total = 100000;
var rows = 0;
var t0;
function getRows() {
db.prepare("SELECT alpha FROM t1", function (error, statement) {
if (error) throw error;
rows = 0;
t0 = new Date();
function onStep(error, row) {
var d;
if (error) throw error;
if (!row) {
statement.finalize(function () { });
d = ((new Date)-t0)/1000;
puts("**** " + d + "s to fetch " + rows + " rows (" + (rows/d) + "/s)");
return;
}
rows++;
statement.step(onStep);
}
statement.step(onStep);
});
}
function createTable(db, callback) {
db.prepare("CREATE TABLE t1 (alpha INTEGER)", function (error, statement) {
if (error) throw error;
callback();
});
}
var count = 0;
function onPrepare(error, statement) {
var d;
if (error) throw error;
statement.bind(1, count++, function (error) {
if (error) throw error;
statement.step(function (row) {
statement.finalize(function () {
if (++rows == total) {
d = ((new Date)-t0)/1000;
puts("**** " + d + "s to insert " + rows + " rows (" + (rows/d) + "/s)");
getRows();
}
});
});
});
}
db.open(':memory:', function () {
createTable(db, function () {
t0 = new Date();
for (var i = 0; i < total; i++) {
db.prepare("INSERT INTO t1 VALUES (?)", onPrepare);
}
});
});
......@@ -9,28 +9,26 @@ var db = new sqlite.Database();
var total = 100000;
var rows = 0;
var t0;
var statement;
function onStep(error, row) {
// puts(inspect(arguments));
function getRows() {
db.prepare("SELECT * FROM t1", function (error, statement) {
if (error) throw error;
rows = 0;
t0 = new Date();
function onStep(error, row) {
var d;
if (error) throw error;
if (!row) {
statement.finalize(function () { puts("finalized") });
statement.finalize(function () { });
d = ((new Date)-t0)/1000;
puts("**** " + d + "s to fetch " + rows + " rows (" + (rows/d) + "/s)");
return;
}
rows++;
statement.step(arguments.callee);
}
statement.step(onStep);
}
function getRows() {
db.prepare("SELECT * FROM t1", function (error, st) {
if (error) throw error;
rows = 0;
t0 = new Date();
statement = st;
statement.step(onStep);
});
}
......@@ -42,8 +40,12 @@ function createTable(db, callback) {
});
}
function onPrepare() {
var count = 0;
function onPrepare(error, statement) {
var d;
if (error) throw error;
if (++rows == total) {
d = ((new Date)-t0)/1000;
puts("**** " + d + "s to insert " + rows + " rows (" + (rows/d) + "/s)");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment