mirror of https://github.com/Icinga/icinga2.git
Fix string escape problem with PostgreSQL >= 9.1 and standard_conforming_strings=on
fixes #9244
This commit is contained in:
parent
35bc567406
commit
e06375d76f
|
@ -408,6 +408,7 @@ RHEL/CentOS 5/6:
|
||||||
RHEL/CentOS 7:
|
RHEL/CentOS 7:
|
||||||
|
|
||||||
# yum install postgresql-server postgresql
|
# yum install postgresql-server postgresql
|
||||||
|
# postgresql-setup --initdb
|
||||||
# systemctl enable postgresql
|
# systemctl enable postgresql
|
||||||
# systemctl start postgresql
|
# systemctl start postgresql
|
||||||
|
|
||||||
|
@ -471,7 +472,7 @@ authentication method and restart the postgresql server.
|
||||||
# IPv6 local connections:
|
# IPv6 local connections:
|
||||||
host all all ::1/128 ident
|
host all all ::1/128 ident
|
||||||
|
|
||||||
# /etc/init.d/postgresql restart
|
# service postgresql restart
|
||||||
|
|
||||||
|
|
||||||
After creating the database and permissions you can import the Icinga 2 IDO
|
After creating the database and permissions you can import the Icinga 2 IDO
|
||||||
|
|
|
@ -217,8 +217,16 @@ void IdoPgsqlConnection::Reconnect(void)
|
||||||
BOOST_THROW_EXCEPTION(std::runtime_error(message));
|
BOOST_THROW_EXCEPTION(std::runtime_error(message));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IdoPgsqlResult result;
|
||||||
|
|
||||||
|
/* explicitely require legacy mode for string escaping in PostgreSQL >= 9.1
|
||||||
|
* changing standard_conforming_strings to on by default
|
||||||
|
*/
|
||||||
|
if (PQserverVersion(m_Connection) >= 90100)
|
||||||
|
result = Query("SET standard_conforming_strings TO off");
|
||||||
|
|
||||||
String dbVersionName = "idoutils";
|
String dbVersionName = "idoutils";
|
||||||
IdoPgsqlResult result = Query("SELECT version FROM " + GetTablePrefix() + "dbversion WHERE name=E'" + Escape(dbVersionName) + "'");
|
result = Query("SELECT version FROM " + GetTablePrefix() + "dbversion WHERE name=E'" + Escape(dbVersionName) + "'");
|
||||||
|
|
||||||
Dictionary::Ptr row = FetchRow(result, 0);
|
Dictionary::Ptr row = FetchRow(result, 0);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue