Skip to content

Commit 20157a1

Browse files
Fixed issue where getColumnNames() returned an empty array if SELECT … (#412)
* Fixed issue where getColumnNames() returned an empty array if SELECT query returned 0 rows. * Fixed line length issue with last commit. * More eslint fixes
1 parent 62fcb1a commit 20157a1

File tree

3 files changed

+11
-1
lines changed

3 files changed

+11
-1
lines changed

src/api.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,11 @@ Module["onRuntimeInitialized"] = function onRuntimeInitialized() {
112112
);
113113
var sqlite3_step = cwrap("sqlite3_step", "number", ["number"]);
114114
var sqlite3_errmsg = cwrap("sqlite3_errmsg", "string", ["number"]);
115+
var sqlite3_column_count = cwrap(
116+
"sqlite3_column_count",
117+
"number",
118+
["number"]
119+
);
115120
var sqlite3_data_count = cwrap("sqlite3_data_count", "number", ["number"]);
116121
var sqlite3_column_double = cwrap(
117122
"sqlite3_column_double",
@@ -423,7 +428,7 @@ Module["onRuntimeInitialized"] = function onRuntimeInitialized() {
423428
var results1;
424429
results1 = [];
425430
i = 0;
426-
ref = sqlite3_data_count(this.stmt);
431+
ref = sqlite3_column_count(this.stmt);
427432
while (i < ref) {
428433
results1.push(sqlite3_column_name(this.stmt, i));
429434
i += 1;

src/exported_functions.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"_sqlite3_bind_int",
1414
"_sqlite3_bind_parameter_index",
1515
"_sqlite3_step",
16+
"_sqlite3_column_count",
1617
"_sqlite3_data_count",
1718
"_sqlite3_column_double",
1819
"_sqlite3_column_text",

test/test_statement.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ exports.test = function(sql, assert){
3737
assert.deepEqual(res, {nbr:5, str:'粵語😄', no_value:null}, "Statement.getAsObject()");
3838
stmt.free();
3939

40+
// getColumnNames() should work even if query returns no data
41+
stmt = db.prepare("SELECT * FROM data WHERE nbr = -1");
42+
assert.deepEqual(stmt.getColumnNames(), ['nbr','str','no_value'], 'Statement.GetColumnNames()');
43+
stmt.free();
4044

4145
stmt = db.prepare("SELECT str FROM data WHERE str=?");
4246
assert.deepEqual(stmt.getAsObject(['粵語😄']), {'str':'粵語😄'}, "UTF8 support in prepared statements");

0 commit comments

Comments
 (0)