public Tasks::checkStandardConformingStrings()
Ensures standard_conforming_strings setting is 'on'.
When standard_conforming_strings setting is 'on' string literals ('...') treat backslashes literally, as specified in the SQL standard. This allows Drupal to convert between bytea, text and varchar columns.
File
- core/lib/Drupal/Core/Database/Driver/pgsql/Install/Tasks.php, line 192
Class
- Tasks
- Specifies installation tasks for PostgreSQL databases.
Namespace
Drupal\Core\Database\Driver\pgsql\Install
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | public function checkStandardConformingStrings() { $database_connection = Database::getConnection(); if (! $this ->checkStandardConformingStringsSuccess()) { // First try to alter the database. If it fails, raise an error telling // the user to do it themselves. $connection_options = $database_connection ->getConnectionOptions(); // It is safe to include the database name directly here, because this // code is only called when a connection to the database is already // established, thus the database name is guaranteed to be a correct // value. $query = "ALTER DATABASE \"" . $connection_options [ 'database' ] . "\" SET standard_conforming_strings = 'on';" ; try { $database_connection ->query( $query ); } catch (\Exception $e ) { // Ignore possible errors when the user doesn't have the necessary // privileges to ALTER the database. } // Close the database connection so that the configuration parameter // is applied to the current connection. Database::closeConnection(); // Recheck, if it fails, finally just rely on the end user to do the // right thing. if (! $this ->checkStandardConformingStringsSuccess()) { $replacements = array ( '%setting' => 'standard_conforming_strings' , '%current_value' => 'off' , '%needed_value' => 'on' , '@query' => $query , ); $this ->fail(t( "The %setting setting is currently set to '%current_value', but needs to be '%needed_value'. Change this by running the following query: <code>@query</code>" , $replacements )); } } } |
Please login to continue.