Commit d8a2589e by Orlando Vazquez

fix a subtle bug in tests

parent 911cd8d9
...@@ -834,7 +834,6 @@ protected: ...@@ -834,7 +834,6 @@ protected:
if (!column_count_) return; if (!column_count_) return;
for (int i = 0; i < column_count_; i++) { for (int i = 0; i < column_count_; i++) {
switch (column_types_[i]) { switch (column_types_[i]) {
// XXX why does using String::New make v8 croak here?
case SQLITE_INTEGER: case SQLITE_INTEGER:
free(column_data_[i]); free(column_data_[i]);
break; break;
...@@ -948,10 +947,8 @@ protected: ...@@ -948,10 +947,8 @@ protected:
} }
else if (rc == SQLITE_DONE) { else if (rc == SQLITE_DONE) {
// nothing to do in this case // nothing to do in this case
printf("done\n");
} }
else { else {
printf("error\n");
sto->error_ = true; 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(); ...@@ -9,28 +9,26 @@ var db = new sqlite.Database();
var total = 100000; var total = 100000;
var rows = 0; var rows = 0;
var t0; var t0;
var statement;
function onStep(error, row) {
// puts(inspect(arguments));
var d;
if (error) throw error;
if (!row) {
statement.finalize(function () { puts("finalized") });
d = ((new Date)-t0)/1000;
puts("**** " + d + "s to fetch " + rows + " rows (" + (rows/d) + "/s)");
return;
}
rows++;
statement.step(arguments.callee);
}
function getRows() { function getRows() {
db.prepare("SELECT * FROM t1", function (error, st) { db.prepare("SELECT * FROM t1", function (error, statement) {
if (error) throw error; if (error) throw error;
rows = 0; rows = 0;
t0 = new Date(); t0 = new Date();
statement = st;
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); statement.step(onStep);
}); });
} }
...@@ -42,8 +40,12 @@ function createTable(db, callback) { ...@@ -42,8 +40,12 @@ function createTable(db, callback) {
}); });
} }
function onPrepare() { var count = 0;
function onPrepare(error, statement) {
var d; var d;
if (error) throw error;
if (++rows == total) { if (++rows == total) {
d = ((new Date)-t0)/1000; d = ((new Date)-t0)/1000;
puts("**** " + d + "s to insert " + rows + " rows (" + (rows/d) + "/s)"); 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