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