Commit 37278a81 by Konstantin Käfer

automatically enable tracing when there are listeners

parent 1d606508
var sqlite3 = module.exports = exports = require('./sqlite3_bindings'); var sqlite3 = module.exports = exports = require('./sqlite3_bindings');
var EventEmitter = require('events').EventEmitter;
var Database = sqlite3.Database; var Database = sqlite3.Database;
var Statement = sqlite3.Statement; var Statement = sqlite3.Statement;
...@@ -90,6 +91,23 @@ Statement.prototype.map = function() { ...@@ -90,6 +91,23 @@ Statement.prototype.map = function() {
var isVerbose = false; var isVerbose = false;
Database.prototype.addListener = Database.prototype.on = function(event) {
if (event === 'trace') {
this.configure('trace', true);
}
EventEmitter.prototype.addListener.apply(this, arguments);
};
Database.prototype.removeListener = function(event) {
if (event === 'trace') {
this.configure('trace', false);
}
EventEmitter.prototype.removeListener.apply(this, arguments);
};
// Save the stack trace over EIO callbacks. // Save the stack trace over EIO callbacks.
sqlite3.verbose = function() { sqlite3.verbose = function() {
if (!isVerbose) { if (!isVerbose) {
......
...@@ -9,8 +9,6 @@ exports['test Database tracing'] = function(beforeExit) { ...@@ -9,8 +9,6 @@ exports['test Database tracing'] = function(beforeExit) {
var create = false; var create = false;
var select = false; var select = false;
db.configure('trace', true);
db.on('trace', function(sql) { db.on('trace', function(sql) {
if (sql.match(/^SELECT/)) { if (sql.match(/^SELECT/)) {
assert.ok(!select); assert.ok(!select);
......
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