2013-09-17 07:15:18 -04:00
|
|
|
// SQLite3 Grammar
|
|
|
|
// -------
|
2013-09-18 11:55:22 -04:00
|
|
|
var _ = require('underscore');
|
2013-09-17 06:54:26 -04:00
|
|
|
var Helpers = require('../../../lib/helpers').Helpers;
|
|
|
|
var baseGrammar = require('../../base/sqlite3/grammar').grammar;
|
|
|
|
|
2013-09-17 07:15:18 -04:00
|
|
|
// Extends the base SQLite3 grammar, adding only the functions
|
|
|
|
// specific to the server.
|
2013-09-17 06:54:26 -04:00
|
|
|
exports.grammar = _.defaults({
|
|
|
|
|
2013-09-17 07:15:18 -04:00
|
|
|
// Ensures the response is returned in the same format as other clients.
|
2013-09-17 06:54:26 -04:00
|
|
|
handleResponse: function(builder, resp) {
|
|
|
|
var ctx = resp[1]; resp = resp[0];
|
|
|
|
if (builder.type === 'select') {
|
|
|
|
resp = Helpers.skim(resp);
|
|
|
|
} else if (builder.type === 'insert') {
|
|
|
|
resp = [ctx.lastID];
|
|
|
|
} else if (builder.type === 'delete' || builder.type === 'update') {
|
|
|
|
resp = ctx.changes;
|
|
|
|
}
|
|
|
|
return resp;
|
|
|
|
}
|
|
|
|
|
|
|
|
}, baseGrammar);
|