Skip to content

Commit 93d1e88

Browse files
committed
Merge pull request #935 from jkgeyti/master
Support querying tables with column names with multiple apostrophes
2 parents f26cb73 + 02c47f5 commit 93d1e88

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

Diff for: lib/result.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,10 @@ var inlineParser = function(fieldName, i) {
7070
//fields containing single quotes will break
7171
//the evaluated javascript unless they are escaped
7272
//see https://github.com/brianc/node-postgres/issues/507
73-
fieldName.replace("'", "\\'") +
73+
//Addendum: However, we need to make sure to replace all
74+
//occurences of apostrophes, not just the first one.
75+
//See https://github.com/brianc/node-postgres/issues/934
76+
fieldName.replace(/'/g, "\\'") +
7477
"'] = " +
7578
"rowData[" + i + "] == null ? null : parsers[" + i + "](rowData[" + i + "]);";
7679
};

Diff for: test/integration/client/query-column-names-tests.js

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
var helper = require(__dirname + '/../test-helper');
2+
var pg = helper.pg;
3+
4+
test('support for complex column names', function() {
5+
pg.connect(helper.config, assert.success(function(client, done) {
6+
client.query("CREATE TEMP TABLE t ( \"complex''column\" TEXT )");
7+
client.query('SELECT * FROM t', assert.success(function(res) {
8+
done();
9+
assert.strictEqual(res.fields[0].name, "complex''column");
10+
pg.end();
11+
}));
12+
}));
13+
});

0 commit comments

Comments
 (0)