Skip to content

Commit

Permalink
Fix PostgreSQL warnings about escaped strings
Browse files Browse the repository at this point in the history
fixes #5577
  • Loading branch information
gunnarbeutner committed Jun 25, 2014
1 parent ad1a11f commit ac6f3f8
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions components/db_ido_pgsql/idopgsqlconnection.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ void IdoPgsqlConnection::Reconnect(void)
}

String dbVersionName = "idoutils";
IdoPgsqlResult result = Query("SELECT version FROM " + GetTablePrefix() + "dbversion WHERE name='" + Escape(dbVersionName) + "'");
IdoPgsqlResult result = Query("SELECT version FROM " + GetTablePrefix() + "dbversion WHERE name=E'" + Escape(dbVersionName) + "'");

Dictionary::Ptr version_row = FetchRow(result, 0);

Expand All @@ -231,12 +231,12 @@ void IdoPgsqlConnection::Reconnect(void)

String instanceName = GetInstanceName();

result = Query("SELECT instance_id FROM " + GetTablePrefix() + "instances WHERE instance_name = '" + Escape(instanceName) + "'");
result = Query("SELECT instance_id FROM " + GetTablePrefix() + "instances WHERE instance_name = E'" + Escape(instanceName) + "'");

Dictionary::Ptr row = FetchRow(result, 0);

if (!row) {
Query("INSERT INTO " + GetTablePrefix() + "instances (instance_name, instance_description) VALUES ('" + Escape(instanceName) + "', '" + Escape(GetInstanceDescription()) + "')");
Query("INSERT INTO " + GetTablePrefix() + "instances (instance_name, instance_description) VALUES (E'" + Escape(instanceName) + "', E'" + Escape(GetInstanceDescription()) + "')");
m_InstanceID = GetSequenceValue(GetTablePrefix() + "instances", "instance_id");
} else {
m_InstanceID = DbReference(row->Get("instance_id"));
Expand All @@ -249,8 +249,8 @@ void IdoPgsqlConnection::Reconnect(void)
/* record connection */
Query("INSERT INTO " + GetTablePrefix() + "conninfo " +
"(instance_id, connect_time, last_checkin_time, agent_name, agent_version, connect_type, data_start_time) VALUES ("
+ Convert::ToString(static_cast<long>(m_InstanceID)) + ", NOW(), NOW(), 'icinga2 db_ido_pgsql', '" + Escape(Application::GetVersion())
+ "', '" + (reconnect ? "RECONNECT" : "INITIAL") + "', NOW())");
+ Convert::ToString(static_cast<long>(m_InstanceID)) + ", NOW(), NOW(), E'icinga2 db_ido_pgsql', E'" + Escape(Application::GetVersion())
+ "', E'" + (reconnect ? "RECONNECT" : "INITIAL") + "', NOW())");

/* clear config tables for the initial config dump */
PrepareDatabase();
Expand Down Expand Up @@ -345,7 +345,7 @@ DbReference IdoPgsqlConnection::GetSequenceValue(const String& table, const Stri
{
AssertOnWorkQueue();

IdoPgsqlResult result = Query("SELECT CURRVAL(pg_get_serial_sequence('" + Escape(table) + "', '" + Escape(column) + "')) AS id");
IdoPgsqlResult result = Query("SELECT CURRVAL(pg_get_serial_sequence(E'" + Escape(table) + "', E'" + Escape(column) + "')) AS id");

Dictionary::Ptr row = FetchRow(result, 0);

Expand Down Expand Up @@ -421,7 +421,7 @@ void IdoPgsqlConnection::InternalActivateObject(const DbObject::Ptr& dbobj)
if (!dbref.IsValid()) {
qbuf << "INSERT INTO " + GetTablePrefix() + "objects (instance_id, objecttype_id, name1, name2, is_active) VALUES ("
<< static_cast<long>(m_InstanceID) << ", " << dbobj->GetType()->GetTypeID() << ", "
<< "'" << Escape(dbobj->GetName1()) << "', '" << Escape(dbobj->GetName2()) << "', 1)";
<< "E'" << Escape(dbobj->GetName1()) << "', E'" << Escape(dbobj->GetName2()) << "', 1)";
Query(qbuf.str());
SetObjectID(dbobj, GetSequenceValue(GetTablePrefix() + "objects", "object_id"));
} else {
Expand Down Expand Up @@ -500,7 +500,7 @@ bool IdoPgsqlConnection::FieldToEscapedString(const String& key, const Value& va
} else if (DbValue::IsTimestampNow(value)) {
*result = "NOW()";
} else {
*result = "'" + Escape(rawvalue) + "'";
*result = "E'" + Escape(rawvalue) + "'";
}

return true;
Expand Down

0 comments on commit ac6f3f8

Please sign in to comment.