knex/clients/server/mysql/grammar.js
Tim Griesser ee1efa50e3 Attaching grammars directly onto client instances, fixes #74
Allows passing in an intitialized client instance to the constructor
2013-09-17 06:54:26 -04:00

24 lines
781 B
JavaScript

// MySQL Grammar
// -------
var Helpers = require('../../../lib/helpers').Helpers;
var baseGrammar = require('../../base/grammar').baseGrammar;
// Extends the standard sql grammar.
exports.grammar = _.defaults({
// The keyword identifier wrapper format.
wrapValue: function(value) {
return (value !== '*' ? Helpers.format('`%s`', value) : "*");
},
// Parses the response, according to the way mySQL works...
handleResponse: function(builder, response) {
response = response[0];
if (builder.type === 'select') response = Helpers.skim(response);
if (builder.type === 'insert') response = [response.insertId];
if (builder.type === 'delete' || builder.type === 'update') response = response.affectedRows;
return response;
}
}, baseGrammar);