不要怂,就是干,撸起袖子干!

Added parsing of dot noted results using dottie lib

1 parent 6c06ac2a
var Utils = require('../../utils') var Utils = require('../../utils')
, CustomEventEmitter = require("../../emitters/custom-event-emitter") , CustomEventEmitter = require("../../emitters/custom-event-emitter")
, Dot = require('dottie')
module.exports = (function() { module.exports = (function() {
var AbstractQuery = function(database, sequelize, callee, options) {} var AbstractQuery = function(database, sequelize, callee, options) {}
...@@ -230,7 +231,7 @@ module.exports = (function() { ...@@ -230,7 +231,7 @@ module.exports = (function() {
var result = null, self = this; var result = null, self = this;
if (this.options.raw) { if (this.options.raw) {
result = results result = results.map(Dot.transform)
} else if (this.options.hasJoin === true) { } else if (this.options.hasJoin === true) {
result = prepareJoinData.call(this, results) result = prepareJoinData.call(this, results)
result = groupDataByCalleeFactory.call(this, result).map(function(result) { result = groupDataByCalleeFactory.call(this, result).map(function(result) {
......
...@@ -28,7 +28,8 @@ ...@@ -28,7 +28,8 @@
"validator": "0.4.x", "validator": "0.4.x",
"moment": "~1.7.0", "moment": "~1.7.0",
"commander": "~0.6.0", "commander": "~0.6.0",
"generic-pool": "1.0.9" "generic-pool": "1.0.9",
"dottie": "0.0.6-1"
}, },
"devDependencies": { "devDependencies": {
"jasmine-node": "1.0.17", "jasmine-node": "1.0.17",
......
...@@ -6,8 +6,10 @@ if(typeof require === 'function') { ...@@ -6,8 +6,10 @@ if(typeof require === 'function') {
} }
var qq = function(str) { var qq = function(str) {
if (dialect == 'postgres') { if (dialect == 'postgres' || dialect == 'sqlite') {
return '"' + str + '"' return '"' + str + '"'
} else if (dialect == 'mysql') {
return '`' + str + '`'
} else { } else {
return str return str
} }
...@@ -91,6 +93,22 @@ describe(Helpers.getTestDialectTeaser("Sequelize"), function() { ...@@ -91,6 +93,22 @@ describe(Helpers.getTestDialectTeaser("Sequelize"), function() {
}.bind(this)) }.bind(this))
}) })
it('executes select query and parses dot notation results', function(done) {
this.sequelize.query(this.insertQuery).success(function() {
this.sequelize
.query("select username as " + qq("user.username") + " from " + qq(this.User.tableName) + "")
.success(function(users) {
expect(users.map(function(u){ return u.user })).toEqual([{'username':'john'}])
done()
})
.error(function(err) {
console.log(err)
expect(err).not.toBeDefined()
done()
})
}.bind(this))
})
if (dialect == 'mysql') if (dialect == 'mysql')
it('executes stored procedures', function(done) { it('executes stored procedures', function(done) {
this.sequelize.query(this.insertQuery).success(function() { this.sequelize.query(this.insertQuery).success(function() {
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!