Commit e81c2c95 by Konstantin Käfer

cleanup

parent 693919ea
require.paths.push(__dirname + '/lib');
module.exports = require('./lib')
module.exports = require('./lib');
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);
}
});
});
var sqlite = require('sqlite3_bindings');
var sys = require('sys');
var assert = require('assert');
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 * 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 () { db.close(function () {}); });
d = ((new Date)-t0)/1000;
puts("**** " + d + "s to fetch " + rows + " rows (" + (rows/d) + "/s)");
getRowsFetchAll();
return;
}
rows++;
statement.step(onStep);
}
statement.step(onStep);
});
}
function getRowsFetchAll() {
db.prepare("SELECT * FROM t1", function (error, statement) {
if (error) throw error;
t0 = new Date();
statement.fetchAll(function (error, rows) {
d = ((new Date)-t0)/1000;
puts("**** " + d + "s to fetchAll " + rows.length + " rows (" + (rows.length/d) + "/s)");
statement.finalize(function () { db.close(function () {}); });
return;
});
});
}
function createTable(db, callback) {
db.prepareAndStep("CREATE TABLE t1 (id INTEGER PRIMARY KEY, alpha INTEGER)", function (error, statement) {
if (error) throw error;
callback();
});
}
var count = 0;
function onInsert(error, info) {
var d;
if (error) throw error;
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.prepareAndStep("INSERT INTO t1 (alpha) VALUES (1)", onInsert);
}
});
});
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 createTable(db, callback) {
db.prepare("CREATE TABLE t1 (alpha INTEGER)", function (error, statement) {
if (error) throw error;
callback();
});
}
function onPrepare() {
var stash = arguments.callee.stash;
insertValues(stash.db, stash.count--, stash.callback);
}
function insertValues(db, count, callback) {
if (!count--) {
var d = ((new Date)-t0)/1000;
puts("**** " + d + "s to insert " + rows + " rows (" + (rows/d) + "/s)");
if (callback) callback();
return;
}
rows++;
onPrepare.stash = {
db: db,
count: count,
callback: callback
};
db.prepare("INSERT INTO t1 VALUES (1)", onPrepare)
}
db.open(':memory:', function () {
createTable(db, function () {
t0 = new Date();
insertValues(db, total, function () {
});
});
});
var fs = require("fs"),
sys = require("sys"),
sqlite = require("sqlite");
var puts = sys.puts;
var inspect = sys.inspect;
var db = new sqlite.Database();
function readTest(db, callback) {
var t0 = new Date;
var rows = 0;
db.query("SELECT * FROM t1", function(error, row) {
if (!row) {
var d = ((new Date)-t0)/1000;
puts("**** " + rows + " rows in " + d + "s (" + (rows/d) + "/s)");
if (callback) callback(db);
} else {
// puts("got a row" + inspect(arguments));
rows++;
}
});
}
function writeTest(db, i, callback) {
db.insert("INSERT INTO t1 VALUES (1)", function (error, id) {
if (!i--) {
// end of results
var dt = ((new Date)-t0)/1000;
puts("**** " + count + " insertions in " + dt + "s (" + (count/dt) + "/s)");
if (callback) callback(db);
} else {
writeTest(db, i--, callback);
}
});
}
var count = 100000;
var t0;
db.open(":memory:", function () {
db.query("CREATE TABLE t1 (alpha INTEGER)", function () {
puts("create table callback" + inspect(arguments));
// writeTest(db, readTest);
t0 = new Date;
writeTest(db, count, readTest);
});
});
require 'sqlite3'
db = SQLite3::Database.new(":memory:")
db.execute("CREATE TABLE t1 (alpha INTEGER)") do |row|
end
count = 1000000;
t0 = Time.new;
1.upto(count) do
db.execute("INSERT INTO t1 VALUES (1)") do
end
end
d = Time.new - t0;
puts "Took #{d}s (#{count/d} inserts/s)";
t0 = Time.new;
db.execute("SELECT * FROM t1") do |row|
end
d = Time.new - t0;
puts "Took #{d} (#{count/d} rows/s)";
var fs = require("fs"),
sys = require("sys"),
sqlite = require("../sqlite");
var puts = sys.puts;
var inspect = sys.inspect;
var db = new sqlite.Database();
function readTest(db, callback) {
var t0 = new Date;
var rows = 0;
db.query("SELECT * FROM t1", function(error, row) {
if (!row) {
var d = ((new Date)-t0)/1000;
puts("**** " + rows + " rows in " + d + "s (" + (rows/d) + "/s)");
if (callback) callback(db);
}
else {
// assert.deepEqual(row, {alpha:1, beta: 'hello', pi: 3.141});
// puts("got a row" + inspect(arguments));
rows++;
}
});
}
function writeTest(db, i, callback) {
db.insert("INSERT INTO t1 VALUES (1, 'hello', 3.141)", function (error, id) {
if (!i--) {
// end of results
var dt = ((new Date)-t0)/1000;
puts("**** " + count + " insertions in " + dt + "s (" + (count/dt) + "/s)");
if (callback) callback(db);
}
else {
writeTest(db, i--, callback);
}
});
}
var count = 100000;
var t0;
db.open(":memory:", function () {
puts(inspect(arguments));
puts("open cb");
db.query("CREATE TABLE t1 (alpha INTEGER, beta TEXT, pi FLOAT)", function () {
puts("create table callback" + inspect(arguments));
// writeTest(db, readTest);
t0 = new Date;
writeTest(db, count, readTest);
});
});
require 'sqlite3'
db = SQLite3::Database.new(":memory:")
db.execute("CREATE TABLE t1 (alpha INTEGER, beta TEXT, pi FLOAT)") do |row|
end
count = 100000;
t0 = Time.new;
1.upto(count) do
db.execute("INSERT INTO t1 VALUES (1, 'hello', 3.141)") do
end
end
d = Time.new - t0;
puts "Took #{d}s (#{count/d} inserts/s)";
t0 = Time.new;
db.execute("SELECT * FROM t1") do |row|
end
d = Time.new - t0;
puts "Took #{d} (#{count/d} rows/s)";
var fs = require("fs");
var sys = require("sys");
var assert = require("assert");
var sqlite = require("../sqlite3_bindings");
var puts = sys.puts;
var inspect = sys.inspect;
var db = new sqlite.Database();
assert.throws(function () {
db.open();
});
assert.throws(function () {
db.open("my.db");
});
assert.throws(function () {
db.open("foo.db");
});
function test_prepare() {
db.open("mydatabase.db", function (err) {
puts(inspect(arguments));
if (err) {
puts("There was an error");
throw err;
}
puts("open callback");
db.printIt();
db.prepare("SELECT bar FROM foo; SELECT baz FROM foo;", function (error, statement) {
puts("prepare callback");
db.prepare("SELECT bar FROM foo WHERE bar = $x and (baz = $y or baz = $z)", function (error, statement) {
test_bind();
});
});
});
}
function test_bind() {
db.prepare("SELECT bar FROM foo WHERE bar = $x and (baz = $y or baz = $z)", function (error, statement) {
statement.bind(0, 666, function () {
puts("bind callback");
statement.bind('$y', 666, function () {
puts("bind callback");
statement.bind('$x', "hello", function () {
puts("bind callback");
statement.bind('$z', 3.141, function () {
puts("bind callback");
// statement.bind('$a', 'no such param', function (err) {
// puts(inspect(arguments));
puts("bind callback");
statement.step(function () {
puts("step callback");
});
// });
});
});
});
});
puts("prepare callback");
});
}
function test_simple() {
db.open("mydatabase.db", function () {
db.prepare("SELECT bar, baz FROM foo WHERE baz > 5", function (error, statement) {
puts('prepare callback');
if (error) throw (error);
puts(inspect(arguments));
statement.step(function (error) {
puts('query callback');
puts(inspect(arguments));
statement.step(function () {
puts('query callback');
puts(inspect(arguments));
statement.finalize(function () {
puts("finalize callback");
db.close(function () {
puts("closed database");
puts("close args " + inspect(arguments));
});
});
});
});
});
});
}
function test_close() {
db.open("mydatabase.db", function () {
db.close(function () {
puts("closed database");
});
});
}
// test_close();
test_simple();
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