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

Commit c48a0bb1 by Sascha Depold

use SqlString to format the query

1 parent d37cdbbd
Showing with 15 additions and 7 deletions
...@@ -3,6 +3,7 @@ var Utils = require("./utils") ...@@ -3,6 +3,7 @@ var Utils = require("./utils")
, DataTypes = require("./data-types") , DataTypes = require("./data-types")
, Util = require('util') , Util = require('util')
, sql = require('sql') , sql = require('sql')
, SqlString = require('./sql-string')
module.exports = (function() { module.exports = (function() {
var DAOFactory = function(name, attributes, options) { var DAOFactory = function(name, attributes, options) {
...@@ -70,7 +71,14 @@ module.exports = (function() { ...@@ -70,7 +71,14 @@ module.exports = (function() {
var dataset = this.dataset() var dataset = this.dataset()
, result = dataset[methodName].apply(dataset, arguments) , result = dataset[methodName].apply(dataset, arguments)
result.toSql = function(){ return result.toQuery().text } result.toSql = function() {
var query = result.toQuery()
return SqlString.format(query.text.replace(/(\$\d)/g, '?'), query.values) + ';'
}
result.exec = function() {
console.log("would exec", result.toSql())
}
return result return result
} }
......
...@@ -2503,9 +2503,9 @@ describe(Helpers.getTestDialectTeaser("DAOFactory"), function() { ...@@ -2503,9 +2503,9 @@ describe(Helpers.getTestDialectTeaser("DAOFactory"), function() {
it("transforms the node-sql instance into a proper sql string", function() { it("transforms the node-sql instance into a proper sql string", function() {
var sql = this.User.select("username").toSql() var sql = this.User.select("username").toSql()
var sqlMap = { var sqlMap = {
postgres: 'SELECT username FROM "users"', postgres: 'SELECT username FROM "users";',
mysql: 'SELECT `username` FROM `users`', mysql: 'SELECT `username` FROM `users`;',
sqlite: 'SELECT username FROM "users"' sqlite: 'SELECT username FROM "users";'
} }
expect(sql).toEqual(sqlMap[dialect]) expect(sql).toEqual(sqlMap[dialect])
}) })
...@@ -2513,9 +2513,9 @@ describe(Helpers.getTestDialectTeaser("DAOFactory"), function() { ...@@ -2513,9 +2513,9 @@ describe(Helpers.getTestDialectTeaser("DAOFactory"), function() {
it("transforms node-sql instances with chaining into a proper sql string", function() { it("transforms node-sql instances with chaining into a proper sql string", function() {
var sql = this.User.select("username").select("firstName").group("username").toSql() var sql = this.User.select("username").select("firstName").group("username").toSql()
var sqlMap = { var sqlMap = {
postgres: 'SELECT username, firstName FROM "users" GROUP BY username', postgres: 'SELECT username, firstName FROM "users" GROUP BY username;',
mysql: 'SELECT `username`, `firstName` FROM `users` GROUP BY username', mysql: 'SELECT `username`, `firstName` FROM `users` GROUP BY username;',
sqlite: 'SELECT username, firstName FROM "users" GROUP BY username' sqlite: 'SELECT username, firstName FROM "users" GROUP BY username;'
} }
expect(sql).toEqual(sqlMap[dialect]) expect(sql).toEqual(sqlMap[dialect])
}) })
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!