knex/clients/server/mysql/grammar.js

29 lines
974 B
JavaScript
Raw Normal View History

// MySQL Grammar
// -------
2013-11-25 02:00:12 -05:00
var _ = require('lodash');
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) : "*");
},
2013-09-17 07:15:18 -04:00
// Ensures the response is returned in the same format as other clients.
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;
},
// Adds a `for share` clause to the query, relevant with transactions.
compileForShare: function() {
return 'lock in share mode';
}
}, baseGrammar);