getWhereConditions: function (smth) { var result = null if(helper.isHash(smth)) result = QueryGenerator.hashToWhereConditions(smth) else if(typeof smth == 'number') result = helper.addTicks('id') + "=" + helper.escape(smth) else if(typeof smth == "string") result = smth else if(Array.isArray(smth)) result = helper.format(smth) return result },
deleteQuery: function (tableName, where, options) { options = options || {} var query; if (options.limit) { query = "DELETE FROM <%= table %> WHERE <%= where %> LIMIT <%= limit %>;" } else { query = "DELETE FROM <%= table %> WHERE <%= where %>;" } var replacements = { table: helper.addTicks(tableName), where: QueryGenerator.getWhereConditions(where), limit: helper.escape(options.limit) } return _.template(query)(replacements) },
createTableQuery: function (tableName, attributes, options) { options = options || {} var query = "CREATE TABLE IF NOT EXISTS <%= table %> (<%= attributes%>);" , primaryKeys = [] , attrStr = _.map(attributes, function (dataType, attr) { var dt = dataType if (dt.indexOf('PRIMARY KEY') !== -1) { primaryKeys.push(attr) return helper.addTicks(attr) + " " + dt.replace(/PRIMARY KEY/, '') } else { return helper.addTicks(attr) + " " + dt } }).join(",") , values = {table: helper.addTicks(tableName), attributes: attrStr} , pkString = primaryKeys.map(function (pk) {return helper.addTicks(pk)}).join(",") if (pkString.length > 0) values.attributes += ", PRIMARY KEY (" + pkString + ")" return _.template(query)(values) },
attributes: _.keys(attrValueHash).map(function (attr) {return helper.addTicks(attr)}).join(","),
options.attributes = options.attributes && options.attributes.map(function (attr) {return helper.addTicks(attr)}).join(",")
, pkString = primaryKeys.map(function (pk) {return helper.addTicks(pk)}).join(",")
return _.map(hash, function (value, key) { var _value = helper.escape(value) , _key = helper.addTicks(key) return (_value == 'NULL') ? _key + " IS NULL" : [_key, _value].join("=") }).join(" AND ")
values: _.map(values, function (value, key) { return helper.addTicks(key) + "=" + helper.escape((value instanceof Date) ? helper.toSqlDate(value) : value) }).join(","),