Browse Source

Correctly double quote strings within arrays for PG

revert-array-changes
Eric Perry 9 years ago
parent
commit
f6885792b0
  1. 11
      lib/dialect/postgres.js

11
lib/dialect/postgres.js

@ -26,7 +26,7 @@ Postgres.prototype._getParameterText = function(index, value) {
} }
}; };
Postgres.prototype._getParameterValue = function(value) { Postgres.prototype._getParameterValue = function(value, quoteChar) {
// handle primitives // handle primitives
if (null === value) { if (null === value) {
value = 'NULL'; value = 'NULL';
@ -36,12 +36,15 @@ Postgres.prototype._getParameterValue = function(value) {
// number is just number // number is just number
value = value; value = value;
} else if ('string' === typeof value) { } else if ('string' === typeof value) {
// string uses single quote // string uses single quote by default
value = this.quote(value, "'"); value = this.quote(value, quoteChar || "'");
} else if ('object' === typeof value) { } else if ('object' === typeof value) {
if (_.isArray(value)) { if (_.isArray(value)) {
// convert each element of the array // convert each element of the array
value = _.map(value, this._getParameterValue, this); value = value.map(function (item) {
// In a Postgres array, strings must be double-quoted
return this._getParameterValue(item, '"');
});
value = '\'{' + value.join(',') + '}\''; value = '\'{' + value.join(',') + '}\'';
} else if (_.isFunction(value.toISOString)) { } else if (_.isFunction(value.toISOString)) {
// Date object's default toString format does not get parsed well // Date object's default toString format does not get parsed well

Loading…
Cancel
Save