mirror of
https://github.com/knex/knex.git
synced 2025-07-04 15:41:07 +00:00
38 lines
941 B
JavaScript
38 lines
941 B
JavaScript
// PostgreSQL Formatter
|
|
// -------
|
|
module.exports = function(client) {
|
|
|
|
var Formatter = require('../../formatter');
|
|
var inherits = require('inherits');
|
|
|
|
// The "formatter" is used to ensure all output is properly
|
|
// escaped & parameterized.
|
|
function Formatter_PG() {
|
|
this.client = client;
|
|
this.paramCount = 0;
|
|
Formatter.apply(this, arguments);
|
|
}
|
|
inherits(Formatter_PG, Formatter);
|
|
|
|
// Wraps a value (column, tableName) with the correct ticks.
|
|
Formatter_PG.prototype.wrapValue = function(value) {
|
|
return (value !== '*' ? '"' + value + '"' : '*');
|
|
};
|
|
|
|
// Memoize the calls to "wrap" for a little extra perf.
|
|
var wrapperMemo = (function(){
|
|
var memo = Object.create(null);
|
|
return function(key) {
|
|
if (memo.key === void 0) {
|
|
memo[key] = this._wrapString(key);
|
|
}
|
|
return memo[key];
|
|
};
|
|
}());
|
|
|
|
Formatter_PG.prototype._wrap = wrapperMemo;
|
|
|
|
// Assign the formatter to the the client.
|
|
client.Formatter = Formatter_PG;
|
|
|
|
}; |