Commit 4162bcb0 by Konstantin Käfer

remove column results by array index

parent 8fdc4c8c
...@@ -723,8 +723,8 @@ int Statement::EIO_AfterReset(eio_req *req) { ...@@ -723,8 +723,8 @@ int Statement::EIO_AfterReset(eio_req *req) {
return 0; return 0;
} }
Local<Array> Statement::RowToJS(Data::Row* row) { Local<Object> Statement::RowToJS(Data::Row* row) {
Local<Array> result(Array::New(row->size())); Local<Object> result(Object::New());
Data::Row::const_iterator it = row->begin(); Data::Row::const_iterator it = row->begin();
Data::Row::const_iterator end = row->end(); Data::Row::const_iterator end = row->end();
...@@ -757,7 +757,6 @@ Local<Array> Statement::RowToJS(Data::Row* row) { ...@@ -757,7 +757,6 @@ Local<Array> Statement::RowToJS(Data::Row* row) {
} break; } break;
} }
result->Set(i, value);
result->Set(String::NewSymbol(field->name.c_str()), value); result->Set(String::NewSymbol(field->name.c_str()), value);
DELETE_FIELD(field); DELETE_FIELD(field);
......
...@@ -197,7 +197,7 @@ protected: ...@@ -197,7 +197,7 @@ protected:
bool Bind(const Data::Parameters parameters); bool Bind(const Data::Parameters parameters);
static void GetRow(Data::Row* row, sqlite3_stmt* stmt); static void GetRow(Data::Row* row, sqlite3_stmt* stmt);
static Local<Array> RowToJS(Data::Row* row); static Local<Object> RowToJS(Data::Row* row);
void Schedule(EIO_Callback callback, Baton* baton); void Schedule(EIO_Callback callback, Baton* baton);
void Process(); void Process();
void CleanQueue(); void CleanQueue();
......
...@@ -26,11 +26,11 @@ exports['blob test'] = function(beforeExit) { ...@@ -26,11 +26,11 @@ exports['blob test'] = function(beforeExit) {
db.all('SELECT id, image FROM elmos ORDER BY id', function(err, rows) { db.all('SELECT id, image FROM elmos ORDER BY id', function(err, rows) {
if (err) throw err; if (err) throw err;
for (var i = 0; i < rows.length; i++) { for (var i = 0; i < rows.length; i++) {
assert.ok(Buffer.isBuffer(rows[i][1])); assert.ok(Buffer.isBuffer(rows[i].image));
assert.ok(elmo.length, rows[i][1]); assert.ok(elmo.length, rows[i].image);
for (var j = 0; j < elmo.length; j++) { for (var j = 0; j < elmo.length; j++) {
if (elmo[j] !== rows[i][1][j]) { if (elmo[j] !== rows[i].image[j]) {
assert.ok(false, "Wrong byte"); assert.ok(false, "Wrong byte");
} }
} }
......
...@@ -35,18 +35,18 @@ exports['test named parameters'] = function(beforeExit) { ...@@ -35,18 +35,18 @@ exports['test named parameters'] = function(beforeExit) {
db.all("SELECT txt, num FROM foo ORDER BY num", function(err, rows) { db.all("SELECT txt, num FROM foo ORDER BY num", function(err, rows) {
if (err) throw err; if (err) throw err;
assert.equal(rows[0][0], "Lorem Ipsum"); assert.equal(rows[0].txt, "Lorem Ipsum");
assert.equal(rows[0][1], 1); assert.equal(rows[0].num, 1);
assert.equal(rows[1][0], "Dolor Sit Amet"); assert.equal(rows[1].txt, "Dolor Sit Amet");
assert.equal(rows[1][1], 2); assert.equal(rows[1].num, 2);
assert.equal(rows[2][0], "Consectetur Adipiscing Elit"); assert.equal(rows[2].txt, "Consectetur Adipiscing Elit");
assert.equal(rows[2][1], 3); assert.equal(rows[2].num, 3);
assert.equal(rows[3][0], "Sed Do Eiusmod"); assert.equal(rows[3].txt, "Sed Do Eiusmod");
assert.equal(rows[3][1], 4); assert.equal(rows[3].num, 4);
assert.equal(rows[4][0], "Tempor Incididunt"); assert.equal(rows[4].txt, "Tempor Incididunt");
assert.equal(rows[4][1], 5); assert.equal(rows[4].num, 5);
assert.equal(rows[5][0], "Ut Labore Et Dolore"); assert.equal(rows[5].txt, "Ut Labore Et Dolore");
assert.equal(rows[5][1], 6); assert.equal(rows[5].num, 6);
finished = true; finished = true;
}); });
......
...@@ -12,8 +12,8 @@ exports['test Date() and RegExp() serialization'] = function(beforeExit) { ...@@ -12,8 +12,8 @@ exports['test Date() and RegExp() serialization'] = function(beforeExit) {
db.run("INSERT INTO foo VALUES(?, ?)", (/^f\noo/), date); db.run("INSERT INTO foo VALUES(?, ?)", (/^f\noo/), date);
db.get("SELECT txt, num FROM foo", function(err, row) { db.get("SELECT txt, num FROM foo", function(err, row) {
if (err) throw err; if (err) throw err;
assert.equal(row[0], '/^f\\noo/'); assert.equal(row.txt, '/^f\\noo/');
assert.equal(row[1], +date); assert.equal(row.num, +date);
retrieved = true; retrieved = true;
}) })
}); });
...@@ -54,7 +54,7 @@ exports['test large floats'] = function(beforeExit) { ...@@ -54,7 +54,7 @@ exports['test large floats'] = function(beforeExit) {
if (err) throw err; if (err) throw err;
for (var i = 0; i < rows.length; i++) { for (var i = 0; i < rows.length; i++) {
assert.equal(numbers[i], rows[i][0]); assert.equal(numbers[i], rows[i].num);
} }
retrieved = true; retrieved = true;
......
...@@ -77,10 +77,10 @@ exports['test inserting and retrieving rows'] = function(beforeExit) { ...@@ -77,10 +77,10 @@ exports['test inserting and retrieving rows'] = function(beforeExit) {
assert.equal(count + 5, rows.length, "Didn't run all queries"); assert.equal(count + 5, rows.length, "Didn't run all queries");
for (var i = 0; i < count; i++) { for (var i = 0; i < count; i++) {
assert.equal(rows[i][0], 'String ' + i); assert.equal(rows[i].txt, 'String ' + i);
assert.equal(rows[i][1], i); assert.equal(rows[i].num, i);
assert.equal(rows[i][2], i * Math.PI); assert.equal(rows[i].flt, i * Math.PI);
assert.equal(rows[i][3], null); assert.equal(rows[i].blb, null);
retrieved++; retrieved++;
} }
...@@ -114,10 +114,10 @@ exports['test retrieving reset() function'] = function(beforeExit) { ...@@ -114,10 +114,10 @@ exports['test retrieving reset() function'] = function(beforeExit) {
function(err, rows) { function(err, rows) {
if (err) throw err; if (err) throw err;
for (var i = 0; i < rows.length; i++) { for (var i = 0; i < rows.length; i++) {
assert.equal(rows[i][0], 'String 0'); assert.equal(rows[i].txt, 'String 0');
assert.equal(rows[i][1], 0); assert.equal(rows[i].num, 0);
assert.equal(rows[i][2], 0.0); assert.equal(rows[i].flt, 0.0);
assert.equal(rows[i][3], null); assert.equal(rows[i].blb, null);
retrieved++; retrieved++;
} }
} }
...@@ -146,10 +146,10 @@ exports['test multiple get() parameter binding'] = function(beforeExit) { ...@@ -146,10 +146,10 @@ exports['test multiple get() parameter binding'] = function(beforeExit) {
if (err) throw err; if (err) throw err;
for (var i = 0; i < rows.length; i++) { for (var i = 0; i < rows.length; i++) {
var val = i * 10 + 1; var val = i * 10 + 1;
assert.equal(rows[i][0], 'String ' + val); assert.equal(rows[i].txt, 'String ' + val);
assert.equal(rows[i][1], val); assert.equal(rows[i].num, val);
assert.equal(rows[i][2], val * Math.PI); assert.equal(rows[i].flt, val * Math.PI);
assert.equal(rows[i][3], null); assert.equal(rows[i].blb, null);
retrieved++; retrieved++;
} }
} }
...@@ -169,10 +169,10 @@ exports['test prepare() parameter binding'] = function(beforeExit) { ...@@ -169,10 +169,10 @@ exports['test prepare() parameter binding'] = function(beforeExit) {
db.prepare("SELECT txt, num, flt, blb FROM foo WHERE num = ? AND txt = ?", 10, 'String 10') db.prepare("SELECT txt, num, flt, blb FROM foo WHERE num = ? AND txt = ?", 10, 'String 10')
.get(function(err, row) { .get(function(err, row) {
if (err) throw err; if (err) throw err;
assert.equal(row[0], 'String 10'); assert.equal(row.txt, 'String 10');
assert.equal(row[1], 10); assert.equal(row.num, 10);
assert.equal(row[2], 10 * Math.PI); assert.equal(row.flt, 10 * Math.PI);
assert.equal(row[3], null); assert.equal(row.blb, null);
retrieved++; retrieved++;
}); });
...@@ -190,10 +190,10 @@ exports['test get() parameter binding'] = function(beforeExit) { ...@@ -190,10 +190,10 @@ exports['test get() parameter binding'] = function(beforeExit) {
db.prepare("SELECT txt, num, flt, blb FROM foo WHERE num = ? AND txt = ?") db.prepare("SELECT txt, num, flt, blb FROM foo WHERE num = ? AND txt = ?")
.get(10, 'String 10', function(err, row) { .get(10, 'String 10', function(err, row) {
if (err) throw err; if (err) throw err;
assert.equal(row[0], 'String 10'); assert.equal(row.txt, 'String 10');
assert.equal(row[1], 10); assert.equal(row.num, 10);
assert.equal(row[2], 10 * Math.PI); assert.equal(row.flt, 10 * Math.PI);
assert.equal(row[3], null); assert.equal(row.blb, null);
retrieved++; retrieved++;
}); });
...@@ -212,10 +212,10 @@ exports['test all()'] = function(beforeExit) { ...@@ -212,10 +212,10 @@ exports['test all()'] = function(beforeExit) {
.all(function(err, rows) { .all(function(err, rows) {
if (err) throw err; if (err) throw err;
for (var i = 0; i < rows.length; i++) { for (var i = 0; i < rows.length; i++) {
assert.equal(rows[i][0], 'String ' + i); assert.equal(rows[i].txt, 'String ' + i);
assert.equal(rows[i][1], i); assert.equal(rows[i].num, i);
assert.equal(rows[i][2], i * Math.PI); assert.equal(rows[i].flt, i * Math.PI);
assert.equal(rows[i][3], null); assert.equal(rows[i].blb, null);
retrieved++; retrieved++;
} }
}); });
...@@ -237,10 +237,10 @@ exports['test all() parameter binding'] = function(beforeExit) { ...@@ -237,10 +237,10 @@ exports['test all() parameter binding'] = function(beforeExit) {
.all(count, function(err, rows) { .all(count, function(err, rows) {
if (err) throw err; if (err) throw err;
for (var i = 0; i < rows.length; i++) { for (var i = 0; i < rows.length; i++) {
assert.equal(rows[i][0], 'String ' + i); assert.equal(rows[i].txt, 'String ' + i);
assert.equal(rows[i][1], i); assert.equal(rows[i].num, i);
assert.equal(rows[i][2], i * Math.PI); assert.equal(rows[i].flt, i * Math.PI);
assert.equal(rows[i][3], null); assert.equal(rows[i].blb, null);
retrieved++; retrieved++;
} }
}); });
...@@ -310,15 +310,15 @@ exports['test high concurrency'] = function(beforeExit) { ...@@ -310,15 +310,15 @@ exports['test high concurrency'] = function(beforeExit) {
if (err) throw err; if (err) throw err;
for (var i = 0; i < rows.length; i++) { for (var i = 0; i < rows.length; i++) {
assert.ok(data[rows[i][1]] !== true); assert.ok(data[rows[i].num] !== true);
assert.equal(rows[i][0], data[rows[i][1]][0]); assert.equal(rows[i].txt, data[rows[i].num][0]);
assert.equal(rows[i][1], data[rows[i][1]][1]); assert.equal(rows[i].num, data[rows[i].num][1]);
assert.equal(rows[i][2], data[rows[i][1]][2]); assert.equal(rows[i].flt, data[rows[i].num][2]);
assert.equal(rows[i][3], data[rows[i][1]][3]); assert.equal(rows[i].blb, data[rows[i].num][3]);
// Mark the data row as already retrieved. // Mark the data row as already retrieved.
data[rows[i][1]] = true; data[rows[i].num] = true;
retrieved++; retrieved++;
} }
}); });
...@@ -337,10 +337,10 @@ exports['test Database#get()'] = function(beforeExit) { ...@@ -337,10 +337,10 @@ exports['test Database#get()'] = function(beforeExit) {
db.get("SELECT txt, num, flt, blb FROM foo WHERE num = ? AND txt = ?", 10, 'String 10', function(err, row) { db.get("SELECT txt, num, flt, blb FROM foo WHERE num = ? AND txt = ?", 10, 'String 10', function(err, row) {
if (err) throw err; if (err) throw err;
assert.equal(row[0], 'String 10'); assert.equal(row.txt, 'String 10');
assert.equal(row[1], 10); assert.equal(row.num, 10);
assert.equal(row[2], 10 * Math.PI); assert.equal(row.flt, 10 * Math.PI);
assert.equal(row[3], null); assert.equal(row.blb, null);
retrieved++; retrieved++;
}); });
...@@ -385,10 +385,10 @@ exports['test Database#run() and Database#all()'] = function(beforeExit) { ...@@ -385,10 +385,10 @@ exports['test Database#run() and Database#all()'] = function(beforeExit) {
assert.equal(count, rows.length, "Couldn't retrieve all rows"); assert.equal(count, rows.length, "Couldn't retrieve all rows");
for (var i = 0; i < count; i++) { for (var i = 0; i < count; i++) {
assert.equal(rows[i][0], 'String ' + i); assert.equal(rows[i].txt, 'String ' + i);
assert.equal(rows[i][1], i); assert.equal(rows[i].num, i);
assert.equal(rows[i][2], i * Math.PI); assert.equal(rows[i].flt, i * Math.PI);
assert.equal(rows[i][3], null); assert.equal(rows[i].blb, null);
retrieved++; retrieved++;
} }
} }
......
...@@ -21,23 +21,23 @@ exports['test serialize() and parallelize()'] = function(beforeExit) { ...@@ -21,23 +21,23 @@ exports['test serialize() and parallelize()'] = function(beforeExit) {
if (err) throw err; if (err) throw err;
inserted1++; inserted1++;
// Might sometimes fail, but should work fine most of the time. // Might sometimes fail, but should work fine most of the time.
assert.ok(inserted2 >= Math.floor(0.95 * inserted1)); assert.ok(inserted2 >= Math.floor(0.75 * inserted1));
}); });
i++; i++;
stmt2.run('String ' + i, i, i * Math.PI, function(err) { stmt2.run('String ' + i, i, i * Math.PI, function(err) {
if (err) throw err; if (err) throw err;
inserted2++; inserted2++;
assert.ok(inserted1 >= Math.floor(0.95 * inserted2)); assert.ok(inserted1 >= Math.floor(0.75 * inserted2));
}); });
} }
db.serialize(); db.serialize();
db.all("SELECT txt, num, flt, blb FROM foo ORDER BY num", function(err, rows) { db.all("SELECT txt, num, flt, blb FROM foo ORDER BY num", function(err, rows) {
if (err) throw err; if (err) throw err;
for (var i = 0; i < rows.length; i++) { for (var i = 0; i < rows.length; i++) {
assert.equal(rows[i][0], 'String ' + i); assert.equal(rows[i].txt, 'String ' + i);
assert.equal(rows[i][1], i); assert.equal(rows[i].num, i);
assert.equal(rows[i][2], i * Math.PI); assert.equal(rows[i].flt, i * Math.PI);
assert.equal(rows[i][3], null); assert.equal(rows[i].blb, null);
retrieved++; retrieved++;
} }
}); });
...@@ -69,10 +69,10 @@ exports['test serialize(fn)'] = function(beforeExit) { ...@@ -69,10 +69,10 @@ exports['test serialize(fn)'] = function(beforeExit) {
db.all("SELECT txt, num, flt, blb FROM foo ORDER BY num", function(err, rows) { db.all("SELECT txt, num, flt, blb FROM foo ORDER BY num", function(err, rows) {
if (err) throw err; if (err) throw err;
for (var i = 0; i < rows.length; i++) { for (var i = 0; i < rows.length; i++) {
assert.equal(rows[i][0], 'String ' + i); assert.equal(rows[i].txt, 'String ' + i);
assert.equal(rows[i][1], i); assert.equal(rows[i].num, i);
assert.equal(rows[i][2], i * Math.PI); assert.equal(rows[i].flt, i * Math.PI);
assert.equal(rows[i][3], null); assert.equal(rows[i].blb, null);
retrieved++; retrieved++;
} }
}); });
......
...@@ -38,7 +38,7 @@ exports['test unicode characters'] = function(beforeExit) { ...@@ -38,7 +38,7 @@ exports['test unicode characters'] = function(beforeExit) {
if (err) throw err; if (err) throw err;
for (var i = 0; i < rows.length; i++) { for (var i = 0; i < rows.length; i++) {
assert.equal(rows[i][0], data[i]); assert.equal(rows[i].txt, data[i]);
retrieved++; retrieved++;
} }
}); });
......
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