From 869de1ebb5dbd90c307dbbd600d26209e632bdee Mon Sep 17 00:00:00 2001 From: Ryan Clark Date: Mon, 9 Mar 2015 22:15:11 -0400 Subject: [PATCH 1/2] finalize prepared statement in zxystream --- lib/zxystream.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/zxystream.js b/lib/zxystream.js index 5816503..0c993f4 100644 --- a/lib/zxystream.js +++ b/lib/zxystream.js @@ -57,7 +57,11 @@ ZXYStream.prototype._read = function() { if (error) { stream.emit('error', error); } else { - stream.push(lines || null); + if (lines) stream.push(lines); + else { + stream.statement.finalize(); + stream.push(null); + } } } } @@ -68,4 +72,3 @@ function toLine(row) { var y = row.y = (1 << row.z) - 1 - row.y; return row.z + '/' + row.x + '/' + y + '\n'; } - From 60121958ca0800c1d79e2008c83e4d4e8fef00e6 Mon Sep 17 00:00:00 2001 From: Ryan Clark Date: Mon, 9 Mar 2015 22:22:16 -0400 Subject: [PATCH 2/2] test that fails without finalized statement --- test/zxystream.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/test/zxystream.js b/test/zxystream.js index 58e1e3d..b568ae2 100644 --- a/test/zxystream.js +++ b/test/zxystream.js @@ -41,6 +41,18 @@ tape('zxystream default batch', function(assert) { }); }); +tape('zxystream: can close source', function(assert) { + new MBTiles(__dirname + '/fixtures/plain_1.mbtiles', function(err, src) { + assert.ifError(err); + src.createZXYStream() + .on('end', function() { + src.close(function(err) { + assert.ifError(err, 'can close source when zxystream is finished'); + assert.end(); + }); + }).resume(); + }); +}); tape('zxystream batch = 10', function(assert) { var stream = source.createZXYStream({batch:10}); @@ -133,5 +145,3 @@ tape('zxystream empty zxystream', function(assert) { assert.end(); }); }); - -