compileForUpdate method
Implementation
String compileForUpdate(Query query) {
var data = toMap();
if (data.isEmpty) {
return '';
}
var now = DateTime.now();
if (data.containsKey('created_at') && data['created_at'] == null) {
data.remove('created_at');
}
if (data.containsKey('createdAt') && data['createdAt'] == null) {
data.remove('createdAt');
}
if (data.containsKey('updated_at') && data['updated_at'] == null) {
data['updated_at'] = now;
}
if (data.containsKey('updatedAt') && data['updatedAt'] == null) {
data['updatedAt'] = now;
}
var b = StringBuffer('SET');
var i = 0;
for (var entry in data.entries) {
if (i++ > 0) b.write(',');
b.write(' ');
b.write(entry.key);
b.write('=');
var name = query.reserveName(entry.key);
var s = applyCast(entry.key, '@$name');
query.substitutionValues[name] = entry.value;
b.write(s);
}
return b.toString();
}