Skip to content

Commit 4162bcb

Browse files
committed
remove column results by array index
1 parent 8fdc4c8 commit 4162bcb

8 files changed

Lines changed: 74 additions & 75 deletions

File tree

src/statement.cc

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -723,8 +723,8 @@ int Statement::EIO_AfterReset(eio_req *req) {
723723
return 0;
724724
}
725725

726-
Local<Array> Statement::RowToJS(Data::Row* row) {
727-
Local<Array> result(Array::New(row->size()));
726+
Local<Object> Statement::RowToJS(Data::Row* row) {
727+
Local<Object> result(Object::New());
728728

729729
Data::Row::const_iterator it = row->begin();
730730
Data::Row::const_iterator end = row->end();
@@ -757,7 +757,6 @@ Local<Array> Statement::RowToJS(Data::Row* row) {
757757
} break;
758758
}
759759

760-
result->Set(i, value);
761760
result->Set(String::NewSymbol(field->name.c_str()), value);
762761

763762
DELETE_FIELD(field);

src/statement.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ class Statement : public EventEmitter {
197197
bool Bind(const Data::Parameters parameters);
198198

199199
static void GetRow(Data::Row* row, sqlite3_stmt* stmt);
200-
static Local<Array> RowToJS(Data::Row* row);
200+
static Local<Object> RowToJS(Data::Row* row);
201201
void Schedule(EIO_Callback callback, Baton* baton);
202202
void Process();
203203
void CleanQueue();

test/blob.test.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,11 @@ exports['blob test'] = function(beforeExit) {
2626
db.all('SELECT id, image FROM elmos ORDER BY id', function(err, rows) {
2727
if (err) throw err;
2828
for (var i = 0; i < rows.length; i++) {
29-
assert.ok(Buffer.isBuffer(rows[i][1]));
30-
assert.ok(elmo.length, rows[i][1]);
29+
assert.ok(Buffer.isBuffer(rows[i].image));
30+
assert.ok(elmo.length, rows[i].image);
3131

3232
for (var j = 0; j < elmo.length; j++) {
33-
if (elmo[j] !== rows[i][1][j]) {
33+
if (elmo[j] !== rows[i].image[j]) {
3434
assert.ok(false, "Wrong byte");
3535
}
3636
}

test/named_params.test.js

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -35,18 +35,18 @@ exports['test named parameters'] = function(beforeExit) {
3535
db.all("SELECT txt, num FROM foo ORDER BY num", function(err, rows) {
3636
if (err) throw err;
3737

38-
assert.equal(rows[0][0], "Lorem Ipsum");
39-
assert.equal(rows[0][1], 1);
40-
assert.equal(rows[1][0], "Dolor Sit Amet");
41-
assert.equal(rows[1][1], 2);
42-
assert.equal(rows[2][0], "Consectetur Adipiscing Elit");
43-
assert.equal(rows[2][1], 3);
44-
assert.equal(rows[3][0], "Sed Do Eiusmod");
45-
assert.equal(rows[3][1], 4);
46-
assert.equal(rows[4][0], "Tempor Incididunt");
47-
assert.equal(rows[4][1], 5);
48-
assert.equal(rows[5][0], "Ut Labore Et Dolore");
49-
assert.equal(rows[5][1], 6);
38+
assert.equal(rows[0].txt, "Lorem Ipsum");
39+
assert.equal(rows[0].num, 1);
40+
assert.equal(rows[1].txt, "Dolor Sit Amet");
41+
assert.equal(rows[1].num, 2);
42+
assert.equal(rows[2].txt, "Consectetur Adipiscing Elit");
43+
assert.equal(rows[2].num, 3);
44+
assert.equal(rows[3].txt, "Sed Do Eiusmod");
45+
assert.equal(rows[3].num, 4);
46+
assert.equal(rows[4].txt, "Tempor Incididunt");
47+
assert.equal(rows[4].num, 5);
48+
assert.equal(rows[5].txt, "Ut Labore Et Dolore");
49+
assert.equal(rows[5].num, 6);
5050

5151
finished = true;
5252
});

test/other_objects.test.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ exports['test Date() and RegExp() serialization'] = function(beforeExit) {
1212
db.run("INSERT INTO foo VALUES(?, ?)", (/^f\noo/), date);
1313
db.get("SELECT txt, num FROM foo", function(err, row) {
1414
if (err) throw err;
15-
assert.equal(row[0], '/^f\\noo/');
16-
assert.equal(row[1], +date);
15+
assert.equal(row.txt, '/^f\\noo/');
16+
assert.equal(row.num, +date);
1717
retrieved = true;
1818
})
1919
});
@@ -54,7 +54,7 @@ exports['test large floats'] = function(beforeExit) {
5454
if (err) throw err;
5555

5656
for (var i = 0; i < rows.length; i++) {
57-
assert.equal(numbers[i], rows[i][0]);
57+
assert.equal(numbers[i], rows[i].num);
5858
}
5959

6060
retrieved = true;

test/prepare.test.js

Lines changed: 42 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,10 @@ exports['test inserting and retrieving rows'] = function(beforeExit) {
7777
assert.equal(count + 5, rows.length, "Didn't run all queries");
7878

7979
for (var i = 0; i < count; i++) {
80-
assert.equal(rows[i][0], 'String ' + i);
81-
assert.equal(rows[i][1], i);
82-
assert.equal(rows[i][2], i * Math.PI);
83-
assert.equal(rows[i][3], null);
80+
assert.equal(rows[i].txt, 'String ' + i);
81+
assert.equal(rows[i].num, i);
82+
assert.equal(rows[i].flt, i * Math.PI);
83+
assert.equal(rows[i].blb, null);
8484
retrieved++;
8585
}
8686

@@ -114,10 +114,10 @@ exports['test retrieving reset() function'] = function(beforeExit) {
114114
function(err, rows) {
115115
if (err) throw err;
116116
for (var i = 0; i < rows.length; i++) {
117-
assert.equal(rows[i][0], 'String 0');
118-
assert.equal(rows[i][1], 0);
119-
assert.equal(rows[i][2], 0.0);
120-
assert.equal(rows[i][3], null);
117+
assert.equal(rows[i].txt, 'String 0');
118+
assert.equal(rows[i].num, 0);
119+
assert.equal(rows[i].flt, 0.0);
120+
assert.equal(rows[i].blb, null);
121121
retrieved++;
122122
}
123123
}
@@ -146,10 +146,10 @@ exports['test multiple get() parameter binding'] = function(beforeExit) {
146146
if (err) throw err;
147147
for (var i = 0; i < rows.length; i++) {
148148
var val = i * 10 + 1;
149-
assert.equal(rows[i][0], 'String ' + val);
150-
assert.equal(rows[i][1], val);
151-
assert.equal(rows[i][2], val * Math.PI);
152-
assert.equal(rows[i][3], null);
149+
assert.equal(rows[i].txt, 'String ' + val);
150+
assert.equal(rows[i].num, val);
151+
assert.equal(rows[i].flt, val * Math.PI);
152+
assert.equal(rows[i].blb, null);
153153
retrieved++;
154154
}
155155
}
@@ -169,10 +169,10 @@ exports['test prepare() parameter binding'] = function(beforeExit) {
169169
db.prepare("SELECT txt, num, flt, blb FROM foo WHERE num = ? AND txt = ?", 10, 'String 10')
170170
.get(function(err, row) {
171171
if (err) throw err;
172-
assert.equal(row[0], 'String 10');
173-
assert.equal(row[1], 10);
174-
assert.equal(row[2], 10 * Math.PI);
175-
assert.equal(row[3], null);
172+
assert.equal(row.txt, 'String 10');
173+
assert.equal(row.num, 10);
174+
assert.equal(row.flt, 10 * Math.PI);
175+
assert.equal(row.blb, null);
176176
retrieved++;
177177
});
178178

@@ -190,10 +190,10 @@ exports['test get() parameter binding'] = function(beforeExit) {
190190
db.prepare("SELECT txt, num, flt, blb FROM foo WHERE num = ? AND txt = ?")
191191
.get(10, 'String 10', function(err, row) {
192192
if (err) throw err;
193-
assert.equal(row[0], 'String 10');
194-
assert.equal(row[1], 10);
195-
assert.equal(row[2], 10 * Math.PI);
196-
assert.equal(row[3], null);
193+
assert.equal(row.txt, 'String 10');
194+
assert.equal(row.num, 10);
195+
assert.equal(row.flt, 10 * Math.PI);
196+
assert.equal(row.blb, null);
197197
retrieved++;
198198
});
199199

@@ -212,10 +212,10 @@ exports['test all()'] = function(beforeExit) {
212212
.all(function(err, rows) {
213213
if (err) throw err;
214214
for (var i = 0; i < rows.length; i++) {
215-
assert.equal(rows[i][0], 'String ' + i);
216-
assert.equal(rows[i][1], i);
217-
assert.equal(rows[i][2], i * Math.PI);
218-
assert.equal(rows[i][3], null);
215+
assert.equal(rows[i].txt, 'String ' + i);
216+
assert.equal(rows[i].num, i);
217+
assert.equal(rows[i].flt, i * Math.PI);
218+
assert.equal(rows[i].blb, null);
219219
retrieved++;
220220
}
221221
});
@@ -237,10 +237,10 @@ exports['test all() parameter binding'] = function(beforeExit) {
237237
.all(count, function(err, rows) {
238238
if (err) throw err;
239239
for (var i = 0; i < rows.length; i++) {
240-
assert.equal(rows[i][0], 'String ' + i);
241-
assert.equal(rows[i][1], i);
242-
assert.equal(rows[i][2], i * Math.PI);
243-
assert.equal(rows[i][3], null);
240+
assert.equal(rows[i].txt, 'String ' + i);
241+
assert.equal(rows[i].num, i);
242+
assert.equal(rows[i].flt, i * Math.PI);
243+
assert.equal(rows[i].blb, null);
244244
retrieved++;
245245
}
246246
});
@@ -310,15 +310,15 @@ exports['test high concurrency'] = function(beforeExit) {
310310
if (err) throw err;
311311

312312
for (var i = 0; i < rows.length; i++) {
313-
assert.ok(data[rows[i][1]] !== true);
313+
assert.ok(data[rows[i].num] !== true);
314314

315-
assert.equal(rows[i][0], data[rows[i][1]][0]);
316-
assert.equal(rows[i][1], data[rows[i][1]][1]);
317-
assert.equal(rows[i][2], data[rows[i][1]][2]);
318-
assert.equal(rows[i][3], data[rows[i][1]][3]);
315+
assert.equal(rows[i].txt, data[rows[i].num][0]);
316+
assert.equal(rows[i].num, data[rows[i].num][1]);
317+
assert.equal(rows[i].flt, data[rows[i].num][2]);
318+
assert.equal(rows[i].blb, data[rows[i].num][3]);
319319

320320
// Mark the data row as already retrieved.
321-
data[rows[i][1]] = true;
321+
data[rows[i].num] = true;
322322
retrieved++;
323323
}
324324
});
@@ -337,10 +337,10 @@ exports['test Database#get()'] = function(beforeExit) {
337337

338338
db.get("SELECT txt, num, flt, blb FROM foo WHERE num = ? AND txt = ?", 10, 'String 10', function(err, row) {
339339
if (err) throw err;
340-
assert.equal(row[0], 'String 10');
341-
assert.equal(row[1], 10);
342-
assert.equal(row[2], 10 * Math.PI);
343-
assert.equal(row[3], null);
340+
assert.equal(row.txt, 'String 10');
341+
assert.equal(row.num, 10);
342+
assert.equal(row.flt, 10 * Math.PI);
343+
assert.equal(row.blb, null);
344344
retrieved++;
345345
});
346346

@@ -385,10 +385,10 @@ exports['test Database#run() and Database#all()'] = function(beforeExit) {
385385
assert.equal(count, rows.length, "Couldn't retrieve all rows");
386386

387387
for (var i = 0; i < count; i++) {
388-
assert.equal(rows[i][0], 'String ' + i);
389-
assert.equal(rows[i][1], i);
390-
assert.equal(rows[i][2], i * Math.PI);
391-
assert.equal(rows[i][3], null);
388+
assert.equal(rows[i].txt, 'String ' + i);
389+
assert.equal(rows[i].num, i);
390+
assert.equal(rows[i].flt, i * Math.PI);
391+
assert.equal(rows[i].blb, null);
392392
retrieved++;
393393
}
394394
}

test/serialization.test.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,23 +21,23 @@ exports['test serialize() and parallelize()'] = function(beforeExit) {
2121
if (err) throw err;
2222
inserted1++;
2323
// Might sometimes fail, but should work fine most of the time.
24-
assert.ok(inserted2 >= Math.floor(0.95 * inserted1));
24+
assert.ok(inserted2 >= Math.floor(0.75 * inserted1));
2525
});
2626
i++;
2727
stmt2.run('String ' + i, i, i * Math.PI, function(err) {
2828
if (err) throw err;
2929
inserted2++;
30-
assert.ok(inserted1 >= Math.floor(0.95 * inserted2));
30+
assert.ok(inserted1 >= Math.floor(0.75 * inserted2));
3131
});
3232
}
3333
db.serialize();
3434
db.all("SELECT txt, num, flt, blb FROM foo ORDER BY num", function(err, rows) {
3535
if (err) throw err;
3636
for (var i = 0; i < rows.length; i++) {
37-
assert.equal(rows[i][0], 'String ' + i);
38-
assert.equal(rows[i][1], i);
39-
assert.equal(rows[i][2], i * Math.PI);
40-
assert.equal(rows[i][3], null);
37+
assert.equal(rows[i].txt, 'String ' + i);
38+
assert.equal(rows[i].num, i);
39+
assert.equal(rows[i].flt, i * Math.PI);
40+
assert.equal(rows[i].blb, null);
4141
retrieved++;
4242
}
4343
});
@@ -69,10 +69,10 @@ exports['test serialize(fn)'] = function(beforeExit) {
6969
db.all("SELECT txt, num, flt, blb FROM foo ORDER BY num", function(err, rows) {
7070
if (err) throw err;
7171
for (var i = 0; i < rows.length; i++) {
72-
assert.equal(rows[i][0], 'String ' + i);
73-
assert.equal(rows[i][1], i);
74-
assert.equal(rows[i][2], i * Math.PI);
75-
assert.equal(rows[i][3], null);
72+
assert.equal(rows[i].txt, 'String ' + i);
73+
assert.equal(rows[i].num, i);
74+
assert.equal(rows[i].flt, i * Math.PI);
75+
assert.equal(rows[i].blb, null);
7676
retrieved++;
7777
}
7878
});

test/unicode.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ exports['test unicode characters'] = function(beforeExit) {
3838
if (err) throw err;
3939

4040
for (var i = 0; i < rows.length; i++) {
41-
assert.equal(rows[i][0], data[i]);
41+
assert.equal(rows[i].txt, data[i]);
4242
retrieved++;
4343
}
4444
});

0 commit comments

Comments
 (0)