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'; } - 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(); }); }); - -